0 votos

Cálculo de la Entropía de los clusters, Python

He ejecutado el algoritmo K-means++ (Python scikit-learn) para encontrar clusters en mis datos (que contienen 5 parámetros numéricos). Necesito calcular la Entropía. Por lo que entendí, para calcular la entropía, necesito encontrar la probabilidad de que un solo dato aleatorio pertenezca a cada cluster (5 valores numéricos suman 1).

¿Cómo puedo encontrar estas probabilidades? Estoy usando Python scikit-learn

3voto

JeopardyTempest Puntos 136

Supongo que se refiere a la entropía como métrica de evaluación para su agrupación.

En primer lugar, hay que calcular la entropía de cada grupo. Para calcular la entropía de un clúster específico, utilice: $$ H(i) = -\sum\limits_{j \in K} p(i_{j}) \log_2 p(i_{j})$$

Dónde $p(i_j)$ es la probabilidad de que un punto de la agrupación $i$ de ser clasificado como clase $j$ . Por ejemplo, si tiene $10$ puntos en la agrupación $i$ y en base a las etiquetas de sus datos verdaderos tiene $6$ en clase $A$ , $3$ en clase $B$ y $1$ en clase $C$ . Entonces su entropía de cluster $i$ será: $$ H(i) = \frac{6}{10} \log \frac{6}{10} + \frac{3}{10} \log \frac{3}{10} + \frac{1}{10} \log \frac{1}{10}$$

Del mismo modo, se puede calcular la entropía de otros clusters. Así que primero, necesitas estas probabilidades de puntos para cada clúster que se clasifican como cada clase. Puedes hacerlas manualmente en python y luego puedes calcular la entropía de cada cluster como se explicó anteriormente. O bien, una vez que obtengas las probabilidades, puedes utilizar scipy.stats.entropy para calcular la entropía de cada cluster. Consulte el docs para su uso.

Una vez que se tiene la entropía de cada cluster, la entropía global es simplemente la suma ponderada de las entropías de cada cluster. Puedes calcular la entropía global utilizando la siguiente fórmula: $$H = \sum\limits_{i \in C} H(i) \frac{N_{i}}{N}$$

donde $H$ es la entropía, $N_{i}$ es el número de puntos en el cluster $i$ y $N$ es el número total de puntos.

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