Simplemente no usó la variable de clase objetivo en absoluto. La impureza de Gini, como todas las demás funciones de impureza, mide la impureza de los resultados después de una división. Lo que ha hecho es medir algo usando solo el tamaño de la muestra.
Intento derivar la fórmula para su caso.
Supongamos por simplicidad que tiene un clasificador binario. Denote con el atributo de prueba, con C el atributo de clase que tiene valores de c + , c - .ACc+,c−
El índice de Gini inicial antes de la división está dado por
donde P ( A + ) es la proporción de puntos de datos que tienen un valor de c + para la variable de clase.
I(A)=1−P(A+)2−P(A−)2
P(A+)c+
Ahora, la impureza para el nodo izquierdo sería
I ( A r ) = 1 - P ( A r + ) 2 - P ( A r - ) 2
donde P ( A l + )
I(Al)=1−P(Al+)2−P(Al−)2
I(Ar)=1−P(Ar+)2−P(Ar−)2
P(Al+)es la proporción de puntos de datos del subconjunto izquierdo de
que tienen el valor
c + en la variable de clase, etc.
Ac+
Ahora la fórmula final para GiniGain sería
GiniGain(A)=I(A)−pleftI(Al)−prightI(Ar)
pleft#|Al|#|Al|+#|Ar|A
Siento que mi notación podría mejorarse, miraré más tarde cuando tenga más tiempo.
Conclusión
Usar solo un número de puntos de datos no es suficiente, la impureza significa qué tan bien una característica (característica de prueba) puede reproducir la distribución de otra característica (característica de clase). La distribución de características de prueba produce el número que usó (cómo a la izquierda, cómo a la derecha), pero la distribución de la característica de clase no se usa en sus fórmulas.
Edición posterior: pruebe por qué disminuye
Ahora noté que me perdí la parte que prueba por qué siempre el índice de Gini en el nodo secundario es menor que en el nodo primario. No tengo una prueba completa o verificada, pero creo que es una prueba válida. Para otras cosas relacionadas con el tema, puede consultar la Nota técnica: Algunas propiedades de los criterios de división: Leo Breiman . Ahora seguirá mi prueba.
(a,b)ab( a , b )
Para encontrar la mejor división, clasificamos las instancias de acuerdo con una función de prueba y probamos todas las divisiones binarias posibles. Ordenado por una característica dada es en realidad una permutación de instancias, en las que las clases comienzan con una instancia de la primera clase o de la segunda clase. Sin perder la generalidad, supondremos que comienza con una instancia de la primera clase (si este no es el caso, tenemos una prueba espejo con el mismo cálculo).
( 1 , 0 )( a - 1 , b )h(left)=1−(1/1)2−(0/1)2=0. Entonces, en el lado izquierdo tenemos un valor de índice de Gini más pequeño. ¿Qué tal el nodo correcto?
h(parent)=1−(aa+b)2−(ba+b)2
h(right)=1−(a−1(a−1)+b)2−(b(a−1)+b)2
a0
Ahora, la etapa final de la prueba es señalar que, si bien consideramos todos los puntos de división posibles dictados por los datos que tenemos, mantenemos el que tiene el índice de Gini agregado más pequeño, lo que significa que el óptimo que elegimos es menor o igual que el trivial que probé que es más pequeño. Lo que concluye que al final el índice de Gini disminuirá.
Como conclusión final, debemos tener en cuenta que incluso si varias divisiones pueden dar valores más grandes que el nodo primario, el que elijamos será el más pequeño entre ellos y también más pequeño que el valor del índice de Gini primario.
Espero eso ayude.