1. 程式人生 > 其它 >模型選擇、欠擬合和過擬合

模型選擇、欠擬合和過擬合

一、前言

將模型在訓練資料上擬合得比在潛在分佈中更接近的現象稱為過擬合(overfitting),用於對抗過擬合的技術稱為正則化(regularization)。

二、訓練誤差與泛化誤差

1、訓練誤差(training error):我們的模型在訓練資料集上計算得到的誤差。、

2、泛化誤差(generalization error):當我們將模型應用在同樣從原始樣本的分佈中抽取的無限多的資料樣本時,我們模型誤差的期望。

3、我們永遠不能準確估算泛化誤差。因為無限多的資料樣本是一個虛擬的物件。在實際中,我們只能將模型應用在一個獨立的資料集中來估計泛化誤差,且該資料集需隨機選取、未曾在訓練集中出現的資料樣本構成。

4、獨立同分布:我們假設訓練資料和測試資料都是從相同的分佈中獨立提取(也就是說資料之間的沒有相關性),每一個樣本都是從同一個概率分佈中相互獨立中生成

5、機器學習模型應關注降低泛化誤差

三、模型選擇

1、在機器學習中,通常需要評估若干候選模型的表現並從中選擇模型

2、驗證資料集:在描述模型選擇中經常使用驗證資料集

  • 測試資料集只能在所以超引數和惡模型引數選定後使用一次,不可以使用該測試資料集用於模型選擇,
  • 由於無法從訓練誤差中估算泛化誤差,因此不能依賴訓練資料集來選擇模型。所以,我們必須預留一部分在訓練資料集和測試資料集以外的資料來進行模型選擇,這部分資料集就是驗證資料集

3、K折交叉驗證:在訓練資料集不夠用時,預留大量的驗證資料顯得太奢侈。K折交叉驗證就是為了解決訓練資料集不夠用的情況

  • 我們把原始訓練資料集分割成K個不重合的子資料集,然後做k次模型訓練和驗證
  • 每一次,使用一個子資料做驗證資料集,並使用其他k-1個子資料集來訓練模型
  • 在k次訓練和驗證中,每次用來驗證模型的子資料集都不同。最後,對這k次訓練誤差和驗證誤差取平均值

四、欠擬合和過擬合

1、欠擬合:模型無法得到較低的訓練誤差(學習能力弱)

2、過擬合:模型的訓練誤差遠小於他在測試資料集上的泛化誤差(學習能力太強)

五、模型複雜度

1、模型容量

  • 擬合各種函式的能力
  • 低容量的模型難以擬合訓練資料
  • 高容量的模型可以記住所有訓練資料

2、模型容量估計

  • 引數的個數
  • 引數值的選擇範圍

3、給定資料集,模型複雜度與誤差之間的關係如下

  • 如果模型的複雜度過低,很容易出現欠擬合現象
  • 如果模型的複雜度過高(記住了所有訓練資料),很容易出現過擬合現象

六、訓練資料集大小

1、資料複雜度

  • 樣本個數
  • 每個樣本的元素個數
  • 時間、空間結構
  • 多樣性

2、訓練資料集中的樣本越少,我們就越有可能(且更嚴重地)遇到過擬合

3、泛化誤差不會隨訓練資料集中樣本數量增加而增加