概述
簡(jiǎn)單地說,K-近鄰算法采用測(cè)量不同特征值之間的距離的方法進(jìn)行分類邦鲫。
優(yōu)點(diǎn):精度高灸叼、對(duì)異常值不敏感、無數(shù)據(jù)輸入假定庆捺。
缺點(diǎn):計(jì)算復(fù)雜度高古今、空間復(fù)雜度高。
適用數(shù)據(jù)范圍:數(shù)值型和標(biāo)稱型滔以。
原理
存在一個(gè)樣本數(shù)據(jù)集合捉腥,即訓(xùn)練樣本集,并且樣本集中每個(gè)樣本都存在標(biāo)簽你画,同時(shí)我們知道樣本集中每一條數(shù)據(jù)與所屬分類的對(duì)應(yīng)關(guān)系抵碟。輸入新數(shù)據(jù)后,將新數(shù)據(jù)的每個(gè)特征與樣本集中的數(shù)據(jù)對(duì)應(yīng)的特征進(jìn)行比較坏匪,然后提取與樣本集中特征相似數(shù)據(jù)的分類標(biāo)簽拟逮。一般來說,我們只選擇樣本數(shù)據(jù)集中前k個(gè)最相似的數(shù)據(jù)适滓,這就是k-近鄰算法中k的出處敦迄。最后選擇k個(gè)最相似數(shù)據(jù)中出現(xiàn)次數(shù)最多的分類,作為新數(shù)據(jù)的分類凭迹。
實(shí)施kNN算法
1颅崩、準(zhǔn)備數(shù)據(jù)
有4組數(shù)據(jù),每組數(shù)據(jù)有兩個(gè)我們已知的特征值和對(duì)應(yīng)的標(biāo)簽信息蕊苗。
2沿后、計(jì)算已知類別數(shù)據(jù)集中的點(diǎn)與當(dāng)前點(diǎn)之間的距離
3、按照距離遞增次序排序
4朽砰、選取與當(dāng)前點(diǎn)距離最小的k個(gè)點(diǎn)
5尖滚、確定前k個(gè)點(diǎn)所在類別的出現(xiàn)頻率
6、返回前k個(gè)點(diǎn)出現(xiàn)頻率最高的類別作為當(dāng)前點(diǎn)的預(yù)測(cè)分類
示例:使用k-近鄰算法實(shí)現(xiàn)約會(huì)配對(duì)
準(zhǔn)備數(shù)據(jù)
部分樣本數(shù)據(jù)集格式
數(shù)據(jù)分布情況
數(shù)據(jù)處理
代碼實(shí)現(xiàn)
測(cè)試算法
需要源代碼請(qǐng)加好友