Fórmula de inercia de agrupación en scikit learn

9

Me gustaría codificar una agrupación de kmeans en python usando pandas y scikit learn. Para seleccionar la buena k, me gustaría codificar la estadística Gap de Tibshirani y al 2001 ( pdf ).

Me gustaría saber si podría usar el resultado de inercia_ de scikit y adaptar la fórmula estadística de hueco sin tener que recodificar todos los cálculos de distancias.

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

Rasguño
fuente
Creo que esta pregunta tiene suficiente contenido estadístico para estar en el tema de CV, pero tenga en cuenta que también requiere una programación bastante sofisticada y conocimiento de Python. Puede ser difícil obtener una buena respuesta. Es posible que desee solicitar / estar dispuesto a conformarse con el pseudocódigo también, y / o puede que necesite dividir esta pregunta en 2 partes, 1 aquí sobre los aspectos estadísticos y 1 parte en Stack Overflow sobre los aspectos de programación de Python. (O tal vez no, no lo sé con certeza, pero solo quiero darle una advertencia justa; veremos cómo va).
Gung - Vuelva a instalar a Monica
1
Esta pregunta necesita que se defina el término "inercia". Parece que está acuñado por dentro python.
ttnphns

Respuestas:

6

Creo que encontré mi respuesta para kmeans clustering:

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

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

+cccrcWk

Todavía tengo dos preguntas:

  1. ¿Crees que mi cálculo es correcto? (Por ejemplo, no sé si es válido para la agrupación jerárquica).
  2. Si estoy en lo correcto, he codificado la estadística de brecha (como diferencia de log inercias entre la estimación y la agrupación) y funciona mal especialmente en el conjunto de datos del iris, ¿alguien lo ha intentado?
Rasguño
fuente
2
Es mejor no hacer preguntas en sus respuestas. Si esto no es realmente la respuesta a su pregunta, pero sólo una solución parcial para aclarar la cuestión real, que sería mejor para editar su pregunta y pegar esta información en.
Gung - Restablecer Mónica
1
@Scratch ¿alguna vez obtuviste una implementación en Python de la estadística gap para trabajar en el conjunto de datos de Iris? Estoy luchando con el mismo problema.
Zelazny7
Sí, codifiqué uno hace unos meses. ¿Cómo puedo enviarte eso?
Scratch
1
Wk=r=1kDr(2nr)