美文网首页
机器学习学习笔记--hello SVM

机器学习学习笔记--hello SVM

作者: 松爱家的小秦 | 来源:发表于2017-11-27 17:22 被阅读0次

SVM支持向量机,可以用来做分类。分割超平面。需要升维.

http://blog.csdn.net/lvhao92/article/details/50817110

以上这个例子可以很好的理解SVM

代码实现 

# coding: utf-8

print(__doc__)

import numpy as np

import matplotlib.pyplot as plt

from sklearn import svm

#创建随机点

np.random.seed(0)

X = np.r_[np.random.randn(20,2)-[2,2],np.random.randn(20,2)+[2,2]]

Y = [0] * 20 + [1] * 20

#选择内核

clf = svm.SVC(kernel='linear')

clf.fit(X,Y)

#构造超平面

w = clf.coef_[0]

a = -w[0]/w[1]

xx = np.linspace(-5,5)

yy = a*xx - (clf.intercept_[0] / w[1])

#绘制与通过的分离超平面的相似之处

#支撑向量

b = clf.support_vectors_[0]

yy_down = a * xx + (b[1]-a*b[0])

b = clf.support_vectors_[-1]

yy_up = a * xx + (b[1] - a*b[0])

#用matplotlib画图

plt.plot(xx,yy,'k-')

plt.plot(xx,yy_down,'k--')

plt.plot(xx,yy_up,'k--')

plt.scatter(clf.support_vectors_[:,0],clf.support_vectors_[:,1],s=80,facecolors='none')

plt.scatter(X[:,0],X[:,1],c=Y,cmap=plt.cm.Paired)

plt.axis('tight')

plt.show()

相关文章

网友评论

      本文标题:机器学习学习笔记--hello SVM

      本文链接:https://www.haomeiwen.com/subject/gnmdbxtx.html