MATLAB从入门到精通系列之如何实现KNN算法
KNN算法又稱為k近鄰分類(k-nearest neighbor classification)算法,它將樣本分到離它最相似的樣本所屬的類。該算法的本質(zhì)上采用模板匹配的思想,要確定一個樣本的類別,通過計算它與所有訓(xùn)練樣本的距離來找出和該樣本最接近的k個樣本,統(tǒng)計這些樣本的類別進行投票,票數(shù)最多的那個類就是分類結(jié)果。
kNN算法概述
1.KNN算法描述
(1)初始化訓(xùn)練集和類別;
(2)計算測試集樣本與訓(xùn)練集樣本的歐氏距離;
(3)根據(jù)歐氏距離大小對訓(xùn)練集樣本進行升序排序;
(4)選取歐式距離最小的前K個訓(xùn)練樣本,統(tǒng)計其在各類別中的頻率;
(5)返回頻率最大的類別,即測試集樣本屬于該類別。
2.優(yōu)缺點
1)優(yōu)點
(1) 簡單,易于理解,易于實現(xiàn),無需估計參數(shù),無需訓(xùn)練
適合對稀有事件進行分類(例如當(dāng)流失率很低時,比如低于0.5%,構(gòu)造流失預(yù)測模型);
(2)特別適合于多分類問題(multi-modal,對象具有多個類別標簽),例如根據(jù)基因特征來判斷其功能分類,kNN比SVM的表現(xiàn)要好。
2)缺點
(1)懶惰算法,對測試樣本分類時的計算量大,內(nèi)存開銷大,評分慢;
(2)可解釋性較差,無法給出決策樹那樣的規(guī)則。
3.常見問題
1)k值設(shè)定為多大?
(1)k太小,分類結(jié)果易受噪聲點影響;k太大,近鄰中又可能包含太多的其它類別的點。&#x
總結(jié)
以上是生活随笔為你收集整理的MATLAB从入门到精通系列之如何实现KNN算法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 集众家之所长,你工作中遇到的可视化问题,
- 下一篇: tableau必知必会之VMware 搭