k-近鄰算法概述
簡單的說,k-近鄰算法采用測量不同特征值之間的距離的方法,對數(shù)據(jù)進行分類(貼標(biāo)簽)。
優(yōu)點:精度高、對異常值不敏感、無數(shù)據(jù)輸入假定。
缺點:計算復(fù)雜度高、空間復(fù)雜度高。
適用數(shù)據(jù)范圍:數(shù)值型和標(biāo)稱型。
入門案例

如上圖,如果有5個點,其中前4個點的“標(biāo)簽”已知,求第5個點的“標(biāo)簽”。

如果把數(shù)據(jù)表用坐標(biāo)系圖形表示,我們能夠直觀看出,p5的標(biāo)簽應(yīng)該是“A”,因為它距離p1、p2更近。
在本例中,向量點只有兩個特征值(x軸、y軸坐標(biāo)),因此用直角坐標(biāo)系表示很直觀。但在更復(fù)雜的商業(yè)應(yīng)用中,向量點會有更多的特征值,盡管用圖形表達多維空間很復(fù)雜,但我們?nèi)匀豢梢酝ㄟ^k-近鄰算法確定數(shù)據(jù)的分類“標(biāo)簽”。
工作原理
存在一個樣本數(shù)據(jù)集合,也稱作“訓(xùn)練樣本集” ,并且該集合中的每個數(shù)據(jù)都有對應(yīng)的“標(biāo)簽”,即我們知道“訓(xùn)練樣本集”中每一數(shù)據(jù)與所屬分類的對應(yīng)關(guān)系。
輸入沒有標(biāo)簽的新數(shù)據(jù),將新數(shù)據(jù)的每個特征與“訓(xùn)練樣本集” 中數(shù)據(jù)對應(yīng)的特征進行比較(計算距離),然后算法提取“訓(xùn)練樣本集”中特征最相似數(shù)據(jù)(最近鄰)的分類標(biāo)簽。
一般來說只選擇“訓(xùn)練樣本集”中前k個最相似的數(shù)據(jù),這就是“k-近鄰算法”中k的出處。最后,選擇k個最相似數(shù)據(jù)中出現(xiàn)次數(shù)最多的“標(biāo)簽”,作為新數(shù)據(jù)的“標(biāo)簽”。
一般流程
1.收集數(shù)據(jù):可以使用任何方法;
2.準(zhǔn)備數(shù)據(jù):把原始數(shù)據(jù)組織成用于計算距離的、結(jié)構(gòu)化的格式;
3.分析數(shù)據(jù):可以使用任何方法;
4.訓(xùn)練算法:此步驟不適用于k-近鄰算法;
5.測試算法:使用測試樣本計算錯誤率;
6.使用算法:輸入數(shù)據(jù),判定該數(shù)據(jù)的分類標(biāo)簽。
可使用場景
判斷一部電影是愛情片?還是動作片?
婚戀網(wǎng)站的配對推薦;
識別手寫字體;
......