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