3.3 svm预测

python代码:

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

#创建点
np.random.seed(0)
X = np.r_[ np.random.rand( 10 ,2 )*10 - [ 10,10] , np.random.rand( 10 ,2 )*10 + [ 10,10] ]
Y = [0] * 10 + [1] *10

# 训练模型
clf = svm.SVC(kernel="linear")
clf.fit(X,Y)

#获取分割超平面
w = clf.coef_ # 得到回归系数
intercept = clf.intercept_[0] # 得到截距
a = - w[0][0] / w[0][1] # 得到斜率
xx = np.linspace(-50,50) # 初始化 -5 到 5 的一个等差数列
yy = a * xx - ( intercept / w[0][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] ) # 得到最上边的超平面

#用 pylab画图
pl.plot(xx,yy)
pl.plot(xx,yy_down)
pl.plot(xx,yy_up)
pl.scatter(clf.support_vectors_[:, 0], clf.support_vectors_[:, 1],
           s=80, facecolors='none') # 初始化函数模型
pl.scatter(X[:, 0], X[:, 1], c=Y, cmap=pl.cm.Paired)
pl.axis('tight')
pl.show()

预测结果:

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值