Po prostu wcale nie użyłeś zmiennej klasy docelowej. Zanieczyszczenie Giniego, podobnie jak wszystkie inne funkcje zanieczyszczenia, mierzy zanieczyszczenie wyjść po podziale. To, co zrobiłeś, to zmierzyć coś przy użyciu tylko wielkości próbki.
Próbuję wyprowadzić formułę dla twojej sprawy.
Załóżmy, że dla uproszczenia masz binarny klasyfikator. Oznacz za pomocą atrybutu testowego, za pomocą C atrybutu klasy, który ma wartości c + , c - .ACc+,c−
Początkowy indeks gini przed podziałem jest określony przez
gdzie P ( A + ) jest proporcją punktów danych, które mają wartość c + dla zmiennej klasy.
I(A)=1−P(A+)2−P(A−)2
P(A+)c+
I(Al)=1−P(Al+)2−P(Al−)2
I(Ar)=1−P(Ar+)2−P(Ar−)2
P(Al+)Ac+
Teraz ostateczna formuła GiniGain byłaby
GiniGain(A)=I(A)−pleftI(Al)−prightI(Ar)
pleft#|Al|#|Al|+#|Ar|A
Wydaje mi się, że moja notacja mogłaby zostać ulepszona, będę oglądać później, kiedy będę miał więcej czasu.
Wniosek
Używanie tylko liczby punktów danych nie wystarczy, zanieczyszczenie oznacza, jak dobrze jedna funkcja (funkcja testowa) jest w stanie odtworzyć rozkład innej cechy (funkcja klasy). Rozkład funkcji testowej generuje liczbę, której użyłeś (jak odejść, jak od prawej), ale rozkład funkcji klasy nie jest używany w twoich formułach.
Późniejsza edycja - udowodnij, dlaczego się zmniejsza
Teraz zauważyłem, że przegapiłem część, która dowodzi, dlaczego zawsze indeks gini w węźle potomnym jest mniejszy niż w węźle nadrzędnym. Nie mam pełnego dowodu ani zweryfikowanego, ale uważam, że jest to ważny dowód. Aby zapoznać się z innymi zagadnieniami związanymi z tematem, możesz sprawdzić Uwaga techniczna: Niektóre właściwości kryteriów podziału - Leo Breiman . Teraz podąży za mną.
(a,b)ab(a,b)
Aby znaleźć najlepszy podział, sortujemy wystąpienia według funkcji testowej i próbujemy wszystkich możliwych podziałów binarnych. Posortowane według danej funkcji jest w rzeczywistości permutacją instancji, w których klasy zaczynają się od instancji pierwszej klasy lub drugiej klasy. Nie tracąc ogólności, założymy, że zaczyna się ona od instancji pierwszej klasy (jeśli tak nie jest, mamy dowód lustrzany z tymi samymi obliczeniami).
(1,0)( a - 1 , b )h ( l e ft)=1−(1/1)2−(0/1)2=0. Więc po lewej stronie mamy mniejszą wartość indeksu Gini. Co powiesz na właściwy węzeł?
h(parent)=1−(aa+b)2−(ba+b)2
h(right)=1−(a−1(a−1)+b)2−(b(a−1)+b)2
a0
Ostatnim etapem dowodu jest ustalenie, że biorąc pod uwagę wszystkie możliwe punkty podziału podyktowane danymi, zachowujemy ten, który ma najmniejszy zagregowany indeks gini, co oznacza, że wybrane przez nas optymalne jest mniejsze lub równe trywialny, który udowodniłem, że jest mniejszy. Co prowadzi do wniosku, że ostatecznie indeks gini spadnie.
Na koniec należy zauważyć, że nawet jeśli różne podziały mogą dawać wartości większe niż węzeł nadrzędny, ten, który wybieramy, będzie najmniejszy spośród nich, a także mniejszy niż wartość indeksu nadrzędnego gini.
Mam nadzieję, że to pomoże.