Mithilfe von decision tree-regression und Kreuzvalidierung in sklearn

Ich bin ein Neuling in statistischen Methoden, also bitte entschuldigt eventuelle Naivität. Ich habe ein problem, das Verständnis, die Durchführung der cross-Validierung bei der Verwendung von Entscheidungsbaum-regression von sklearn (z.B. DecisionTreeRegressor und RandomForestRegressor). Mein dataset unterschiedlich aus, die mehrere Prädiktoren (y = einzelne abhängige variable; X = mehrere unabhängige Variablen) auf einen einzigen Prädiktor und besteht aus mehr als genug Fälle (> 10k). Die folgende Erklärung gilt für alle Fälle.

Beim Einbau und erzielte den Regressoren, die mit den standard-Methoden:

dt = DecisionTreeRegressor()
rf = RandomForestRegressor()

dt.fit(X,y)
rf.fit(X,y)

dt_score = dt.score(X,y)
rf_score = rf.score(X,y)

Den dt_score und rf_score gibt vielversprechende R-Quadrat-Werte (> 0.7), aber ich bin mir bewusst, das over-fitting Eigenschaften des DT-und zu geringerem Maße auch die RF. Deshalb habe ich versucht, die Punktzahl, die der Regressoren mit der Kreuzvalidierung (10-Fach) verwenden, um eine getreuere Wiedergabe der Genauigkeit:

dt = DecisionTreeRegressor()
rf = RandomForestRegressor()

dt.fit(X,y)
rf.fit(X,y)

dt_scores = cross_val_score(dt, X, y, cv = 10)
rf_scores = cross_val_score(rf, X, y, cv = 10) 

dt_score = round(sum(dt_scores )/len(dt_scores ), 3)
rf_score = round(sum(rf_scores )/len(rf_scores ), 3)

Die Ergebnisse der cross-Validierung gibt immer negative Werte. Ich nehme an, Sie sind R-Quadrat-Werte nach der sklearn guidlines: standardmäßig wird der score berechnet, bei jeder CV-iteration ist die score-Methode des Schätzers (die score-Methode sowohl von den Regressoren ist R-Quadrat). Die Erklärung, die sich aus den Richtlinien für die basic KFold cross validation ist: Jede Falte wird dann verwendet, einmal als Bestätigung, während die k - 1 restlichen Falten form der Ausbildung festgelegt.

Wie verstehe ich das, bei der Verwendung von 10 alten cv, ist: mein Datensatz ist aufgeteilt in 10 gleiche Teile, für jedes Teil die restlichen 9 Teile, die für die Ausbildung (ich bin nicht sicher, ob dies ist ein fit-operation oder eine Partitur-Betrieb) und der Verbleibende Teil wird für die Validierung verwendet werden (nicht sicher, was getan wird, für die Validierung). Diese Regressoren sind eine komplette "black box" für mich, so habe ich keine Idee, wie man eine Struktur verwendet, die für die regression und wo die cross-Validierung wird dem R-Quadrat-Werte aus.

Also um zusammenzufassen, ich bin kämpfen, um zu verstehen, wie die cross-Validierung kann eine Verringerung der Genauigkeit (R-Quadrat) so dramatisch? Bin ich mit dem cross validation richtige für ein regressor? Macht es Sinn, auf cross-Validierung für ein Entscheidungsbaum regressor? Soll ich mich mit anderen cross-validation-Methode?

Danke

  • Cross validation ist eine Technik zum berechnen einer generalisierbaren Metrik, in diesem Fall, R^2. Wenn Sie trainieren (also fit) Ihr Modell auf einige Daten, und dann berechnen Sie Ihre Metrik, auf die gleichen Trainingsdaten (d.h. Validierung), die Metrik, die Sie erhalten könnte voreingenommen sein, weil dein Modell overfit zu den Trainingsdaten. In anderen Worten, cross-validation versucht zu schätzen, wie Ihr Modell führen Sie auf onseen Daten. Also, was dieser sagt Ihnen, wenn Sie es tun richtig ist, dass das Modell schlecht durchführen, die auf ungesehenen Daten, wahrscheinlich aufgrund von overfitting.
  • Als Sie Stand, DTs-berüchtigt sind overfitters. Sie können versuchen, die Feinabstimmung der verschiedenen Parameter, die zur Entscheidung Baum Regressoren in sklearn. Ein guter Platz zum zu beginnen ist in der Regel die maximale Tiefe.
  • Also, um zusammenzufassen, ist die Antwort auf die Frage "wie die Kreuz-Validierung kann eine Verringerung der Genauigkeit (R-Quadrat) so dramatisch?" ist "weil Ihr Modell sehr schlecht auf ungesehenen Daten".
  • Danke für Eure inputs @juanpa.arrivillaga. Ihr Kommentar "wenn Sie es tun, richtig", sind Sie sich auf wie lade ich die sklearn Methoden in python? So erklären Sie, dass es ist völlig denkbar, dass der Entscheidungsbaum und random forest Regressoren über-Vorhersagen so stark, dass es fällt die R-Quadrat von 0,8 auf < 0, wenn die Anwendung der cross-Validierung?
Schreibe einen Kommentar