Настройка гиперпараметров и оценка с использованием перекрестной проверки - PullRequest
0 голосов
/ 21 апреля 2020

У меня возникли проблемы с пониманием стандартного способа использования перекрестной проверки для настройки и оценки гиперпараметра. Я пытаюсь сделать 10-кратное резюме. Что из следующего является правильным способом?

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

  2. Другой способ, который я нашел, - это сначала разбить данные на поезд и набор тестов, а затем выполнить только перекрестную проверку на тренировочном наборе. Затем оценили бы с помощью testset. Однако, насколько я понимаю, это подорвало бы всю концепцию перекрестной проверки, поскольку идея, лежащая в ее основе, заключается в том, чтобы быть независимой от разделения, верно?

  3. Наконец, мой руководитель сказал мне, что Я бы использовал восемь раз для обучения, один для оценки гиперпараметра и один для тестирования (и, следовательно, оценки). Однако я не смог найти никаких материалов, где использовался этот подход. Это стандартная процедура или я просто что-то не так понял?

1 Ответ

1 голос
/ 21 апреля 2020

в целом вы можете разделить ваши данные на 3 набора.

  • тренировочный набор
  • проверочный набор
  • испытательный набор

Испытательный набор:
Испытательный комплект является самым простым Чтобы объяснить.
После того, как вы создали свой набор тестов (15-30% данных). Вы храните этот набор данных где-то, и вы НЕ ПРИКАСАЕТЕ этот набор данных НИКОГДА, пока не решите, что все готово.
- Причина этого проста, как только вы начинаете фокусироваться на этом наборе данных (например, чтобы увеличить AU). C или ...) тогда вы начинаете перегонять свои данные ...

То же самое относится и к набору валидации (+/-). Когда вы настраиваете свои параметры, et c. вы начинаете концентрироваться на этом наборе ... что означает, что вы больше не обобщаете. (и хорошая модель должна работать со всеми данными, а не только с набором тестов и проверок).

Как уже говорилось, теперь у вас есть только набор тренировок и проверок.

Перекрестная проверка: некоторые мотивы для использования перекрестной проверки должны иметь лучшее обобщение и представление вашей модели / данных (представьте, что некоторые особые случаи существовали только в наборе проверки и т. Д. c. + Вы не принимаете единственного решения как само собой разумеющееся. - главный недостаток, например, 10-кратной перекрестной проверки - это ... 10-кратное увеличение до конечной sh ... но это дает вам более достоверные результаты ... (например, если вы делаете 10-кратное перекрестное подтверждение проверка и ваш AU C колеблется от 80 85 75 77 81 65 ... -> тогда у вас могут возникнуть проблемы с данными ... в идеальном случае разница между AU C должна быть небольшой ...

Тем не менее ... что бы я сделал (и это также зависит от ваших ресурсов, модели, времени, размера набора данных)

  • Создание 10 случайных сгибов. (И следите за ними)

  • * 10 29 * Выполните 10-кратный поиск по сетке, если это возможно (чтобы иметь общее представление о важности каждого параметра, (вам не нужно предпринимать небольшие шаги ... Например, случайный лес имеет параметр max_features, но если вы заметили, что все модели работают меньше, если это значение равно log2, тогда вы можете просто исключить этот гиперпараметр)
  • проверить, какие гиперпараметры работали хорошо
  • выполнить 10-кратный случайный поиск или поиск по сетке в областях, которые показали хорошие результаты

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

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...