Ăbersetzung, wie Maschinen Big Data verstehen: eine EinfĂŒhrung in Clustering-Algorithmen .Schauen Sie sich das Bild unten an. Dies ist eine Sammlung von Insekten (Schnecken sind keine Insekten, aber wir werden keinen Fehler finden) in verschiedenen Formen und GröĂen. Teilen Sie sie nun nach dem Grad der Ăhnlichkeit in mehrere Gruppen ein. Kein Fang. Beginnen Sie mit der Gruppierung von Spinnen.

Fertig? Obwohl es hier keine ârichtigeâ Lösung gibt, mĂŒssen Sie diese Kreaturen in vier
Cluster unterteilt haben . In einer Gruppe gibt es Spinnen, in der zweiten - ein Paar Schnecken, in der dritten - Schmetterlinge und in der vierten - ein Trio von Bienen und Wespen.
Gut gemacht, richtig? Sie könnten wahrscheinlich dasselbe tun, wenn doppelt so viele Insekten auf dem Bild wÀren. Und wenn Sie viel Zeit gehabt hÀtten - oder ein Verlangen nach Entomologie -, hÀtten Sie wahrscheinlich Hunderte von Insekten gruppiert.
FĂŒr eine Maschine ist es jedoch keine leichte Aufgabe, zehn Objekte in sinnvolle Cluster zu gruppieren. Dank eines so komplexen Zweigs der Mathematik wie der
Kombinatorik wissen wir, dass 10 Insekten auf 115.975 Arten gruppiert sind. Und wenn es 20 Insekten gibt, wird die Anzahl der Clustering-Optionen
50 Billionen ĂŒberschreiten .
Mit hundert Insekten ist die Anzahl der möglichen Lösungen gröĂer als die
Anzahl der Elementarteilchen im bekannten Universum . Wie viel mehr? Nach meinen SchÀtzungen etwa
fĂŒnfhundert Millionen Milliarden Mal mehr . Es stellt sich heraus, dass mehr als
vier Millionen Milliarden Google- Lösungen (
was ist Google? ). Und das nur fĂŒr Hunderte von Objekten.
Fast alle diese Kombinationen sind bedeutungslos. Trotz der unvorstellbaren Anzahl von Lösungen haben Sie selbst sehr schnell eine der wenigen nĂŒtzlichen Möglichkeiten zum Clustering gefunden.
Wir Menschen halten unsere hervorragende FĂ€higkeit, groĂe Datenmengen zu katalogisieren und zu verstehen, fĂŒr selbstverstĂ€ndlich. Es spielt keine Rolle, ob es sich um Text, Bilder auf dem Bildschirm oder eine Folge von Objekten handelt - Menschen verstehen im Allgemeinen die Daten aus der Umgebung effektiv.
Wie kann ich die Arbeitseffizienz verbessern, da ein SchlĂŒsselaspekt der KI-Entwicklung und des maschinellen Lernens darin besteht, dass Maschinen groĂe Mengen an Eingabedaten schnell verstehen können? In diesem Artikel werden drei Clustering-Algorithmen betrachtet, mit denen Maschinen groĂe Datenmengen schnell erfassen können. Diese Liste ist bei weitem nicht vollstĂ€ndig - es gibt andere Algorithmen - aber es ist bereits durchaus möglich, damit zu beginnen.
FĂŒr jeden Algorithmus werde ich beschreiben, wann er verwendet werden kann, wie er funktioniert, und ich werde auch ein Beispiel mit schrittweiser Analyse geben. Ich glaube, fĂŒr ein wirkliches VerstĂ€ndnis des Algorithmus mĂŒssen Sie seine Arbeit selbst wiederholen. Wenn Sie
wirklich interessiert sind , werden Sie feststellen, dass es am besten ist, Algorithmen auf Papier auszufĂŒhren. Handeln Sie, niemand wird Ihnen die Schuld geben!
Drei verdÀchtig saubere Cluster mit k = 3K-bedeutet Clustering
Verwendet von:
Wenn Sie verstehen, wie viele Gruppen erhalten werden können, um
eine vorgegebene (a priori) zu finden.
Wie es funktioniert:
Der Algorithmus ordnet jede Beobachtung zufÀllig einer von
k Kategorien zu und berechnet dann den
Durchschnitt fĂŒr jede Kategorie. Dann ordnet er jede Beobachtung der Kategorie mit dem nĂ€chsten Durchschnitt zu und berechnet erneut die Durchschnittswerte. Der Vorgang wird wiederholt, bis Neuzuweisungen erforderlich sind.
Arbeitsbeispiel:
Nehmen Sie eine Gruppe von 12 Spielern und die Anzahl der Tore, die jeder von ihnen in der aktuellen Saison erzielt hat (zum Beispiel im Bereich von 3 bis 30). Wir teilen die Spieler beispielsweise in drei Cluster ein.
Schritt 1 : Sie mĂŒssen die Spieler zufĂ€llig in drei Gruppen aufteilen und den Durchschnitt fĂŒr jede von ihnen berechnen.
Group 1 Player A (5 goals), Player B (20 goals), Player C (11 goals) Group Mean = (5 + 20 + 11) / 3 = 12 Group 2 Player D (5 goals), Player E (3 goals), Player F (19 goals) Group Mean = 9 Group 3 Player G (30 goals), Player H (3 goals), Player I (15 goals) Group Mean = 16
Schritt 2 : Ordnen Sie jeden Spieler der Gruppe mit dem nÀchsten Durchschnitt zu. Zum Beispiel geht Spieler A (5 Tore) in Gruppe 2 (Durchschnitt = 9). Andererseits berechnen wir die Gruppenmittelwerte.
Group 1 (Old Mean = 12) Player C (11 goals) New Mean = 11 Group 2 (Old Mean = 9) Player A (5 goals), Player D (5 goals), Player E (3 goals), Player H (3 goals) New Mean = 4 Group 3 (Old Mean = 16) Player G (30 goals), Player I (15 goals), Player B (20 goals), Player F (19 goals) New Mean = 21
Wiederholen Sie Schritt 2 immer wieder, bis die Spieler aufhören, die Gruppe zu wechseln. In diesem kĂŒnstlichen Beispiel geschieht dies bei der nĂ€chsten Iteration.
Hör auf! Sie haben drei Cluster aus einem Datensatz gebildet!
Group 1 (Old Mean = 11) Player C (11 goals), Player I (15 goals) Final Mean = 13 Group 2 (Old Mean = 4) Player A (5 goals), Player D (5 goals), Player E (3 goals), Player H (3 goals) Final Mean = 4 Group 3 (Old Mean = 21) Player G (30 goals), Player B (20 goals), Player F (19 goals) Final Mean = 23
Cluster sollten der Position der Spieler auf dem Spielfeld entsprechen - Verteidiger, Innenverteidiger und StĂŒrmer. K-means funktioniert in diesem Beispiel, da Grund zu der Annahme besteht, dass die Daten in diese drei Kategorien unterteilt werden.
Basierend auf den statistischen Leistungsschwankungen kann die Maschine somit die Position der Spieler auf dem Spielfeld fĂŒr jede Mannschaftssportart rechtfertigen. Dies ist nĂŒtzlich fĂŒr die Sportanalyse sowie fĂŒr alle anderen Aufgaben, bei denen die Aufteilung des Datensatzes in vordefinierte Gruppen dazu beitrĂ€gt, die entsprechenden Schlussfolgerungen zu ziehen.
Es gibt verschiedene Variationen des beschriebenen Algorithmus. Die anfĂ€ngliche Bildung von Clustern kann auf verschiedene Arten durchgefĂŒhrt werden. Wir untersuchten die zufĂ€llige Einteilung der Spieler in Gruppen, gefolgt von der Berechnung der Durchschnittswerte. Infolgedessen liegen die anfĂ€nglichen Gruppenmittelwerte nahe beieinander, was die Wiederholbarkeit erhöht.
Ein alternativer Ansatz besteht darin, Cluster zu bilden, die nur aus einem Spieler bestehen, und die Spieler dann in die nĂ€chsten Cluster zu gruppieren. Die resultierenden Cluster hĂ€ngen stĂ€rker vom Anfangsstadium der Bildung ab, und die Wiederholbarkeit in DatensĂ€tzen mit hoher VariabilitĂ€t nimmt ab. Bei diesem Ansatz sind möglicherweise weniger Iterationen erforderlich, um den Algorithmus zu vervollstĂ€ndigen, da weniger Zeit fĂŒr die Aufteilung der Gruppen aufgewendet wird.
Der offensichtliche Nachteil von k-means Clustering besteht darin, dass Sie
im Voraus erraten mĂŒssen
, wie viele Cluster Sie haben. Es gibt Methoden zur Bewertung der KonformitĂ€t eines bestimmten Satzes von Clustern. Beispielsweise ist die Quadratsumme innerhalb des Clusters ein MaĂ fĂŒr die VariabilitĂ€t innerhalb jedes Clusters. Je âbesserâ die Cluster sind, desto geringer ist die gesamte Quadratsumme innerhalb des Clusters.
Hierarchisches Clustering
Verwendet von:
Wenn Sie die Beziehung zwischen den Werten (Beobachtungen) offenlegen mĂŒssen.
Wie es funktioniert:
Die Abstandsmatrix wird berechnet, in der der Wert der Zelle (
i, j ) die Metrik des Abstands zwischen den Werten von
i und
j ist . Dann wird ein Paar der nÀchsten Werte genommen und der Durchschnitt berechnet. Eine neue Distanzmatrix wird erstellt, gepaarte Werte werden zu einem Objekt zusammengefasst. Dann wird ein Paar der nÀchsten Werte aus dieser neuen Matrix entnommen und ein neuer Durchschnittswert berechnet. Der Zyklus wird wiederholt, bis alle Werte gruppiert sind.
Arbeitsbeispiel:
Nehmen Sie einen extrem vereinfachten Datensatz mit mehreren Arten von Walen und Delfinen. Ich bin Biologe und kann Ihnen versichern, dass viel mehr Eigenschaften fĂŒr den Bau
phylogenetischer BÀume verwendet werden . In unserem Beispiel beschrÀnken wir uns jedoch auf die charakteristische KörperlÀnge von sechs Arten von MeeressÀugern. Es wird zwei Berechnungsstufen geben.
Schritt 1 : Die Matrix der AbstÀnde zwischen allen Ansichten wird berechnet. Wir werden die euklidische Metrik verwenden, die beschreibt, wie weit unsere Daten voneinander entfernt sind, wie die Siedlungen auf der Karte. Sie können den Unterschied in der LÀnge der Körper jedes Paares ermitteln, indem Sie den Wert am Schnittpunkt der entsprechenden Spalte und Zeile lesen.
Schritt 2 : Nehmen Sie ein Paar von zwei Arten, die einander am nĂ€chsten sind. In diesem Fall handelt es sich um einen TĂŒmmler und einen grauen Delphin, bei denen die durchschnittliche KörperlĂ€nge 3,3 m betrĂ€gt.
Wir wiederholen Schritt 1 und berechnen erneut die Entfernungsmatrix. Diesmal kombinieren wir TĂŒmmler und Grau-Delfin zu einem Objekt mit einer KörperlĂ€nge von 3,3 m.

Jetzt wiederholen wir Schritt 2, jedoch mit einer neuen Distanzmatrix. Diesmal ist der Grind- und Killerwal am nÀchsten, also lasst sie uns zu einem Paar zusammenfassen und den Durchschnitt berechnen - 7 m.
Wiederholen Sie als NÀchstes Schritt 1: Berechnen Sie erneut die Entfernungsmatrix, jedoch mit dem Mahl- und Killerwal in Form eines einzelnen Objekts mit einer KörperlÀnge von 7 m.

Wiederholen Sie Schritt 2 mit dieser Matrix. Der kleinste Abstand (3,7 m) liegt zwischen den beiden kombinierten Objekten, daher kombinieren wir sie zu einem noch gröĂeren Objekt und berechnen den Durchschnittswert - 5,2 m.
Wiederholen Sie dann Schritt 1 und berechnen Sie eine neue Matrix, indem Sie TĂŒmmler / Grau-Delfin mit Mahl- / Killerwal kombinieren.

Wiederholen Sie Schritt 2. Der kleinste Abstand (5 m) liegt zwischen dem Buckel und dem Finwale. Wir kombinieren sie also und berechnen den Durchschnitt - 17,5 m.
Wieder Schritt 1: Berechnen Sie die Matrix.

Wiederholen Sie abschlieĂend Schritt 2 - es ist nur noch eine Entfernung (12,3 m) vorhanden, sodass wir alle zu einem Objekt vereinen und anhalten. Folgendes ist passiert:
[[[BD, RD],[PW, KW]],[HW, FW]]
Das Objekt hat eine hierarchische Struktur (denken Sie an
JSON ), sodass es als Baumdiagramm oder Dendrogramm angezeigt werden kann. Das Ergebnis Àhnelt einem Stammbaum. Je nÀher zwei Werte an einem Baum liegen, desto Àhnlicher oder enger sind sie miteinander verbunden.
Ein einfaches Dendrogramm, das mit R-Fiddle.org erstellt wurdeDie Struktur des Dendrogramms ermöglicht es Ihnen, die Struktur des Datensatzes selbst zu verstehen. In unserem Beispiel haben wir zwei Hauptzweige - einen mit Buckel und Finwal, den anderen mit einem TĂŒmmler / Grau-Delphin und einem Mahl- / Killerwal.
In der Evolutionsbiologie werden viel gröĂere DatensĂ€tze mit vielen Arten und einer FĂŒlle von Zeichen verwendet, um taxonomische Beziehungen zu identifizieren. AuĂerhalb der Biologie wird hierarchisches Clustering in den Bereichen Data Mining und maschinelles Lernen angewendet.
Dieser Ansatz erfordert keine Vorhersage der erforderlichen Anzahl von Clustern. Sie können das resultierende Dendrogramm in Cluster aufteilen und den Baum auf die gewĂŒnschte Höhe âzuschneidenâ. Sie können die Höhe je nach gewĂŒnschter Auflösung des Datenclusters auf verschiedene Arten auswĂ€hlen.
Wenn beispielsweise das obige Dendrogramm in einer Höhe von 10 abgeschnitten wird, schneiden wir die beiden HauptÀste und teilen das Dendrogramm in zwei Spalten. Wenn Sie in einer Höhe von 2 schneiden, teilen Sie das Dendrogramm in drei Gruppen.
Andere hierarchische Clustering-Algorithmen können sich in drei Aspekten von den in diesem Artikel beschriebenen unterscheiden.
Das Wichtigste ist der Ansatz. Hier verwendeten wir die
agglomerative Methode: Wir begannen mit einzelnen Werten und gruppierten sie zyklisch, bis wir einen groĂen Cluster erhielten. Ein alternativer (und rechenintensiverer) Ansatz impliziert die umgekehrte Reihenfolge: Zuerst wird ein riesiger Cluster erstellt und dann nacheinander in immer kleinere Cluster unterteilt, bis separate Werte verbleiben.
Es gibt auch verschiedene Methoden zur Berechnung von Distanzmatrizen. Euklidische Metriken sind fĂŒr die meisten Aufgaben ausreichend,
andere Metriken sind jedoch in einigen Situationen besser geeignet.
SchlieĂlich kann das VerknĂŒpfungskriterium variieren. Die Beziehung zwischen Clustern hĂ€ngt von ihrer NĂ€he zueinander ab, aber die Definition von âNĂ€heâ kann unterschiedlich sein. In unserem Beispiel haben wir den Abstand zwischen den Durchschnittswerten (oder "Schwerpunkten") jeder Gruppe gemessen und die nĂ€chsten Gruppen paarweise kombiniert. Sie können jedoch eine andere Definition verwenden.
Angenommen, jeder Cluster besteht aus mehreren diskreten Werten. Der Abstand zwischen zwei Clustern kann als minimaler (oder maximaler) Abstand zwischen einem ihrer Werte definiert werden, wie unten gezeigt. FĂŒr verschiedene Kontexte ist es zweckmĂ€Ăig, unterschiedliche Definitionen des VerknĂŒpfungskriteriums zu verwenden.
Rot / Blau: Schwerpunktpool; rot / grĂŒn: Kombination basierend auf Minima; grĂŒn / blau: ZusammenfĂŒhren basierend auf Höhen.Definition von Communities in Diagrammen (Graph Community Detection)
Verwendet von:
Wenn Ihre Daten in Form eines Netzwerks oder "Diagramms" dargestellt werden können.
Wie es funktioniert:
Eine Community in einem Diagramm kann grob als Teilmenge von Scheitelpunkten definiert werden, die stÀrker miteinander verbunden sind als mit dem Rest des Netzwerks. Es gibt verschiedene Community-Definitionsalgorithmen, die auf spezifischeren Definitionen basieren, wie z. B. Edge Betweenness, Modularity-Maximsation, Walktrap, Clique Percolation, Leading Eigenvector ...
Arbeitsbeispiel:
Die Graphentheorie ist ein sehr interessanter Zweig der Mathematik, der es uns ermöglicht, komplexe Systeme in Form von abstrakten Mengen von âPunktenâ (Eckpunkten, Knoten) zu modellieren, die durch âLinienâ (Kanten) verbunden sind.
Vielleicht ist die erste Anwendung von Grafiken, die mir in den Sinn kommt, das Studium sozialer Netzwerke. In diesem Fall reprÀsentieren die Peaks Personen, die durch Rippen mit Freunden / Abonnenten verbunden sind. Sie können sich jedoch jedes System in Form eines Netzwerks vorstellen, wenn Sie die Methode der sinnvollen Verbindung von Komponenten rechtfertigen können. Innovative Anwendungen des Clustering mithilfe der Graphentheorie umfassen das Extrahieren von Eigenschaften aus visuellen Daten und das Analysieren genetischer regulatorischer Netzwerke.
Schauen wir uns als einfaches Beispiel die folgende Grafik an. Dies zeigt die acht Websites, die ich am hĂ€ufigsten besuche. Die Links zwischen ihnen basieren auf Links in Wikipedia-Artikeln. Solche Daten können manuell erfasst werden, aber bei groĂen Projekten ist das Schreiben eines Python-Skripts viel schneller. Zum Beispiel:
https://raw.githubusercontent.com/pg0408/Medium-articles/master/graph_maker.py .
Das Diagramm wird mit dem igraph-Paket fĂŒr R 3.3.3 erstelltDie Farbe der Peaks hĂ€ngt von der Teilnahme an Gemeinschaften ab, und die GröĂe hĂ€ngt von der ZentralitĂ€t ab. Bitte beachten Sie, dass die zentralsten Google und Twitter sind.
AuĂerdem spiegeln die resultierenden Cluster reale Aufgaben sehr genau wider (dies ist immer ein wichtiger Leistungsindikator). Die Eckpunkte, die die Link- / Suchseiten darstellen, sind gelb hervorgehoben. blau hervorgehobene Websites fĂŒr Online-Veröffentlichungen (Artikel, Tweets oder Code); Rot hervorgehoben sind PayPal und YouTube, die von ehemaligen PayPal-Mitarbeitern gegrĂŒndet wurden. Guter Abzug fĂŒr den Computer!
Neben der Visualisierung groĂer Systeme liegt die wahre Kraft von Netzwerken in der mathematischen Analyse. Beginnen wir mit der Konvertierung des Netzwerkbildes in ein mathematisches Format. Das Folgende
ist die Adjazenzmatrix des Netzwerks.

Die Werte an den Schnittpunkten von Spalten und Zeilen geben an, ob sich zwischen diesem Eckpunktpaar eine Kante befindet. Beispielsweise befindet sich zwischen Medium und Twitter am Schnittpunkt dieser Zeile und Spalte 1. Und zwischen Medium und PayPal gibt es keine Kante, sodass in der entsprechenden Zelle 0 vorhanden ist.
Wenn wir alle Eigenschaften des Netzwerks in Form einer Adjazenzmatrix darstellen, können wir alle möglichen nĂŒtzlichen Schlussfolgerungen ziehen. Beispielsweise kennzeichnet die Summe der Werte in einer Spalte oder Zeile den
Grad jedes Scheitelpunkts, dh die Anzahl der mit diesem Scheitelpunkt verbundenen Objekte. Normalerweise angezeigt durch den Buchstaben
k .
Wenn wir die Grade aller Eckpunkte summieren und durch zwei teilen, erhalten wir L - die Anzahl der Kanten im Netzwerk. Die Anzahl der Zeilen und Spalten entspricht N - der Anzahl der Scheitelpunkte im Netzwerk.
Wenn wir nur k, L, N und die Werte in allen Zellen der Adjazenzmatrix A kennen, können wir die ModularitÀt jeder Clusterbildung berechnen.
Angenommen, wir haben ein Netzwerk in mehreren Communities zusammengefasst. AnschlieĂend können Sie den ModularitĂ€tswert verwenden, um die âQualitĂ€tâ des Clusters vorherzusagen. Eine höhere ModularitĂ€t zeigt an, dass wir das Netzwerk in âexakteâ Communities unterteilt haben, und eine niedrigere ModularitĂ€t deutet darauf hin, dass Cluster eher zufĂ€llig als vernĂŒnftig gebildet werden. Um es klarer zu machen:

Die ModularitĂ€t dient als MaĂ fĂŒr die âQualitĂ€tâ von Gruppen.
Die ModularitÀt kann mit der folgenden Formel berechnet werden:

Schauen wir uns diese ziemlich fantastisch aussehende Formel an.
M , wie Sie wissen, ist dies ModularitÀt.
Der
1 / 2L- Koeffizient bedeutet, dass wir den Rest des "Körpers" der Formel durch 2L teilen, dh durch die doppelte Anzahl von Kanten im Netzwerk. In Python könnte man schreiben:
sum = 0 for i in range(1,N): for j in range(1,N): ans =
Was ist
#stuff with i and j
? Das Bit in Klammern sagt uns, dass wir (k_i k_j) / 2L von A_ij subtrahieren sollen, wobei A_ij der Wert in der Matrix am Schnittpunkt von Zeile i und Spalte j ist.
Die Werte k_i und k_j sind die Grade jedes Scheitelpunkts. Sie können durch Summieren der Werte in Zeile i bzw. Spalte j ermittelt werden. Wenn wir sie multiplizieren und durch 2L dividieren, erhalten wir die erwartete Anzahl von Kanten zwischen den Eckpunkten i und j, wenn das Netzwerk zufÀllig gemischt wurde.
Der Inhalt der Klammern spiegelt den Unterschied zwischen der tatsĂ€chlichen Struktur des Netzwerks und der erwarteten wider, wenn das Netzwerk zufĂ€llig neu aufgebaut wurde. Wenn Sie mit den Werten herumspielen, liegt die höchste ModularitĂ€t bei A_ij = 1 und niedrig (k_i k_j) / 2L. Das heiĂt, die ModularitĂ€t nimmt zu, wenn zwischen den Eckpunkten i und j eine "unerwartete" Kante liegt.
SchlieĂlich multiplizieren wir den Inhalt der Klammern mit dem, was in der Formel als ÎŽc_i, c_j angegeben ist. Dies ist die Kronecker-Delta-Funktion. Hier ist die Implementierung in Python:
def Kronecker_Delta(ci, cj): if ci == cj: return 1 else: return 0 Kronecker_Delta("A","A")
Ja so einfach. Die Funktion akzeptiert zwei Argumente. Wenn sie identisch sind, gibt sie 1 zurĂŒck. Wenn nicht, dann 0.
Mit anderen Worten, wenn die Eckpunkte i und j in einen Cluster fallen, ist ÎŽc_i, c_j = 1. Und wenn sie sich in verschiedenen Clustern befinden, gibt die Funktion 0 zurĂŒck.
Da wir den Inhalt der Klammern mit dem Kronecker-Symbol multiplizieren, ist das Ergebnis der investierten Summe
ÎŁ am höchsten, wenn die Eckpunkte innerhalb eines Clusters durch eine groĂe Anzahl âunerwarteterâ Kanten verbunden sind. Die ModularitĂ€t ist somit ein Indikator dafĂŒr, wie gut ein Diagramm in einzelne Communities gruppiert ist.
Die Division durch 2L begrenzt die obere ModularitÀt auf Eins. Wenn die ModularitÀt nahe 0 oder negativ ist, bedeutet dies, dass die aktuelle Clusterbildung des Netzwerks keinen Sinn ergibt. Durch die Erhöhung der ModularitÀt können wir einen besseren Weg finden, das Netzwerk zu gruppieren.
Bitte beachten Sie, dass wir zur Bewertung der âQualitĂ€tâ des Clustering eines Diagramms im Voraus festlegen mĂŒssen, wie es gruppiert werden soll. Leider ist es aufgrund der KomplexitĂ€t der Berechnungen physikalisch einfach unmöglich, alle Methoden zum Clustering eines Graphen durch Vergleichen ihrer ModularitĂ€t dumm durchzugehen, es sei denn, die Stichprobe ist sehr klein.
Die Kombinatorik legt nahe, dass es fĂŒr ein Netzwerk mit 8 Eckpunkten 4.140 Clustering-Methoden gibt. FĂŒr ein Netzwerk mit 16 Eckpunkten gibt es bereits mehr als 10 Milliarden Wege, fĂŒr ein Netzwerk mit 32 Eckpunkten - 128 Septillionen und fĂŒr ein Netzwerk mit 80 Eckpunkten wird die Anzahl der Clustering-Methoden die
Anzahl der Atome im beobachtbaren Universum ĂŒberschreiten.
Daher verwenden wir anstelle der AufzÀhlung die heuristische Methode, mit deren Hilfe Cluster mit maximaler ModularitÀt relativ einfach berechnet werden können. Dies ist ein Algorithmus namens
Fast-Greedy Modularity-Maximization , eine Art Analogon zu dem oben beschriebenen agglomerativen hierarchischen Clustering-Algorithmus. Anstatt auf der Grundlage der NĂ€he zu kombinieren, vereint Mod-Max Communitys in AbhĂ€ngigkeit von Ănderungen der ModularitĂ€t. Wie es funktioniert:
ZunÀchst wird jeder Scheitelpunkt seiner eigenen Community zugewiesen und die ModularitÀt des gesamten Netzwerks berechnet - M.
Schritt 1 : FĂŒr jedes Paar von Gemeinschaften, die durch mindestens eine Kante verbunden sind, berechnet der Algorithmus die resultierende Ănderung der ModularitĂ€t ÎM im Fall der Kombination dieser Paare von Gemeinschaften.
Schritt 2 : Dann wird ein Paar genommen, wenn kombiniert, ist ÎM maximal und kombiniert. FĂŒr dieses Clustering wird eine neue ModularitĂ€t berechnet und gespeichert.
Die Schritte 1 und 2 werden
wiederholt : Jedes Mal, wenn sich ein Paar von Gemeinschaften zusammenschlieĂt, ergibt sich das gröĂte ÎM, ein neues Clustering-Schema und sein M.
Iterationen werden beendet
, wenn alle Scheitelpunkte zu einem groĂen Cluster zusammengefasst sind. Jetzt ĂŒberprĂŒft der Algorithmus die gespeicherten DatensĂ€tze und findet das Clustering-Schema mit der höchsten ModularitĂ€t. Sie ist es, die als Gemeinschaftsstruktur zurĂŒckkehrt.
Zumindest fĂŒr die Menschen war es rechenintensiv. Die Graphentheorie ist eine reiche Quelle fĂŒr schwierige Rechenprobleme und NP-harte Probleme. Mithilfe von Diagrammen können wir viele nĂŒtzliche Schlussfolgerungen zu komplexen Systemen und DatensĂ€tzen ziehen. Fragen Sie Larry Page, dessen PageRank-Algorithmus, mit dem Google in weniger als einer Generation von einem Startup zu einem globalen Dominanten wurde, vollstĂ€ndig auf der Graphentheorie basiert.
Studien zur Graphentheorie konzentrieren sich heute auf die Identifizierung von Gemeinschaften. Es gibt viele Alternativen zum ModularitĂ€tsmaximierungsalgorithmus, der zwar nĂŒtzlich, aber nicht ohne Nachteile ist.
Erstens werden bei einem agglomerativen Ansatz kleine, genau definierte Gemeinschaften hĂ€ufig zu gröĂeren zusammengefasst. Dies wird als Auflösungslimit bezeichnet. Der Algorithmus weist keine Communitys zu, die kleiner als eine bestimmte GröĂe sind. Ein weiterer Nachteil besteht darin, dass der Mod-Max-Algorithmus anstelle eines ausgeprĂ€gten, leicht erreichbaren globalen Peaks versucht, aus vielen engen ModularitĂ€tswerten ein breites "Plateau" zu erzeugen. Infolgedessen ist es schwierig, den Gewinner zu ermitteln.
Andere Algorithmen verwenden andere Methoden zum Definieren von Communities. Beispielsweise ist Edge-Betweenness ein Teilungsalgorithmus (Teilungsalgorithmus), bei dem zunĂ€chst alle Scheitelpunkte in einem groĂen Cluster zusammengefasst werden. Dann werden die am wenigsten âwichtigenâ Kanten iterativ entfernt, bis alle Scheitelpunkte isoliert sind. Das Ergebnis ist eine hierarchische Struktur, bei der die Eckpunkte umso nĂ€her beieinander liegen, je Ă€hnlicher sie sind.
Der Algorithmus Clique Percolation berĂŒcksichtigt mögliche Schnittpunkte zwischen Communities. Es gibt eine Gruppe von Algorithmen, die auf dem
zufÀlligen Gehen in einem Graphen basieren, und es gibt
spektrale Clustering- Methoden, die sich mit der spektralen Zerlegung (Eigendekomposition) der Adjazenzmatrix und anderen daraus abgeleiteten Matrizen befassen. All diese Ideen werden verwendet, um Funktionen hervorzuheben, beispielsweise in der Bildverarbeitung.
Wir werden nicht die Arbeitsbeispiele fĂŒr jeden Algorithmus im Detail analysieren. , , 20 .
Fazit
, - , , . , , 20-40 .
, â , . , , .
, , , , . , - , , ? - !