CART- und Entscheidungsbäume wie Algorithmen arbeiten durch rekursive Aufteilung des Trainingssatzes, um Teilmengen zu erhalten, die für eine bestimmte Zielklasse so rein wie möglich sind. Jeder Knoten des Baums ist einem bestimmten Satz von Datensätzen T , die durch einen bestimmten Test für ein Merkmal aufgeteilt werden. Zum Beispiel kann eine Aufteilung auf ein kontinuierliches Attribut EIN durch den Test induziert werden A ≤ x. Der Satz von AufzeichnungenT wird dann in zwei Teilmengen aufgeteilt, die zum linken Zweig des Baums und zum rechten Zweig führen.
Tl={t∈T:t(A)≤x}
und
Tr={t∈T:t(A)>x}
In ähnlicher Weise kann ein kategoriales Merkmal verwendet werden, um Teilungen gemäß seinen Werten zu induzieren. Wenn zum Beispiel B = { b 1 , … , b k } ist, kann jeder Zweig i durch den Test B = b induziert werdenBB = { b1, … , Bk}i.B=bi
Der Teilungsschritt des rekursiven Algorithmus zum Induzieren eines Entscheidungsbaums berücksichtigt alle möglichen Teilungen für jedes Merkmal und versucht, die beste nach einem gewählten Qualitätsmaß zu finden: dem Teilungskriterium. Wenn Ihr Datensatz durch das folgende Schema induziert wird
EIN1, … , Am, C
Wobei Attribute sind und C die Zielklasse ist, werden alle Kandidatensplits nach dem Splitting-Kriterium generiert und ausgewertet. Splits für fortlaufende und kategoriale Attribute werden wie oben beschrieben generiert. Die Auswahl der besten Aufteilung erfolgt üblicherweise durch Verunreinigungsmaßnahmen. Die Verunreinigung des Elternknotens muss durch die Aufteilung verringert werden . Sei ( E 1 , E 2 , … , E k ) eine auf der Menge von Aufzeichnungen E induzierte Aufteilung, ein Aufteilungskriterium, das von dem Verunreinigungsmaß I ( ⋅ ) Gebrauch macht, ist:EINjC( E1, E2, … , Ek)Eich( ⋅ )
Δ = I( E) - ∑i = 1k| Eich|| E|ich( Eich)
Standardmaßstäbe für Verunreinigungen sind die Shannon-Entropie oder der Gini-Index. Insbesondere verwendet CART den Gini-Index, der für die Menge wie folgt definiert ist. Sei p j der Bruchteil von Datensätzen in E der Klasse c j p j = | { t ∈ E : t [ C ] = c j } |EpjEcj
dann
Gini(E)=1- Q Σ j=1p 2 j
wobeiQdie Anzahl der Klassen ist.
pj= | { t ∈ E: t [ C] = cj} || E|
G i n i (E) = 1 - ∑j = 1Q.p2j
Q.
Es führt zu einer Verunreinigung von 0, wenn alle Datensätze derselben Klasse angehören.
Als Beispiel sagen sie , dass wir einen binären Klassensatz von Datensatz haben , wo die Klassenverteilung ist ( 1 / 2 , 1 / 2 ) - Das folgende ist eine gute Aufteilung für TT(1/2,1/2)T
Tl(1,0)Tr(0,1)TlTr|Tl|/|T|=|Tr|/|T|=1/2Δ
Δ=1−1/22−1/22−0−0=1/2
Δ
Δ=1−1/22−1/22−1/2(1−(3/4)2−(1/4)2)−1/2(1−(1/4)2−(3/4)2)=1/2−1/2(3/8)−1/2(3/8)=1/8
Die erste Aufteilung wird als beste Aufteilung ausgewählt, und der Algorithmus fährt dann rekursiv fort.
Es ist einfach, eine neue Instanz anhand eines Entscheidungsbaums zu klassifizieren. Es reicht sogar aus, dem Pfad vom Stammknoten zu einem Blatt zu folgen. Ein Datensatz wird mit der Majoritätsklasse des Blattes klassifiziert, das er erreicht.
Angenommen, wir möchten das Quadrat in dieser Figur klassifizieren
A , B , CCAB zwei kontinuierliche Merkmale sind.
Ein möglicher induzierter Entscheidungsbaum könnte der folgende sein:
Es ist klar, dass die Aufzeichnung Platz als Kreis gegeben durch den Entscheidungsbaum klassifiziert wird , dass die Aufzeichnung auf einem Blatt fällt mit Kreisen markiert.
In diesem Spielzeugbeispiel beträgt die Genauigkeit des Trainingssatzes 100%, da keine Aufzeichnung vom Baum falsch klassifiziert wird. In der grafischen Darstellung des oben aufgeführten Trainingssatzes sehen Sie die Grenzen (graue gestrichelte Linien), die der Baum zur Klassifizierung neuer Instanzen verwendet.
Es gibt viel Literatur zu Entscheidungsbäumen, ich wollte nur eine skizzenhafte Einführung aufschreiben. Eine andere berühmte Implementierung ist C4.5.