日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

机器学习——python实现SVM模型w,b的查看

發(fā)布時間:2023/12/10 python 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 机器学习——python实现SVM模型w,b的查看 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

基于源代碼:《機(jī)器學(xué)習(xí)——支持向量機(jī)SVM之python實(shí)現(xiàn)簡單實(shí)例一》進(jìn)行講解

1、線性模型

這里以二特征三類,一對多策略為案例

kernel = “l(fā)inear”:線性核,參數(shù)有w,b

線性模型的決策邊界是:w0iTx0i + w1iTx1i + bi = 0

注:w0iTx0i + w1iTx1i + bi = 1和w0iTx0i + w1iTx1i + bi = -1是穿過支持向量的決策面,邊界

i的大小由類別的個數(shù)決定,i = n,說明決策函數(shù)有n個,因此查看參數(shù)的時候,w為一個nx2的數(shù)組,2代表的是特征的個數(shù)

classifier=svm.SVC(C=100,kernel='linear',gamma=100,decision_function_shape='ovr') # ovr:一對多策略 classifier.coef_#參數(shù)w #[[-6.28425012 5.14207649][-8.45820407 6.92112224][-0.99813811 -2.00212539]] classifier.intercept_#參數(shù)b # [-0.07076934 -0.08011805 0.12861107]

圖中實(shí)線為分界面,虛線為決策邊界,穿過支持向量的邊界

#繪制邊界和分界面 def plot_boundary(w,b):plot_x1 = np.linspace(x[:, 0].min(), x[:, 0].max(), 200)#分界面w0x0 + w1x1 + b = 0plot_x21 = -w[0][0] / w[0][1] * plot_x1 - b[0] / w[0][1]plot_x31 = -w[1][0] / w[1][1] * plot_x1 - b[1] / w[1][1]plot_x41 = -w[2][0] / w[2][1] * plot_x1 - b[2] / w[2][1]#上邊界w0x0 + w1x1 + b = 1plot_up_x21 = -w[0][0] / w[0][1] * plot_x1 - b[0] / w[0][1] + 1/w[0][1]plot_up_x31 = -w[1][0] / w[1][1] * plot_x1 - b[1] / w[1][1] + 1/w[1][1]plot_up_x41 = -w[2][0] / w[2][1] * plot_x1 - b[2] / w[2][1] + 1/w[2][1]#下邊界w0x0 + w1x1 + b = -1plot_down_x21 = -w[0][0] / w[0][1] * plot_x1 - b[0] / w[0][1] - 1/w[0][1]plot_down_x31 = -w[1][0] / w[1][1] * plot_x1 - b[1] / w[1][1] - 1/w[1][1]plot_down_x41 = -w[2][0] / w[2][1] * plot_x1 - b[2] / w[2][1] - 1/w[2][1]#分界面plt.plot(plot_x1, plot_x21, c="black")plt.plot(plot_x1, plot_x31, "r")plt.plot(plot_x1, plot_x41, c="b")#上邊界plt.plot(plot_x1, plot_up_x21, "g--")plt.plot(plot_x1, plot_up_x31, "r--")plt.plot(plot_x1, plot_up_x41, "b--")#上邊界plt.plot(plot_x1, plot_down_x21, "g--")plt.plot(plot_x1, plot_down_x31, "r--")plt.plot(plot_x1, plot_down_x41, "b--")plot_boundary(w,b)

其中:

w=ceof_: [[-6.28425012 5.14207649][-8.45820407 6.92112224][-0.99813811 -2.00212539]] b=intercept_: [17.45202353 23.14272776 11.8943489 ]

2、非線性模型

非線性模型使用的是高斯核,kernel = “rbf”,參數(shù)有:b

,w不需要計(jì)算

classifier=svm.SVC(C=100,kernel='rbf',gamma=100,decision_function_shape='ovr') # ovr:一對多策略 classifier.intercept_#參數(shù)b # [-0.07076934 -0.08011805 0.12861107]

?

總結(jié)

以上是生活随笔為你收集整理的机器学习——python实现SVM模型w,b的查看的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。