Играя с набором данных Boston Housing Dat и RandomForestRegressor
(с параметрами по умолчанию) в scikit-learn, я заметил кое-что странное: средний балл перекрестной проверки уменьшился, когда я увеличил число сгибов выше 10. Моя стратегия перекрестной проверки была следующей:
cv_met = ShuffleSplit(n_splits=k, test_size=1/k)
scores = cross_val_score(est, X, y, cv=cv_met)
... где num_cvs
был изменен. Я настроил test_size
на 1/num_cvs
зеркальное отображение поезда / теста разделенного размера k-кратного резюме. По сути, я хотел что-то вроде k-fold CV, но мне также нужна была случайность (отсюда и ShuffleSplit).
Это испытание было повторено несколько раз, а затем были составлены средние оценки и стандартные отклонения.
(Обратите внимание, что размер k
обозначен областью круга; стандартное отклонение по оси Y.)
Соответственно, увеличение k
(от 2 до 44) приведет к краткому увеличению балла, за которым последует неуклонное снижение по мере k
увеличения (более чем в 10 раз)! Во всяком случае, я ожидаю, что больше тренировочных данных приведет к незначительному увеличению оценки!
Обновить
Изменение критериев оценки на абсолютную ошибку приводит к ожидаемому поведению: оценка улучшается при увеличении количества сгибов в K-кратном CV, а не при приближении к 0 (как по умолчанию « r2 »). Остается вопрос, почему показатель оценки по умолчанию приводит к низкой производительности как по средним показателям, так и по показателям ЗППП для растущего числа сгибов.