svm.SVC向量机分类基础代码

from sklearn.svm import SVC  
import numpy as np  
X= np.array([[-1,-1],[-2,-1],[1,1],[2,1]])  #特征样本
y = np.array([1,1,2,2])  #分类标记
  
clf = SVC(kernel='linear')  #线性核函数
clf.fit(X,y)  #训练模型,自动分类

print(clf.fit(X,y))  #svc训练函数参数
print(clf.predict([[-0.8,-1]]))#测试,新样本分类
print(clf.support_vectors_) #支持向量点 
print(clf.support_) #支持向量点的索引 
print(clf.n_support_) #每个class有几个支持向量点 

import matplotlib.pyplot as plt
plt.scatter(X[:,0],X[:,1],c=np.array([1,1,2,2]))#样本散点图

w=clf.coef_  #x,y系数
a=-w[:,0]/w[:,1] #斜率,w0x + w1y + b =0
xx=np.linspace(-2,2)
yy=a * xx - clf.intercept_[0] / w[:,1]#截距clf.intercept_[0]
plt.plot(xx,yy,'k--')#绘制超平面
  
b = clf.support_vectors_[0]#下支持向量点坐标
yy_down = a * xx + (b[1] - a * b[0])
#y = ax + b,斜率同上,已知点,求b
b = clf.support_vectors_[-1]#上支持向量点坐标
yy_up = a * xx + (b[1] - a * b[0])
plt.plot(xx,yy_down,'r-')#绘制直线
plt.plot(xx,yy_up,'g-')
svm.SVC向量机分类基础代码_第1张图片

你可能感兴趣的:(python机器学习)