Рубрики
Без рубрики

[Однонародный учебник] Поддержка векторных машин сделаны простыми

Самое простое введение в поддержку векторных машин (SVM) в Интернете. [Бонусный чит-лист]

Автор оригинала: Chris.

Поддержка векторных машин (SVM) набрала огромную популярность в последние годы. Причиной является их прочная классификационная характеристика – даже в высокомерных пространствах: удивительно, что SVMS даже работает, если есть больше измерений (особенности), чем элементы данных. Это необычно для алгоритмов классификации из-за проклятия размерности – с увеличением размерности, данные становятся чрезвычайно редкими, что делает его трудно для алгоритмов набора шаблонов в наборе данных. Понимание основных идей SVMS является фундаментальным шагом для стать сложным инженером по машинобукам.

До того, как я дам вам чит-лист SVMS в Python, посмотрите на следующее видео, которое кратко обобщено, как работает SVMS в Python:

Вот чит-лист, который суммирует содержание этой статьи:

Основы

Как работают алгоритмы классификации? Они используют учебные данные для поиска границы принятия решения, которые делится данные в одном классе из данных в другом классе.

Вот пример:

Предположим, вы хотите создать систему рекомендации для начинающих студентов университета. Фигура визуализирует учебные данные, состоящие из пользователей, которые классифицируются в соответствии с их навыками в двух областях: логика и творчество. Некоторые лица имеют высокие логические навыки и относительно низкое творчество, другие имеют высокое творчество и относительно низкие логические навыки. Первая группа маркируется как «компьютерные ученые», а вторая группа маркируется как «художники». (Я знаю, что есть также творческие компьютерные ученые, но давайте придерживаться этого примера на мгновение.)

Для того, чтобы классифицировать новые пользователи, модель обучения машины должна найти границу решения, которая отделяет компьютерных ученых из художников. Грубо говоря, вы проверите нового пользователя, в какой области они падают в отношении границы решения: влево или вправо? Пользователи, которые попадают в левую зону, классифицируются как компьютерные ученые, в то время как пользователи, которые попадают в правильную зону, классифицируются как художники.

В двухмерном пространстве граница решения является либо строкой, либо кривой (более высокой порядком). Первый называется «линейным классификатором», последний называется «нелинейным классификатором». В этом разделе мы будем только исследовать линейные классификаторы.

На рисунке показаны три границы решения, которые являются допустимыми разделителями данных. Для стандартного классификатора невозможно количественно оценить, какое из данных границ решений лучше – все они приводят к идеальной точности при классификации данных тренировок.

Но какова лучшая граница решения?

Поддержка векторных машин предоставляет уникальный и красивый ответ на этот вопрос. Возможно, наилучшее решение для принятия решений обеспечивает максимальный край безопасности. Другими словами, SVMS максимизирует расстояние между ближайшими точками данных и границей решения. Идея состоит в том, чтобы минимизировать ошибку новых моментов, близких к границе решения.

Вот пример:

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

Код

## Dependencies
from sklearn import svm
import numpy as np


## Data: student scores in (math, language, creativity) --> study field
X = np.array([[9, 5, 6, "computer science"],
              [10, 1, 2, "computer science"],
              [1, 8, 1, "literature"],
              [4, 9, 3, "literature"],
              [0, 1, 10, "art"],
              [5, 7, 9, "art"]])


## One-liner
svm = svm.SVC().fit(X[:,:-1], X[:,-1])


## Result & puzzle
student_0 = svm.predict([[3, 3, 6]])
print(student_0)

student_1 = svm.predict([[8, 1, 1]])
print(student_1)

Угадай: что такое выход этого кода?

Результаты

Код разрывается, как вы можете использовать технические машины поддержки в Python в своей основной форме. Массив Numpy содержит меченые данные тренировок с одной строкой на пользователя и один столбец на функцию (уровень навыков в математике, языке и творчестве). Последний столбец – это метка (класс).

Поскольку у нас есть трехмерные данные, векторная машина для поддержки отделяет данные с использованием двумерных плоскостей (линейный сепаратор), а не одномерные линии. Как видите, также можно отделить три разных класса, а не только два, как показано в приведенных выше примерах.

Сам один вкладыш проста: сначала создаю модель с помощью конструктора класса SVM.SVC (SVC подставки для поддержки векторной классификации). Затем вы вызываете функцию FIT, чтобы выполнить тренировочное обучение на основе ваших меченных учебных данных.

В результатах части кодового фрагмента мы просто называем прогнозную функцию на новые наблюдения:

Поскольку stuction_0 имеет навыки, и, и машина для вектора поддержки предсказывает, что этикетка «Art» соответствует навыкам этого студента. Точно так же Student_1 имеет навыки, и. Таким образом, векторная машина поддержки предсказывает, что этикетка «компьютерная наука» соответствует навыкам этого студента.

Вот окончательный вывод одноклассника:

## Result & puzzle
student_0 = svm.predict([[3, 3, 6]])
print(student_0)
# ['art']

student_1 = svm.predict([[8, 1, 1]])
print(student_1)
## ['computer science']

Куда пойти отсюда?

Этот учебник дает вам самый быстрый и самый краткий способ начать с поддержки векторных машин (SVMS). Вы не найдете более простых способов на весь интернет.

Чтобы пойти только один шаг дальше в кроличье дыру, и узнать больше о нюансах и деталях SVMS, Прочитайте эту отличную статью Отказ

Чтобы реализовать SVMS в Python, вам сначала нужно иметь солидный фонд Python. Чтобы помочь вам повысить свои навыки Python с нуля до промежуточного уровня, я написал этот тщательно созданный учебник Python «Porma Raw Proke Python», который на 100% на основе обучения на основе головоломки – который научно доказан, что является одним из самых эффективных обучений. Методы:

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

Чтобы помочь студентам достичь более высоких уровней успеха Python, он основал сайт программирования образования Finxter.com Отказ Он автор популярной книги программирования Python One-listers (Nostarch 2020), Coauthor of Кофе-брейк Python Серия самооставленных книг, энтузиаста компьютерных наук, Фрилансера и владелец одного из лучших 10 крупнейших Питон блоги по всему миру.

Его страсти пишут, чтение и кодирование. Но его величайшая страсть состоит в том, чтобы служить стремлению кодер через Finxter и помогать им повысить свои навыки. Вы можете присоединиться к его бесплатной академии электронной почты здесь.