CommencerCommencer gratuitement

Identifier les relations en triangle

Maintenant que vous connaissez les cliques, mettez ces connaissances à profit pour détecter des structures dans un réseau. Commencez par les triangles. Ils nous intéressent car ce sont les cliques complexes les plus simples. Nous allons écrire quelques fonctions ; ces exercices vous guideront à travers la logique fondamentale des algorithmes sur les réseaux.

Dans le réseau Twitter, chaque nœud possède une étiquette 'occupation' correspondant au métier de l’utilisateur Twitter, réparti en celebrity, politician et scientist. Une application possible des algorithmes de recherche de triangles est de déterminer si des utilisateurs ayant des métiers similaires ont davantage tendance à appartenir à une même clique.

Cet exercice fait partie du cours

Introduction à l’analyse de réseaux en Python

Afficher le cours

Instructions

  • Importez combinations depuis itertools.
  • Écrivez une fonction is_in_triangle() qui prend deux paramètres : G et n, et vérifie si un nœud donné fait partie d’une relation en triangle.
    • combinations(iterable, n) renvoie les combinaisons de taille n tirées de iterable. Cela sera utile ici, car vous voulez les combinaisons de taille 2 de list(G.neighbors(n)).
    • Pour vérifier l’existence d’une arête entre deux nœuds, utilisez la méthode .has_edge(node1, node2). Si une arête existe, alors le nœud donné fait partie d’un triangle et vous devez retourner True.

Exercice interactif pratique

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

____

# Define is_in_triangle()
def is_in_triangle(G, n):
    """
    Checks whether a node `n` in graph `G` is in a triangle relationship or not.

    Returns a boolean.
    """
    in_triangle = False

    # Iterate over all possible triangle relationship combinations
    for n1, n2 in ____:

        # Check if an edge exists between n1 and n2
        if ____:
            in_triangle = ____
            break
    return in_triangle
Modifier et exécuter le code