蘭州網(wǎng)站分類導航seo北京公司
文章目錄
- 序言
- 1. 訓練集、驗證集、測試集是什么
- 2. 為什么需要驗證集
- 3. 驗證集是必須的嗎
- 4. 驗證集和測試集上的表現(xiàn)會不同嗎
- 5. 如何從Train/Test Set劃分Validation Set
- 6. 訓練集、驗證集和測試集的比例怎么設(shè)置
- 7. 模型表現(xiàn)不好時測試集可以反復使用來調(diào)整模型嗎
- 8. 訓練集、驗證集和測試集的數(shù)據(jù)是否可以有所重合
- 9. 常見的機器學習模型驗證方法有哪些
序言
- 關(guān)于數(shù)據(jù)集的一些疑問厘清
1. 訓練集、驗證集、測試集是什么
-
訓練集:Training Dataset. 用于訓練和調(diào)整模型參數(shù)
- 訓練階段
-
驗證集:Validation Dataset. 用于驗證模型精度和調(diào)整模型超參數(shù)
- 模型挑選階段
- 驗證集的作用體現(xiàn)在訓練的過程中
- 比如:通過查看訓練集和驗證集的損失值隨著epoch的變化關(guān)系可以看出模型是否過擬合,如果是可 以及時停止訓練,然后根據(jù)情況調(diào)整模型結(jié)構(gòu)和超參數(shù),大大節(jié)省時間
-
測試集:Test Dataset. 驗證模型的泛化能力
- 驗證階段
- 測試集的作用體現(xiàn)在測試的過程中
2. 為什么需要驗證集
- 首先,劃分訓練集、驗證集和測試集,能夠避免信息泄漏
- 模型的參數(shù)和超參,模型存在兩個最優(yōu):訓練集參數(shù)的最優(yōu) + 超參數(shù)的最優(yōu)。如果沒有驗證集,假設(shè)訓練好的模型在測試集上表現(xiàn)不好,將無法確認是模型參數(shù)過擬合/欠擬合,還是超參數(shù)設(shè)置不合理,所以需要驗證集來選擇超參數(shù)
- 驗證集和測試集一樣,都是未知的,如果模型適用于驗證集,那么也大概會適用于測試集
3. 驗證集是必須的嗎
- 否
- 訓練集是練習題 + 驗證集是模擬題 + 測試集是考試題
- 訓練集:調(diào)試網(wǎng)絡(luò)參數(shù);驗證集:沒有參與網(wǎng)絡(luò)參數(shù)更新
- 沒有超參數(shù)就不需要驗證集。如果不需要調(diào)整超參和early stop,就不需要驗證集,把驗證集并入訓練集即可,但是不需要超參的模型比較少見
- 驗證集是用來選取最優(yōu)超參數(shù)的
- 在實際應(yīng)用中,有可能不繼續(xù)劃分驗證集和測試集,就相當于假設(shè)驗證集和測試集分布高度相似,依次來驗證開發(fā)算法的泛化性能
4. 驗證集和測試集上的表現(xiàn)會不同嗎
- 會不會出現(xiàn)調(diào)優(yōu)后的超參數(shù)在驗證集上優(yōu)秀,但在測試集上卻表現(xiàn)不如模型超參數(shù)?
- 一般不會,除非驗證集和測試集的數(shù)據(jù)分布有明顯不同
5. 如何從Train/Test Set劃分Validation Set
- 從training set中拿出一部分作為validation set,最好讓validation set和test set的大小和數(shù)據(jù)分布接近。如下

6. 訓練集、驗證集和測試集的比例怎么設(shè)置
- 如果有慣例,按照慣例
- 沒有的話,可以是10:1,8:2,7:3,6:4等。傳統(tǒng)上是6:2:2,即訓練集:驗證集:測試集 = 6:2:2是可以的
- 如果不需要驗證集,訓練集:測試集 = 8:2或7:3
- 網(wǎng)上還看到兩種劃分比例:
- 訓練集:驗證集:測試集 = 8:0.5:1.5
- 訓練集:驗證集:測試集 = 7:1:2
- 數(shù)據(jù)集劃分沒有明確規(guī)定,但可以參考以下原則
- 對于小規(guī)模樣本集(幾萬量級),常用的分配比例是 60% 訓練集、20% 驗證集、20% 測試集
- 對于大規(guī)模樣本集(百萬級以上),只要驗證集和測試集的數(shù)量足夠即可。例如有 100w 條數(shù)據(jù),那么留 1w 驗證集,1w 測試集即可。1000w 的數(shù)據(jù),同樣留 1w 驗證集和 1w 測試集
- 超參數(shù)越少,或者超參數(shù)很容易調(diào)整,那么可以減少驗證集的比例,更多的分配給訓練集
7. 模型表現(xiàn)不好時測試集可以反復使用來調(diào)整模型嗎
- 如果只是調(diào)整超參數(shù),那么重復使用測試集屬于作弊
- 如果不光調(diào)整超參、還對模型設(shè)計、訓練方法做改進,可以重復使用
8. 訓練集、驗證集和測試集的數(shù)據(jù)是否可以有所重合
- 數(shù)據(jù)少,又不想使用數(shù)據(jù)增強,可以使用交叉驗證的方法
- 但各數(shù)據(jù)集的數(shù)據(jù)肯定都是劃分清楚的
9. 常見的機器學習模型驗證方法有哪些
-
(1)留出法
- 按照固定比例將數(shù)據(jù)集固定的劃分為訓練集、驗證集、測試集
-
(2)k折交叉驗證
- 留出法對數(shù)據(jù)的靜態(tài)劃分可能得到不同的模型;k折交叉驗證是一種動態(tài)驗證的方法,可以降低數(shù)據(jù)劃分帶來的影響
- 步驟:
- 1)將數(shù)據(jù)集分為訓練集和測試集,將測試集放在一邊
- 2)將訓練集分為 k 份
- 3)每次使用 k 份中的 1 份作為驗證集,其他全部作為訓練集
- 4)通過 k 次訓練后,我們得到了 k 個不同的模型
- 5)評估 k 個模型的效果,從中挑選效果最好的超參數(shù)
- 6)使用最優(yōu)的超參數(shù),然后將 k 份數(shù)據(jù)全部作為訓練集重新訓練模型,得到最終模型
- 7)還有一種說法是,將k次loss的平均作為性能度量得到最終模型,如下圖
-
(3)留一法
- 是k折交叉法的一個變種,將k定義為n(n為樣本數(shù))
- 一般在數(shù)據(jù)缺乏時使用,即適合于小樣本的情況,優(yōu)點是樣本利用率高,缺點是計算繁瑣
- 每次的測試集都只有一個樣本,要進行 n 次訓練和預測
- 這個方法用于訓練的數(shù)據(jù)只比整體數(shù)據(jù)集少了一個樣本,因此最接近原始樣本的分布。但是訓練復雜度增加了,因為模型的數(shù)量與原始數(shù)據(jù)樣本數(shù)量相同
-
(4)自助法
- 自助法以有放回/自助采樣為基礎(chǔ)
- 每次隨機從 D D D(樣本數(shù)為m)中挑選一個樣本,放入 D ′ D' D′中,然后將樣本放回D中,重復m次之后,得到了包含m個樣本的數(shù)據(jù)集 D ′ D' D′
- 樣本在m次采樣中始終不被采到的概率是
( 1 ? 1 m ) m (1-\frac{1}{m} )^{m} (1?m1?)m - 取極限得到
lim ? m → ∞ ( 1 ? 1 m ) m = 1 e = 0.368 \lim_{m \to \infty} (1-\frac{1}{m} )^{m} =\frac{1}{e} =0.368 m→∞lim?(1?m1?)m=e1?=0.368 - 即D約有 36.8 % 36.8\% 36.8%的樣本未出現(xiàn)在 D ′ D′ D′中。于是將 D ′ D′ D′用作訓練集, D D D\ D ′ D′ D′剩下的用作測試集
- 這樣,仍然使用m個訓練樣本,但約有1/3未出現(xiàn)在訓練集中的樣本被用作測試集
- 這種方法優(yōu)點是自助法在數(shù)據(jù)集較小、難以有效劃分訓練/測試集時很有用;自助法改變了初始數(shù)據(jù)集的分布,這會引入估計偏差
?
?
如有幫助,請點贊收藏支持
?
【參考文章】
訓練集驗證集測試集
訓練集驗證集測試集的通俗解釋
能不能不要驗證集
驗證集和測試集有什么區(qū)別
常用的交叉驗證技術(shù)
機器學習的驗證方法
模型評估方法
created by shuaixio, 2023.09.30