Leer AI met Python · Les

Grafentheorie voor machine learning

Nodes, edges, adjacency matrix, grafentypen, graafeigenschappen, representaties van sociale netwerken.

Les 1 van 413 stappen

Grafentheorie voor machine learning is een gratis Leer AI met Python-les op CoddyKit. Dit is les 1 van 4. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Leer AI met Python. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Leer AI met Python bevat in totaal 4 lessen.

Wat is een graaf

Een graaf modelleert entiteiten en de relaties ertussen. Formeel is een graaf G = (V, E), waarbij V de verzameling hoekpunten (knopen) is en E de verzameling kanten die paren knopen met elkaar verbinden. Veel echte systemen zijn van nature grafen.

Knopen en kanten

Elke knoop stelt een entiteit voor (een gebruiker, een atoom, een webpagina). Elke kant stelt een relatie voor (een vriendschap, een chemische binding, een hyperlink). Machine learning op grafen leert van deze verbindingsstructuur, niet alleen van geïsoleerde voorbeelden.

De adjacentiematrix

De adjacentiematrix A legt vast welke knopen met elkaar verbonden zijn. Voor n knopen is A n bij n; A[i][j] = 1 als een kant knoop i en knoop j verbindt, en anders 0.

import numpy as np

# Triangle: 0-1, 1-2, 0-2
A = np.array([
    [0, 1, 1],
    [1, 0, 1],
    [1, 1, 0],
])

Kenmerken van knopen X

Naast de structuur heeft elke knoop meestal een kenmerkvector. Samen vormen ze de kenmerkmatrix X met vorm (num_nodes, num_features). In een sociale graaf kan een rij bijvoorbeeld de leeftijd van een gebruiker, het aantal berichten en de leeftijd van het account bevatten.

X = np.array([
    [25, 120, 3.0],   # node 0
    [31,  45, 5.5],   # node 1
    [22, 300, 1.2],   # node 2
])

Graadmatrix

De graad van een knoop is het aantal kanten ervan. De graadmatrix D is diagonaal, waarbij elk diagonaalelement gelijk is aan de graad van die knoop. Dit is de bouwsteen van de graaflaplaciaan.

D = np.diag(A.sum(axis=1))
# Each diagonal entry = number of neighbors

De graaflaplaciaan

De graaflaplaciaan wordt gedefinieerd als L = D - A. Deze legt vast hoe waarden verschillen tussen verbonden knopen en vormt de basis van de spectrale grafentheorie en veel GNN-formuleringen.

L = D - A
print(L)

Waarom de laplaciaan belangrijk is

De eigenwaarden en eigenvectoren van de laplaciaan onthullen de globale structuur: verbondenheid, clusters en gladheid. Graafconvoluties worden vaak afgeleid van de laplaciaan. Daarom is inzicht in L = D - A essentieel om GNN's te begrijpen.

Gerichte versus ongerichte grafen

In een ongerichte graaf heeft een kant geen richting (zoals een vriendschap), dus is A symmetrisch. In een gerichte graaf wijzen kanten één kant op (zoals bij een volger of een citatie), dus kan A asymmetrisch zijn: A[i][j] kan verschillen van A[j][i].

# Directed: 0 -> 1 but not 1 -> 0
A_dir = np.array([
    [0, 1, 0],
    [0, 0, 1],
    [0, 0, 0],
])

Gewogen grafen

Kanten kunnen gewichten bevatten die sterkte of afstand weergeven. De elementen van de adjacentiematrix zijn dan reële getallen en niet alleen 0 of 1. In een wegennetwerk kunnen kanten bijvoorbeeld worden gewogen met reistijd, en in een gelijkenisgraaf met cosinusgelijkenis.

Kanten efficiënt weergeven

Bij grote ijle grafen verspilt de adjacentiematrix geheugen, omdat de meeste elementen nul zijn. ML-frameworks slaan kanten daarom op als een kantenlijst (COO-indeling): twee reeksen die de bron en het doel van elke kant aangeven. PyTorch Geometric noemt dit edge_index.

# Triangle edges as edge_index [2, num_edges]
edge_index = [
    [0, 0, 1],   # sources
    [1, 2, 2],   # targets
]

Toepassingen van ML op grafen

Grafen komen overal voor:

  • Sociaal: vriendena aanbevelingen, gemeenschapsdetectie
  • Moleculair: eigenschappen van moleculen voorspellen (atomen = knopen, bindingen = kanten)
  • Kennisgrafen: verbindingen tussen entiteiten en relaties voorspellen
  • Web/citaties: rangschikking en classificatie

Snelle controle

Test je kennis van de grafentheorie.

Overzicht

Je hebt de grondslagen van de grafentheorie voor ML geleerd:

  • Een graaf is G = (V, E) met knopen en kanten
  • De adjacentiematrix A legt verbindingen vast; X bevat de kenmerken van knopen
  • De graaflaplaciaan is L = D - A
  • Grafen kunnen gericht of ongericht zijn en gewogen of ongewogen
  • Toepassingen omvatten sociale, moleculaire en kennisgrafen
Gratis beginnen

Leer Python met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
53
Lessen
225

Veelgestelde vragen

Is de les “Grafentheorie voor machine learning” gratis?

Ja — je kunt hier op het web alle 3 lessen van het leerpad Leer AI met Python, waaronder “Grafentheorie voor machine learning”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus Leer AI met Python bevat in totaal 4 lessen.

Wat leer ik in “Grafentheorie voor machine learning”?

Nodes, edges, adjacency matrix, grafentypen, graafeigenschappen, representaties van sociale netwerken. Je oefent met Leer AI met Python door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met Leer AI met Python te beginnen?

Ervaring vooraf is niet nodig. Leer AI met Python op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 1 van 4.

Hoe lang duurt de les “Grafentheorie voor machine learning”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over Leer AI met Python?

Ja. Elke les over Leer AI met Python bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. Grafentheorie voor machine learning
  2. Graph convolutional networks (GCN)
  3. Nodeclassificatie met GNN
  4. Linkvoorspelling en graafclassificatie
← Terug naar Leer AI met Python