Estoy aprendiendo sobre árboles de decisiones y siento que hasta ahora los he entendido y las matemáticas detrás de ellos bastante bien excepto por una cosa: la relación de ganancia.

Según tengo entendido, la relación de ganancia se implementa para castigar las funciones que pueden tomar MUCHOS valores posibles.

Si una característica adquiere muchos valores posibles, resulta plausible que si dividimos esa característica puede haber valores que solo apunten a una sola clase, pero simplemente porque solo hay 1 o 2 datos puntos con ese valor para esa característica de todos modos.

En otras palabras, la única razón por la que obtendríamos una entropía baja al dividir esa característica es porque la característica podría tomar muchos valores y, por lo tanto, muchos de esos valores apuntan específicamente a una sola etiqueta . Entonces, nuestro algoritmo de árbol de decisión terminaría dividiéndose en algo como «ID #», y calcularía erróneamente que acabamos de obtener una ENORME ganancia de información.

Sin embargo, esto solo parece un problema porque «ID #» es una característica que no deberíamos dividir para empezar. Quiero decir, si tuviéramos otra característica que también asumiera muchas valores, pero cada uno de esos valores en realidad implicaba alguna etiqueta para ese punto de datos, entonces ¿no significaría aplicar la relación de ganancia que en realidad estamos arruinando nuestro árbol de decisiones al castigar lo que en realidad fue una muy buena división con toneladas de ganancia de información?

¿No es mejor simplemente identificar qué característica no tendrá nada que ver con nuestro etiquetado ANTES de que introduzcamos los datos de entrenamiento en el algoritmo?

IDK, simplemente no ver por qué la relación de ganancia sería realmente útil …

Responder

Tenía la misma duda cuando estaba haciendo mi Master Grado. En primer lugar, no incluye algo tan aleatorio como «ID». Aquí es donde entra en juego el preprocesamiento de datos. Tomemos un conjunto de datos que tenga usuarios y sus preferencias de género de películas en función de variables como género, grupo de edad, calificación, bla, bla. Con la ayuda de la obtención de información, se divide en «Género «(asumiendo que tiene la mayor ganancia de información) y ahora las variables» Grupo de edad «y» Calificación «podrían ser igualmente importantes y con la ayuda de la relación de ganancia, penalizará una variable con valores más distintos que nos ayudarán a decidir el dividir en el siguiente nivel.

Comentarios

  • OKaaaay, ¡Genial! Así que solo usamos la relación de ganancia cuando estamos entre dividir en dos características posibles diferentes ¿Está en orden elegir el que es más probable que los datos de prueba tengan un valor visto anteriormente, porque esa es la vibración que estaba obteniendo del ejemplo de ID, la razón por la que es una mala división tenía una probabilidad tan alta de tomar en valores diferentes (en este caso, ninguna otra persona tendrá el mismo ID).
  • Eso tiene MUCHO más sentido . Cada explicación que ' he leído usa ID y me sigue haciendo pensar en por qué alguien tiene eso en un conjunto de datos en primer lugar. ¡Gracias Danny! ' me gustaría tu publicación, pero no ' todavía no tengo suficiente reputación.

Respuesta

La ganancia de información es una de las heurísticas que ayuda a seleccionar los atributos para la selección.

Como sabe, los árboles de decisión, una parte superior construida -hacia abajo recursiva dividir y conquistar. Los ejemplos se dividen de forma recursiva en función de los atributos seleccionados.

En los algoritmos ID3 usamos seleccionar los atributos con la mayor ganancia de información.

Sea $ p_i $ la probabilidad de que una tupla arbitraria en $ D $ pertenece a la clase $ C_i $ . Entonces $ p_i = | C_ {i, d} | / | D | $ Información esperada (entropía) necesaria para clasificar una tupla en $ D $ $$ Info (D) = – \ sum_ {i = 1} ^ {m} {p_i * \ log (p_i)} $$

Información necesaria (después de usar A para dividir D en v porciones) para clasificar D: $$ Info_A (D) = – \ sum_ {j = 1} ^ {v} {D_j / D * Info_j (D)} $$

Información obtenida al ramificar el atributo A

$$ Gain (A) = Info (D) – Info_A (D) $$

En el algoritmo C4.5 necesitamos dividir la diferencia de información por $ SplitInfo (A) $

$$ Gain (A) = (Info (D) – Info_A (D)) / SplitInfo (A) $$

ingrese la descripción de la imagen aquí

Deja una respuesta

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