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))
}
Können Sie uns Ihren Code für den Aufbau des Baumes zeigen? – Reti43
Redigiert meine Frage. – Jobs
"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. –