在機(jī)器學(xué)習(xí)中,支持向量機(jī)(SVM)常被用于數(shù)據(jù)分類(lèi)和回歸分析,是由分離超平面的判別算法模型。換句話(huà)說(shuō),給定標(biāo)記的訓(xùn)練數(shù)據(jù),該算法輸出一個(gè)對(duì)新示例進(jìn)行分類(lèi)的最佳超平面。
支持向量機(jī)(SVM)算法模型是將示例表示為空間中的點(diǎn),經(jīng)過(guò)映射后,不同類(lèi)別的示例被盡可能劃分。除了執(zhí)行線(xiàn)性分類(lèi)外,支持向量機(jī)(SVM)還可以有效地執(zhí)行非線(xiàn)性分類(lèi),將其輸入隱式映射到高維特征空間。
支持向量機(jī)做什么?
給定一組訓(xùn)練示例,并根據(jù)2個(gè)類(lèi)別給每個(gè)訓(xùn)練示例都各自標(biāo)記上類(lèi)別,再通過(guò)支持向量機(jī)(SVM)訓(xùn)練算法構(gòu)建一個(gè)模型,將新示例分配給這2個(gè)類(lèi)別,使其成為非概率二元線(xiàn)性分類(lèi)器。
Python實(shí)現(xiàn)支持向量機(jī)(SVM)分類(lèi)
先決條件:Numpy、Pandas、matplot-lib、scikit-learn
首先,創(chuàng)建數(shù)據(jù)集
from sklearn.datasets.samples_generator import make_blobs X,Y=make_blobs(n_samples=500,centers=2, random_state=0,cluster_std=0.40) import matplotlib.pyplot as plt plt.scatter(X[:,0],X[:,1],c=Y,s=50,cmap='spring'); plt.show()
登錄后復(fù)制
分類(lèi)
xfit=np.linspace(-1,3.5) plt.scatter(X[:,0],X[:,1],c=Y,s=50,cmap='spring') for m,b,d in[(1,0.65,0.33),(0.5,1.6,0.55),(-0.2,2.9,0.2)]: yfit=m*xfit+b plt.plot(xfit,yfit,'-k') plt.fill_between(xfit,yfit-d,yfit+d,edgecolor='none', color='#AAAAAA',alpha=0.4) plt.xlim(-1,3.5); plt.show()
登錄后復(fù)制