最近鄰分類器
消極學習方法
一般的分類器,比如決策樹和支撐向量機,只要有訓練數據可用,它們就開始學習從輸入屬性到類標號的映射模型,這類學習策略被稱為積極學習方法。與之相對的是消極學習算法,它的策略是推遲對訓練數據的建模,在需要分類測試樣例時再進行。消極學習的一個例子是Rote分類器,它記住整個訓練集,只有當測試樣例和某個訓練樣例完全匹配時才進行分類。這個分類算法有個明顯的缺陷就是經常會出現測試樣例不能被分類的情況,因為沒有任何訓練樣例與它們匹配。
最近鄰分類器
對Rote分類器稍加改進就可以使其更具靈活性,那就是找出和測試樣例屬性比較接近的所有訓練樣例,這些訓練樣例被稱為最近鄰,可以用來確定測試樣例的類標號。這和“物以類聚,人以群分”是一個道理。最近鄰分類器把每個訓練樣例看做\(d\)維空間上的一個點,其中\(d\)是屬性個數,給定一個測試樣例\(z\),計算\(z\)與每個訓練樣例的鄰近度,找出與之最近的\(k\)個訓練樣例,將這\(k\)個訓練樣例中出現最多的類標號賦給\(z\)。
顯然,這里\(k\)的取值對分類結果的影響很大:如果\(k\)太小,最近鄰分類器容易受到訓練樣例中的噪聲而產生過擬合的影響;如果\(k\)太大,最近鄰分類器容易誤分類,因為最近鄰列表中可能包含遠離近鄰的數據點。
要降低\(k\)的選擇造成的影響,一種途徑就是根據每個最近鄰\(x_i\)距離的不同對其作用加權:\(w_i=\frac{1}{d(x_i,z)^2}\),這樣,距離較遠的最近鄰對分類結果的影響就相對較小。
最近鄰分類器的優缺點
最近鄰分類器的優點
- 不需要為訓練集建立模型。
- 最近鄰分類器可以生成任何形狀的決策邊界。
最近鄰分類器的缺點
- 容易受到噪聲的影響。
- 往往需要對訓練集進行預處理才能使用。
- 每一次分類耗時長。
