Müssen Sie Daten normalisieren, wenn Sie Entscheidungsbäume mit R erstellen?


10

Unser Datensatz in dieser Woche hat also 14 Attribute und jede Spalte hat sehr unterschiedliche Werte. Eine Spalte hat Werte unter 1, während eine andere Spalte Werte zwischen drei und vier ganzen Ziffern hat.

Wir haben letzte Woche die Normalisierung gelernt und es scheint, als sollten Sie Daten normalisieren, wenn sie sehr unterschiedliche Werte haben. Ist dies bei Entscheidungsbäumen der Fall?

Ich bin mir nicht sicher, aber würde die Normalisierung den resultierenden Entscheidungsbaum aus demselben Datensatz beeinflussen? Es scheint nicht so, als ob es sollte, aber ...

Antworten:


13

Die häufigsten Arten von Entscheidungsbäumen, auf die Sie stoßen, sind von keiner monotonen Transformation betroffen. Solange Sie also orde beibehalten, sind die Entscheidungsbäume gleich (offensichtlich verstehe ich hier unter demselben Baum dieselbe Entscheidungsstruktur, nicht dieselben Werte für jeden Test in jedem Knoten des Baums).

Der Grund, warum es passiert, ist, wie übliche Verunreinigungsfunktionen funktionieren. Um die beste Aufteilung zu finden, wird für jede Dimension (Attribut) ein Teilungspunkt durchsucht. Dies ist im Grunde eine if-Klausel, die Zielwerte gruppiert, die Instanzen entsprechen, deren Testwert kleiner als der Teilungswert ist, und rechts die Werte, die größer als gleich sind. Dies geschieht für numerische Attribute (was meiner Meinung nach Ihr Fall ist, weil ich nicht weiß, wie man ein nominales Attribut normalisiert). Jetzt können Sie feststellen, dass die Kriterien kleiner oder größer als sind. Dies bedeutet, dass die realen Informationen aus den Attributen, um die Aufteilung (und den gesamten Baum) zu finden, nur die Reihenfolge der Werte sind. Dies bedeutet, dass Sie denselben Baum erhalten, solange Sie Ihre Attribute so transformieren, dass die ursprüngliche Reihenfolge reserviert bleibt.

Nicht alle Modelle sind für eine solche Transformation unempfindlich. Beispielsweise liefern lineare Regressionsmodelle dieselben Ergebnisse, wenn Sie ein Attribut mit etwas anderem als Null multiplizieren. Sie erhalten unterschiedliche Regressionskoeffizienten, aber der vorhergesagte Wert ist der gleiche. Dies ist nicht der Fall, wenn Sie ein Protokoll dieser Transformation erstellen. So ist beispielsweise für die lineare Regression die Normalisierung nutzlos, da sie das gleiche Ergebnis liefert.

Dies ist jedoch bei einer bestraften linearen Regression wie der Gratregression nicht der Fall. Bei bestraften linearen Regressionen wird eine Einschränkung auf Koeffizienten angewendet. Die Idee ist, dass die Einschränkung auf die Summe einer Funktion von Koeffizienten angewendet wird. Wenn Sie nun ein Attribut aufblasen, wird der Koeffizient entleert, was bedeutet, dass am Ende die Bestrafung für diesen Koeffizienten künstlich geändert wird. In einer solchen Situation normalisieren Sie Attribute, damit jeder Koeffizient "fair" eingeschränkt wird.

Ich hoffe es hilft

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.