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 .
Antworten:
Die r ^ 2-Punktzahl ist undefiniert, wenn sie auf eine einzelne Stichprobe angewendet wird (z. B. ausgelassener Lebenslauf).
r ^ 2 ist nicht gut für die Bewertung kleiner Testsätze: Wenn ein ausreichend kleiner Testsatz bewertet wird, kann die Punktzahl trotz guter Vorhersagen weit im Negativ liegen.
Bei einer einzelnen Stichprobe kann eine gute Vorhersage für eine bestimmte Domäne schrecklich erscheinen:
Erhöhen Sie die Größe des Testsatzes (wobei die Genauigkeit der Vorhersagen gleich bleibt), und plötzlich erscheint der r ^ 2-Wert nahezu perfekt:
Wenn die Testgröße 2 Stichproben beträgt und wir zufällig 2 Stichproben bewerten, die zufällig nahe beieinander liegen, hat dies erhebliche Auswirkungen auf den r ^ 2-Score, selbst wenn die Vorhersagen recht gut sind ::
quelle