Випадки використання RBF SVM (проти логістичної регресії та випадкового лісу)


10

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

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

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

Відповіді:


8

Я спробую відповісти на це питання поєднанням опублікованих доказів, особистого досвіду та міркувань.

А) Опубліковані докази.

Єдиний мені документ, який допомагає відповісти на питання, - це Delgado et al. 2014 - Чи потрібні сотні класифікаторів, щоб вирішити проблеми класифікації реального світу? - JMLR, який запускає сотні різних алгоритмів та реалізацій на 121 наборі даних UCI. Вони вважають, що хоча RBF SVM не є «найкращим» алгоритмом (це випадкові ліси, якщо я правильно пам’ятаю), він входить у топ-3 (або 5).

Якщо ви вважаєте, що їх вибір наборів даних є "хорошим зразком" проблем у реальному світі, то SVM, безумовно, є алгоритмом, який слід спробувати в нових проблемах, але спершу слід спробувати випадковий ліс!

Обмеження узагальнення цього результату полягає в тому, що набори даних майже всі високі та худі (n >> p), не дуже рідкі - що, як я припускаю, повинно бути більшою проблемою для РФ, і не дуже великою (і n, і p).

Нарешті, все-таки на опублікованих даних я рекомендую два сайти, які порівнюють різні реалізації випадкових лісів:

Б) Особистий досвід.

Я вважаю, що такі документи, як Delgado et all, дуже важливі для спільноти машинного навчання, тому я намагався повторити їх результати в деяких інших умовах. Я застосував 15 різних алгоритмів на 100+ бінарних наборах даних (із набору даних Delgado). Я також думаю, що я був більш обережним у підборі гіперпараметрів, ніж вони були.

Мої результати полягають у тому, що SVM був «найкращим алгоритмом» (середній ранг 4,9). Я вважаю, що SVM передав RF, тому що в початковому наборі даних було багато багатокласових проблем, про які я обговорюватиму в частині спекуляції - повинна бути проблемою для SVM.

EDIT (черв. / 16):

Але РФ - це набагато швидше, і це був другий найкращий алгоритм (середній ранг 5.6), за яким йдуть gbm (5.8), nnets (7.2) тощо). Я не пробував стандартної логістичної регресії у цих проблемах, але спробував еластичну сітку (L1 та L2, регульовану LR), але вона не спрацювала добре (середній ранг 8,3) ~

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

Документ доступний за посиланням http://arxiv.org/abs/1606.00930 Виявляється, після повного аналізу РФ і SVM майже рівноцінні за очікуваною швидкістю помилок, і SVM є найшвидшим (на мій подив !!). Я більше не наголошую на тому, щоб рекомендувати РФ (на швидкості).

Тож мій особистий досвід полягає в тому, що хоча SVM може отримати вам додатковий біт точності, майже завжди кращим вибором є використання RF.

Також для великих проблем може бути неможливим використання пакетного розв'язувача SVM (я ніколи не використовував онлайн-розв'язувач SVM, такий як LASVM чи інші).

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

В) Спекуляція

Я ніколи серйозно не працював над проблемами багатокласовості, але моє відчуття, що SVM не так добре в них. Проблема полягає не в тому, що між рішеннями один-один-один або один-всі-всі, а в тому, що всі впровадження, які я знаю, будуть використовувати однакові гіперпараметри для всіх класифікаторів (OVO або OVA). Вибір правильних гіперпараметрів для SVM настільки дорогий, що жодна з найпоширеніших реалізацій, про які я знаю, не здійснить пошук для кожного класифікатора. Я припускаю, що це проблема для SVM (але не проблема для РФ !!).

Тоді знову за багатокласними проблемами я б поїхав прямо до РФ.


Чудова відповідь! Чи є у вас випадковий запис у блозі, зошит чи сценарій щодо вашої копії експерименту «Дельгадо та ін»? (Налаштування параметрів, масштабування змінних зазвичай такі ж важливі, як і вибір алгоритму, тому без цього важко висловити сильні претензії щодо переваги алгоритму.)
Piotr Migdal

@PiotrMigdal - немає публікації в блозі / зошиті - все ще пише статтю. Гіперпараметричний пошук склав: RBF C = 2-5,20,25,210,2152-15,2-10.5,2-6,2-1.5,230,5,1,2p

0

У мене немає достатніх привілеїв, щоб можна було писати коментарі, тому я просто надам тут свої вкладення / спостереження як відповідь.

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

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

Ще одна річ, яку я помітив, - це те, що прокляття розмірності не впливає на SVC так сильно, як інші методи моделювання. Іншими словами, якщо я додаю більше термінів у модель, інші методи починають погано виконуватись на тестовому (або, триманні) наборі порівняно з навчальним набором. Але не так багато, коли я використовую SVC. З цієї причини, якщо парсимент моделі не є вашим пріоритетом, то SVC може бути кращим варіантом, оскільки ви можете кинутись в багато термінів, не маючи стільки перенапруги, як інші методи.

Однією з проблем, які у мене є у SVC, є те, що він не передбачає неявно міри (як передбачувана ймовірність), щоб мати можливість ранжирувати порядок спостережень. Ви можете використовувати Платт-Масштабування (реалізований у пакет sklearn.svm на Python), але я помітив деякі невідповідності. (Я можу поділитися деталями, якщо хтось зацікавлений.)

Не впевнений, чи справді це відповідає на ваше запитання, але це мої спостереження. Сподіваюся, що це допомагає.


0

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

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

У налаштуваннях без змін, ви можете врахувати, наскільки важко реалізувати модель, поставити її на виробництво, зробити прогноз, інтерпретувати, пояснити її менеджеру тощо.

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

Ще думаю, перехресне підтвердження може бути дуже дешевим і швидким для SVM, особливо LOOCV. Оскільки лише декілька зразків є векторами підтримки (не завжди), вам не доведеться перекваліфікувати свій класифікатор у кожному складі, але лише тоді, коли дані, які зараз є у тестовому наборі, були векторами підтримки. Це також може полегшити навчання в Інтернеті.

Крім того, може бути дешевше зберігати вектори підтримки, ніж повноцінні дерева.

Часто краще скласти імовірнісну модель, ніж класифікатор. Отже, зробіть модель спочатку, а рішення пізніше. У такому випадку переважним буде логістична регресія. І ви все одно можете використовувати ядра та регуляризацію, щоб змусити себе вести себе так, як хочете. Також ви не будете використовувати РФ для відповіді на такі питання, як: виправлення віку, способу життя, статі та освіти, чи не вживає вживання алкоголю шанс фарбування інфаркту?

Деякий додатковий ресурс, який мені здався цікавим: https://www.quora.com/What-are-the- prednosti-of-different-classification-algorithms http://videolectures.net/solomon_caruana_wslmw/

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