Перехресне підтвердження та оптимізація параметрів


14

У мене є питання щодо оптимізації параметрів, коли я використовую 10-кратну перехресну перевірку.

Я хочу запитати, чи слід виправляти параметри під час тренінгу моделі кожного зразків, тобто (1) вибирати один набір оптимізованих параметрів для середньої точності кожного згину.

або

(2) Я повинен знайти оптимізований параметр для кожної складки, а потім кожен склад використовує різні оптимізовані параметри для тренування своєї моделі, потім, відповідно, тестуйте на тестових даних складки і, нарешті, середню точність кожної складки в результаті?

Який з них є правильним методом перехресної перевірки? Дуже дякую.


На це запитання: stats.stackexchange.com/questions/1826/… є дві чудові відповіді (найвищий бал), я думаю, вони могли б допомогти вам у вашому питанні. Друге - саме те, що ви хочете. ЗАБУДОВА: Я хотів би написати це як коментар, але я не можу цього зробити, тому я відповів на це.
Август

Відповіді:


11

Давайте спершу розрізнемо два набори параметрів: параметри моделі (наприклад, ваги для ознак регресії) та параметри алгоритму навчання (та гіперпараметри). Метою перехресної перевірки є визначення параметрів навчання, які добре узагальнюють по всіх зразках сукупності, з яких ми дізнаємось у кожному складі.

Більш конкретно: ми в глобальному масштабі шукаємо простір за параметрами навчання, але всередині кожної складки ми фіксуємо параметри навчання та вивчаємо параметри моделі. Результатом мають стати параметри навчання, які в середньому дають найкращі показники у всіх складових. Потім ми можемо використовувати їх для тренування моделі для всього набору даних.


Вибачте, параметр, про який я питав, - це гіперпараметри, як ви сказали.
Кевін

Такі як параметри c і g в libSVM. Отже, я повинен використовувати ті ж c і g, щоб тренувати модель кожної складової, як метод (2), про який я згадував вище, а потім вибрати найкращу? Велике спасибі.
Кевін

2
Вище (1) і (2) мені не було зрозуміло, тому я не звертався до них прямо. Ви повинні шукати простір c & g, який максимально збільшує показник вашої задачі, коли усереднюється по складках. Таким чином, ви встановлюєте c & g на якесь значення, запускаєте процедуру тренувань та тестування на всі складки, середнє їх значення, зберігайте цей бал, змінюйте c або g та повторюйте. У кінцевому підсумку ви знайдете найкращі розробки та зможете тренувати остаточну модель на всіх своїх даних.
Джоель

Велике спасибі. Я намагаюся узагальнити відповіді. Дані розділили на 10 разів: fold-1: (train1, test1) ... fold-10: (train10, test10) Потім використовуйте (c1, g1) для тренування та тестуйте на fold-1 to fold-10, середня точність всіх складок. Спробуйте інший (c2, g2), щоб виконати той самий процес ... повторюйте, поки я не знайду найкращого (c, g). І найкраща середня точність (c, g) буде результатом моєї десятикратної перехресної перевірки.
Кевін

1
Звучить правильно ...
Joel

16

Я вважаю, що прийнята на даний момент відповідь є неповним нещасним чином. Я не згоден із вироком

Метою перехресної перевірки є визначення параметрів навчання, які добре узагальнюють по всіх зразках сукупності, з яких ми дізнаємось у кожному складі.

Це дійсно одне дуже важливе застосування перехресної перевірки, але не єдине. Зазвичай вам потрібно зробити дві речі:

  1. Створіть найкращу модель, яку можете
  2. Складіть точне враження, наскільки добре воно працює

Тепер, щоб виконати ціль 1, залежно від вашого алгоритму, вам може знадобитися налаштування деяких гіперпараметрів, і це дійсно часто робиться шляхом перехресної перевірки. Але це ще не допомагає вам в задачі 2. Для цього вам потрібно в основному вкласти перехресну перевірку, як це:

  • Відокремте цілі дані в п ять
  • Для кожної сторінки знову складіть окремі дані тренувань у підпапки
  • Скористайтеся перехресною валідацією на підпапках, щоб дізнатися хороші гіперпараметри
  • За допомогою цих гіперпараметрів побудуйте модель на тренувальних даних цієї складки
  • Перевірте модель на даних тесту
  • Повторіть наступну складку

Щоб побудувати хорошу модель, вам просто потрібна внутрішня перехресна перевірка. Вам все одно доведеться це зробити, щоб отримати гарну модель. Але для отримання хорошої оцінки продуктивності вашої моделі потрібно виконати весь процес побудови моделі всередині схеми перехресної перевірки. Сюди також входять етапи, такі як імпутація тощо.


1
Еріку, ти можеш надати нам довідку про те, як це зробити?
чао

Привіт @Erik, таким чином загальний порядок аналізів був би (1) Знайти оптимальні параметри настройки з перехресною валідацією, (2) Перевчити модель (з отриманими параметрами настройки) для всього навчального набору даних для отримання параметрів моделі та (3 ) Дивіться загальну оцінку ефективності цього методу за допомогою вкладеної перехресної перевірки? Мене бентежить те, що в процесі резюме нестеросу можуть бути обрані різні гіперпараметри, тож вкладений CV не буде спеціально досліджувати загальну ефективність параметрів гіперпараметра / моделі, які ми отримали вище?
Мішель

1
Я трохи запізнююся на розмову, але хотів би зазначити, що цей метод також називається "вкладеним" або "подвійним перехресним підтвердженням", і ось приємне пояснення Тома Фірна та приклад з кодом у scikit- вивчити документацію
MD004
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.