您現在的位置是:首頁 > 棋牌
「機器學習速成」為什麼要拆分為三個集:訓練集、驗證集、測試集
- 由 馬上學人工智慧 發表于 棋牌
- 2022-02-21
驗證集是什麼
大家好,今天我們學習【機器學習速成】之 為什麼要拆分為三個子集:訓練集、驗證集、測試集
我們
馬上學三點
,
只劃分訓練集和測試集的不足
驗證集在劃分方案中的重要性
訓練集、測試集、驗證集三者區別
大家可以點選下面的“
瞭解更多
”,或搜尋“
馬上學123
”,線上觀看PPT講義
訓練集和測試集工作流程
訓練集和測試集工作流程
上一個課程 我們介紹瞭如何將資料集劃分為訓練集和測試集。 藉助這種劃分, 您可以對一個樣本集進行訓練, 然後使用不同的樣本集測試模型。
我們來想象下運用該方法的實際情況, 我們有了測試集和訓練集, 並按照上一節課程的要求對它們進行了妥善區分。 現在我們要進行一些迭代。 我將用
訓練資料訓練一種模型
, 然後使用
測試集對模型進行測試
並觀察其指標, 根據在測試集上獲得的效果調整模型。
“
調整模型
”指的是 調整您可以想到的關於模型的任何方面, 從更改學習速率、新增或移除特徵, 到從頭開始設計全新模型。
我將調整一些設定, 比如調整學習速率或類似設定。 然後重新嘗試前面的操作, 看看能否提高測試集準確率。 我可能會新增一些特徵,也可能會去除一些特徵, 並繼續迭代, 直到根據
測試集指標找出最佳模型
為止。
這樣有問題嗎? 我能想到的一點是: 我可能
針對測試集的特性進行了過擬合
。 這樣就太糟糕了…
劃分為三個子集
劃分為三個子集
我們可以使用另一種方法來解決這個問題, 我可以在分組資料之外建立第三個資料集, 並將該資料集稱為“
驗證集
”, 這可以大幅降低過擬合的發生機率。
驗證集和測試集應該
,且與真實需求一致。
更好的工作流程
我會使用一種新迭代方法, 對訓練資料進行迭代訓練, 然後僅基於
驗證集進行評估
。
將測試集擱置一旁,完全不使用這些資料。 我將不斷迭代、調整各種引數或對模型進行任何更改, 直到根據
驗證集得出比較理想的結果
後。 再使用
測試集再次檢查該模型
。
更好的工作流程
我要確保根據
測試集得出的結果
基本上
符合
根據
驗證集得出的結果
。 如果不符合,則充分說明我可能對驗證集進行了過擬合。
不斷使用測試集和驗證集會使其逐漸失去效果。 也就是說,您使用相同資料來決定超引數設定 或其他模型改進的次數越多, 您對於這些結果能夠真正泛化到未見過的新資料的信心就越低。
該工作流程之所以更好, 原因在於它
暴露給測試集的資訊更少
。
如果可能的話,建議您收集
更多資料
來“重新整理”測試集和驗證集。 重新開始也是一種很好的
重置
方式。
訓練集、測試集、驗證集三者區別
訓練集、測試集、驗證集三者區別
訓練集是用來
訓練模型
內參數的資料集;
驗證集用於
調整超引數
, 根據幾組模型驗證集上的表現 決定哪組超引數擁有最好的效能, 同時用來監控模型是否發生過擬合。
測試集用來
評價模型泛化能力
, 即之前模型使用驗證集確定了超引數, 最後使用一個從沒有見過的新資料集來判斷這個模型是否工作。
三者區別舉例: 我們把學生能力類比模型能力 訓練集就像是學生的課本,學生根據課本里的內容來掌握知識, 驗證集就像是練習作業, 透過作業可以知道不同學生學習情況、進步的速度快慢, 而最終的測試集就像是考試, 考的題是平常都沒有見過,考察學生
舉一反三
的能力。
為什麼需要測試集?
訓練集、測試集、驗證集三者區別
訓練集直接參與了
模型調慘
的過程, 顯然不能用來反映模型真實的能力, 這樣一些對課本
死記硬背
的學生將會擁有最好的成績, 這是過擬合,顯然不對。
同理,由於驗證集參與了
人工調參
的過程, 也不能用來最終評判一個模型, 就像
刷題庫
的學生也不能算是學習好的學生是吧。 所以要透過最終的
考試
, 也就是
測試集
來考察一個學生模型的真正的能力。
對於用於比賽的公開資料集, 驗證集會公開標註,測試集不會公開。
千萬不要用測試資料來訓練模型! 不然就監守自盜了!
總結:
只劃分訓練集和測試集, 會出現
過擬合該測試集
的風險;
樣本資料集包括訓練集、驗證集、測試集, 其中訓練集和驗證集的作用是對學習模型進行
引數擇優
, 測試集是測試該模型的
泛化能力
。
這裡講了三點,關鍵詞有哪幾個?
提問:AI比賽時,我們可以看到測試集嗎?
歡迎回複評論