Zmniejszenie Gini i zanieczyszczenie Gini węzłów dziecięcych


15

Pracuję nad miarą ważności funkcji Gini dla losowego lasu. Dlatego muszę obliczyć spadek zanieczyszczenia węzła Gini. Oto sposób, w jaki to robię, co prowadzi do konfliktu z definicją, co sugeruje, że gdzieś się mylę ... :)

W przypadku drzewa binarnego i biorąc pod uwagę prawdopodobieństwa lewych i prawych dzieci, mogę obliczyć zanieczyszczenie Gini węzła n :

i(n)=1pl2pr2

A spadek Gini:

Δi(n)=i(n)pli(nl)pri(nr)

Na przykład dla 110 obserwacji w węźle:

- node (110)
   - left (100)
      - left_left (60)
      - left_right (40)
   - right (10)
      - right_left (5)
      - right_right (5)

Obliczę zmniejszenie Gini dla węzła w ten sposób:

i(left)=1(60/100)²(40/100)²=0.48i(right)=1(5/10)²(5/10)²=0.50i(node)=1(100/110)²(10/110)²=0.16

Ale zgodnie z definicją Breimana (lub odpowiedzią na CV: Jak mierzyć / uszeregować „zmienne znaczenie” podczas używania KOSZYKA , ale nie mam dostępu do książki, do której się odwołuje), kryterium nieczystości potomka powinno być mniejsze niż rodzic węzeł:

Znaczenie Gini
Za każdym razem, gdy dokonuje się podziału węzła na zmiennej m, kryterium zanieczyszczenia gini dla dwóch potomnych węzłów jest mniejsze niż węzeł nadrzędny. Zsumowanie spadków gini dla każdej pojedynczej zmiennej we wszystkich drzewach w lesie daje szybkie znaczenie zmiennej, które często jest bardzo zgodne z miarą ważności permutacji.

Ponieważ inaczej prowadzi to do ujemnego spadku Gini ...

Δi(node)=i(node)(100/110)i(left)(10/110)i(right)=0.32

Więc jeśli ktoś mógłby powiedzieć, gdzie się mylę, byłbym bardzo wdzięczny, ponieważ wygląda na to, że tęsknię za czymś oczywistym ...

Odpowiedzi:


16

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)=1P(A+)2P(A)2
P(A+)c+

I(Al)=1P(Al+)2P(Al)2
I(Ar)=1P(Ar+)2P(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)(za-1,b)h(left)=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(a1(a1)+b)2(b(a1)+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.


Dziękuję bardzo, odblokowałeś mój mózg ... W rzeczywistości, ponieważ mam do czynienia z drzewami regresji, użycie zmiennej klasy docelowej wydawało się mniej oczywiste niż w przypadku czystego zadania klasyfikacji. Ale teraz ma to sens.
Remi Mélisson

Zaktualizowałem odpowiedź, aby zawierała brakujące części.
rapaio
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.