Перекрестная проверка (обобщение ошибок) после выбора модели

21

Примечание: регистр n >> p

Я читаю Элементы статистического обучения, и есть различные упоминания о «правильном» способе перекрестной проверки (например, стр. 60, стр. 245). В частности, мой вопрос заключается в том, как оценить итоговую модель (без отдельного набора тестов) с использованием k-кратного CV или начальной загрузки, когда был поиск модели? Похоже, что в большинстве случаев (алгоритмы ML без выбора встроенной функции)

  1. Шаг выбора функции
  2. Шаг выбора метапараметра (например, параметр стоимости в SVM).

Мои вопросы:

  1. Я видел, что шаг выбора функции может быть сделан, когда выбор функции сделан на всем обучающем наборе и отложен в сторону. Затем, используя k-кратное CV, алгоритм выбора признаков используется в каждом сгибе (возможно, каждый раз выбираются разные функции), и ошибка усредняется. Затем вы должны использовать выбранные функции, используя все данные (которые были выделены), для обучения окончательного режима, но использовать ошибку перекрестной проверки в качестве оценки будущей производительности модели. ЭТО ВЕРНО?
  2. Когда вы используете перекрестную проверку для выбора параметров модели, как тогда оценить производительность модели? Это тот же процесс, как № 1 выше или вы должны использовать вложенное резюме, как показано на странице 54 ( pdf ) или что-то еще?
  3. Когда вы делаете оба шага (настройка функций и параметров) ..... тогда что вы делаете? сложные вложенные циклы?
  4. Если у вас есть отдельная выборка задержки, исчезнет ли проблема, и вы сможете использовать перекрестную проверку для выбора функций и параметров (без беспокойства, поскольку ваша оценка производительности будет получена из набора задержки)?
B_Miner
источник
@ user2040 (+1) Это действительно очень хорошие вопросы! Несколько связанный с этим вопрос можно найти здесь: Выбор функции для «окончательной» модели при выполнении перекрестной проверки в машинном обучении .
CHL
@chi Спасибо, я видел этот пост. Как вы думаете, я на правильном пути с моим мыслительным процессом, по крайней мере? Кажется, что независимый набор тестов позволяет нам быть более либеральными в использовании CV для выбора функций и настройки / выбора модели. В противном случае появляются вложенные циклы, необходимые для обучения, настройки и оценки обобщения ошибок с использованием одних и тех же данных обучения.
B_Miner

Ответы:

18

Главное, что следует помнить, это то, что для перекрестной проверки, чтобы дать (почти) непредвзятую оценку эффективности, каждый шаг, связанный с подгонкой модели, также должен выполняться независимо в каждом цикле процедуры перекрестной проверки. Лучшее, что можно сделать, - это просмотреть выбор объектов, настройку мета / гиперпараметров и оптимизировать параметры как неотъемлемые части подбора модели и никогда не выполнять ни один из этих шагов без выполнения двух других.

Оптимистическая предвзятость, которая может быть вызвана отходом от этого рецепта, может быть на удивление большой, как продемонстрировали Коули и Тэлбот , где смещение, вызванное явно доброкачественным отклонением, было больше, чем разница в производительности между конкурирующими классификаторами. Хуже по-прежнему предвзятые протоколы наиболее сильно отдают предпочтение плохим моделям, так как они более чувствительны к настройке гиперпараметров и, следовательно, более склонны к чрезмерному соответствию критерию выбора модели!

Ответы на конкретные вопросы:

Процедура, описанная в шаге 1, действительна, потому что выбор признаков выполняется отдельно в каждом сгибе, поэтому перекрестная проверка выполняется для всей процедуры, используемой для подбора окончательной модели. Оценка перекрестной проверки будет иметь небольшой пессимистический уклон, поскольку набор данных для каждого сгиба немного меньше, чем весь набор данных, использованный для окончательной модели.

Для 2, так как перекрестная проверка используется для выбора параметров модели, вам необходимо повторять эту процедуру независимо в каждом из этапов перекрестной проверки, используемой для оценки производительности, в результате вы получаете вложенную перекрестную проверку.

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

Для 4 - да, если у вас есть отдельный набор задержек, тогда это даст объективную оценку производительности без необходимости дополнительной перекрестной проверки.

Дикран Сумчатый
источник
Ваш ответ на Q1. Это проблема не так ли? Очень часто мы думаем, что мы перекрестной проверки модели, в то время как на самом деле мы перекрестной проверки процедуры моделирования. Разница может быть философской, потому что когда вы записываете математику, f может обозначать модель или процедуру моделирования. Но тогда можно спросить, перекрестная проверка правильности процедуры, что мы хотим, или перекрестная проверка модели. Что ты думаешь?
Кохелет
Вы не можете провести перекрестную проверку модели, так как модель зависит от выборки данных, на которых она была обучена, как только вы подгоняете ее к другой выборке данных, это другая модель. Я действительно хотел подчеркнуть, что если вы каким-либо образом настраиваете модель для всей выборки данных (например, путем выбора функций), перекрестная проверка даст оптимистическую оценку обобщения, поскольку тестовые разделы использовались для настройки аспекты модели (т. е. используемый набор функций). НТН.
Дикран Marsupial
Я не знаю, можно ли продолжать нашу дискуссию в разделе комментариев, но пока кто-то не скажет иначе ... Да, я понимаю, что ваше мнение о резюме должно быть сделано на самом внешнем уровне, и я не возражаю против этого. На самом деле, я только что дал тот же совет своему коллеге вчера. Я просто указываю на то, что мы часто не уверены в том, что мы перекрестно проверяем. В то же время мне интересно, действительно ли мы хотим получить оценку модели, а не процедуры моделирования. Можно исправить ситуацию, если подумать, что он использует ошибку процедуры для оценки ошибки модели. Может быть, это работает.
Кохелет
Мы не можем получить прямую оценку производительности конкретной модели без внешнего набора тестов. Однако эффективность метода для создания модели является разумным показателем производительности самой модели, при условии, что весь метод подвергается перекрестной проверке. Другими словами, я согласен с резюме в вашем последнем предложении!
Дикран Marsupial
5

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

Поэтому я отвечаю, что в тех случаях, когда у вас нет реального доступа к внешнему набору данных, это разумный путь. Если у вас есть набор внешних данных, вы можете в значительной степени поехать в город, как хотите, на основной набор данных, а затем протестировать один раз на внешнем наборе данных.

user2643
источник
@ user2643: Есть ли у вас какие-либо ссылки на то, как вы создали вложенное резюме? Было ли это в той же последовательности, что и PDF, на который я ссылался в моем вопросе? Также ..... это данные маркетинговых данных случайно?
B_Miner
@ user2643 Проблема с этим подходом (который является правильным) состоит в том, что он дает только один критерий точности (классификация) или точности (регрессия); вы не сможете сказать «это те функции, которые являются наиболее интересными», поскольку, как вы сказали, они варьируются от одного раза к другому. Я работал с генетическими данными (переменными 600 тыс.), Где мы использовали 10-кратное резюме со встроенным выбором признаков по схеме перестановки (k = 1000, чтобы чувствовать себя комфортно на уровне 5%) для оценки достоверности результатов. Таким образом, мы можем сказать: «Наша модель обобщает хорошо или нет», не более того.
ЧЛ
2
Если функции варьируются от одного к другому, это означает, что для уверенной идентификации полезных функций недостаточно информации, поэтому я бы посчитал это преимуществом перекрестной проверки (так как простой взгляд на результаты одной модели может переопределить критерий выбора функции и, следовательно, вводить в заблуждение). Для проблем со многими функциями и небольшим количеством наблюдений регрессия гребня часто дает лучшую производительность, поэтому, если идентификация объектов не является ключевой целью, часто лучше не делать какой-либо выбор объектов.
Дикран Marsupial
N«п
@ user2040: извините за поздний ответ. Я создал свою собственную программную реализацию вложенного подхода CV. Поскольку мои исследования связаны с биоинформатикой, я планирую в ближайшее время представить описание программного обеспечения в журнал биоинформатики. Но это может быть использовано в любой области исследований. Если вы заинтересованы в этом, пожалуйста, дайте мне знать. goldfish1434 в yahoo dot com
user2643