Залежність між кількістю векторів підтримки та кількістю функцій


12

Я запустив SVM проти заданого набору даних і зробив наступне спостереження: Якщо я зміню кількість функцій для побудови класифікатора, то кількість векторів підтримки в результаті також буде змінена.

Мені хотілося б знати, як пояснити такий сценарій.


Яким був тип та стиль цих додаткових рис? Де вони виглядають як подібні варіанти існуючих функцій або деякі новіші функції, які, на вашу думку, можуть мати додаткову роздільну здатність?
Філіп Оуклі

Це проблема класифікації документів, а додаткові функції - це лише слова. Я використовував unigram для створення простору функцій.
user3269

Враховуючи відповідь @ marc, яка змінила зміни, чи збільшилася кількість векторів із числом функцій, чи навпаки.
Філіп Оуклі

@Phillip, моя оригінальна відповідь була неправильною. Я думаю, що відредагована відповідь точна.
Марк Шиверс

Відповіді:


13

Якщо ви подивитесь на проблему оптимізації, яку вирішує SVM:

minw,ξ,b{12w2+Ci=1nξi}

st для всіхyi(wxib)1ξi,    ξi0,i=1,n

векторами підтримки є ті де відповідні . Іншими словами, це точки даних, які або неправильно класифікуються, або близькі до межі.xiξi>0

Тепер давайте порівняємо рішення цієї проблеми, коли у вас є повний набір функцій, з випадком, коли ви викидаєте деякі функції. Викидання функції функціонально еквівалентно збереженню функції, але додавання для функції яку ми хочемо відмовити. wj=0j

Якщо порівнювати ці дві проблеми з оптимізацією та працювати над математикою, виявляється, що між кількістю функцій та кількістю векторів підтримки немає жорсткого зв’язку. Це могло піти в будь-який бік.

Корисно подумати про простий випадок. Уявіть собі 2-тьмяний випадок, коли ваші негативні та позитивні риси згруповані навколо (-1, -1) та (1,1), відповідно, і розділяються діагональною роздільною гіперпланою з 3 векторами опори. Тепер уявіть, що ви скинете функцію y-осі, тож ваші дані тепер проектуються на вісь x. Якщо дані все ще розділяються, скажімо, на x = 0, вам, ймовірно, залишиться лише два вектори підтримки, по одному на кожній стороні, тож додавання функції y збільшить кількість векторів підтримки. Однак, якщо дані вже не розділяються, ви отримаєте щонайменше один вектор підтримки для кожної точки, що знаходиться на неправильній стороні x = 0, і в цьому випадку додавання y-функції зменшить кількість векторів підтримки.

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

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