1. 程式人生 > >機器學習 - KNN、偏差與方差

機器學習 - KNN、偏差與方差

機器學習 - KNN


(KNN 是一種分類演算法,它沒有學習的過程,而是直接計算出預測結果)

  • KNN

    1. 演算法步驟

      (1) 計算 被預測點 到所有“訓練樣本”的距離

      (2) 從中找出前 k 個距離最近的樣本點

      (3) 根據分類決策規則決定(預測) 被預測點 的類別

    2. 距離度量

      使用不同的距離度量所確定的臨近點可能是不同的。

      兩點間距離計算: L p ( x i

      , x j ) = [
      l = 1 m
      x i ( l ) x j ( l ) p ] 1 p L_p(x_i,x_j) = [\sum_{l=1}^{m}| x_i^{(l)} - x_j^{(l)} | ^ p ]^{\frac{1}{p}}

      i , j i,j 表示第 i , j i,j 個樣本, k k 為個樣本第 k k 個特徵。

      p = 1 p=1 時, L p L_p 為曼哈頓距離;
      p = 2 p=2 時, L p L_p 為歐氏距離。

    3. K 的選取

      k k 值可以用來描述 被預測點 的鄰域的大小,其值的選取對結果影響很大。

      (1) k k 越小,近似誤差越小,預測誤差越大,對噪聲越敏感,越容易過擬合;(只受周圍少數樣本影響,加入附近有噪聲點,那就有可能被分為噪聲點的類別,所以容易過擬合)

      (2) k k 越大,近似誤差越大,預測誤差越小,對噪聲越不敏感,容易欠擬合。(受周圍更多的樣本點影響,因為噪聲點較少所以不容易過擬合,但樣本點多時容易欠擬合,可理解為“人多嘴雜”。假設 k=9,其中 5 個樣本指向類別 1,4個樣本指向類別 2,可能這個被分類樣本的真實標籤是 2,但此時因為 K 值變大,將離得稍遠的但個數較多的類別 1 也包括進來,此時被分類樣本就被錯誤分類。)

    4. 多數表決規則

      在距離 被預測點 最近的 k 個樣本中,哪一類別的個數最多,則 被預測點屬於哪一類。

    5. KNN 特點

      (1) 基於樣本例項計算,而非訓練;

      (2) 分類時開銷大,屬於消極學習方法;

      (3) 基於區域性資訊預測,對噪聲敏感;

      (4) 可產生任意形狀的決策邊界,非簡單線性;

      (5) 受值域較大的屬性影響較大,應統一量綱,歸一化。

  • 偏差與方差

    我們經常用過擬合、欠擬合來定性地描述模型是否很好的解決了特定的問題。從定量的角度來說,可以用模型的偏差(Bias)與方差(Variance)來描述模型的效能。

    1. 偏差

      偏差是指由所有采樣得到的大小為 m 的訓練資料集訓練出所有模型的輸出的 平均值(中心) 和真實標記之間的偏差。描述所有預測結果 整體 對真實標記的“偏離程度”,即所有預測分佈的中心對真實標記分佈的 偏離程度。可以衡量模型對資料集的學習程度。

      偏差通常是由於我們對學習演算法做出了錯誤的假設所導致的。由偏差帶來的誤差通常在訓練誤差上就能體現出來。

      偏差越大,對資料集的擬合程度越差;偏差越小,擬合程度越好。

    2. 方差

      方差是指由所有采樣得到的大小為 m 的訓練資料集訓練出的所有模型的輸出的方差。描述所有預測結果對預測結果中心的 離散程度(聚集密度),可以衡量資料擾動對模型的影響程度。

      方差通常是由於模型的複雜度相對於訓練樣本數 m 過高導致的。由方差帶來的誤差通常體現在測試誤差相對於訓練誤差的增量上。

      方差越大,對噪聲越敏感,越容易過擬合;方差越小,與不容易過擬合。

    3. 圖解

      我們使用射擊的例子來進一步解釋。假設一次射擊就是一個模型對一個樣本進行預測。射中靶心代表預測準確,越偏離靶心代表預測誤差越大。

      我們通過 n 次取樣得到 n 個大小為 m 的訓練樣本集合,訓練處 n 個模型,對同一個樣本進行預測,相當於我們進行了 n 次射擊。

      具體對偏差與方差的理解可看圖。
      偏差與方差
      (圖片來自網路)
      偏差與方差
      (圖片來自網路)