維度災難&&bias和variance

維度災難

維度增多主要會帶來高維空間數據稀疏化問題,機器學習

也就是說,數據會更加的分散,於是就須要更大的數據量才能得到較好的bias和variance,達到較好的預測效果。性能

此處,最典型的是對於KNN的預測。學習

更詳細的見:怎樣理解"curse of dimensionality".net

另外一方面看,當維度增長時,也可能致使過擬合現象:訓練集上表現好,可是對新數據缺少泛化能力。高維空間訓練造成的分類器,至關於在低維空間的一個複雜的非線性分類器,這種分類器過多的強調了訓練集的準確率甚至於對一些錯誤/異常的數據也進行了學習,而正確的數據卻沒法覆蓋整個特徵空間。所以,這樣獲得的分類器在對新數據進行預測時將會出現錯誤。blog

下圖是隨着維度(特徵數量)的增長,分類器性能的描述:get

 

可是如何避免維度災難呢?數學

並無固定的規則規定在分類問題中應該使用多少個特徵,由於維度災難問題和訓練樣本的數據有關。it

事實上,避免維度災難主要有兩種方法:io

  • 降維。能夠是從本來維度中挑選一些維度,或是從原特徵的基礎上構造新特徵
  • 交叉驗證。

參見:機器學習中的維數災難基礎

bias與variance的權衡

上面既然提到了bias和variance,趁機就詳細說一下

bias與variance究竟是個什麼鬼

解釋1:

bias 誤差 :模型的指望(或平均)預測和正確值之間的差異

variance 方差 :模型之間的多個擬合預測之間的偏離程度

更多關於bias和variance的定義(包括概念定義,圖形化定義,數學定義等)見:權衡誤差和方差

解釋2:

也就是說,bias和variance分別從兩個方面來描述了咱們學習到的模型與真實模型之間的差距。

Bias是 「用全部可能的訓練數據集訓練出的全部模型的輸出的平均值」 與 「真實模型」的輸出值之間的差別;

Variance則是「不一樣的訓練數據集訓練出的模型」的輸出值之間的差別。

 解釋3:

首先 Error = Bias + Variance
Error反映的是整個模型的準確度,Bias反映的是模型在樣本上的輸出與真實值之間的偏差,即模型自己的精準度,Variance反映的是模型每一次輸出結果與模型輸出指望之間的偏差,即模型的穩定性。
更準確地講ERROR分紅3個部分:Error = Bias + Variance + Noise

而這兩個與過擬合和欠擬合又有什麼關係呢?

處理過擬合和欠擬合的過程就是關於處理bias和variance。模型複雜度越高,過擬合的風險就越大,bias就減少,可是variance就越高。以下圖所示:

K折交叉驗證中K的選擇:當k偏小的時候,會致使bias偏高。當k偏大的時候,會致使variance偏高,一般把k控制在5~10的範圍裏。

bias-variance判斷

  • 根據錯誤均值判斷bias,若是錯誤均值很低,說明在這個數據集上,該模型準確度是能夠的。 
  • 根據錯誤標準差來判斷variance,若是錯誤標準差很高,說明該模型的泛化能力須要提升。

也就是說,一個好的模型,誤差越小越好,方差越小越好。

相關文章
相關標籤/搜索