Support vector machine
Оновлено: 31.07.2023
Опанування алгоритмів машинного навчання - це зовсім не міф. Більшість новачків починають з вивчення регресії. Вона проста у розумінні та використанні, але чи досягає вона поставленої мети? Безумовно, ні! Тому що вас чекає набагато більше, ніж просто регресія!
Уявіть собі алгоритми машинного навчання як колекцію мечів, лез, кинджалів, стріл та іншої зброї. У вас є різноманітні інструменти, але ви повинні навчитися правильно ними користуватися. Уявіть собі "Регресію" як лезо, здатне швидко нарізати дані, але не здатне впоратися з дуже складними даними. З іншого боку, "машини опорних векторів" схожі на гострий ніж: вони працюють з крихітними наборами даних, але можуть бути сильнішими і потужнішими у розробці моделей машинного навчання на більших масивах.
SVM - це різновид керованого машинного навчання, який можна використовувати для розв'язання задач класифікації та регресії. Однак найчастіше його застосовують для розв'язання проблем категоризації. Кожен елемент даних зображується як точка в n-вимірному просторі, причому значення кожної ознаки є значенням певної координати в алгоритмі SVM. Потім ми виконуємо класифікацію, знаходячи гіперплощину, яка чітко розмежовує два класи.
Простіше кажучи, опорні вектори - це координати кожного унікального спостереження. SVM-класифікатор - це межа, яка найбільш ефективно розділяє два класи.
Гіперлітак
В основі SVM лежить принцип створення гіперплощини, яка якнайкраще розділяє набір даних на дві групи.
Точки даних, найближчі до гіперплощини, або точки набору даних, які, якщо їх видалити, змінять положення розділювальної гіперплощини, називаються опорними векторами. Тому їх можна вважати важливими компонентами збору даних.
Для класифікаційного завдання з двома характеристиками гіперплощину можна уявити як лінію, яка лінійно розділяє і класифікує набір даних.
Інтуїтивно зрозуміло, що чим далі наші точки даних від гіперплощини, тим більше ми впевнені, що вони були точно класифіковані. В результаті, ми хочемо, щоб наші точки даних були якомога далі від гіперплощини, але при цьому залишалися на правильній стороні.
Отже, коли завантажуються свіжі дані тестування, клас, який ми їм присвоюємо, визначається тим, з якого боку гіперплощини вони з'являються.
Як найкраще виявити правильну гіперплощину? Або, інакше кажучи, як найкраще розділити ці дві групи даних?
Відступ - це відстань між гіперплощиною і найближчою точкою даних з кожної колекції. Мета полягає в тому, щоб вибрати гіперплощину з якомога більшою відстанню між нею та будь-якою точкою в навчальній вибірці, що підвищує ймовірність правильної класифікації нових даних.
Але що, якщо визначеної гіперплощини взагалі не існує? Тут все може ускладнитися. Дані рідко бувають настільки чіткими, як у нашому базовому прикладі. Набір даних часто нагадує переплутані кульки, які ілюструють набір даних, що лінійно не розділяється.
Для того, щоб класифікувати набір даних, потрібно перейти від двовимірної до тривимірної перспективи. Простіше пояснити це за допомогою іншого спрощеного прикладу. Припустимо, що два набори кольорових кульок лежать на аркуші, який різко піднімають, піднімаючи кульки в повітря. Ви використовуєте простирадло, щоб розділити кульки, коли вони перебувають у повітрі. "Підйом" кульок вказує на те, що дані відображаються у вищому вимірі. Цей процес називається кернелінг.
Наш гіперлітак більше не може бути лінією, тому що ми перебуваємо в трьох вимірах. Це має бути літак. Мета полягає в тому, щоб продовжувати картографувати дані у все вищих і вищих вимірах, доки не вдасться побудувати гіперплан, який зможе їх відокремити.
Переваги та недоліки SVM
- На менших, чітких наборах даних він працює добре.
- Оскільки він використовує лише частину навчальних точок, він може бути більш ефективним.
- SVM може зайняти багато часу для навчання, тому він не підходить для великих наборів даних.
- На зашумлених наборах даних з класами, що перетинаються, він менш ефективний.
Завдання класифікації тексту, такі як присвоєння категорій, виявлення спаму та аналіз настроїв, вирішуються за допомогою SVM. Він особливо популярний у задачах розпізнавання зображень, де він найкраще розпізнає аспекти та класифікує за кольором. SVM також використовується в різноманітних додатках для розпізнавання рукописних цифр, наприклад, для автоматизації поштових відправлень.