python svm 决策方程_python – 使用scikit-learn线性SVM提取决策边界

我有一个非常简单的1D分类问题:值列表[0,0.5,2]及其关联的类[0,1,2].我想获得这些类之间的分类界限.

调整iris example(用于可视化目的),摆脱非线性模型:

X = np.array([[x, 1] for x in [0, 0.5, 2]])

Y = np.array([1, 0, 2])

C = 1.0 # SVM regularization parameter

svc = svm.SVC(kernel='linear', C=C).fit(X, Y)

lin_svc = svm.LinearSVC(C=C).fit(X, Y)

给出以下结果:

LinearSVC正在返回垃圾(为什么?),但带有线性内核的SVC工作正常.所以我想得到边界值,你可以用图形猜测:~0.25和~1.25.

这就是我失去的地方:svc.coef_返回

array([[ 0.5 , 0. ],

[-1.33333333, 0. ],

[-1. , 0. ]])

而svc.intercept_返回数组([ – 0.125,1.666666667,1.]).

这不明确.

我一定是在傻傻丢失,如何获得这些价值观?它们似乎很容易计算,迭代x轴找到边界会很荒谬……

解决方法:

给定权重W = svc.coef_ [0]和截距I = svc.intercept_,决策边界是线

y = a*x - b

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

b = I[0]/W[1]

标签:python,scikit-learn,classification,svm

来源: https://codeday.me/bug/20190725/1530670.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值