машинное обучение — внедрение SVM для классификации без библиотеки в Stack Overflow

Я изучаю Support Vector Machine последние несколько недель. Я понимаю теоретическую концепцию, как я могу классифицировать данные на два класса. Но мне неясно, как выбрать опорный вектор и создать разделительную линию для классификации новых данных с использованием C ++.

Предположим, у меня есть два набора тренировочных данных для двух классов

введите описание изображения здесь

После построения данных я получаю следующее пространство объектов с вектором, и здесь разделительная линия также ясна.

введите описание изображения здесь

Как реализовать это в C ++ без библиотечных функций. Это поможет мне прояснить мою концепцию реализации SVM. Мне нужно четко понимать реализацию, так как я собираюсь применить SVM для анализа мнений для моего родного языка.

4

Решение

Я присоединюсь к советам большинства людей и скажу, что вам стоит подумать об использовании библиотеки. Алгоритм SVM достаточно сложен, чтобы добавить шум, если что-то не работает из-за ошибки в вашей реализации. Даже не говоря о том, как сложно сделать масштабируемую реализацию как по объему памяти, так и по времени.

Тем не менее, и если вы хотите изучить это просто как учебный опыт, то SMO, вероятно, ваш лучший выбор. Вот некоторые ресурсы, которые вы можете использовать:

Упрощенный алгоритм SMO — материал Стэнфорда PDF

Быстрое обучение машин опорных векторов — PDF

Реализация машин опорных векторов с использованием алгоритма последовательной минимальной оптимизации — PDF

Вероятно, наиболее практичное объяснение, которое я нашел, — это то, что приведено в главе 6 книги «Машинное обучение в действии» Питера Харрингтона. Сам код написан на Python, но вы должны быть в состоянии перенести его на C ++. Я не думаю, что это лучшая реализация, но она может быть достаточно хорошей, чтобы иметь представление о том, что происходит.

Код находится в свободном доступе:

https://github.com/pbharrin/machinelearninginaction/tree/master/Ch06

К сожалению, нет примера для этой главы, но многие местные библиотеки, как правило, имеют эту книгу в наличии.

1

Другие решения


По вопросам рекламы ammmcru@yandex.ru
Adblock
detector