2016-04-06 11 views
1

Beim Erstellen eines Entscheidungsbaums wählen wir an jedem Knoten das beste Merkmal und dann die beste Teilungsposition für dieses Merkmal aus. Wenn jedoch alle Werte für das beste Feature für Samples im aktuellen Knoten/Satz 0 sind, was kann ich tun? Alle Samples werden weiterhin auf einer Seite gruppiert (der < = 0-Zweig), und eine Endlosschleife tritt auf. Zum Beispiel:Erstellen eines Entscheidungsbaums

#left: 1500, #right: 0 

dann,

#left: 1500, #right: 0 

und so weiter ...

Nur als Referenz, verfolge ich den folgenden Pseudo-Code.

GrowTree(S) 
if (y_i = C for all i in S and some class C) then { 
return new leaf(C)        
} else { 
choose best splitting feature j and splitting point beta (*) 
I choose the one that gives me the max entropy drop 
S_l = {i : X_ij < beta}       
S_r = {i : X_ij >= beta} 
return new node(j, beta, GrowTree(S_l), GrowTree(S_r)) 

}

+0

Können Sie uns Ihren Code für den Aufbau des Baumes zeigen? – Reti43

+0

Redigiert meine Frage. – Jobs

+0

"Wenn jedoch alle Werte für das beste Merkmal 0 für Proben sind". Es scheint, als ob alle Samples, die diesen Knoten erreichen, derselben Klasse angehören (können Sie das überprüfen?). Wenn dies der Fall ist, ist der Knoten nutzlos und sollte nicht erstellt worden sein. –

Antwort

2

Das ist einfach unmöglich. Sie sollten die Schwelle wählen, die zum größten Anreiz der Modellsicherheit führt. Die Verwendung des Schwellenwerts, der jede einzelne Instanz in den gleichen Zweig versetzt, erhöht die Modellgewissheit um 0, daher ist dies nicht die beste Aufteilung. Dies sollte genau dann passieren, wenn die Unreinheit/Entropie in diesem Merkmal bereits 0 ist, aber dann ist es ein Stoppkriterium für das Erstellen von Blättern im Entscheidungsbaum.

+0

Ich mache Spam-Erkennung mit dem obigen Entscheidungsbaum. Die einzigen Funktionen, die ich derzeit habe, sind ein paar Wortzählungen. Kannst du erklären, wie "Beutel mit Wörtern" als Feature verwendet werden kann? Beziehe/addiere ich ein Merkmal, das eine Wahrscheinlichkeit oder etwas ist? – Jobs

+0

Stellen Sie eine separate Frage – lejlot

+0

Just did: http://stackoverflow.com/questions/36469548/bag-of-words-feature-for-spam-detection-decision-tree – Jobs