Clustering Trägheitsformel in Scikit lernen

9

Ich möchte ein kmeans-Clustering in Python mit Pandas und Scikit Learn codieren. Um das gute k auszuwählen, möchte ich die Gap-Statistik von Tibshirani und al 2001 ( pdf ) codieren .

Ich würde gerne wissen, ob ich inertia_ result von scikit verwenden und die Lückenstatistikformel anpassen könnte, ohne die gesamte Entfernungsberechnung neu codieren zu müssen.

Kennt jemand die Trägheitsformel, die in scikit verwendet wird / kennt eine einfache Möglichkeit, die Lückenstatistik mithilfe von Abstandsfunktionen auf hoher Ebene neu zu codieren?

Kratzen
quelle
Ich denke, diese Frage hat genügend statistische Inhalte, um für den Lebenslauf themenbezogen zu sein, aber beachten Sie, dass sie auch ziemlich ausgefeilte Programmier- und Python-Kenntnisse erfordert. Es kann schwierig sein, eine gute Antwort zu bekommen. Möglicherweise möchten Sie auch nach Pseudocode fragen / bereit sein, sich damit zufrieden zu geben, und / oder Sie müssen diese Frage in zwei Teile aufteilen, einen hier über die statistischen Aspekte und einen Teil über den Stapelüberlauf über die Python-Programmieraspekte. (Oder vielleicht auch nicht, ich weiß es nicht genau, aber ich möchte Sie nur fair warnen; wir werden sehen, wie es geht.)
Gung - Reinstate Monica
1
Für diese Frage muss der Begriff "Trägheit" definiert werden. Es sieht aus wie es in sich geprägt ist python.
ttnphns

Antworten:

6

Ich denke, ich habe meine Antwort für kmeans Clustering gefunden:

I=i(d(i,cr))crd

Wk=r=1k1(2nr)Dr
Drr

+cccrcWk

Ich habe noch zwei Fragen:

  1. Glaubst du, mein Kalkül ist richtig? (Zum Beispiel weiß ich nicht, ob es für hierarchisches Clustering gilt.)
  2. Wenn ich oben richtig bin, habe ich die Lückenstatistik (als Unterschied der logarithmischen Trägheiten zwischen Schätzung und Clustering) codiert und sie funktioniert besonders im Iris-Datensatz schlecht. Hat es jemand versucht?
Kratzen
quelle
2
Es ist am besten, in Ihren Antworten keine Fragen zu stellen. Wenn dies nicht wirklich die Antwort auf Ihre Frage ist, sondern nur eine Teillösung zur Klärung der eigentlichen Frage, ist es besser, Ihre Frage zu bearbeiten und diese Informationen
einzufügen
1
@Scratch Haben Sie jemals eine Python-Implementierung der Lückenstatistik erhalten, um mit dem Iris-Datensatz zu arbeiten? Ich kämpfe mit dem gleichen Problem.
Zelazny7
Ja, ich habe vor ein paar Monaten einen codiert. Wie kann ich dir das schicken?
Scratch
1
Wk=r=1kDr(2nr)