Jugando con el conjunto de datos de vivienda de Boston y RandomForestRegressor
(con parámetros predeterminados) en scikit-learn, noté algo extraño: la puntuación media de validación cruzada disminuyó a medida que aumentaba el número de pliegues más allá de 10. Mi estrategia de validación cruzada fue la siguiente:
cv_met = ShuffleSplit(n_splits=k, test_size=1/k)
scores = cross_val_score(est, X, y, cv=cv_met)
... donde num_cvs
fue variado. Me puse test_size
a 1/num_cvs
reflejar el comportamiento tamaño de división de tren / test de CV k veces. Básicamente, quería algo como k-fold CV, pero también necesitaba aleatoriedad (de ahí ShuffleSplit).
Este ensayo se repitió varias veces, y luego se trazaron las puntuaciones promedio y las desviaciones estándar.
(Tenga en cuenta que el tamaño de k
está indicado por el área del círculo; la desviación estándar está en el eje Y).
Consistentemente, aumentar k
(de 2 a 44) produciría un breve aumento en la puntuación, ¡seguido de una disminución constante a medida que k
aumenta más (más de ~ 10 veces)! En todo caso, ¡esperaría que más datos de entrenamiento condujeran a un aumento menor en la puntuación!
Actualizar
Cambiar los criterios de puntuación para significar un error absoluto da como resultado un comportamiento que esperaría: la puntuación mejora con un mayor número de pliegues en K-fold CV, en lugar de acercarse a 0 (como con el valor predeterminado, ' r2 '). La pregunta sigue siendo por qué la métrica de puntuación predeterminada da como resultado un rendimiento deficiente en las métricas medias y STD para un número creciente de pliegues.