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