ВВЕДЕНИЕ: –

Машины опорных векторов (svm) — это популярные классы алгоритмов, используемых в машинном обучении для задач классификации и регрессии. Алгоритм SVM пытается найти наилучшую гиперплоскость, которая разделяет точки данных разных классов в пространстве признаков. SVM — это мощный алгоритм, который хорошо работает как с линейно разделимыми, так и с нелинейно разделимыми данными.

РАБОТА АЛГОРИТМА SVM:-

Алгоритм SVM работает, находя оптимальную гиперплоскость, которая отделяет точки данных разных классов с максимальным запасом от обоих классов.

что такое маржа? :- Поле — это расстояние между гиперплоскостью и ближайшей точкой данных каждого класса.

Оптимальная гиперплоскость — это та, которая максимизирует запас и обеспечивает максимально точную классификацию.

НО ЧТО, ЕСЛИ ДАННЫЕ НЕ ЛИНЕЙНО РАЗДЕЛИМЫ

В случае нелинейно разделимых данных SVM использует технику, называемую трюком ядра, для преобразования пространства признаков в многомерное пространство, где данные становятся разделимыми. Функция ядра вычисляет сходство между двумя точками данных в многомерном пространстве без фактического преобразования самих точек данных.

Некоторые популярные функции ядра:

линейное ядро: линейное ядро ​​просто вычисляет внутренний продукт между двумя входными векторами в исходном пространстве признаков.

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

ядро gaussion: ядро ​​gaussion отображает входные данные в бесконечномерное пространство признаков, используя функцию gaussion.

Алгоритм SVM можно использовать как для бинарной классификации, так и для задач мультиклассовой классификации. В случае многоклассовой классификации SVM использует метод, называемый «один против одного» или «один против всех», для классификации точек данных.

РЕАЛИЗАЦИЯ:-

Алгоритм SVM прост в реализации, и многие библиотеки машинного обучения предоставляют реализацию алгоритма. Вот реализация алгоритма SVM на Python с использованием библиотеки scikit-learn:

from sklearn import svm
from sklearn.datasets import make_classification
form sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score

#Generate a random classification dataset with two features and two classes
X,y =make_classification(n_samples=100,n_features=2,n_classes=2,random_state=1)

#split the dataset into training and testing sets
X_train,X_test,y_train,t_test=train_test_split(X,y,test_size=0.3,random_state=1)

#Create an SVM classifier with a linear kernel
clf=svm.SVM(kernel='linear')

#train the classifier on the training data
clf.fit(X_train,y_train)

#predict the classes of the testing data
y_pred=clf.predict(X_test)

#calculate the accuracy of the classifier
accuracy=accuracy_score(y_test,y_pred)

Вывод:-

Алгоритм SVM — очень мощный алгоритм, используемый в машинном обучении для задач классификации. он хорошо работает как с линейно разделимыми, так и с нелинейно разделимыми данными.