版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第Python機(jī)器學(xué)習(xí)應(yīng)用之支持向量機(jī)的分類預(yù)測(cè)篇目錄1、Question2、Answer!SVM3、軟間隔4、超平面支持向量機(jī)常用于數(shù)據(jù)分類,也可以用于數(shù)據(jù)的回歸預(yù)測(cè)
1、Question
我們經(jīng)常會(huì)遇到這樣的問(wèn)題,給你一些屬于兩個(gè)類別的數(shù)據(jù)(如子圖1),需要一個(gè)線性分類器將這些數(shù)據(jù)分開,有很多分法(如子圖2),現(xiàn)在有一個(gè)問(wèn)題,兩個(gè)分類器,哪一個(gè)更好?為了判斷好壞,我們需要引入一個(gè)準(zhǔn)則:好的分類器不僅僅能夠很好的分開已有的數(shù)據(jù)集,還能對(duì)為知的數(shù)據(jù)進(jìn)行兩個(gè)劃分,假設(shè)現(xiàn)在有一個(gè)屬于紅色數(shù)據(jù)點(diǎn)的新數(shù)據(jù)(如子圖3中的綠三角),可以看到此時(shí)黑色的線會(huì)把這個(gè)新的數(shù)據(jù)集分錯(cuò),而藍(lán)色的線不會(huì)。**那么如何評(píng)判兩條線的健壯性?**此時(shí),引入一個(gè)重要的概念最大間隔(刻畫著當(dāng)前分類器與數(shù)據(jù)集的邊界)(如子圖4中的陰影部分)可以看到藍(lán)色的線最大的間隔大于黑色的線,所以選擇藍(lán)色的線作為我們的分類器。(如子圖5)此時(shí)的分類器是最優(yōu)分類器嗎?或者說(shuō),有沒有更好的分類器具有更大的間隔?有的(如子圖6)為了找到最優(yōu)分類器,引入SVM
2、Answer!SVM
importnumpyasnp
importmatplotlib.pyplotasplt
fromsklearn.datasetsimportmake_blobs
X,y=make_blobs(n_samples=60,centers=2,random_state=0,cluster_std=0.4)
x_fit=np.linspace(0,3)
#使用SVM
fromsklearn.svmimportSVC
#SVM函數(shù)
clf=SVC(kernel='linear')
clf.fit(X,y)
#最佳函數(shù)
w=clf.coef_[0]
a=-w[0]/w[1]
y_p=a*x_fit-(ercept_[0])/w[1]
#最大邊距下邊界
b_down=clf.support_vectors_[0]
y_down=a*x_fit+b_down[1]-a*b_down[0]
#最大邊距上屆
b_up=clf.support_vectors_[-1]
y_up=a*x_fit+b_up[1]-a*b_up[0]
#畫散點(diǎn)圖
X,y=make_blobs(n_samples=60,centers=2,random_state=0,cluster_std=0.4)
plt.scatter(X[:,0],X[:,1],c=y,s=50,cmap=plt.cm.Paired)
#畫函數(shù)
plt.plot(x_fit,y_p,'-c')
#畫邊距
plt.fill_between(x_fit,y_down,y_up,edgecolor='none',color='#AAAAAA',alpha=0.4)
#畫支持向量
plt.scatter(clf.support_vectors_[:,0],clf.support_vectors_[:,1],edgecolor='b',
s=80,facecolors='none')
運(yùn)行結(jié)果
其中帶邊線的是距離當(dāng)前分類器最近的點(diǎn),將這些點(diǎn)稱之為支持向量,支持向量機(jī)為我們?cè)诒姸嗫赡艿姆诸惼髦g進(jìn)行選擇的原則,從而確保對(duì)為知數(shù)據(jù)集具有更高的泛化性
3、軟間隔
在很多時(shí)候,我們拿到是數(shù)據(jù)不想上述那樣分明(如下圖)這種情況并不容易找到上述那樣的最大間隔。于是就有了軟間隔,相對(duì)于硬間隔,我們?cè)试S個(gè)別數(shù)據(jù)出現(xiàn)在間隔帶中。我們知道,如果沒有一個(gè)原則進(jìn)行約束,滿足軟間隔的分類器也會(huì)出現(xiàn)很多條。所以需要對(duì)分錯(cuò)的數(shù)據(jù)進(jìn)行懲罰,SVM函數(shù),有一個(gè)參數(shù)C就是懲罰參數(shù)。懲罰參數(shù)越小,容忍性就越大
此處C設(shè)置為1
#%%軟間隔
X,y=make_blobs(n_samples=60,centers=2,random_state=0,cluster_std=0.9)
x_fit=np.linspace(-2,4)
#懲罰參數(shù):C=1,
clf=SVC(C=1,kernel='linear')
clf.fit(X,y)
#最佳函數(shù)
w=clf.coef_[0]
a=-w[0]/w[1]
y_great=a*x_fit-(ercept_[0])/w[1]
#最大邊距下邊界
b_down=clf.support_vectors_[0]
y_down=a*x_fit+b_down[1]-a*b_down[0]
#最大邊距上邊界
b_up=clf.support_vectors_[-1]
y_up=a*x_fit+b_up[1]-a*b_up[0]
#畫散點(diǎn)圖
plt.scatter(X[:,0],X[:,1],c=y,s=50,cmap=plt.cm.Paired)
#畫函數(shù)
plt.plot(x_fit,y_great,'-c')
#畫邊距
plt.fill_between(x_fit,y_down,y_up,edgecolor='none',color='#AAAAAA',alpha=0.4)
#畫支持向量
plt.scatter(clf.support_vectors_[:,0],clf.support_vectors_[:,1],edgecolor='b',
s=80,facecolors='none')
運(yùn)行結(jié)果
當(dāng)將C設(shè)置為0.2時(shí),SVM會(huì)更有包容性,從而兼容更多的錯(cuò)分樣本,結(jié)果如下:
4、超平面
有時(shí),我們得到的數(shù)據(jù)是這樣的(如下圖),這時(shí),可以將二維空間(低維)的數(shù)據(jù)映射到三維空間(高維)中,此時(shí),可以通過(guò)一個(gè)超平面對(duì)數(shù)據(jù)進(jìn)行劃分,所以,映射的目的在于使用SVM在高維空間找到超平面的能力
#%%超平面
fromsklearn.datasetsimportmake_circles
#畫散點(diǎn)圖
X,y=make_circles(100,factor=.1,noise=.1,random_state=2025)
plt.scatter(X[:,0],X[:,1],c=y,s=50,cmap=plt.cm.Paired)
#數(shù)據(jù)映射
r=np.exp(-(X[:,0]**2+X[:,1]**2))
ax=plt.subplot(projection='3d')
ax.scatter3D(X[:,0],X[:,1],r,c=y,s=50,cmap=plt.cm.Paired)
ax.set_xlabel('x')
ax.set_ylabel('y')
ax.set_zlabel('z')
x_1,y_1=np.meshgrid(np.linspace(-1,1),np.linspace(-1,1))
z=0.01*x_1+0.01*y_1+0.5
ax.plot_surface(x_1,y_1,z,alpha=0.3)
運(yùn)行結(jié)果
使用高斯核函數(shù)實(shí)現(xiàn)這種情形的分類
#%%使用高斯核函數(shù)實(shí)現(xiàn)這種分類:kernel=‘rbf'
X,y=make_circles(100,factor=.1,noise=.1,random_state=2025)
plt.scatter(X[:,0],X[:,1],c=y,s=50,cmap=plt.cm.Paired)
clf=SVC(kernel='rbf')
clf.fit(X,y)
ax=plt.gca()
x=np.linspace(-1,1)
y=np.linspace(-1,1)
x_1,y_1=np.meshgrid(x,y)
P=np.zeros_like(x_1)
fori,xiinenumerate(x):
forj,yjinenumerate(y):
P[i,j]=clf.decision_function(np.array([[xi,yj]]))
ax.contour(x_1,y_1,P,colors='k',le
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026云南昆明高新技術(shù)產(chǎn)業(yè)開發(fā)區(qū)管理委員會(huì)招聘18人備考題庫(kù)附答案
- 2026農(nóng)業(yè)農(nóng)村部國(guó)際交流中心面向社會(huì)招聘編制外人員招聘2人備考題庫(kù)附答案詳解(能力提升)
- 2026安徽馬鞍山當(dāng)涂法院招聘1人備考題庫(kù)附參考答案詳解(達(dá)標(biāo)題)
- 2026廣東東莞市石碣鎮(zhèn)招聘編外聘用人員5人備考題庫(kù)帶答案詳解(培優(yōu))
- 2026福建漳州市詔安縣機(jī)關(guān)事業(yè)單位社會(huì)保險(xiǎn)中心招募見習(xí)人員2人備考題庫(kù)及答案詳解(奪冠系列)
- 2026陜西西安市高陵區(qū)殘疾人專職委員選聘3人備考題庫(kù)帶答案詳解
- 2026黑龍江二龍濤濕地省級(jí)自然保護(hù)區(qū)管護(hù)中心公益性崗位招聘5人備考題庫(kù)及參考答案詳解1套
- 2026河南周口鹿邑縣德源中學(xué)招聘?jìng)淇碱}庫(kù)及1套完整答案詳解
- 2026聊城陽(yáng)谷法院勞務(wù)派遣招聘?jìng)淇碱}庫(kù)及1套參考答案詳解
- 2026福建省融資擔(dān)保有限責(zé)任公司社會(huì)招聘3人備考題庫(kù)及1套完整答案詳解
- 經(jīng)銷商會(huì)議總結(jié)模版
- 兩癌預(yù)防知識(shí)講座
- 用電安全隱患檢測(cè)的新技術(shù)及應(yīng)用
- 新疆克州阿合奇縣2024-2025學(xué)年七年級(jí)上學(xué)期期末質(zhì)量檢測(cè)英語(yǔ)試卷(含答案及聽力原文無(wú)音頻)
- 《水庫(kù)泥沙淤積及影響評(píng)估技術(shù)規(guī)范》
- 2023-2024學(xué)年浙江省杭州市西湖區(qū)教科版五年級(jí)上冊(cè)期末考試科學(xué)試卷
- GB/T 7948-2024滑動(dòng)軸承塑料軸套極限PV試驗(yàn)方法
- DL∕T 1057-2023 自動(dòng)跟蹤補(bǔ)償消弧線圈成套裝置技術(shù)條件
- AQ 2003-2018 軋鋼安全規(guī)程(正式版)
- 村委會(huì)指定監(jiān)護(hù)人證明書模板
- 送給業(yè)主禮物方案
評(píng)論
0/150
提交評(píng)論