1. 程式人生 > >機器學習演算法小整理之KNN

機器學習演算法小整理之KNN

1、工作原理:

存在一個樣本資料集合(訓練樣本集)且樣本集中每個資料都存在標籤(樣本集中每一資料與所屬分類的對應關係)。輸入沒有標籤的新資料後,將新資料的每個特徵與樣本集中資料對應的特徵進行比較,提取樣本集中特徵最相似資料(最近鄰)的分類標籤。一般只選擇樣本資料集中前K個最相似的資料,選擇k個最相似資料中出現次數最多的分類作為新資料的分類。 

2、工作流程:

(1)計算已知類別的資料集中的點與當前點之間的距離;

(2)按照距離遞增順序排序;

(3)選取與當前點距離最小的k個點;

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

(5)返回前k個點出現頻率最高的類別作為當前點的預測類別。

3、基本要素:

(1)距離度量

(2)k值的選擇

1)k越小模型越複雜,用較小的鄰域中的訓練例項進行預測,只有與輸入例項較近的訓練例項才會對預測結果起作用,預測結果會對近鄰的例項點非常敏感;

2)k越大模型越簡單,用較大的鄰域中的訓練例項進行預測,與輸入例項較遠的訓練例項也會對預測結果起作用,易使預測發生錯誤;

3)在應用中,k值一般取一個比較小的數值,k通常會在3~10直接取值,或者是k等於訓練資料的平方根。通常採用交叉驗證法來選取最優的k值。

(3)分類決策規則

1)多數表決:少數服從多數,近鄰中哪個類別的點最多就分為該類。(經驗風險最小化)

2)加權投票:根據距離的遠近,對近鄰的投票進行加權,距離越近則權重越大(權重為距離平方的倒數)。


4、演算法特點:

“近朱者赤,近墨者黑”

優點:

(1)簡單,易於實現,無需訓練;

(2)精度高;

(3)無資料輸入假定(對資料分佈沒有假設);

(4)對異常值不敏感,個別噪音資料對結果的影響不是很大;

(5)適合對稀有事件進行分類;

(6)適用於多分類問題;

(7)不僅可以用於分類,還可以用於迴歸。通過找出一個樣本的k個最近鄰居,將這些鄰居的屬性的平均值賦給該樣本,就可以得到該樣本的屬性。

缺點:

(1)計算複雜度高,必須對資料集中每個資料計算距離;

(2)空間複雜度高,必須儲存全部資料集;

(3)對標稱特徵以及缺少資料需要預先處理;

(3)可解釋性差,無法告訴你哪個變數更重要,無法給出決策樹那樣的規則(沒有模型輸出,限制了對特徵間關係的理解);

(4)樣本不均衡問題,當樣本不平衡時,如一個類的樣本容量很大,而其他類樣本容量很小時,有可能導致當輸入一個新樣本時,該樣本的K個鄰居中大容量類的

樣本佔多數。 

5、優化方法:

距離加權:可以降低k值設定的影響。將不同距離的鄰居對該樣本產生的影響給予不同的權值(weight),如權值與距離成正比

降維或使用其他距離計算工具:變數數越多,歐式距離的區分能力就越差。

對變數進行標準化:值域越大的變數常常會在距離計算中佔據主導作用。

加權投票:多數表決沒有考慮近鄰的距離的遠近,距離更近的近鄰也許更應該決定最終的分類。

樣本加權:在訓練集中,有些樣本可能是更值得依賴的。可以給不同的樣本施加不同的權重,加強依賴樣本的權重,降低不可信賴樣本的影響。

壓縮訓練樣本量:提高計算的效率,雖然構造模型簡單,但掃描全部訓練樣本並計算距離的系統開銷很大。

kd樹:一種便於對k維空間中的資料進行快速檢索的資料結構。利用kd樹可以省去對大部分資料點的搜尋,從而減少搜尋的計算量。

6、使用演算法:

(1)輸入樣本資料和結構化的輸出結果;

(2)執行KNN判定輸入資料分別屬於哪個分類;

(3)對計算出的分類執行後序處理。

7、應用場景:

通常最近鄰分類器使用於特徵與目標類之間的關係為比較複雜的數字型別,或者說二者關係難以理解,但是相似類間特徵總是相似。

客戶流失預測、欺詐偵測等。