支持向量机SVM

淺唱寂寞╮ 提交于 2020-02-25 15:58:45

1.概念

支持向量机(Support Vector Machine,SVM)是Corinna Cortes和Vapnik等于1995年首先提出的,它在解决小样本、非线性及高维模式识别中表现出许多特有的优势,并能够推广应用到函数拟合等其他机器学习问题中。 支持向量机,其含义是通过支持向量运算的分类器。其中“机”的意思是机器,可以理解为分类器。

机器学习的一般框架 训练集-》提取特征向量-》结合一定算法-》得到结果

2.SVM

如下几种核函数:

3. 使用

import numpy as np
import matplotlib.pyplot as plt 
from sklearn import svm
from sklearn.datasets import make_blobs

#创建50个数据点,让他们分为两类
X,y=make_blobs(n_samples=50,centers=2,random_state=6)
#创建一个线性内核的支持向量机模型
clf = svm.SVC(kernel='rbf',C=100)
clf.fit(X,y)
plt.scatter(X[:,0],X[:,1],c=y,s =30,cmap=plt.cm.Paired)
ax = plt.gca()
xlim= ax.get_xlim()
ylim= ax.get_ylim()

#生成两个等差数列
xx= np.linspace(xlim[0],xlim[1],30)
yy= np.linspace(ylim[0],ylim[1],30)
YY,XX = np.meshgrid(yy,xx)
xy = np.vstack([XX.ravel(),YY.ravel()]).T
Z= clf.decision_function(xy).reshape(XX.shape)
ax.contour(XX,YY,Z,colors='k',levels=[-1,0,1],alpha = 0.5, linestyles=['--','-','--'])
ax.scatter(clf.support_vectors_[:,0],clf.support_vectors_[:,1],s=100,linewidth=1,facecolors= 'none')
plt.show()

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!