前者指模型在訓練資料集上表現出的誤差,後者指模型在任意乙個測試資料樣本上表現出的誤差的期望,並常常通過測試資料集上的誤差來近似。計算訓練誤差和泛化誤差可以使用之前介紹過的損失函式,例如線性回歸用到的平方損失函式和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 通俗來講,前者指模型在訓練資料集上表現出的誤差,後者指模型在任意乙個測試資料樣本上表現出的誤差的期望,並常常通過測試資料集上的誤...
模型過擬合與欠擬合
機器學習中,經常討論到的乙個話題就是泛化能力。泛化能力的強弱決定了模型的好壞,而影響泛化能力的則是模型的擬合問題。機器學習的目的並不是為了對訓練集的做出正確的 而是對沒有在訓練集中出現的資料進行正確的 但是對訓練集之外的資料 的前提是,模型在訓練集上的表現很好,基本可以滿足大部分資料的 這樣才會被用...