Formule d'inertie de clustering dans Scikit Learn


9

Je voudrais coder un cluster kmeans en python à l'aide de pandas et de scikit learn. Afin de sélectionner le bon k, je voudrais coder la statistique de l'écart de Tibshirani et al 2001 ( pdf ).

Je voudrais savoir si je pourrais utiliser le résultat inertie_ de scikit et adapter la formule statistique de l'écart sans avoir à recoder tous les calculs de distances.

Quelqu'un connaît-il la formule d'inertie utilisée dans scikit / connaît-il un moyen facile de recoder la statistique de l'écart à l'aide de fonctions de distance de haut niveau?


Je pense que cette question a un contenu statistique suffisant pour être sur le sujet du CV, mais notez qu'elle nécessite également une programmation assez sophistiquée et des connaissances en Python. Il peut être difficile d'obtenir une bonne réponse. Vous pouvez également demander / être prêt à vous contenter du pseudocode , et / ou vous devrez peut-être diviser cette question en 2 parties, 1 ici sur les aspects statistiques et 1 partie sur Stack Overflow sur les aspects de programmation Python. (Ou peut-être pas, je ne suis pas sûr, mais je veux juste vous donner un avertissement juste; nous verrons comment ça se passe.)
gung - Réintégrer Monica

1
Cette question nécessite la définition du terme "inertie". Il ressemble à son inventé à l'intérieur python.
ttnphns

Réponses:


6

Je suppose que j'ai trouvé ma réponse pour le regroupement de kmeans:

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

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

+cccrcWk

J'ai encore deux questions:

  1. Pensez-vous que mon calcul est correct? (Par exemple, je ne sais pas si cela vaut pour le clustering hiérarchique.)
  2. Si j'ai raison ci-dessus, j'ai codé la statistique de l'écart (comme la différence d'inerties logarithmiques entre l'estimation et le regroupement) et elle fonctionne mal, en particulier sur l'ensemble de données iris, quelqu'un l'a-t-il essayé?

2
Il est préférable de ne pas poser de questions dans vos réponses. Si ce n'est pas vraiment la réponse à votre question, mais juste une solution partielle pour clarifier la vraie question, il serait préférable de modifier votre question et de coller ces informations.
gung - Réinstallez Monica

1
@Scratch avez-vous déjà obtenu une implémentation python de la statistique des écarts pour travailler sur l'ensemble de données Iris? Je me bats avec le même problème.
Zelazny7

Oui, j'en ai codé un il y a quelques mois. Comment puis-je vous envoyer ça?
Scratch

1
Wk=r=1kDr(2nr)
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.