1. 程式人生 > >資料探勘十大經典演算法之KNN演算法

資料探勘十大經典演算法之KNN演算法

KNN演算法(監督性學習)

1.演算法思想

       KNN是通過測量不同特徵值之間的距離進行分類。它的思路是:如果一個樣本在特徵空間中的k個最相似(即特徵空間中最鄰近)的樣本中的大多數屬於某一個類別,則該樣本也屬於這個類別,其中K通常是不大於20的整數。KNN演算法中,所選擇的鄰居都是已經正確分類的物件。該方法在定類決策上只依據最鄰近的一個或者幾個樣本的類別來決定待分樣本所屬的類別。

2.演算法推導過程

      在訓練集中資料和標籤已知的情況下,輸入測試資料,將測試資料的特徵與訓練集中對應的特徵進行相互比較,找到訓練集中與之最為相似的前

K個數據,則該測試資料對應的類別就是K個數據中出現次數最多的那個分類,其演算法的描述為:

1)計算測試資料與各個訓練資料之間的距離;

2)按照距離的遞增關係進行排序;

3)選取距離最小的K個點;

4)確定K個點所在類別的出現頻率;

5)返回K個點中出現頻率最高的類別作為測試資料的預測分類。

3.演算法優缺點

        優點:精度高,對異常資料不敏感(你的類別是由鄰居中的大多數決定的,一個異常鄰居並不能影響太大),無資料輸入假定;

        缺點

:計算雜度高(需要計算新的資料點與樣本集中每個資料的“距離”,以判斷是否是前k個鄰居),空間複雜度高(巨大的矩陣);

        適用資料範圍:數值型(目標變數可以從無限的數值集合中取值)和標稱型(目標變數只有在有限目標集中取值)。