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.
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.
Irgendwelche Ideen?
quelle
Antworten:
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:
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.
quelle
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.
quelle