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.