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
總結
以上是生活随笔為你收集整理的python svm 决策方程_python – 使用scikit-learn线性SVM提取决策边界的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 我的新书终于写完了。
- 下一篇: 快手公司厕所装坑位计时器,网友:再也不能