Какие задачи обучения подходят для машин опорных векторов?

16

Какие отличительные признаки или свойства указывают на то, что определенная проблема обучения может быть решена с использованием машин опорных векторов?

Другими словами, что, когда вы видите проблему обучения, заставляет вас говорить: «О, я определенно должен использовать SVM для этого», а не нейронные сети, деревья решений или что-то еще?

Рагнар
источник
Убран supervised learningтэг, так как SVM также можно использовать в неконтролируемых задачах обучения .
Dawny33
Можете объяснить, как svm может использоваться для неконтролируемой проблемы и какой пакет ее реализует?
GeorgeOfTheRF
@ML_Pro Пожалуйста, перейдите по ссылке, которую я включил в мой комментарий.
Dawny33
3
@ Dawny33, применение SVM к обучению без учителя является исключением, а не правилом. SVM - это контролируемый метод обучения.
AN6U5
1
@ AN6U5 Спасибо за информирование :) exceptionВы имеете в виду, что это всего лишь подстройка, а не соглашение, верно?
Dawny33

Ответы:

7

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

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

В 2006 году Хинтон придумал глубокое обучение и нейронные сети. Он улучшил текущее состояние техники по крайней мере на 30%, что является огромным прогрессом. Однако глубокое обучение дает хорошие результаты только для огромных тренировочных наборов. Если у вас есть небольшой тренировочный набор, я бы предложил использовать SVM.

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

hoaphumanoid
источник
1
@HoapHumaboid Я знаю о SVC и SVR, и что мы можем использовать ядра для применения SVM к НЛП, и мне известны статьи, в которых сравниваются SVM с другими алгоритмами обучения ... Мне было интересно узнать о характеристиках предполагаемой проблемы обучения, которая могла бы сделать это очевидно, что это должно быть решено с SVM. Другими словами, что, когда вы видите проблему обучения, заставляет вас думать: «О, я определенно должен использовать SVM для этого», а не NN, деревья решений или что-то еще
Ragnar
@Ragnar, пожалуйста, смотрите мой отредактированный ответ
hoaphumanoid
2

Давайте предположим, что мы находимся в классификации классификации.

В основе конструктивной svmособенности лежит:

  • множества должны быть линейно разделимы. В противном случае данные должны быть преобразованы (например, с использованием ядер). Это не сделано самим алгоритмом и может уничтожить ряд особенностей.
  • Я бы сказал, что svmпроизводительность страдает, так как мы увеличиваем количество измерений быстрее, чем другие методологии (ансамбль дерева). Это связано с ограниченной оптимизацией, которая поддерживает svms. Иногда сокращение возможностей возможно, иногда нет, и это когда мы не можем проложить путь к эффективному использованиюsvm
  • svmвероятно, будет бороться с набором данных, где число объектов намного больше, чем количество наблюдений. Это, опять же, можно понять, взглянув на ограниченную проблему оптимизации.
  • Категориальные переменные не обрабатываются из коробки svmалгоритмом.
pincopallino
источник