SVM, змінна взаємодія та дані тренувань підходять


12

У мене є 2 загальних / більше теоретичних питання.

1) Мені цікаво, як SVM обробляють змінні взаємодії під час побудови прогнозних моделей. Наприклад, якщо у мене є дві функції f1 і f2, і ціль залежить від f1, f2, і скажімо, f1 * f2 (або якась функція h (f1, f2)), чи підходить SVM (не тільки на OOS, але навіть на дані тренувань) поліпшити, якщо включити f1, f2 та h (f1, f2) у функції, окрім просто включаючи f1 та f2? Чи взаємодіє алгоритм SVM з взаємодією функцій? Здається, це було б так, як SVM намагається створити гіперплани у просторі більш високого розміру, але не впевнений, що так хотів запитати.

2) Під час встановлення SVM на дані тренувань з урахуванням достатньої кількості функцій та пошуку оптимальних параметрів (за допомогою грубого пошуку або будь-якого іншого), SVM завжди тривіально підходить для даних тренувань? Не впевнений, чи правильно я це сформулював, але в основному, якщо в функціях є достатня дисперсія / шум, чи SVM завжди відповідає 100% навчальних даних? І навпаки, якщо SVM не відповідає 100% навчальних даних, чи означає це, що є якась інформація (або інші особливості), які впливають на цільову змінну, яка не відображається в даних?

Дякую

Невелике уточнення. Я конкретно маю на увазі SVM ядра

Відповіді:


8

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

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

Якщо ви вважаєте, що умови взаємодії, ймовірно, є важливими, тоді ви можете ввести їх у функціональний простір SVM, використовуючи поліноміальне ядро , яке дасть простір ознак, у якому кожна вісь являє собою мономаль порядку або менше, параметр впливає на відносну вагу мономенів різних порядків. Таким чином, SVM з поліномним ядром еквівалентний розміщенню поліноміальної моделі в просторі атрибутів, яка неявно включає ці взаємодії. d cK(x,x)=(xx+c)ddc

З огляду на достатню кількість функцій, будь-який лінійний класифікатор може тривіально відповідати даним. IIRC точок "загального положення" в розмірному просторі може бути розбита (розділена будь-яким довільним чином) гіперплощиною (див. Розмірність VC). Це, як правило, призведе до сильного перезбудження, і цього слід уникати. Суть максимальної класифікації маржі полягає в обмеженні цього перевиконання шляхом додавання штрафу, що означає, що досягається найбільше можливе розмежування (що вимагало б найбільшого відхилення від будь-якого прикладу навчання для створення помилкової класифікації). Це означає, що ви можете перетворити дані у дуже високий розмірний простір (де лінійна модель дуже потужна), не зазнаючи занадто великої перезміщення.n - 1nn1

Зауважте, що деякі ядра створюють нескінченний розмірний простір функцій, де гарантовано "тривіальну" класифікацію для будь-якого обмеженого зразка тренувань у загальному положенні. Наприклад, радіальне базове функціональне ядро, , де простір ознак є позитивним ортантом нескінченної розмірної гіперсфери. Такі ядра роблять SVM універсальним наближенням, який по суті може представляти будь-яку межу рішення.K(x,x)=expγxx2

Однак це лише частина історії. На практиці ми, як правило, використовуємо SVM з м'якою маржею, де обмеження маржі дозволено порушувати, і існує параметр регуляризації, який контролює компроміс між максимізацією маржі (що є штрафним строком, подібним до використовуваного в регресія хребта) та величина слабких змінних (яка схожа на втрати на навчальному зразку). Тоді ми уникаємо перенастроювання, налаштовуючи параметр регуляції, наприклад, мінімізуючи помилку перехресної валідації (або деяку прив’язку до помилки виходу-виходу), як це було б у випадку регресії хребта.

Отже, хоча SVM може тривіально класифікувати навчальний набір, він, як правило, робить це лише у випадку неправильного вибору параметрів регуляризації та ядра. Ключове значення для досягнення хороших результатів для будь-якої моделі ядра полягає у виборі відповідного ядра, а потім у налаштуванні параметрів ядра та регуляризації, щоб уникнути перевиконання або недоопрацювання даних.


Дякую Дікрану. Це було надзвичайно детально та корисно. Я думаю, що розумію відповіді на запитання. Одне швидке спостереження. Як можна вибрати вибір відповідного ядра для SVM? Це буде подібне до параметрів регуляризації / ядра (наприклад, через перехресну перевірку)? Або є якась теоретична основа для вибору? Якщо ядро ​​rbf робить SVM універсальним апроксиматором, я б здогадався, що вибір ядра є ще одним параметром, який слід настроїти, але не впевнений. Як ви, напевно, можете сказати, я в цьому досить нова.
tomas

Вибір ядра часто є хорошим способом залучення експертних знань про проблему до класифікатора, наприклад, для системи розпізнавання рукописних символів, ви, ймовірно, хочете використовувати ядро, інваріантне невеликих обертів та перекладів зображення. Вибір ядра автоматично може бути досягнутий перехресною валідацією (що я б робив) або зв'язаною помилкою залишення-виходу (що може бути виконано ефективно для SVM). Однак якщо набір даних невеликий, то вибір ядра за допомогою перехресної перевірки може бути складним через перевищення помилки перехресної перевірки.
Дікран Марсупіал

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

1

Відповіді залежать від того, використовуєте ви лінійний SVM або SVM ядра. За допомогою лінійного SVM ви використовуєте лише ті функції, які ви їм надаєте, і він не враховує взаємодії. З ядром SVM в основному ви використовуєте безліч різних функцій, залежно від того, яке ядро ​​ви вибрали. Якщо є роздільна гіперплан, тобто якщо визначає клас, де - це функції, то ви можете мати повне пристосування даних про навчання. Зазвичай ви не вказуєте функції, але даєте ядро яке пов'язане з функціями як . Знайдіть відтворення просторів Кернеля Гільберта.β я , я { 1 , 2 , . . . K }sign(i=1Kβi(x)β0)βi,i{1,2,...K}K ( x 1 , x 2 ) = K i = 1 β i ( x 1 ) β i ( x 2 )KK(x1,x2)=i=1Kβi(x1)βi(x2)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.