測試集效果比驗證集差很多說明了什麼?

時間 2021-06-14 12:06:24

1樓:flowera

原因可能有4個,可逐一檢查:

1.交叉驗證次數是否足夠?

2.檢查訓練集和驗證集是否有重合,即是否有資料窺探問題。

3.對訓練集、驗證集以及測試集做的資料預處理是否一致。

4.排除以上3個可能,可以基本確定是訓練集和驗證集來自同一資料分布,但是測試集卻是另外乙個分布。

2樓:Scchy

首先從數學模型擬合角度來看,這是模型擬合出現高方差

下圖為吳恩達老師deep AI課程裡的擬合高方差截圖:

一般針對這種情況可以從兩個角度進行修正:

資料角度:1)資料的取樣是否有問題,訓練樣本和測試樣本的分布是不是基本一致;或者從業務上看,是否用了過時的資料進行資料擬合。2) 增加訓練資料使得擬合模型能適用於很多態別的樣本。

模型角度(過擬合):1) 增加或者增大正則項。2) 適當的減少訓練特徵

一般優先從資料角度去解決這個問題,畢竟資料決定了模型的上限。當資料樣本無法調整的時候,可以從特徵入手。之後再考慮調整模型引數

3樓:

從資料入手:資料決定上限。測試集和訓練集的差別不要太大(用狗訓練的模型,去檢測貓肯定效果差);或者再把測試集的部分資料加入訓練集;或者做個消融實驗,在資料量充足的情況下,訓練集和測試集身份互換,如果效果都差,說明訓練模型過程有問題。

從模型入手:擬合效果差。優化學習率、調整訓練代數、更改損失函式(如果資料不平衡很有必要)方法就很多了。

4樓:z333w

有可能是驗證集上過擬合,可以多弄一些驗證集,也就是k折交叉驗證,k取更大一點,或者多做幾次交叉驗證,取多次的平均來看,在它們的基礎上重新調超參

5樓:哈哈哈

說明測試集和驗證集之間有偏差吧,驗證集不能完全代表測試集的效果。

一種常見的情況是:驗證集一般是從訓練集中分出來的資料,所以和訓練集較為接近。這就導致訓練的模型在驗證集上表現的和訓練集接近,效果不錯。

但測試集可能為其他一些更接近實際使用的資料,和訓練集、驗證集的分布有一定的偏差就導致在測試集上表現不佳(分布有一定的偏差:以分類蘋果和梨為例子:1)訓練和驗證集中的蘋果都是紅的,梨都是黃的,而測試集中蘋果為綠蘋果;2)訓練集和驗證集中蘋果的比例是90%,梨的比例是10%,模型更趨向將樣本分類為蘋果,但測試集中可能蘋果和梨子的比例是1:

9梨的比例更高,那測試集的效果可能就變差了)。

增加模型的泛化性:

最直接的方法: 增加資料多樣性!增加資料多樣性!增加資料多樣性!(重要的事情說三遍)

一些常規的方法:dropout、batchnorm、reguralization等;

可嘗試的一些新方法:利用半監督、自監督學習,類似的方法:MoCo,SimCLR,BYOL,SimSiam等

哈哈哈:自監督學習

哈哈哈:資料不均衡的半監督問題A Class-Rebalancing Self-Training Framework for Imbalanced Semi-Supervised Learning

6樓:乎不知

出現這種現象,可能的原因有很多,例如:輸入測試集資料的時候,是否經過了與驗證集和訓練集一樣的標準化?或者模型在訓練過程中,是否見過驗證集的資料,記下了驗證集的標籤導致結果虛高?

(希望題主可以提供更多詳細的資訊,如果只是一句話的模糊描述,答者很難獲取有效資訊,題主也很難得到準確的回答.)

如果上述基礎性的操作沒有問題,那可能的原因有:

一般來說,測試集的效果會差於訓練集,而驗證集可能好於測試集,也可能差於測試集,但差距不會很大.期待題主查到原因後,給出詳細的原因和結果,以幫大家避坑.

請問驗證集準確率比測試集高很多,可能是什麼原因?

弗拉基公尺爾 如果只是高個10 我認為問題不大.如果大於10 可能有 1.資料過擬合了.加正則化batch normal,dropout都可以.減少網路引數,減少網路層數 2.資料本身有缺陷.你看看你的資料集,是不是有缺陷.在訓練資料集上,這些資料集是可以篩選的,你可以選擇有代表的資料集進行訓練.3...

驗證模型效能時,只要「驗證集效能」低於「訓練集效能」,就應認為模型搭建的失敗嗎?

一然 不能認為失敗。這事說起來還有點麻煩 如果訓練集表現已經很差,驗證的時候表現更差,那確實是失敗,整體失敗,可能需要換模型了。如果訓練的時候表現的很好,驗證的時候摔了0.1 不足以說明任何事,因為具體的情況很複雜。如果使用準確率來評估的話,那麼對於某些問題是不公平的,有時候準確率不算太高,有的時候...

LSTM訓練集和驗證集的loss曲線為什麼會是這樣?

醉笑陪公看落花 前面回答已經很好了,再補充一點.題主提出這樣的問題說明對機器學習的一些基本知識還沒有乙個系統的學習.但與此同時能訓練出乙個不錯的LSTM網路,說明題主的應用實踐能力很強.那我們可以從應用上手,改變訓練集大小 改變模型複雜度,然後再看loss曲線的變化,這樣更有助於理解val loss...