Maison  >  Article  >  développement back-end  >  Python implémente la classification des machines à vecteurs de support (SVM) : explication détaillée des principes de l'algorithme

Python implémente la classification des machines à vecteurs de support (SVM) : explication détaillée des principes de l'algorithme

WBOY
WBOYavant
2024-01-24 09:33:051034parcourir

支持向量机(SVM)算法原理 Python实现支持向量机(SVM)分类

Dans l'apprentissage automatique, la machine à vecteurs de support (SVM) est souvent utilisée pour la classification des données et l'analyse de régression. Il s'agit d'un modèle d'algorithme discriminant basé sur la séparation des hyperplans. En d’autres termes, étant donné les données d’entraînement étiquetées, l’algorithme génère un hyperplan optimal pour classer de nouveaux exemples.

Le modèle d'algorithme de machine à vecteurs de support (SVM) représente les exemples sous forme de points dans l'espace. Après la cartographie, les exemples de différentes catégories sont divisés autant que possible. En plus d'effectuer une classification linéaire, les machines à vecteurs de support (SVM) peuvent effectuer efficacement une classification non linéaire, en mappant implicitement leurs entrées dans un espace de fonctionnalités de grande dimension.

Que font les machines à vecteurs de support ?

Étant donné un ensemble d'exemples de formation, chaque exemple de formation est marqué d'une catégorie selon 2 catégories, puis un modèle est construit via l'algorithme de formation de la machine à vecteurs de support (SVM), et de nouveaux exemples sont attribués à ces 2 catégories, donc cela devient un classificateur linéaire binaire non probabiliste.

Python implémente la classification des machines à vecteurs de support (SVM)

Prérequis : Numpy, Pandas, matplot-lib, scikit-learn

Tout d'abord, créez l'ensemble de données

from sklearn.datasets.samples_generator import make_blobs
X,Y=make_blobs(n_samples=500,centers=2,
random_state=0,cluster_std=0.40)
import matplotlib.pyplot as plt
plt.scatter(X[:,0],X[:,1],c=Y,s=50,cmap='spring');
plt.show()

Classification

xfit=np.linspace(-1,3.5)
plt.scatter(X[:,0],X[:,1],c=Y,s=50,cmap='spring')
for m,b,d in[(1,0.65,0.33),(0.5,1.6,0.55),(-0.2,2.9,0.2)]:
yfit=m*xfit+b
plt.plot(xfit,yfit,'-k')
plt.fill_between(xfit,yfit-d,yfit+d,edgecolor='none',
color='#AAAAAA',alpha=0.4)
plt.xlim(-1,3.5);
plt.show()

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer