Pull to refresh

Comments 6

Стоит еще отметить, что линейная регрессия с регуляризацией L1 хорошо работает при отборе признаков, когда их можно отсортировать по коэффициентам, которые будут отражать значимость фич для обученной модели.
Недавно мне задали вопрос на собеседовании: «в каких задачах следует применять SVM, а в каких нейронные сети».
Я так подумал и решил что в наши дни смысла в SVM особо нет. Ведь обычная полносвязная сеть с одним скрытым слоем (и margin/hinge loss) это тот же SVM, но с нелинейностью. С учетом relu, который особо не добавляет вычислительной сложности, полносвязная сеть всегда будет лучше. Т.е. за избыточнось в виде нелинейности для тех задач, в которых данные могут быть поделены линейно, мы особо лишнего не платим.

Если я ошибаюсь и есть такие задачи, где SVM будет эффективней, то буду рад услышать об этом подробней
Как насчёт one-class SVM для обнаружения аномалий? У нейронных сетей с обнаружением аномалий раньше (до этой статьи: Lukas Ruff, Nico Görnitz, Lucas Deecke, Shoaib Ahmed Siddiqui, Robert A. Vandermeulen, Alexander Binder, Emmanuel Müller, Marius Kloft:
Deep One-Class Classification. ICML 2018: 4390-4399) были проблемы с определением аномалий. В то же время, ocSVM выдаёт чёткий и понятный outlier score — расстояние до hyperplane.
SVM – линейная модель, такая как линейная/логистическая регрессия

По крайней мере, это не «вся правда», а в паре с приведённой в том же параграфе ссылкой может ввести в заблуждение:
Полезная ссылка:

sklearn.svm.SVC

Да, изначально SVM была линейной, но уже довольно давно стало ясно, что в ней можно использовать «kernel trick» с разными нелинейными ядрами, которые на некоторых задачах показывают лучший результат. Об этом можно хоть на Википедии прочитать.

В приведённом классификаторе sklearn.svm.SVC по умолчанию как раз используется нелинейное ядро из радиальных базисных функций (kernel : string, optional (default=’rbf’)). То есть, это нелинейный классификатор, в котором, кстати, нет ничего экзотического. Для линейной классификации можно использовать sklearn.svm.LinearSVC.
Sign up to leave a comment.

Articles