在學習模型設計完成後,對模型進行訓練,可得到模型引數 θ ,通過假設函式公式:
可得到**值。
但怎麼知道訓練完成的模型效能怎麼樣呢?也就是說,通過該模型得到的**值準不準確?有沒有辦法提高準確度?
這就是本節將要解決的問題。
如圖所示,將原始資料以 6:2:2 分成 3 份。
分別為:訓練集、交叉驗證集、測試集
訓練集:訓練模型,獲得引數 θ
交叉驗證集: 獲取模型其他最優引數。比如:模型多項式的次數,正則化時引數 λ,學習率 α,等等可以提高模型預
測準確度的除 θ 外的引數。
測試集:在其他引數調整好後,測試系統**的準確度。
需要注意的是:
1 在對公式進行正則化避免過擬合問題時,交叉驗證集與測試集是不需要正則化的(λ == 0),這 3 個集僅僅是訓練資料不同,模型(公式)是相同的。
2 使用交叉驗證集尋找最優引數時,得到的 jcv 是乙個 n*1 維的向量(例如尋找模型次數時,使d = 1:10,則 n = 10),可以使用視覺化找出最優引數。也可以使用 matlab 函式 min(x) 直接得到最小值,但 d = 9 與 d = 10 所得的 jcv 大小差別不大,但計算量卻增加很多(增加了 x^10 項),因此建議從影象中找最優引數。
訓練集 測試集 驗證集與交叉驗證
當我們訓練好乙個模型時,我們不只希望這個模型只在訓練集上表現的好,更重要的是希望這個模型後續能表現的好,這時候就需要測試集,用於評估這個模型的泛化能力。通常情況下,我們將資料以8 2的比例分割訓練集和測試集。在演算法模型中,我們還要使用正則化技術,避免過擬合。其中乙個做法就是使用100個不同超引數訓...
訓練集 測試集 驗證集與交叉驗證
初學者對於訓練集 train set 測試集 test set 驗證集 validation set 這三個概念和應用非常容易搞混,這裡我結合各種博文和書籍上的講解進行總結 參與訓練,模型從訓練集中學習經驗,從而不斷減小訓練誤差。這個最容易理解,一般沒什麼疑惑。不參與訓練,用於在訓練過程中檢驗模型的...
訓練集 驗證集 測試集
訓練集loss 驗證集loss 測試集loss 乙個好的網路,二者的差距應該是很低的。但一般情況下因為網路不可避免地存在一定程度上的過擬合,所以肯定是train loss低於test lost,但如果低太多,就得考慮是過擬合的問題還是因為樣本的特徵空間不統一的問題。驗證集基本是在每個epoch完成後...