Beim Herumspielen mit dem Boston Housing Dataset und RandomForestRegressor
(mit Standardparametern) beim Scikit-Lernen fiel mir etwas Seltsames auf: Der durchschnittliche Kreuzvalidierungswert nahm ab, als ich die Anzahl der Falten über 10 erhöhte. Meine Kreuzvalidierungsstrategie lautete wie folgt:
cv_met = ShuffleSplit(n_splits=k, test_size=1/k)
scores = cross_val_score(est, X, y, cv=cv_met)
... wo num_cvs
war abwechslungsreich. Ich habe test_size
auf 1/num_cvs
den Zug / Test Split Größe Verhalten von k-fach CV zu spiegeln. Grundsätzlich wollte ich so etwas wie einen k-fachen Lebenslauf, aber ich brauchte auch Zufälligkeit (daher ShuffleSplit).
Dieser Versuch wurde mehrmals wiederholt, und dann wurden Durchschnittswerte und Standardabweichungen aufgezeichnet.
(Beachten Sie, dass die Größe von k
durch die Fläche des Kreises angegeben wird; die Standardabweichung liegt auf der Y-Achse.)
Konsequent k
würde eine Erhöhung (von 2 auf 44) zu einer kurzen Erhöhung der Punktzahl führen, gefolgt von einer stetigen Verringerung, wenn sie k
weiter zunimmt (über ~ 10-fach)! Wenn überhaupt, würde ich erwarten, dass mehr Trainingsdaten zu einer geringfügigen Erhöhung der Punktzahl führen!
Aktualisieren
Das Ändern der Bewertungskriterien, um einen absoluten Fehler zu bedeuten, führt zu einem Verhalten, das ich erwarten würde: Die Bewertung verbessert sich mit einer erhöhten Anzahl von Falten im K-fachen Lebenslauf, anstatt sich 0 zu nähern (wie bei der Standardeinstellung ' r2 '). Es bleibt die Frage, warum die Standard-Bewertungsmetrik für eine zunehmende Anzahl von Falten zu einer schlechten Leistung sowohl über die Mittelwert- als auch über die STD-Metrik führt .