10 votos

Clustering fórmula de inercia en scikit aprender

Me gustaría código de un kmeans la agrupación en clústeres en python usando pandas y scikit aprender. Con el fin de seleccionar la mejor k, me gustaría código de la Brecha Estadística de Tibshirani y al 2001 (pdf).

Me gustaría saber si puedo usar inertia_ resultado de scikit y adaptar la brecha estadística fórmula sin tener que recodificar todas las distancias de cálculo.

¿Alguien sabe la inercia de la fórmula utilizada en scikit / sabe una manera fácil para recodificar la brecha de la estadística de uso de alto nivel de las funciones de la distancia?

7voto

SystematicFrank Puntos 421

Creo que he encontrado mi respuesta para kmeans la agrupación:

Mirando el código fuente de git, me encontré con que para scikit aprender, la inercia se calcula como la suma de los cuadrados de la distancia de cada punto al centroide más cercano, es decir, de su clúster. Por lo I=i(d(i,cr))I=i(d(i,cr)) donde crcr es el centroide del cluster y dd es el cuadrado de la distancia.

Ahora la fórmula de la brecha de la estadística implica Wk=ki=11(2nr)DrWk=ki=11(2nr)Dr donde DrDr es la suma de los cuadrados de las distancias entre todos los puntos en el clúster rr.

Mediante la introducción de +c+c, cc en el cuadrado de la fórmula de la distancia (cc siendo el centroide del cluster rr coordenadas), tengo un término que corresponde a la Inercia (como en scikit) + un término que desaparece si cada una de las cc es el centro de gravedad de cada grupo (que se supone que debe ser en kmeans). Así que supongo que WkWk es en el hecho de scikit Inercia.

Todavía tengo dos preguntas:

  1. ¿Crees que mi cálculo es correcto? (Por ejemplo, no sé si se sostiene por la agrupación jerárquica.)
  2. Si estoy en lo correcto por encima, me ha codificado la brecha estadística (como la diferencia de registro de inercias entre la estimación y la agrupación) y se realiza mal, especialmente en el conjunto de datos iris, ¿alguien ha probado?

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X