Ich benötige einen Vorschlag für die Clustering-Methode (unbeaufsichtigte Klassifizierung) für ein Beratungsprojekt. Ich suche eine Methode, die hoffentlich die folgenden Eigenschaften hat:
Das Thema meiner Studie hat drei Eigenschaften. Eine wird durch eine (nichteuklidische) Distanzmatrix dargestellt und die anderen beiden liegen in Form von Vektoren im euklidischen Raum vor. Die Distanzmatrix stammt aus Sequenzen und kann in Form von Prozent der Unähnlichkeit oder einer anderen Messung der Distanz von Sequenzen vorliegen. Der Algorithmus sollte in der Lage sein, beide Vektoren im euklidischen Raum und den nichteuklidischen Abstand als Eingabe zu verwenden. Zum Beispiel können K-Medoide mit einer Distanzmatrix arbeiten, K-Mittel jedoch nicht.
Ich möchte, dass der Algorithmus die Anzahl der Cluster und das Gewicht für drei Eigenschaften automatisch auswählt (mit Vorkenntnissen und Einschränkungen).
Ich habe Informationen über zuvor identifizierte „Zentren von Clustern“. Ich möchte es als vorherige oder anfängliche Werte aufnehmen.
Als Statistiker würde ich es vorziehen, wenn die Methode eine eindeutige Wahrscheinlichkeits- oder Verlustfunktion hätte.
Das nächste, was mir einfällt, ist die Anpassung eines Mischungsmodells in das Bayes'sche Gerüst unter Verwendung von Reverse-Jump-MCMC, um die Anzahl der Cluster zu bestimmen. Die Vektoren in R ^ d können leicht zu einer normalen Wahrscheinlichkeit formuliert werden, aber wie ich mit der Distanzmatrix umgehen soll, ist mir unklar. Ich kann den Mittelwert der normalen Wahrscheinlichkeit einschränken, bei jeder Beobachtung zu sein, um die MCMC zum Laufen zu bringen, aber das hat keine klare mathematisch / statistische Bedeutung.
Hat jemand Erfahrung mit einem ähnlichen Problem? Vorschläge zu Referenzen werden sehr geschätzt!
quelle
Antworten:
Ich denke, dass die Verwendung eines MAP / Bayes'schen Kriteriums in Kombination mit einer Mischung von Gaußschen eine vernünftige Wahl ist. Punkte
quelle
Ich habe mich in meiner Diplomarbeit mit einem Problem befasst, bei dem ich Clustering für einen Datensatz durchführen musste, für den ich nur eine Ähnlichkeitsmatrix (= inverse Distanz) hatte. Obwohl ich zu 100% der Meinung bin, dass eine Bayes'sche Technik am besten ist, habe ich mich für ein diskriminierendes Modell namens Symmetric Convex Coding ( Link ) entschieden. Ich erinnere mich, dass es ganz gut funktioniert hat.
An der Bayes'schen Front könnten Sie vielleicht etwas Ähnliches wie Clustering in Betracht ziehen, aber nicht? Ich denke nach dem Vorbild der Latent Dirichlet Allocation - einem wirklich wunderbaren Algorithmus. Vollständig generativ, entwickelt im Kontext der Modellierung von Themeninhalten in Textdokumentkorpora. Es findet jedoch viele Anwendungen bei anderen Arten von unbeaufsichtigten Problemen des maschinellen Lernens. Natürlich ist die Distanzfunktion dort nicht einmal relevant ...
quelle
DBSCAN funktioniert, ohne die Anzahl der Cluster im Voraus zu kennen, und kann eine Vielzahl von Entfernungsmetriken anwenden.
quelle
Sie könnten die Affinitätsausbreitung oder eine bessere adaptive Affinitätsausbreitung verwenden. Hier ist der Wikipedia-Link .
Es gibt zwei Hauptvorteile für Ihren Fall und einen weiteren dritten, den ich für einen Vorteil halte, der für Sie jedoch möglicherweise nicht von Bedeutung ist.
Sie geben nicht die Anzahl der Cluster an. Die endgültige Anzahl von Clustern hängt vom Präferenzwert und den Ähnlichkeitsmatrixwerten ab. Der einfachste Weg, mit den Präferenzwerten zu arbeiten, besteht darin, entweder den Minimalwert der Ähnlichkeitsmatrix (der nicht Null ist) zu verwenden, um die kleinste Anzahl von Clustern zu erhalten, dann z. B. das Maximum für die meisten möglichen Cluster zu versuchen und mit dem Median fortzufahren Wert und so weiter ... ODER Verwenden Sie den adaptiven Affinitätsausbreitungsalgorithmus und lassen Sie die Präferenz vom Algorithmus bestimmen.
Sie können jedes Ähnlichkeitsmaß angeben, das Sie sich einfallen lassen können, oder die Umkehrung eines Abstandsmaßes vornehmen (möglicherweise schützen Sie sich dabei vor einer Division durch Null, wenn Sie dies tun).
3. (zusätzlicher Punkt) Der Algorithmus wählt ein Exemplar aus, das jeden Cluster darstellt und welche Beispiele dazu gehören. Dies bedeutet, dass der Algorithmus keinen willkürlichen Durchschnitt, sondern einen tatsächlichen Datenpunkt liefert. Sie können die Durchschnittswerte jedoch später noch berechnen. UND dies bedeutet auch, dass der Algorithmus keine intermittierenden Mittelwerte verwendet!
Software: Auf der Wikipedia-Seite sind mehrere Pakete für Java, Python und R aufgeführt. Wenn Sie MATLAB wie ich lieben, dann ist hier eine Implementierung.
quelle