Saltar al contenido

¿Qué es la “ganancia de entropía e información”?

Por fin luego de tanto batallar pudimos encontrar el arreglo de este atasco que muchos lectores de nuestra web han presentado. Si deseas aportar algún detalle puedes aportar tu comentario.

Solución:

Supongo que la entropía se mencionó en el contexto de la construcción árboles de decisión.

Para ilustrarlo, imagine la tarea de aprender a clasificar los nombres de pila en grupos de hombres y mujeres. A eso se le da una lista de nombres, cada uno etiquetado con m o f, queremos aprender un modelo que se ajuste a los datos y se pueda usar para predecir el género de un nuevo nombre invisible.

name       gender
-----------------        Now we want to predict 
Ashley        f              the gender of "Amro" (my name)
Brian         m
Caroline      f
David         m

El primer paso es decidir qué características de los datos son relevantes para la clase objetivo que queremos predecir. Algunas características de ejemplo incluyen: primera / última letra, longitud, número de vocales, termina con una vocal, etc. Entonces, después de la extracción de características, nuestros datos se ven así:

# name    ends-vowel  num-vowels   length   gender
# ------------------------------------------------
Ashley        1         3           6        f
Brian         0         2           5        m
Caroline      1         4           8        f
David         0         2           5        m

El objetivo es construir un árbol de decisiones. Un ejemplo de árbol sería:

length<7
|   num-vowels<3: male
|   num-vowels>=3
|   |   ends-vowel=1: female
|   |   ends-vowel=0: male
length>=7
|   length=5: male

Básicamente, cada nodo representa una prueba realizada en un solo attribute, y vamos hacia la izquierda o hacia la derecha según el resultado de la prueba. Seguimos atravesando el árbol hasta que llegamos a un nodo hoja que contiene la predicción de la clase (m o f)

Entonces, si ejecutamos el nombre Amro abajo de este árbol, comenzamos probando “es la longitud <7?” y la respuesta es , así que bajamos por esa rama. Siguiendo la rama, la próxima prueba “es el número de vocales <3?“nuevamente evalúa a true. Esto conduce a un nodo hoja etiquetado m, y así la predicción es masculino (que resulta ser, por lo que el árbol predijo el resultado correctamente).

El árbol de decisiones se construye de arriba hacia abajo, pero la pregunta es cómo se elige qué attribute dividir en cada nodo? La respuesta es encontrar la característica que mejor divida la clase de destino en los nodos secundarios más puros posibles (es decir, nodos que no contienen una mezcla de hombres y mujeres, sino nodos puros con una sola clase).

Esta medida de pureza se llama el información. Representa la cantidad esperada de información que se necesitaría para especificar si una nueva instancia (nombre) debe clasificarse como hombre o mujer, dado el ejemplo que llegó al nodo. Lo calculamos en función del número de clases masculinas y femeninas en el nodo.

Entropía por otro lado es una medida de impureza (lo contrario). Está definido para una clase binaria con valores. a/b como:

Entropy = - p(a)*log(p(a)) - p(b)*log(p(b))

Esta función de entropía binaria se muestra en la siguiente figura (la variable aleatoria puede tomar uno de dos valores). Alcanza su máximo cuando la probabilidad es p=1/2, significa que p(X=a)=0.5 o similarp(X=b)=0.5 tener un 50% / 50% de posibilidades de ser a o b (la incertidumbre es máxima). La función de entropía tiene un mínimo de cero cuando la probabilidad es p=1 o p=0 con total certezap(X=a)=1 o p(X=a)=0 respectivamente, este último implica p(X=b)=1).

https://en.wikipedia.org/wiki/File:Binary_entropy_plot.svg

Por supuesto, la definición de entropía se puede generalizar para una variable aleatoria discreta X con N resultados (no solo dos):

entropía

(los log en la fórmula se suele tomar como el logaritmo en base 2)


Volviendo a nuestra tarea de clasificación de nombres, veamos un ejemplo. Imagine que en algún momento durante el proceso de construcción del árbol, estábamos considerando la siguiente división:

     ends-vowel
      [9m,5f]          <--- the [..,..] notation represents the class
    /                      distribution of instances that reached a node
   =1          =0
 -------     -------
 [3m,4f]     [6m,1f]

Como puede ver, antes de la división teníamos 9 machos y 5 hembras, es decir P(m)=9/14 y P(f)=5/14. Según la definición de entropía:

Entropy_before = - (5/14)*log2(5/14) - (9/14)*log2(9/14) = 0.9403

A continuación, lo comparamos con la entropía calculada después de considerar la división observando dos ramas secundarias. En la rama izquierda de ends-vowel=1, tenemos:

Entropy_left = - (3/7)*log2(3/7) - (4/7)*log2(4/7) = 0.9852

y la rama derecha de ends-vowel=0, tenemos:

Entropy_right = - (6/7)*log2(6/7) - (1/7)*log2(1/7) = 0.5917

Combinamos las entropías izquierda / derecha usando el número de instancias en cada rama como factor de peso (7 instancias fueron a la izquierda y 7 instancias a la derecha), y obtenemos la entropía final después de la división:

Entropy_after = 7/14*Entropy_left + 7/14*Entropy_right = 0.7885

Ahora, comparando la entropía antes y después de la división, obtenemos una medida de ganancia de información, o cuánta información obtuvimos al dividir usando esa función en particular:

Information_Gain = Entropy_before - Entropy_after = 0.1518

Puede interpretar el cálculo anterior como sigue: haciendo la división con el end-vowels característica, pudimos reducir la incertidumbre en el resultado de la predicción del subárbol en una pequeña cantidad de 0.1518 (medido en bits como unidades de información).

En cada nodo del árbol, este cálculo se realiza para cada característica, y la característica con el mayor ganancia de información es elegido para la división de una manera codiciosa (favoreciendo así las características que producen puro divisiones con baja incertidumbre / entropía). Este proceso se aplica de forma recursiva desde el nodo raíz hacia abajo y se detiene cuando un nodo hoja contiene instancias que tienen la misma clase (no es necesario dividirlo más).

Tenga en cuenta que omití algunos detalles que están más allá del alcance de esta publicación, incluido cómo manejar las características numéricas, los valores faltantes, el sobreajuste y la poda de árboles, etc.

Para empezar, sería mejor entender the measure of information.

Cómo podemos measure ¿la información?

Cuando sucede algo poco probable, decimos que es una gran noticia. Además, cuando decimos algo predecible, no es realmente interesante. Entonces para cuantificar esto interesting-ness, la función debe satisfacer

  • si la probabilidad del evento es 1 (predecible), entonces la función da 0
  • si la probabilidad del evento es cercana a 0, entonces la función debe dar un número alto
  • si suceden eventos de probabilidad 0.5, da one bit de información.

Una medida natural que satisface las restricciones es

I(X) = -log_2(p)

dónde pag es la probabilidad del evento X. Y la unidad está en bit, el mismo bit que usa la computadora. 0 o 1.

Ejemplo 1

Lanzamiento de moneda justa:

¿Cuánta información podemos obtener de un lanzamiento de moneda?

Respuesta : -log(p) = -log(1/2) = 1 (bit)

Ejemplo 2

Si un meteoro golpea la Tierra mañana, p=2^-22 entonces podemos obtener 22 bits de información.

Si el sol sale mañana p ~ 1 entonces es 0 bit de información.

Entropía

Entonces, si tenemos expectativa en el interesting-ness de un evento Y, entonces es la entropía. es decir, la entropía es un valor esperado del interés de un evento.

H(Y) = E[ I(Y)]

Más formalmente, la entropía es el número esperado de bits de un evento.

Ejemplo

Y = 1: ocurre un evento X con probabilidad p

Y = 0: un evento X no ocurre con probabilidad 1-p

H(Y) = E[I(Y)] = p I(Y==1) + (1-p) I(Y==0) 
     = - p log p - (1-p) log (1-p)

Base de registro 2 para todos los registros.

No puedo darte gráficos, pero tal vez pueda darte una explicación clara.

Supongamos que tenemos un canal de información, como una luz que parpadea una vez al día, ya sea roja o verde. ¿Cuánta información transmite? La primera suposición podría ser un poco por día. Pero, ¿y si agregamos azul, para que el remitente tenga tres opciones? Nos gustaría tener una medida de información que pueda manejar otras cosas que no sean potencias de dos, pero aún así sea aditiva (la forma en que multiplicar el número de mensajes posibles por dos agrega un bit). Podríamos hacer esto tomando log2(número de mensajes posibles), pero resulta que hay una forma más general.

Supongamos que volvemos al rojo / verde, pero la bombilla roja se ha fundido (esto es de conocimiento común), por lo que la lámpara siempre debe parpadear en verde. El canal ahora es inútil, sabemos cuál será el próximo destello por lo que los flashes no transmiten información ni noticias. Ahora reparamos la bombilla, pero imponemos la regla de que la bombilla roja no puede parpadear dos veces seguidas. Cuando la lámpara parpadea en rojo, sabemos cuál será el próximo parpadeo. Si intenta enviar un flujo de bits por este canal, encontrará que debe codificarlo con más destellos que bits (50% más, de hecho). Y si desea describir una secuencia de destellos, puede hacerlo con menos bits. Lo mismo se aplica si cada destello es independiente (sin contexto), pero los destellos verdes son más comunes que los rojos: cuanto más sesgada es la probabilidad, menos bits necesita para describir la secuencia, y menos información contiene, hasta el final. Límite totalmente verde, bombilla fundida.

Resulta que hay una forma de medir la cantidad de información en una señal, basada en las probabilidades de los diferentes símbolos. Si la probabilidad de recibir el símbolo xI es pI, luego considere la cantidad

-log pi

La p más pequeñaI, cuanto mayor sea este valor. Si xI se vuelve el doble de improbable, este valor aumenta en una cantidad fija (log (2)). Esto debería recordarle que debe agregar un bit a un mensaje.

Si no sabemos cuál será el símbolo (pero conocemos las probabilidades), entonces podemos calcular el promedio de este valor, cuánto obtendremos, sumando las diferentes posibilidades:

I = -Σ pi log(pi)

Este es el contenido de la información en un flash.

Red bulb burnt out: pred = 0, pgreen=1, I = -(0 + 0)  = 0
Red and green equiprobable: pred = 1/2, pgreen = 1/2, I = -(2 * 1/2 * log(1/2)) = log(2)
Three colors, equiprobable: pi=1/3, I = -(3 * 1/3 * log(1/3)) = log(3)
Green and red, green twice as likely: pred=1/3, pgreen=2/3, I = -(1/3 log(1/3) + 2/3 log(2/3)) = log(3) - 2/3 log(2)

Este es el contenido de información, o entropía, del mensaje. Es máximo cuando los diferentes símbolos son equiprobables. Si es físico, usa el registro natural, si es un científico informático, usa log2 y obtener bits.

Recuerda algo, que te brindamos la opción de decir .

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *