1、KNN算法的簡(jiǎn)介
kNN算法就是找到k個(gè)最相似的樣本,這些樣本所在的類,就是當(dāng)前文檔的所屬的類。如下圖:綠色圓圈表示你想分類的文本,其他是已知類別的樣本。圖中其他形狀和綠色圓圈的距離代表了相似度。如果k = 3,就是取3個(gè)最相似的文本,那么1個(gè)藍(lán)色框,2紅色三角被選中,因?yàn)榧t色三角多,則綠色圓圈所屬的類就是紅色三角所在的類。如果k = 5,3個(gè)藍(lán)色框和2個(gè)紅色三角選中,那么就屬于藍(lán)色框所屬于的類。kNN你也可以取多個(gè)類別,就是綠色圓圈既屬于藍(lán)色框,也屬于紅色三角所屬的類別。
2、KNN算法分類的一般過(guò)程的定義
(1)樣本的選擇
(2)中文文本分詞(工具如下:Rwordseg,LTP,Bamboo,RostCM)
(3)特征的選擇(CHI,IG等)
(4)向量空間模型的構(gòu)建(將文檔轉(zhuǎn)換成VSM,每一個(gè)特征的值是由TF-IDF計(jì)算,特征項(xiàng)的個(gè)數(shù)是所有文本文檔集合的總體棄掉重復(fù)的單詞)
(5)將 預(yù)測(cè)的文本分詞與樣本進(jìn)行計(jì)算,主要使用余弦定理進(jìn)行計(jì)算如下

(6)對(duì)結(jié)果進(jìn)行測(cè)試是否滿足準(zhǔn)確率
(7)如果準(zhǔn)確率太低,可以調(diào)整樣本等一些其他的措施
KNN算法的缺點(diǎn),如果訓(xùn)練的樣本過(guò)多,則容易造成內(nèi)存的溢出,因此我們可以改進(jìn)KNN算法。