Вопрос или проблема
Цель оптимизации SVM — максимизировать расстояние между положительными и отрицательными гиперплоскостями. Но перед оптимизацией как sklearn сначала находит положительные и отрицательные опорные вектора, а значит, и гиперплоскости зазора?
Извините, если это не полный ответ, но вот что я нашел на данный момент:
Краткий ответ:
Это зависит от того, что вы используете в их API.
Развернутый ответ:
Согласно документации sklearn по SVM, они используют библиотеку libsvm для реализации своих классификаторов для SVC и NuSVC. В этих случаях это основано на библиотеке libsvm, которая реализована с использованием этой статьи. Статья длинная, так что я не буду ее излагать, но вам следует ее прочитать для дальнейшего понимания. Для других реализаций у них есть CalibratedClassifierCV. Вы можете прочитать их исходный код здесь, если хотите узнать точную реализацию. (Подсказка: Удерживайте Ctrl и нажмите на метод, чтобы увидеть его реализацию. У некоторых мышей сбоку есть кнопка для возврата на страницу, если вы тоже хотите вернуться.)
Надеюсь, это поможет!
В алгоритме машины опорных векторов (SVM) цель оптимизации заключается в нахождении гиперплоскости, которая максимально разделяет положительные и отрицательные примеры в обучающих данных. Это известно как гиперплоскость максимального зазора.
Ссылка: https://vitalflux.com/classification-model-svm-classifier-python-example/
Чтобы найти эту гиперплоскость, алгоритм SVM сначала определяет примеры в обучающих данных, которые находятся ближе всего к границе принятия решений (концептуальная линия, поверхность или гиперплоскость, которая делит входное пространство на различные регионы или классы), известные как опорные вектора. Затем гиперплоскость определяется опорными векторами, а расстояние между гиперплоскостью и ближайшими опорными векторами называется зазором. Цель оптимизации SVM заключается в максимизации этого зазора, чтобы гиперплоскость была максимально удалена от опорных векторов.
В scikit-learn алгоритм SVM использует квадратичный программный решатель для нахождения гиперплоскости максимального зазора. Этот решатель итеративно улучшает гиперплоскость, корректируя веса и параметры смещения модели с целью максимизации зазора между положительными и отрицательными примерами. Опорные вектора идентифицируются в процессе оптимизации, и полученная гиперплоскость используется для прогнозирования новых данных.
https://www.researchgate.net/figure/Support-vector-machine-The-optimization-problem-of-Eq-1-may-be-modified-to-min-w-w_fig1_330833082
https://jeremykun.com/2017/06/05/formulating-the-support-vector-machine-optimization-problem/
Ответ или решение
Вопрос о том, как библиотека Scikit-Learn (sklearn) при использовании метода опорных векторов (Support Vector Machine, SVM) определяет начальную гиперплоскость до оптимизации, является важным для понимания работы алгоритма. Давайте рассмотрим процесс более подробно.
### Введение в работу SVM в sklearn
Библиотека sklearn использует библиотеку libsvm для реализации методов классификации через SVC и NuSVC. Данная библиотека основана на научной работе, в которой рассматриваются основы и принципы работы с опорными векторами.
### Поиск начальной гиперплоскости
#### 1. Инициализация
На начальном этапе задача SVM заключается в том, чтобы определить гиперплоскости, которые будут использоваться для вычисления максимальной ширины полосы (margin) между различными классами. Это делает метод SVM актуальным для задач классификации, где важно разделение классов.
#### 2. Выбор начального набора данных
На этом этапе алгоритм идентифицирует точки, называемые опорными векторами. Эти точки находятся наиболее близко к гиперплоскости и формируют границы между классами. Однако эти опорные вектора не определяются до оптимизации, а печально известное “начальное приближение” может состоять из случайного или из какого-либо аналитически простого предположения.
#### 3. Использование оптимизационного подхода
Алгоритм обращения к квадратичной программе (quadratic programming) используется для нахождения точки максимального разделения (максимального расстояния между положительными и отрицательными гиперплоскостями). Этот процесс начинается с появления приближенных гиперплоскостей, после чего проводится их уточнение. Все это сопровождается регуляцией весов и смещения.
### Оптимизация и обучение
В процессе оптимизации sklearn использует итеративные методы для улучшения точности гиперплоскости. Основное ее предназначение – максимизация расстояния до ближайших опорных векторов, что и обеспечивает высокую точность модели.
### Заключение
Подводя итоги, sklearn в своей реализации метода SVM комбинирует использование теоретических основ и практических подходов для нахождения стартовой гиперплоскости, начальные допущения которой служат основой дальнейшего оптимизационного процесса. Это не только повышает точность модели, но и ускоряет процесс обучения.
Для дальнейшего изучения, рекомендуется изучение исходников libsvm или чтение предложенной научной литературы, по которой была адаптирована реализация в sklearn.
В заключение отмечу, что понимание таких процессов критично для грамотного использования SVM в практике и разработки более эффективных классификаторов.