Gini-Abnahme und Gini-Verunreinigung von Kinderknoten

15

Ich arbeite an der Wichtigkeitsmessung des Gini-Features für zufällige Gesamtstrukturen. Daher muss ich die Gini-Abnahme der Knotenverunreinigung berechnen. So mache ich das, was zu einem Konflikt mit der Definition führt und andeutet, dass ich mich irgendwo irren muss ... :)

Für einen binären Baum kann ich unter Berücksichtigung der Wahrscheinlichkeiten der linken und rechten Kinder die Gini-Verunreinigung eines Knotens berechnen :n

ich(n)=1-pl2-pr2

Und die Gini nehmen ab:

Δich(n)=ich(n)-plich(nl)-prich(nr)

Für dieses Beispiel mit 110 Beobachtungen auf einem Knoten:

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

Ich würde die Gini-Abnahme für Knoten wie folgt berechnen :

i(left)=1-(60/100)²-(40/100)²=0,48ich(richGht)=1-(5/10)²-(5/10)²=0,50ich(nÖde)=1-(100/110)²-(10/110)²=0,16

Nach der Breiman-Definition (oder dieser Antwort im Lebenslauf: Wie man die "variable Wichtigkeit" misst / einordnet , wenn ich CART verwende , aber keinen Zugriff auf das referenzierte Buch habe) sollte das Verunreinigungskriterium des Nachkommen geringer sein als das des Elternteils Knoten:

Gini-Wichtigkeit
Jedes Mal, wenn eine Aufteilung eines Knotens auf die Variable m vorgenommen wird, ist das Gini-Verunreinigungskriterium für die beiden untergeordneten Knoten kleiner als der übergeordnete Knoten. Addiert man die Gini-Abnahmen für jede einzelne Variable über alle Bäume im Wald, erhält man eine schnelle Variablenbedeutung, die häufig sehr gut mit dem Maß für die Permutationsbedeutung übereinstimmt.

Denn sonst führt es zu einer negativen Gini-Abnahme ...

Δich(nÖde)=ich(nÖde)-(100/110)ich(left)-(10/110)ich(richGht)=-0,32

Wenn also jemand sagen könnte, wo ich falsch liege, wäre ich sehr dankbar, denn es sieht so aus, als würde mir hier etwas offensichtlich fehlen ...

Remi Mélisson
quelle

Antworten:

16

Sie haben die Zielklassenvariable einfach überhaupt nicht verwendet. Gini-Verunreinigung misst wie alle anderen Verunreinigungsfunktionen die Verunreinigung der Ausgänge nach einer Aufteilung. Was Sie getan haben, ist etwas nur mit Stichprobengröße zu messen.

Ich versuche, eine Formel für Ihren Fall abzuleiten.

Nehmen wir zur Vereinfachung an, Sie haben einen binären Klassifikator. Kennzeichnen Sie mit das , mit das Klassenattribut mit Werten.C c + , c -EINCc+,c-

Der anfängliche Gini-Index vor der Teilung ist gegeben durch wobei der Anteil von Datenpunkten ist, die einen -Wert für die Klasse haben Variable. P ( A + ) c +

ich(EIN)=1-P(EIN+)2-P(EIN-)2
P(EIN+)c+

Jetzt wäre die Verunreinigung für den linken Knoten wobei Anteil der Datenpunkte aus der linken Teilmenge von die in der Klassenvariablen den Wert haben , usw.

ich(EINl)=1-P(EINl+)2-P(EINl-)2
ich(EINr)=1-P(EINr+)2-P(EINr-)2
P(EINl+)EINc+

Nun wäre die endgültige Formel für GiniGain

GichnichGeinichn(EIN)=ich(EIN)-pleftich(EINl)-prichGhtich(EINr)
wobei der Anteil der Instanzen für die linke Teilmenge ist, oder (wie viele Instanzen in der linken Teilmenge ist durch die Gesamtzahl der Fälle von geteilten .pleft#|EINl|#|EINl|+#|EINr|EIN

Ich habe das Gefühl, dass meine Notation verbessert werden könnte. Ich werde später sehen, wann ich mehr Zeit habe.

Fazit

Es reicht nicht aus, nur die Anzahl der Datenpunkte zu verwenden. Verunreinigungen bedeuten, wie gut ein Merkmal (Testmerkmal) die Verteilung eines anderen Merkmals (Klassenmerkmal) reproduzieren kann. Die Test-Feature-Verteilung erzeugt die Nummer, die Sie verwendet haben (nach links, nach rechts), aber die Verteilung des Klassen-Features wird in Ihren Formeln nicht verwendet.

Später bearbeiten - beweisen Sie, warum es abnimmt

Jetzt ist mir aufgefallen, dass ich den Teil verpasst habe, der beweist, warum der Gini-Index auf dem untergeordneten Knoten immer kleiner ist als auf dem übergeordneten Knoten. Ich habe keinen vollständigen oder verifizierten Beweis, aber ich denke, es ist ein gültiger Beweis. Weitere interessante Informationen zum Thema finden Sie unter Technischer Hinweis: Einige Eigenschaften von Aufteilungskriterien - Leo Breiman . Nun folgt es meinem Beweis.

Nehmen sich an, daß wir im binären Fall sind und alle Werte in einem Knoten durch ein Paar vollständig beschrieben werden könnten mit der Bedeutung Instanz der ersten Klasse und Instanzen der zweiten Klasse. Wir können im übergeordneten Knoten angeben, dass wir Instanzen haben.(ein,b)einb(ein,b)

Um die beste Aufteilung zu finden, sortieren wir die Instanzen nach einem Testfeature und probieren alle möglichen binären Aufteilungen aus. Nach einem bestimmten Merkmal ist tatsächlich eine Permutation von Instanzen sortiert, in denen Klassen mit einer Instanz der ersten Klasse oder der zweiten Klasse beginnen. Ohne die Allgemeinheit zu verlieren, nehmen wir an, dass es mit einer Instanz der ersten Klasse beginnt (wenn dies nicht der Fall ist, haben wir einen Spiegelnachweis mit derselben Berechnung).

Die erste Aufteilung, die versucht werden soll, erfolgt in der linken und rechten Instanz. Wie wird der Gini-Index für diese möglichen Kandidaten für den linken und den rechten untergeordneten Knoten mit dem übergeordneten Knoten verglichen? Links haben wir offensichtlich . Auf der linken Seite haben wir also einen kleineren Gini-Indexwert. Wie wäre es mit dem richtigen Knoten?(1,0)(ein-1,b)h(left)=1-(1/1)2-(0/1)2=0

h(peinrent)=1-(einein+b)2-(bein+b)2
h(richGht)=1-(ein-1(ein-1)+b)2-(b(ein-1)+b)2

Wenn man bedenkt, dass größer oder gleich (da sonst, wie könnten wir eine Instanz der ersten Klasse im linken Knoten trennen?), Ist es nach Vereinfachung einfach zu erkennen, dass der Gini-Index für den rechten Knoten einen kleineren Wert als für den hat Elternknoten.ein0

Nun besteht die letzte Stufe des Beweises darin, zu verdeutlichen, dass wir unter Berücksichtigung aller möglichen Teilungspunkte, die durch die uns vorliegenden Daten vorgegeben sind, denjenigen behalten, der den kleinsten aggregierten Gini-Index aufweist, was bedeutet, dass das von uns gewählte Optimum kleiner oder gleich dem ist Triviales, von dem ich bewiesen habe, dass es kleiner ist. Daraus folgt, dass der Gini-Index am Ende sinken wird.

Als letzte Schlussfolgerung müssen wir feststellen, dass selbst wenn verschiedene Aufteilungen Werte ergeben können, die größer als der übergeordnete Knoten sind, derjenige, den wir wählen, der kleinste unter ihnen und der kleinere als der übergeordnete Gini-Indexwert.

Ich hoffe es hilft.

rapaio
quelle
Vielen Dank, Sie haben mein Gehirn freigeschaltet. Da es sich um Regressionsbäume handelt, war die Verwendung der Zielklassenvariablen weniger offensichtlich als für eine reine Klassifizierungsaufgabe. Aber es macht jetzt total Sinn.
Remi Mélisson
Ich habe die Antwort aktualisiert, um die fehlenden Teile zu enthalten.
Rapaio