Semplicemente non hai usato affatto la variabile della classe target. L'impurità di Gini come tutte le altre funzioni di impurità, misura l'impurità degli output dopo una divisione. Quello che hai fatto è misurare qualcosa usando solo la dimensione del campione.
Cerco di ricavare la formula per il tuo caso.
Supponiamo che tu abbia un classificatore binario per semplicità. Indicare con l'attributo test, con l'attributo class con valori .C c + , c -UNCc+, c-
L'indice gini iniziale prima della divisione è dato da
dove è la proporzione di punti dati che hanno valore per la classe variabile. P ( A + ) c +
io( A ) = 1 - P( A+)2- P( A-)2
P( A+)c+
Ora, l'impurità per il nodo sinistro sarebbe
dove è la proporzione di punti dati dal sottoinsieme sinistro di che hanno valore nella variabile di classe, ecc. I ( A r ) = 1 - P ( A r + ) 2 - P ( A r - ) 2 P ( A l + ) A
io( A l ) = 1 - P( A l+)2- P( A l-)2
io( A r ) = 1 - P( A r+)2- P( A r-)2
P( A l+)UNc+
Ora la formula finale per GiniGain sarebbe
G i n i G a i n ( A ) = I( A ) - pl e ftio( A l ) - pr i gh tio( A r )
dove è la proporzione di istanze per il sottoinsieme sinistro, oppure (quante istanze sono in sottoinsieme sinistra diviso per il numero totale di istanze da .
pl e ft# | A l |# | A l | + # | A r |UN
Sento che la mia notazione potrebbe essere migliorata, guarderò più tardi quando avrò più tempo.
Conclusione
L'uso del solo numero di punti dati non è sufficiente, impurità significa quanto una funzione (funzione di test) è in grado di riprodurre la distribuzione di un'altra funzione (funzione di classe). La distribuzione della funzione di test produce il numero che hai usato (come a sinistra, come a destra), ma la distribuzione della funzione di classe non viene utilizzata nelle tue formule.
Modifica successiva: dimostra perché diminuisce
Ora ho notato che mi mancava la parte che dimostra perché l'indice gini sul nodo figlio è sempre inferiore rispetto al nodo padre. Non ho un proove completo o verificato, ma sto pensando che sia una prova valida. Per altre cose interessanti relative all'argomento, è possibile controllare Nota tecnica: alcune proprietà dei criteri di scissione - Leo Breiman . Ora seguirà la mia prova.
Supponiamo che siamo nel caso binario, e tutti i valori in un nodo potrebbe essere completamente descritto da una coppia con il significato di istanze della prima classe, e istanze della seconda classe. Possiamo affermare che nel nodo genitore abbiamo istanze .( a , b )un'B( a , b )
Per trovare la migliore suddivisione ordiniamo le istanze in base a una funzione di test e proviamo tutte le possibili divisioni binarie. Ordinato per una determinata funzione è in realtà una permutazione di istanze, in cui le classi iniziano con un'istanza della prima classe o della seconda classe. Senza perdere la generalità, supponiamo che inizi con un'istanza della prima classe (in caso contrario abbiamo una prova speculare con lo stesso calcolo).
La prima divisione da provare è nelle istanze sinistra e destra . Come viene confrontato l'indice gini per quei possibili candidati per i nodi figlio sinistro e destro con il nodo padre? Ovviamente a sinistra abbiamo . Quindi sul lato sinistro abbiamo un valore dell'indice gini più piccolo. E il nodo giusto?( 1 , 0 )( a - 1 , b )h ( l e ft ) = 1 - ( 1 / 1 )2- ( 0 / 1 )2= 0
h ( p a r e n t ) = 1 - ( aa + b)2- ( ba + b)2
h ( r i gh t ) = 1 - ( a - 1( a - 1 ) + b)2- ( b( a - 1 ) + b)2
Considerando che è maggiore o uguale a (poiché altrimenti come potremmo separare un'istanza della prima classe nel nodo sinistro?) E dopo la semplificazione è semplice vedere che l'indice gini per il nodo destro ha un valore inferiore rispetto a nodo padre.un'0
Ora la fase finale della dimostrazione è quella di dare un nodo al fatto che, considerando tutti i possibili punti di divisione dettati dai dati che abbiamo, manteniamo quello che ha il più piccolo indice gini aggregato, il che significa che l'ottimale che scegliamo è inferiore o uguale al banale quello che mi è sembrato più piccolo. Il che conclude che alla fine l'indice gini diminuirà.
Come conclusione finale dobbiamo notare anche se varie divisioni possono dare valori più grandi di quel nodo genitore, quello che scegliamo sarà il più piccolo tra loro e anche più piccolo del valore dell'indice gini genitore.
Spero che sia d'aiuto.