Когда линейная регрессия не решает вашу проблему, пришло время для более продвинутого алгоритма, представляющего машину опорных векторов!
Предположим, вы хотите четко разделить две вещи — например, у нас есть два разных класса: капучино и черный кофе. Всякий раз, когда новый напиток подобен (независимо от его вкуса или цвета) какому-либо классу, этот напиток принадлежит к этому классу.
Мы можем нарисовать его на гиперплоскости (график ниже) следующим образом:
Представьте, что X1 — это вкус, X2 — цвет, зеленая линия (H1) не может правильно разделить напитки на два отличительных класса (где все напитки на одной стороне состоят только из одного вида напитка), синяя линия (H2) — это способны разделить напитки, но только узко способны различать каждый класс, в то время как красная линия (H3) способна разделить оба напитка с максимальной маржой.
Это то, что делает SVM, он пытается найти наибольшее разделение между каждым классом.
Хотя это звучит хорошо, что произойдет, если данные будут выглядеть так?
Есть как минимум 2 ошибочно классифицированных данных (синий квадрат между красными кружками и красный кружок между синими квадратами), где мы должны провести линию, которая разделяет оба класса?
Это то, что делает SVM мощным — мы допускаем некоторое количество ошибок, сохраняя максимально возможную маржу. Это называется мягкая маржа.
Надеюсь, это дало вам хотя бы краткое представление о том, что делает SVM, есть и другие вещи, которые вам следует изучить, такие как «Kernel Trick», поэтому я призываю вас продолжать читать.
Дальнейшее чтение
Объяснение алгоритма опорных векторов (SVM) (monkeylearn.com)