I = -∑pi*ln2(pi) donde pi = Ni / N
N es la cantidad de elementos en todo el conjunto, y Ni es la cantidad de elementos en cada uno de los k i-subconjuntos
Parece una formula simple, pero en realidad, simplemente mirandola, no podia entender su significado.
En principio parece una esperanza, en particular, la -E(ln2pi), esto seria algo asi como la cantidad de bits necesarios para representar, en promedio, los elementos existentes en cada uno de los i grupos.
Pero seguia sin decirme demasiado, asi que gracias a la ayuda de Manuk, empezamos a destripar esta formula.
Partimos de:
I = -∑pi*ln2(pi)
= -∑pi*ln2(Ni/N)
= -∑pi*[ln2(Ni) - ln2(N)]
= ∑piln2(N) - ∑piln2(Ni)
como ln2(N) no depende de i, es una constante, y puede ser extraido de la suma.
= ln2(N)*∑pi - ∑pi*ln2(Ni)
como ∑pi = 1, y el segundo termino es una esperanza, nos queda:
=ln2(N) - E(ln2(Ni))
El primer termino es constante, siemre que se mantengan constantes las cantidades de elementos del conjunto, entonces, si queremos maximizar o minimizar la entropia, tenemos que modificar el segundo termino (la distribucion de los elementos dentro de los conjuntos).
De hecho, la entropia va a ser maxima cuando cada conjunto tenga exactamente la misma cantidad de elementos. Es decir, cuando los N elementos esten distribuidos entre los k conjuntos.
Cuando eso ocurra vamos a tener que Ni = N / k
Entonces,
I = ln2(N) - ∑N/k*ln2(N / k))
= ln2(N) - ∑N/k*[ln2(N) - ln2 (k))]
= ln2(N) - [ln2(N) - ln2 (k))]
= ln2(N) - ln2(N) + ln2 (k))
=ln2(k)
es decir, a la cantidad de bits necesarios para representar a todos los conjuntos
Todo esto con respecto a la entropia, ahora vayamos a k-means.
k-means , es un algoritmo para agrupar un conjunto de datos en k subconjuntos, minimizando alguna distancia (en general, la distancia euclidea).
la funcion a minimizar es la siguiente
V = ∑i∑jdist(xij;ci)
donde ci es el centro del subconjunto.
Si utilizamos el error cuadratico medio, lo que vamos a estar minimizando es esperanza de la varianza intragrupos (es decir, dentro de los grupos)
Esto de encontrar grupos que tengan algun sentido (minimizen alguna distancia), parecia que tenia bastante que ver con la teoria de la informacion, asi que empezamos a pensar un poco al respecto (aca vortex y tenuki me ayudaron un poco).
Como la funcion distancia, puede ser cualquier funcion distancia, que cumpla con las condiciones de una funcion distancia, utilize la distancia discreta multiplicada por ln(Ni)
dist(xij;ci) = 0 sii xij = ci
dist(xij;ci) = ln2(Ni) sii xij != ci
como ninguno de los Ni elementos es ci, (si alguno fuese, multiplicamos y dividimos la distancia por algun valor, y el problema se resuelve), entonces,
∑dist(xij;ci) = Ni*ln(Ni)
reemplazando en V, tenemos
V = ∑iNi*ln(Ni)
dividiendo m. a m. por N, tenemos
V / N =∑iNi*ln(Ni)/N
como Ni = pi, entonces
V / N =∑ipi*ln(Ni)
V / N = E(ln(Ni)
Que es el segundo termino de la medida de la entropia.
Por lo tanto, en el espacio metrico definido por esta funcion distancia, es equivalente minimizar la distancia, a maximizar la informacion (No hay que olvidarse que en la formula de la informacion, el segundo termino aparece restando). Y es ahi donde las dos cosas tienen algo que ver.
Pero sin embargo, este resultado no me dejo completamente contento.
Por un lado, no refleja lo que yo queria (que era mostrar la cantidad de informacion que se concentra en los ci; de hecho, estos ni siquiera se utilizan).
Ademas, quise utilizar otra funcion de distancia, como por ejemplo, la distancia de Hamming, pero no pude obtener el resultado que queria.
Espero que a alguien que lea este post se el ocurra alguna funcion distancia mas entretenida
saludos
/jb
ps: Tambien tengo que agradecer a tomas, que desde el mas alla (mas alla del meridiano de greenwich), siempre me da una mano con estas cosas