SVM算法——人脸识别

SVM算法——人脸识别


from sklearn import svm
import numpy as np
import pylab as pl

np.random.seed(0)#随机方法每次结果不变,参数填入0
x = np.r_[np.random.randn(20,2)-[2,2],np.random.randn(20,2)+[2,2]]
y = [0]*20 + [1]*20

print(x)
print(y)
clf = svm.SVC(kernel = 'linear')
clf.fit(x,y)

w = clf.coef_[0]#用clf.coef_[0]得到 w1 * x + w2 *y + w3 = 0方程中的w0和w1
a = -w[0] / w[1]
xx = np.linspace(-5,5)#从-5到5随机生成n个数(-5.  -4.18367347 -3.97959184 .... 5)
yy = a * xx - (clf.intercept_[0]) / w[1] #用clf.intercept_[0]得到 w0 * x + w1 *y + w2 = 0方程中的w2


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])


pl.plot(xx,yy,'k-')#实线画线
pl.plot(xx,yy_up,'k--')#虚线画线
pl.plot(xx,yy_down,'k--')#虚线画线

pl.scatter(clf.support_vectors_[:,0],clf.support_vectors_[:,1],
           s=80,facecolors='red')#将支持向量特殊标记,直径80,颜色为红色
print(clf.support_vectors_)

pl.scatter(x[:,0],x[:,1],c=y,cmap=pl.cm.Paired)#将所有点标记出来
pl.axis('tight')
pl.show()

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值