Ähnliche Elemente aus einem Set abgleichen


10

Ich versuche, Gegenstände zusammenzubringen. Bei einer Menge von Elementen kann ich auf einer Skala von 0 bis 100 bewerten, wie ähnlich sie einander sind. Wenn beispielsweise Punkt n 1 Milch ist und Punkt n 2 auch Milch ist, wäre die Ähnlichkeit zwischen n 1 und n 2 100%. Wenn n 3 Soda ist, dann wäre die Ähnlichkeit zwischen n 1 und n 3 vielleicht 80% und so weiter.nn1n2n1n2n3n1n3

Ich versuche herauszufinden, wie man die Elemente in Gruppen ähnlicher Elemente gruppiert, aber es ist ein herausforderndes Problem. Ich stoße auf folgendes Problem: Ein Pferd ähnelt einer Kuh, die einer Ziege ähnelt, die teilweise dem Ziegenkäse ähnelt, der dem Käse ähnelt, der mit Crackern korreliert. Ich würde jedoch nicht erwarten, dass ein Pferd zur selben Gruppe gehört wie Cracker. Jedes Element kann paarweise korreliert sein, Anfang und Ende jedoch möglicherweise nicht.n

Irgendwelche Ideen?


In der Evolutionsbiologie werden die Ergebnisse einer solchen paarweisen Clusterbildung als phylogente Bäume bezeichnet . Sie können dies also zu Ihren nützlichen Suchbegriffen hinzufügen.
Hardmath

Antworten:


7

Was Sie hier tun möchten, ist, N Beobachtungen in K Cluster zu unterteilen, die ähnliche Eigenschaften aufweisen. Dies wird als Clustering bezeichnet. Weitere Informationen finden Sie hier .

Da Sie bereits ein numerisches Ähnlichkeitsmaß haben, denke ich über die Verwendung des K-Means- Algorithmus nach, bei dem Sie in mehreren Schritten arbeiten:

  • Initialisieren Sie Cluster-Schwerpunkte nach dem Zufallsprinzip
  • Ordnen Sie jede Beobachtung dem Cluster zu, der dem nächstgelegenen Schwerpunkt entspricht.
  • Aktualisieren Sie die Schwerpunkte als neuen Mittelwert der Elemente im Cluster.

Sie können die Konvergenz überprüfen, wenn sich die Zentroide nicht mehr bewegen oder innerhalb eines bestimmten Schwellenwerts liegen.

Dies würde sicherstellen, dass die Elemente in jedem Cluster etwas korreliert sind, und Sie können feinkörnigere Cluster erhalten, indem Sie die Anzahl der Cluster im Algorithmus erhöhen (das "K"). Das Ermitteln der Anzahl der Cluster hängt von jedem Problem ab. Ich empfehle Ihnen, eine Reihe von Werten für Ihre Probleme auszuprobieren, sich die gruppierten Ergebnisse anzusehen und herauszufinden, was Sinn macht.

Hoffentlich hilft das.


5

Ich denke, was Sie suchen, heißt "Clusteranalyse" oder "Clustering". Es gibt viele verschiedene Algorithmen. In Ihrem Fall möchten Sie ein "Konnektivitätsclustering", dh Gruppenelemente, die auf einer Eigenschaft basieren, die jeweils zwei miteinander verbindet.

Schauen Sie sich die Clustering-Algorithmen in scikits.learn (Python-Code) und die dort genannten Referenzen an.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.