Giocando con il Boston Housing Dataset e RandomForestRegressor
(con parametri di default) in scikit-learn, ho notato qualcosa di strano: il punteggio medio di validazione incrociata è diminuito quando ho aumentato il numero di pieghe oltre 10. La mia strategia di validazione incrociata era la seguente:
cv_met = ShuffleSplit(n_splits=k, test_size=1/k)
scores = cross_val_score(est, X, y, cv=cv_met)
... dove num_cvs
era vario. Ho impostato test_size
per 1/num_cvs
rispecchiare il comportamento di suddivisione del treno / test di k-fold CV. Fondamentalmente, volevo qualcosa di simile a k-fold CV, ma avevo anche bisogno di casualità (quindi ShuffleSplit).
Questo processo è stato ripetuto più volte e sono stati quindi tracciati i punteggi medi e le deviazioni standard.
(Notare che la dimensione di k
è indicata dall'area del cerchio; la deviazione standard è sull'asse Y.)
Coerentemente, l'aumento k
(da 2 a 44) porterebbe a un breve aumento del punteggio, seguito da una costante diminuzione man mano che k
aumenta ulteriormente (oltre ~ 10 volte)! Semmai, mi aspetto che più dati di allenamento porteranno ad un lieve aumento del punteggio!
Aggiornare
La modifica dei criteri di punteggio per indicare un errore assoluto comporta un comportamento che mi aspetto: il punteggio migliora con un numero maggiore di pieghe nel CV K-fold, anziché avvicinarsi a 0 (come per impostazione predefinita, ' r2 '). Resta da chiedersi perché la metrica del punteggio predefinito si traduca in scarse prestazioni su entrambe le metriche medie e STD per un numero crescente di pieghe.