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、應用場景:
通常最近鄰分類器使用於特徵與目標類之間的關係為比較複雜的數字型別,或者說二者關係難以理解,但是相似類間特徵總是相似。
客戶流失**、欺詐偵測等。
機器學習之KNN演算法
在幾位志同道合的小夥伴的帶領下,開始了機器學習的路程,然而一切並不是想象的那麼簡單,因此本文記錄了自己的學習路程,希望還能堅持做好這件事。knn演算法是機器學習中屬於比較簡單的演算法,容易理解和閱讀。1.knn的應用 客戶流失 欺詐偵測等 更適合於稀有事件的分類問題 2.優缺點 優點 這是乙個簡單有...
機器學習演算法之KNN
物以類聚 人以群分,乙個例項與它周圍的例項屬於同一類的概率較大。給定乙個訓練資料集,對新輸入的例項,在訓練資料集中找到與該例項最鄰近的k個例項,這k個例項的多數屬於某個類,就把該輸入例項分為這個類。這裡,選用了歐氏距離,k的預設值為3,使用了sklearn提供的digits資料集來進行測試。inpu...
機器學習之kNN演算法
knn原理及實踐 1 演算法介紹 總的來說,機器學習入門的第乙個演算法是k 近鄰演算法 knn 它的工作原理是 存在乙個樣本資料集合,也稱作訓練樣本集,並且樣本集中每個資料都存在標籤,即我們知道樣本集中每一資料與所屬分類的對應關係。輸入沒有標籤的新資料後,將新資料的每個特徵與樣本集中資料對應的特徵進...