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()
来源:oschina
链接:https://my.oschina.net/pengchanghua/blog/3161564