Wie wird ein Aufteilungspunkt für stetige Variablen in Entscheidungsbäumen gewählt?

14

Ich habe zwei Fragen zu Entscheidungsbäumen:

  1. Wie wählen wir den Aufteilungswert aus, wenn wir ein kontinuierliches Attribut haben?

    Beispiel: Alter = (20,29,50,40 ....)

  2. Stellen Sie sich vor , dass wir ein kontinuierliches Attribut , die Werte in haben R . Wie kann ich einen Algorithmus schreiben, der den Aufteilungspunkt v ermittelt , damit wir, wenn wir f durch v aufteilen , eine minimale Verstärkung für f > v haben ?fRvfvf>v

WALID BELRHALMIA
quelle

Antworten:

18

Um einen Split-Punkt zu erhalten, werden die Werte sortiert und die Mittelpunkte zwischen benachbarten Werten werden in Bezug auf eine Metrik, normalerweise Informationsgewinn oder Gini-Verunreinigung, bewertet. Nehmen wir an, wir haben für Ihr Beispiel vier Beispiele und die Werte der Altersvariablen sind . Die Mittelpunkte zwischen den Werten ( 24,5 , 34,5 , 45 ) werden ausgewertet, und es wird diejenige Aufteilung verwendet, die den besten Informationsgewinn (oder die von Ihnen verwendete Metrik) für die Trainingsdaten ergibt.(20,29,40,50)(24.5,34.5,45)

Sie können Rechenzeit sparen, indem Sie nur Split-Punkte prüfen, die zwischen Beispielen verschiedener Klassen liegen, da nur diese Splits für den Informationsgewinn optimal sein können.

timleathart
quelle
@timleathart Das OP erwartet, dass die Implementierung in R "mit Löffel gefüttert" wird. Ich frage mich, was das OP bisher in Bezug auf die R-Implementierung versucht hat. Wie wäre es mit "etwas Mühe zeigen", OP?
mnm
@timleathart aber normalerweise für ein Attribut f wählen wir den Split v, der den größten Informationsgewinn für f> v ergibt, aber schauen Sie sich hier die Frage an, die sie nach einem minimalen Gewinn gestellt haben.
WALID BELRHALMIA
@ Timleathart, können Sie mehr erklären? Ich muss die bestmögliche Methode kennen, um solche Splits zu identifizieren und auf Informationsgewinn zu prüfen. Nehmen wir an, eine Variable hat viele Variationen und die andere ist fast konstant. Wie viele solcher Splits sollten da sein?
Arpit Sisodia
@timeleathart, erweitere deine Antwort, diese Aufteilung wird nicht optimiert, wenn die Werte (20,21,22,23, 45,67,80) sind. sollte hier nicht min to max iteration verwendet werden? Bitte korrigieren Sie mich, wenn ich in meiner Annahme falsch bin :)
Arpit Sisodia
Das klärt meine Verwirrungen!
Jinhua Wang