2018-08-16 KNN(k近鄰)算法學(xué)習(xí)

K近鄰算法(K-nearest Neighbor,簡稱KNN)

KNN是種最簡單的機(jī)器學(xué)習(xí)算法了,結(jié)合書本定義和自我理解,K近鄰算法的原理是:
對于新的測試數(shù)據(jù)集,使用某種距離度量找出在訓(xùn)練集中最為接近的K個訓(xùn)練樣本。

  • 在分類任務(wù)中,使用“投票法”:選擇K個樣本實(shí)際值中出現(xiàn)最多次數(shù)的值作為預(yù)測結(jié)果。
  • 在回歸任務(wù)中,使用“平均法”:選擇K個樣本實(shí)際值的平均值作為預(yù)測結(jié)果。

實(shí)際上K近鄰學(xué)習(xí)是懶惰學(xué)習(xí)(lazy learning)的一種,在訓(xùn)練階段僅保存樣本數(shù)據(jù),訓(xùn)練開銷時間為0,有了測試樣本數(shù)據(jù)后再進(jìn)行學(xué)習(xí)處理。與之對應(yīng)的是在訓(xùn)練階段就要處理數(shù)據(jù)的方法,稱為急切學(xué)習(xí)(eager learning)

通過一個簡單對比示例來說明吧,show me the code~.

#近鄰選擇K=1
mglearn.plots.plot_knn_classification(n_neighbors=1)
plt.title("K=1")
image.png
#近鄰選擇K=3
mglearn.plots.plot_knn_classification(n_neighbors=3)
plt.title("K=3")
image.png
mglearn.plots.plot_knn_classification(n_neighbors=4)
plt.title("K=4")
image.png

通過對比以上K取值(1,3,4)時,對應(yīng)測試數(shù)據(jù)(三個五角星)的顏色取值即可發(fā)現(xiàn)KNN的算法效果。
即:對于分類任務(wù),使用投票法選擇測試數(shù)據(jù)的K個近鄰數(shù)據(jù)中出現(xiàn)頻數(shù)最大的值作為預(yù)測值。


寫此文的時候發(fā)現(xiàn),開始掉頭發(fā)了,果然這玩意很燒腦。o(╥﹏╥)o

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容