Як можна належним чином застосувати перехресну перевірку в контексті вибору параметрів навчання для векторних машин підтримки?


9

Чудовий пакет libsvm надає інтерфейс python та файл "easy.py", який автоматично шукає параметри навчання (вартість та гамма), які максимально підвищують точність класифікатора. У межах заданого кандидатом набору параметрів навчання точність функціонує шляхом перехресної перевірки, але я відчуваю, що це підриває мету перехресної перевірки. Тобто, якщо самі параметри навчання можуть бути обрані способом, який може спричинити перенавантаження даних, я вважаю, що більш відповідним підходом було б застосувати перехресну перевірку на рівні самого пошуку: виконати пошук на наборі даних про навчання, а потім оцінити граничну точність SVM, отриману в результаті остаточно обраних параметрів навчання, шляхом оцінки в окремому наборі даних тестування. Або я щось тут пропускаю?

Відповіді:


10

Якщо ви дізнаєтесь гіпер-параметри у повних даних про навчання, а потім перехреслите, ви отримаєте оптимістично упереджену оцінку результативності, тому що дані тесту в кожній складці вже були використані при встановленні гіпер-параметрів, тому гіпер- обрані параметри вибираються частково, оскільки вони відповідають даним у тестовому наборі. Введений таким чином оптимістичний ухил може бути несподівано великим. Див. Каулі та Талбот, "Про перевиконання у виборі моделі та наступних зміщеннях вибору при оцінці продуктивності", JMLR 11 (липень): 2079-2107, 2010.(Особливо розділ 5.3). Найкраще робити це вкладена перехресна перевірка. Основна ідея полягає в тому, що ви перехрещуєте весь метод, що використовується для генерування моделі, тому трактуйте вибір моделі (вибираючи гіперпараметри) як просто частину процедури підгонки моделі (де визначаються параметри), і ви не можете перейти занадто далеко не так.

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


Приємна довідка!
Андрій

У другому абзаці, як би ви включили і вибір функції? Було б нормально: i) робити оптимізацію гіпер параметрів, як ви сказали вище (отримання оптимальних гіпер параметрів); ii) запустити вибір функції в іншому раунді перехресної перевірки, щоб отримати набір найкращих предикторів (вибір функції виконується на даних, що розділяються на навчальні набір для тренінгу та валідації з використанням будь-якого методу перекомплектування, який використовується при оптимізації гіпер параметрів). iii) підготуйте модель із найвищим гіперпараметром та головним прогноктором, встановленим на повних даних про навчання. Тест на окремому тестовому наборі.
sma

щоб бути трохи більш зрозумілим на ii) запустити вибір функції в іншому раунді перехресної перевірки, щоб отримати набір найкращих прогнозів (дані тренінгу розбиваються на субтренірування та набір валідації методом перекомпонування, який використовується в оптимізації гіперпараметрії. потім вибір функції запускається на віднімання даних).
sma

З іншого боку, чи можна зробити вибір функції спочатку за допомогою перехресної перевірки, щоб отримати набір найпопулярніших функцій, а потім виконати налаштування гіперпараметрів будь-яких моделей, що представляють інтерес, використовуючи верхній набір функцій (як вище в перехресній валідації)? Тоді тренуйте моделі з їх оптимальними гіпер-параметрами на повних даних тренувань лише з уже визначеним набором основних характеристик, і тестуйте на окремому тестовому наборі?
sma

0

Я не думаю, що перехресне підтвердження не застосовується у випадку LIBSVM, оскільки це робиться на рівні даних тестування. Все, що він робить, - перехресне підтвердження k-кратного пошуку та пошук найкращого параметра для ядра RBF. Дайте мені знати, що ви не згодні.


Вибір гіпер-параметрів ні в якому разі не повинен включати дані тесту, оскільки це призведе до оптимістично упередженої оцінки ефективності. По суті, вибір гіпер-параметрів слід розглядати як невід'ємну частину пристосування SVM, тому процедура тестування також повинна перевірити помилку через вибір гіпер-параметрів. Дивіться свою статтю, на яку я посилаюсь у своїй відповіді на питання (це відкритий доступ).
Дікран Марсупіал
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.