Ich frage mich, ob es eine gute Möglichkeit gibt, das Clustering-Kriterium basierend auf der BIC-Formel für eine k-Mittelwert-Ausgabe in R zu berechnen. Ich bin etwas verwirrt darüber, wie ich diesen BIC berechnen soll, damit ich ihn mit anderen Clustering-Modellen vergleichen kann. Derzeit verwende ich die Implementierung des Statistikpakets von k-means.
r
clustering
k-means
bic
UnivStudent
quelle
quelle
Antworten:
Um den BIC für die kmeans-Ergebnisse zu berechnen, habe ich die folgenden Methoden getestet:
Der r-Code für die obige Formel lautet:
Das Problem ist, wenn ich den obigen r-Code verwende, war der berechnete BIC monoton ansteigend. Was ist der Grund?
[Ref2] Ramsey, SA, et al. (2008). "Aufdeckung eines Makrophagen-Transkriptionsprogramms durch Integration von Beweisen aus dem Scannen von Motiven und der Expressionsdynamik." PLoS Comput Biol 4 (3): e1000021.
Ich habe die neue Formel von /programming/15839774/how-to-calculate-bic-for-k-means-clustering-in-r verwendet
Diese Methode hat den niedrigsten BIC-Wert bei Cluster-Nummer 155 angegeben.
Verwenden Sie die von @ttnphns bereitgestellte Methode, um den entsprechenden R-Code wie unten aufgeführt zu verwenden. Das Problem ist jedoch, was der Unterschied zwischen Vc und V ist. Und wie berechnet man die elementweise Multiplikation für zwei Vektoren unterschiedlicher Länge?
quelle
Vc
es sich um eine P x K-Matrix handelt,V
die eine Spalte war, die dann K-mal in die Matrix gleicher Größe propagiert wurde. Also (Punkt 4 in meiner Antwort) können Sie hinzufügenVc+V
. Nehmen Sie dann den Logarithmus, dividieren Sie durch 2 und berechnen Sie die Spaltensummen. Der resultierende Zeilenvektor multipliziert (Wert für Wert, dh elementweise) mit der ZeileNc
.Ich verwende R nicht, aber hier ist ein Zeitplan, der Ihnen hoffentlich dabei helfen wird, den Wert von BIC- oder AIC-Clustering-Kriterien für eine bestimmte Clustering-Lösung zu berechnen.
Dieser Ansatz folgt den zweistufigen SPSS-Algorithmen (siehe die dortigen Formeln, beginnend mit Kapitel "Anzahl der Cluster", und wechseln Sie dann zu "Log-Likelihood-Abstand", wo ksi, die Log-Likelihood, definiert ist). Der BIC (oder AIC) wird basierend auf dem Log-Likelihood-Abstand berechnet. Ich zeige die folgende Berechnung nur für quantitative Daten (die im SPSS-Dokument angegebene Formel ist allgemeiner und enthält auch kategoriale Daten; ich diskutiere nur den "Teil" der quantitativen Daten):
AIC- und BIC-Clustering-Kriterien werden nicht nur beim K-Mittel-Clustering verwendet. Sie können für jede Clustering-Methode nützlich sein, bei der die Dichte innerhalb des Clusters als Varianz innerhalb des Clusters behandelt wird. Da AIC und BIC für "übermäßige Parameter" zu bestrafen sind, bevorzugen sie eindeutig Lösungen mit weniger Clustern. "Weniger Cluster mehr voneinander getrennt" könnte ihr Motto sein.
Es kann verschiedene Versionen von BIC / AIC-Clustering-Kriterien geben. Die hier
Vc
gezeigte verwendet Varianzen innerhalb des Clusters als Hauptbegriff für die Log-Wahrscheinlichkeit. Eine andere Version, die möglicherweise besser für das k-means-Clustering geeignet ist, basiert die Log-Wahrscheinlichkeit möglicherweise auf den Quadratsummen innerhalb des Clusters .Die PDF-Version desselben SPSS-Dokuments, auf das ich mich bezogen habe.
Und hier sind schließlich die Formeln selbst, die dem obigen Pseudocode und dem Dokument entsprechen; Es stammt aus der Beschreibung der Funktion (Makro), die ich für SPSS-Benutzer geschrieben habe. Wenn Sie Vorschläge zur Verbesserung der Formeln haben, schreiben Sie bitte einen Kommentar oder eine Antwort.
quelle
Vc
Vc+V
Vc
Vc=0