Использование вложенной перекрестной проверки

14

На странице Scikit Learn по выбору модели упоминается использование вложенной перекрестной проверки:

>>> clf = GridSearchCV(estimator=svc, param_grid=dict(gamma=gammas),
  ...                    n_jobs=-1)  
>>> cross_validation.cross_val_score(clf, X_digits, y_digits)

Два цикла перекрестной проверки выполняются параллельно: один с помощью оценщика GridSearchCV для установки гаммы, а другой с помощью cross_val_score для измерения эффективности прогнозирования оценщика. Полученные оценки являются объективными оценками прогноза на основе новых данных.

Из того, что я понимаю, clf.fitбудем использовать перекрестную проверку для определения наилучшей гаммы. В таком случае, зачем нам использовать вложенный cv, как указано выше? В примечании упоминается, что вложенный cv производит «непредвзятые оценки» оценки прогноза. Разве это не так с clf.fit?

Кроме того, я не смог получить лучшие оценки clf из cross_validation.cross_val_score(clf, X_digits, y_digits)процедуры. Не могли бы вы посоветовать, как это можно сделать?

xbsd
источник

Ответы:

18

Вложенная перекрестная проверка используется, чтобы избежать оптимистически смещенных оценок производительности, которые возникают в результате использования одной и той же перекрестной проверки для установки значений гиперпараметров модели (например, параметра регуляризации, и параметров ядра SVM) и оценка производительности. Я написал статью на эту тему после того, как был довольно встревожен величиной смещения, вызванного, казалось бы, доброкачественным сокращением, часто используемым при оценке машин ядра. Я исследовал эту тему, чтобы выяснить, почему мои результаты оказались хуже, чем у других исследовательских групп, использующих аналогичные методы для тех же наборов данных, причина оказалась в том, что я использовал перекрестную перекрестную проверку и, следовательно, не извлек выгоду из оптимистического уклона.С

GC Cawley и NLC Talbot, Чрезмерная подгонка при выборе модели и последующая систематическая ошибка выбора при оценке производительности, Journal of Machine Learning Research, 2010. Research, vol. 11, с. 2079-2107, июль 2010 г. ( http://jmlr.org/papers/volume11/cawley10a/cawley10a.pdf ).

Причины смещения с иллюстративными примерами и экспериментальной оценкой можно найти в документе, но по сути дело в том, что если критерий оценки производительности каким-либо образом используется для выбора модели, то этот выбор основан на (i) подлинное улучшение показателей обобщения и (ii) статистические особенности конкретной выборки данных, по которой оценивается критерий оценки эффективности. Другими словами, смещение возникает из-за того, что можно (слишком легко) переопределить ошибку перекрестной проверки при настройке гиперпараметров.

Дикран Сумчатый
источник
5

С удерживаемым из тестового набора clf.fitпроизводит одну объективной оценку , а вложенная перекрестная проверка с cross_val_scoreпроизводит несколько беспристрастных оценок. Преимущество вложенной перекрестной проверки заключается в лучшей оценке истинной производительности с использованием данных, которые алгоритм еще не видел. Лучшая оценка, потому что вы получаете, например, три результата теста с вложенным cv вместо одного.

Ответ на ваш второй вопрос, касающийся лучших оценок, заключается в том, что в настоящее время (v0.14) невозможно получить параметры подобранных моделей с использованием вложенного cv cross_val_score. Смотрите мой ответ здесь с примером.

tobip
источник