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


16

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

Іншими словами, що це, коли ви бачите проблему з навчанням, змушує вас піти "о, я обов'язково повинен використовувати SVM для цього", а не нейромережі або дерева рішень чи щось інше?


Видалено supervised learningтег, оскільки SVM також можна використовувати в непідконтрольних навчальних проблемах .
Зорі33

Чи можете пояснити, як svm можна використовувати для непідконтрольної проблеми та який пакет реалізує її?
GeorgeOfTheRF

@ML_Pro Будь ласка, перейдіть за посиланням, яке я включив у свій коментар.
Зорі33

3
@ Dawny33, застосування SVM для непідконтрольного навчання - виняток, а не правило. SVM - це контрольований метод навчання.
AN6U5

1
@ AN6U5 Дякую за інформацію :) До речі exception, ви маєте на увазі, що це просто налаштування, а не конвенція, правда?
Зорі33

Відповіді:


7

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

До 2006 року вони були найкращим алгоритмом загального призначення для машинного навчання. Я намагався знайти папір, який порівнював багато реалізацій найвідоміших алгоритмів: svm, нейронних мереж, дерев і т. Д. Я не міг її вибачити (вам доведеться повірити мені, погано). У статті алгоритм, який мав найкращі показники, був svm, з бібліотекою libsvm.

У 2006 році Хінтон придумав глибоке навчання та нейронні мережі. Він покращив сучасний стан техніки щонайменше на 30%, що є величезним прогресом. Однак глибоке навчання отримує хороші показники лише для величезних навчальних наборів. Якщо у вас є невеликий навчальний набір, я б запропонував використовувати svm.

Крім того, ви можете знайти тут корисну інфографіку про те, коли використовувати різні алгоритми машинного навчання від scikit-learn. Однак, наскільки мені відомо, серед наукової спільноти немає згоди щодо того, якщо проблема має особливості X, Y та Z, то краще використовувати svm. Я б запропонував спробувати різні методи. Крім того, не забувайте, що svm або нейронні мережі - це лише метод обчислення моделі. Дуже важливими є також функції, якими ви користуєтесь.


1
@HoapHumaboid Я знаю про SVC та SVR і що ми можемо використовувати ядра для застосування SVM до НЛП, і мені відомо, що документи, які порівнюють SVM з іншими алгоритмами навчання ... Мені було цікаво про особливості потенційної проблеми навчання очевидно, що з ним слід вирішувати SVM. Іншими словами, що це, коли ви бачите, що проблема навчання змушує вас піти «о, я обов'язково повинен використовувати SVM для цього», а не NN або дерева рішень або щось інше
Ragnar

@Ragnar, будь ласка, дивіться мою відредаговану відповідь
hoaphumanoid

2

Припустимо, що ми перебуваємо в класифікаційній обстановці.

Для svmінженерії функцій є наріжним каменем:

  • набори повинні бути лінійно відокремленими. В іншому випадку дані потрібно перетворити (наприклад, за допомогою ядер). Це не робиться самим algo і може вибухнути кількість функцій.
  • Я б сказав, що svmпродуктивність страждає, оскільки ми збільшуємо кількість вимірів швидше, ніж інші методики (ансамбль дерев). Це пов’язано із обмеженою проблемою оптимізації, яка підтримує svms. Іноді зниження функціональних можливостей, іноді ні, і саме тоді ми не можемо реально прокласти шлях для ефективного використанняsvm
  • svmЙмовірно, буде боротьба з набором даних, де кількість функцій значно більша за кількість спостережень. Це, знову ж таки, можна зрозуміти, дивлячись на стриману оптимізаційну проблему.
  • категоричні змінні svmалгоритмом не обробляються з поля .
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.