CommencerCommencer gratuitement

Calculer une projection

Il est temps de vous entraîner à calculer la projection d’un graphe biparti sur les nœuds de l’une de ses partitions. Cela vous aidera à vous exercer à passer d’une version bipartie d’un graphe à ses projections uniparties. Rappelez-vous de la vidéo que la « projection » d’un graphe sur l’une de ses partitions correspond à la connectivité des nœuds de cette partition, conditionnée par leurs connexions aux nœuds de l’autre partition. Plus concrètement, pensez à la « connectivité de clients basée sur des achats en commun ».

Pour vous aider à démarrer, voici un rappel sur les compréhensions de listes. Elles peuvent inclure des conditions : si vous souhaitez filtrer un graphe pour un certain type de nœud, vous pouvez faire : [n for n, d in G.nodes(data=True) if d['key'] == 'some_value'].

Cet exercice fait partie du cours

Analyse de réseaux intermédiaire en Python

Afficher le cours

Instructions

  • Préparez la nodelist people avec une compréhension de liste. Si le mot-clé 'bipartite' d’un nœud n dans G est égal à 'people', alors ce nœud doit faire partie de la nodelist.
  • Préparez la nodelist clubs en itérant sur les nœuds de G, en incluant les métadonnées. Ici, notez que vous devez vérifier si le mot-clé 'bipartite' du dictionnaire de métadonnées d est égal à 'clubs'. Remarque : c’est simplement une autre façon de créer la nodelist. Vous n’êtes pas obligé d’itérer sur les métadonnées : vous pouvez suivre la même approche que pour créer la nodelist people, en vérifiant simplement 'clubs' à la place. Nous vous demandons d’utiliser l’autre approche ici afin que vous vous exerciez aux deux.
  • Utilisez nx.bipartite.projected_graph() pour calculer les projections des personnes et des clubs. Enregistrez les résultats dans peopleG et clubsG.
    • Cette fonction prend deux arguments : le graphe G et la nodelist.

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

# Prepare the nodelists needed for computing projections: people, clubs
# This exercise shows you two ways to do it, one with `data=True` and one without.
people = [n for n in G.nodes() if G.nodes[____]['____'] == '____']
clubs = [n for n, d in G.nodes(data=True) if d['____'] == '____']

# Compute the people and clubs projections: peopleG, clubsG
peopleG = ____
clubsG = ____
Modifier et exécuter le code