數據挖掘十大經典算法 K-NN

數據挖掘 歐幾里得 盤點 數據分析之路 2017-05-12

數據挖掘十大經典算法 K-NN

• K-NN概念和定義

• K-NN算法:如果一個樣本在特徵空間中的k個最相似(即特徵空間中最鄰近)的樣本中的大多

數屬於某一個類別,則該樣本也屬於這個類別。

• K-NN適用:根據定義顯示K-NN顯然是可以執行分類任務,但是K-NN的近鄰思想讓他可以

做迴歸任務,相當於一個K近鄰樣本的均值處理(有時候需要加權處理)

• K-NN算法的關鍵參數為K值和加權方法

K-NN算法步驟(分類)

首先:確定參數K。即近鄰數量;

計算每個測試樣本和所有訓練樣本之間的距離;整理距離,基於K值選擇近鄰集合;確定每個近鄰所屬分類;通過對最近鄰集合採用“投票”方法來確定測試樣本分類的預測值;可以選擇是否加權處理

K-NN算法步驟(迴歸)

首先:確定參數K。即近鄰數量;計算每個測試樣本和所有訓練樣本之間的距離;整理距離,基於K值選擇近鄰集合;確定每個近鄰所屬分類;通過對最近鄰集合採用加權的方式來確定測試樣本的預測值

K-NN參數優化

• 對於K-NN算法來講,參數的選擇比較少,K值是一個關鍵的參數選擇;

• 一般對於K值選擇來講,奇數值比偶數值更值得推薦,能夠更有效地避免投票平局;數據挖掘十大經典算法 K-NN• K值選擇一般為3、5、7等不大的奇數值為最佳,但是如果想取大一些的K值,那麼大於10的K值也會經常出現

• 對於加權處理,沒有權威的證據證明加權處理是對近鄰更有效的處理,往往加權會導致一定程度上的擬合過度,所以加權公式也是K-NN算法研究熱門之一.

數據挖掘十大經典算法 K-NN

請點擊此處輸入圖片描述請點擊此處輸入圖片描述

K-NN算法特點

• K-NN是挖掘算法中“統計學習”大類下面的一種算法,並且屬於懶惰模型,即算法的計算是直到預測任務來臨才進行計算

• KNN對於維度相當敏感,每次計算需要遍歷樣本集計算樣本間的距離,在大數據集裡,這是一個不小的工程;

距離計算方式和近鄰

通常,計算距離我們當仁不讓用歐氏距離,歐式距離是最常用的距離,但是如果算法對應維度較多時,根據維數災難的理論知識我們可以知道,當維度變大時,近鄰的概念也變得模糊。替換方案:採用餘弦距離等度量來替換歐幾裡得距離;由於K-NN可以支持數值和名義型數據,所以混合度量也是常用的選擇;

大訓練集性能和擬合

對於K-NN,訓練集增大會導致嚴重的效率問題,而且由於K-NN是懶惰模型,所以,如果確定了K值,其實是不需要訓練的;

K-NN劣勢:沒有可擴展能力,即每次判定都需要即時計算,維度災難影響模型較多,距離度量的權重因子也是問題,目前沒有更好的權重方案在成熟軟件中使用;

投票:對於類別在3個及以上,經常會出現投票平局,平局要按照默認規則取默認值,這會讓K-NN損失精準度。

相關推薦

推薦中...