【十大經典數據挖掘算法】kNN


【十大經典數據挖掘算法】系列

  1. C4.5
  2. K-Means
  3. SVM
  4. Apriori
  5. EM
  6. PageRank
  7. AdaBoost
  8. kNN
  9. Naïve Bayes
  10. CART

1. 引言

頂級數據挖掘會議ICDM於2006年12月評選出了數據挖掘領域的十大經典算法:C4.5, k-Means, SVM, Apriori, EM, PageRank, AdaBoost, kNN, Naïve Bayes與 CART。 以前看過關於這些數據挖掘算法,但對背后數學原理未做過多探究,因而借此整理以更深入地理解這些算法。

本文討論的kNN算法是監督學習中分類方法的一種。所謂監督學習與非監督學習,是指訓練數據是否有標注類別,若有則為監督學習,若否則為非監督學習。監督學習是根據輸入數據(訓練數據)學習一個模型,能對后來的輸入做預測。在監督學習中,輸入變量與輸出變量可以是連續的,也可以是離散的。若輸入變量與輸出變量均為連續變量,則稱為回歸;輸出變量為有限個離散變量,則稱為分類;輸入變量與輸出變量均為變量序列,則稱為標注[2]。

2. kNN算法

kNN算法的核心思想非常簡單:在訓練集中選取離輸入的數據點最近的k個鄰居,根據這個k個鄰居中出現次數最多的類別(最大表決規則),作為該數據點的類別。

算法描述

訓練集\(T = \lbrace (x_1,y_1),(x_2,y_2), \cdots ,(x_N,y_N) \rbrace\),其類別\(y_i \in \lbrace c_1,c_2, \cdots ,c_K \rbrace\),訓練集中樣本點數為\(N\),類別數為\(K\)。輸入待預測數據\(x\),則預測類別

\begin{equation}
y = \arg \mathop {\max }\limits_{c_j} \sum\limits_{x_i \in N_k(x)} I(y_i = c_j),\ i = 1,2, \cdots ,N; \ j = 1,2, \cdots ,K
\label{eq:obj}
\end{equation}

其中,涵蓋\(x\)的k鄰域記作\(N_k(x)\),當\(y_i = c_j\)時指示函數\(I=1\),否則\(I=0\)

分類決策規則

kNN學習模型:輸入\(X\),通過學習得到決策函數:輸出類別\(Y=f(X)\)。假設分類損失函數為0-1損失函數,即分類正確時損失函數值為0,分類錯誤時則為1。假如給\(x\)預測類別為\(c_j\),即\(f(X)=c_j\);同時由式子\eqref{eq:obj}可知k鄰域的樣本點對學習模型的貢獻度是均等的,則kNN學習模型誤分類率為

\begin{equation}
{1 \over k}\sum\limits_{x_i \in N_k(x)} {I(y_i \ne f(x_i))} = {1 \over k}\sum\limits_{xi \in N_k(x)} {I(y_i \ne c_j)} = 1 - {1 \over k}\sum\limits_{xi \in N_k(x)} {I(y_i = c_j)}
\end{equation}

若要最小化誤分類率,則應

\[\mathop {\max }\limits_{{c_j}} \sum\limits_{{x_i} \in {N_k}(x)} I ({y_i} = {c_j}) \]

所以,最大表決規則等價於經驗風險最小化。

存在問題

k值得選取對kNN學習模型有着很大的影響。若k值過小,預測結果會對噪音樣本點顯得異常敏感。特別地,當k等於1時,kNN退化成最近鄰算法,沒有了顯式的學習過程。若k值過大,會有較大的鄰域訓練樣本進行預測,可以減小噪音樣本點的減少;但是距離較遠的訓練樣本點對預測結果會有貢獻,以至於造成預測結果錯誤。下圖給出k值的選取對於預測結果的影響:

前面提到過,k鄰域的樣本點對預測結果的貢獻度是相等的;但距離更近的樣本點應有更大的相似度,其貢獻度應比距離更遠的樣本點大。可以加上權值\(w_i = 1/\left\| {x_i - x} \right\|\)進行修正,則最大表決原則變成:

\[\mathop {\max }\limits_{{c_j}} \sum\limits_{{x_i} \in {N_k}(x)} w_i*I ({y_i} = {c_j}) \]

3. 參考資料

[1] Michael Steinbach and Pang-Ning Tan, The Top Ten Algorithms in Data Mining.
[2] 李航,《統計學習方法》.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM