SVM與KNN的算法的探討
support Vector Machine (支持向量機(jī)) 是一個(gè)監(jiān)督學(xué)習(xí)算法,既可以用于分類(主要)也可以用于回歸問題。SVM算法中,我們將數(shù)據(jù)繪制在n維空間中(n代表數(shù)據(jù)的特征數(shù)),然后查找可以將數(shù)據(jù)分成兩類的超平面。支持向量指的是觀察的樣本在n為空間中的坐標(biāo),SVM是將樣本分成兩類的最佳超平面。將兩類點(diǎn)分開,svm將會(huì)尋找可以區(qū)分兩個(gè)類別并且能使間隔(margin)最大的劃分超平面,margin是兩個(gè)虛線到超平面的距離之。
SVM與KNN的區(qū)別
SVM的原理:是先在訓(xùn)練集上訓(xùn)練一個(gè)模型,然后用這個(gè)模型直接對(duì)測(cè)試集進(jìn)行分類。需要超平面wx+b來分割數(shù)據(jù)集(此處以線性可分為例),因此會(huì)有一個(gè)模型訓(xùn)練過程來找到w和b的值。訓(xùn)練完成之后就可以拿去預(yù)測(cè)了,根據(jù)函數(shù)y=wx+b的值來確定樣本點(diǎn)x的label,不需要再考慮訓(xùn)練集。SVM是要去找一個(gè)函數(shù)把達(dá)到樣本可分,SVM在處理高緯度的數(shù)據(jù)上有優(yōu)勢(shì)。
KNN的原理:基本原理就是找到訓(xùn)練數(shù)據(jù)集里面離需要預(yù)測(cè)的樣本點(diǎn)距離最近的k個(gè)值(距離可以使用比如歐式距離,k的值需要自己調(diào)參),然后把這k個(gè)點(diǎn)的label做個(gè)投票,選出一個(gè)label做為預(yù)測(cè)結(jié)果。KNN需要考慮每一個(gè)數(shù)據(jù),KNN不能處理樣本維度太高的東西