機器學習 - KNN、偏差與方差
機器學習 - KNN
(KNN 是一種分類演算法,它沒有學習的過程,而是直接計算出預測結果)
-
KNN
-
演算法步驟
(1) 計算 被預測點 到所有“訓練樣本”的距離
(2) 從中找出前 k 個距離最近的樣本點
(3) 根據分類決策規則決定(預測) 被預測點 的類別
-
距離度量
使用不同的距離度量所確定的臨近點可能是不同的。
兩點間距離計算: ,
表示第 個樣本, 為個樣本第 個特徵。
時, 為曼哈頓距離;
時, 為歐氏距離。 -
K 的選取
值可以用來描述 被預測點 的鄰域的大小,其值的選取對結果影響很大。
(1) 越小,近似誤差越小,預測誤差越大,對噪聲越敏感,越容易過擬合;(只受周圍少數樣本影響,加入附近有噪聲點,那就有可能被分為噪聲點的類別,所以容易過擬合)
(2) 越大,近似誤差越大,預測誤差越小,對噪聲越不敏感,容易欠擬合。(受周圍更多的樣本點影響,因為噪聲點較少所以不容易過擬合,但樣本點多時容易欠擬合,可理解為“人多嘴雜”。假設 k=9,其中 5 個樣本指向類別 1,4個樣本指向類別 2,可能這個被分類樣本的真實標籤是 2,但此時因為 K 值變大,將離得稍遠的但個數較多的類別 1 也包括進來,此時被分類樣本就被錯誤分類。)
-
多數表決規則
在距離 被預測點 最近的 k 個樣本中,哪一類別的個數最多,則 被預測點屬於哪一類。
-
KNN 特點
(1) 基於樣本例項計算,而非訓練;
(2) 分類時開銷大,屬於消極學習方法;
(3) 基於區域性資訊預測,對噪聲敏感;
(4) 可產生任意形狀的決策邊界,非簡單線性;
(5) 受值域較大的屬性影響較大,應統一量綱,歸一化。
-
-
偏差與方差
我們經常用過擬合、欠擬合來定性地描述模型是否很好的解決了特定的問題。從定量的角度來說,可以用模型的偏差(Bias)與方差(Variance)來描述模型的效能。
-
偏差
偏差是指由所有采樣得到的大小為 m 的訓練資料集訓練出所有模型的輸出的 平均值(中心) 和真實標記之間的偏差。描述所有預測結果 整體 對真實標記的“偏離程度”,即所有預測分佈的中心對真實標記分佈的 偏離程度。可以衡量模型對資料集的學習程度。
偏差通常是由於我們對學習演算法做出了錯誤的假設所導致的。由偏差帶來的誤差通常在訓練誤差上就能體現出來。
偏差越大,對資料集的擬合程度越差;偏差越小,擬合程度越好。
-
方差
方差是指由所有采樣得到的大小為 m 的訓練資料集訓練出的所有模型的輸出的方差。描述所有預測結果對預測結果中心的 離散程度(聚集密度),可以衡量資料擾動對模型的影響程度。
方差通常是由於模型的複雜度相對於訓練樣本數 m 過高導致的。由方差帶來的誤差通常體現在測試誤差相對於訓練誤差的增量上。
方差越大,對噪聲越敏感,越容易過擬合;方差越小,與不容易過擬合。
-
圖解
我們使用射擊的例子來進一步解釋。假設一次射擊就是一個模型對一個樣本進行預測。射中靶心代表預測準確,越偏離靶心代表預測誤差越大。
我們通過 n 次取樣得到 n 個大小為 m 的訓練樣本集合,訓練處 n 個模型,對同一個樣本進行預測,相當於我們進行了 n 次射擊。
具體對偏差與方差的理解可看圖。
(圖片來自網路)
(圖片來自網路)
-