Zacznij terazZacznij za darmo

Identyfikowanie relacji trójkątnych

Teraz, gdy wiesz już, czym są kliki, czas wykorzystać tę wiedzę do znajdowania struktur w sieci. Zaczniesz od trójkątów – to najprostsza złożona klika. Napiszemy kilka funkcji; te ćwiczenia przeprowadzą cię przez podstawową logikę algorytmów sieciowych.

W sieci Twitterowej każdy węzeł ma przypisaną etykietę 'occupation', która określa zawód użytkownika – może to być celebrity, politician lub scientist. Jednym z możliwych zastosowań algorytmów wyszukiwania trójkątów jest sprawdzenie, czy użytkownicy o podobnych zawodach częściej tworzą kliki.

To ćwiczenie jest częścią kursu

Wprowadzenie do analizy sieci w Pythonie

Zobacz kurs

Instrukcje do ćwiczenia

  • Zaimportuj combinations z biblioteki itertools.
  • Napisz funkcję is_in_triangle(), która przyjmuje dwa parametry – G i n – i sprawdza, czy dany węzeł należy do relacji trójkątnej.
    • combinations(iterable, n) zwraca kombinacje rozmiaru n z iterable. Przyda się tutaj, ponieważ potrzebujesz kombinacji rozmiaru 2 z list(G.neighbors(n)).
    • Aby sprawdzić, czy między dwoma węzłami istnieje krawędź, użyj metody .has_edge(node1, node2). Jeśli krawędź istnieje, dany węzeł należy do relacji trójkątnej – zwróć wtedy True.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

____

# 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
Edytuj i uruchom kod