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


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.