Lær AI med Python · leksjon

Grafteori for maskinlæring

Noder, kanter, naboskapsmatrise, graftyper, grafegenskaper og representasjoner av sosiale nettverk.

Leksjon 1 av 413 trinn

Grafteori for maskinlæring er en gratis leksjon i Lær AI med Python på CoddyKit. Dette er leksjon 1 av 4. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Lær AI med Python, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Lær AI med Python inneholder totalt 4 leksjoner.

Hva er en graf

En graf modellerer entiteter og relasjonene mellom dem. Formelt er en graf G = (V, E), der V er mengden av noder, og E er mengden av kanter som forbinder nodepar. Mange virkelige systemer er naturlig representert som grafer.

Noder og kanter

Hver node representerer en entitet (en bruker, et atom eller en nettside). Hver kant representerer en relasjon (et vennskap, en kjemisk binding eller en hyperlenke). Grafmaskinlæring lærer av denne forbindelsesstrukturen, ikke bare av isolerte eksempler.

Nabomatrisen

Nabomatrisen A angir hvilke noder som er forbundet. For n noder er A n ganger n; A[i][j] = 1 hvis en kant forbinder node i og node j, ellers 0.

import numpy as np

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

Nodeegenskaper X

I tillegg til strukturen har hver node vanligvis en featurevektor. Når de stables sammen, danner de egenskapsmatrisen X med dimensjonen (num_nodes, num_features). I en sosial graf kan en rad inneholde en brukers alder, antall innlegg og kontoens alder.

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

Gradmatrisen

Graden til en node er antallet kanter den har. Gradmatrisen D er diagonal, og hvert diagonalelement er lik graden til den tilsvarende noden. Den er en byggestein i graf-Laplacianen.

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

Graf-Laplacianen

Graf-Laplacianen defineres som L = D - A. Den fanger opp hvordan verdier varierer mellom forbundne noder, og er grunnleggende i spektral grafteori og mange GNN-formuleringer.

L = D - A
print(L)

Hvorfor Laplacianen er viktig

Egenverdiene og egenvektorene til Laplacianen avdekker global struktur: sammenheng, klynger og glatthet. Grafkonvolusjoner utledes ofte fra Laplacianen, så det er viktig å forstå L = D - A for å forstå GNN-er.

Rettede og urettede grafer

I en urettet graf har en kant ingen retning (som et vennskap), så A er symmetrisk. I en rettet graf peker kantene én vei (som en følgerrelasjon eller en sitering), så A kan være asymmetrisk: A[i][j] kan være forskjellig fra A[j][i].

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

Vektede grafer

Kanters vekter kan representere styrke eller avstand. Da er elementene i nabomatrisen reelle tall, ikke bare 0/1. I et veinett kan kantene vektes etter reisetid, mens en likhetsgraf kan vektes etter cosinuslikhet.

Effektiv representasjon av kanter

For store, sparsomme grafer sløser nabomatrisen med minne fordi de fleste elementene er null. ML-rammeverk lagrer derfor i stedet kantene som en kantliste (COO-format): to arrayer som angir kilde og mål for hver kant. PyTorch Geometric kaller dette edge_index.

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

Bruksområder for grafmaskinlæring

Grafer finnes overalt:

  • Sosiale grafer: venneanbefalinger, fellesskapsdeteksjon
  • Molekylære grafer: prediksjon av molekylers egenskaper (atomer = noder, bindinger = kanter)
  • Kunnskapsgrafer: lenkeprediksjon over entiteter og relasjoner
  • Nett- og siteringsgrafer: rangering og klassifisering

Kunnskapssjekk

Test kunnskapen din om grafteori.

Oppsummering

Du har lært grunnlaget i grafteori for ML:

  • En graf er G = (V, E) med noder og kanter
  • Nabomatrisen A angir forbindelsene; X inneholder nodeegenskapene
  • Graf-Laplacianen er L = D - A
  • Grafer kan være rettede eller urettede, vektede eller uvektede
  • Bruksområdene omfatter sosiale grafer, molekylære grafer og kunnskapsgrafer
Gratis å komme i gang

Lær deg Python med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
53
Leksjoner
225

Ofte stilte spørsmål

Er leksjonen «Grafteori for maskinlæring» gratis?

Ja – du kan lese valgfritt 3 av leksjonene i læringsstien Lær AI med Python, inkludert «Grafteori for maskinlæring», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i Lær AI med Python inneholder totalt 4 leksjoner.

Hva lærer jeg i «Grafteori for maskinlæring»?

Noder, kanter, naboskapsmatrise, graftyper, grafegenskaper og representasjoner av sosiale nettverk. Du øver på Lær AI med Python med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med Lær AI med Python?

Ingen tidligere erfaring er nødvendig. Lær AI med Python på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 1 av 4.

Hvor lang tid tar leksjonen «Grafteori for maskinlæring»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne Lær AI med Python-leksjonen?

Ja. Alle Lær AI med Python-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. Grafteori for maskinlæring
  2. Grafkonvolusjonsnettverk (GCN)
  3. Nodeklassifikasjon med GNN
  4. Lenkeprediksjon og grafklassifikasjon
← Tilbake til Lær AI med Python