3 11 模型選擇 欠擬合和過擬合

2021-10-05 14:14:18 字數 4298 閱讀 4156

前者指模型在訓練資料集上表現出的誤差,後者指模型在任意乙個測試資料樣本上表現出的誤差的期望,並常常通過測試資料集上的誤差來近似。計算訓練誤差和泛化誤差可以使用之前介紹過的損失函式,例如線性回歸用到的平方損失函式和softmax回歸用到的交叉熵損失函式。

由於驗證資料集不參與模型訓練,當訓練資料不夠用時,預留大量的驗證資料顯得太奢侈。一種改善的方法是k折交叉驗證(k-fold cross-validation)。在k折交叉驗證中,我們把原始訓練資料集分割成k個不重合的子資料集,然後我們做k次模型訓練和驗證。每一次,我們使用乙個子資料集驗證模型,並使用其他k−1個子資料集來訓練模型。在這k次訓練和驗證中,每次用來驗證模型的子資料集都不同。最後,我們對這k次訓練誤差和驗證誤差分別求平均。

擬合影象:

:# 三階多項式函式擬合(正常)

fit_and_plot(poly_features[

:n_train,:]

, poly_features[n_train:,:

],labels[

:n_train]

, labels[n_train:])

# 線性函式擬合(欠擬合)

fit_and_plot(features[

:n_train,:]

, features[n_train:,:

], labels[

:n_train]

, labels[n_train:])

# 訓練樣本不足(過擬合)

fit_and_plot(poly_features[0:

2,:]

, poly_features[n_train:,:

], labels[0:

2], labels[n_train:

])正常擬合影象:

擬合不足影象:

過擬合影象:

3 11 模型選擇 擬合和過擬合

如果你改變過實驗中的模型結構或者超引數,你也許發現了 當模型在訓練資料集上更準確時,它在測試資料集上卻不 定更準確。這是為什麼呢?3.11.1 訓練誤差和泛化誤差 在解釋上述現象之前,我們需要區分訓練誤差 training error 和泛化誤差 generalization error 通俗來講,...

模型選擇 過擬合和欠擬合

模型選擇 過擬合和欠擬合 訓練誤差和泛化誤差 在解釋上述現象之前,我們需要區分訓練誤差 training error 和泛化誤差 generalization error 通俗來講,前者指模型在訓練資料集上表現出的誤差,後者指模型在任意乙個測試資料樣本上表現出的誤差的期望,並常常通過測試資料集上的誤...

模型過擬合與欠擬合

機器學習中,經常討論到的乙個話題就是泛化能力。泛化能力的強弱決定了模型的好壞,而影響泛化能力的則是模型的擬合問題。機器學習的目的並不是為了對訓練集的做出正確的 而是對沒有在訓練集中出現的資料進行正確的 但是對訓練集之外的資料 的前提是,模型在訓練集上的表現很好,基本可以滿足大部分資料的 這樣才會被用...