訓練集效果還可以,測試集效果不好,意味著什麼

時間 2021-05-05 15:28:05

1樓:雞湯狗

可能有兩點原因,乙個模型過擬合,訓練過度了,可以減少epoch看看;第二,最好檢查一下測試集合和訓練集合的資料分布,如果兩者差異大,自然很難學習得好。

2樓:社會大學楊教授

原因太多了,需要你逐個排查。樓上說的很全面的,我很贊同。

訓練集效果還可以,測試集效果不好,意味著什麼?

樓上的哥從general的角度談,我這裡來做一做補充和分享。

目測你的任務是分類,我覺得你需要注意輸入資料的型別。像numerical, integer, binary需要預處理,特別是integer, binary。其次,你是在做玩kaggle嗎?

我之前做kaggle,training資料大概7000多條,validation2000多,效果一般測出來也就20/500左右。最後做test 5000條,反而結果變得很好,最後直接變成3/500. 而很多人從validation top20 直接掉到100多,慘。。。

原因很簡單,過擬合(overfitting)。所以我建議,不要太在意validation。你validation做得再好,不代表你test就會好,因為有可能已經在過擬合的道路上走遠了。

我建議要專注於模型的robustness,多分析資料的性質和統計學含義。比如整個PCA在做預處理降為有沒有道理?用tsne好還是PCA好等等。

不要學某些同學瘋狂調參,整一堆hyper-parameters,然後在假象裡面自high半天。

3樓:陳浩

一般情況下,特徵越多,訓練樣本越少,模型引數越多,則訓練時能把偏差降到越低,訓練集效果越好。但我們還需要模型具有泛化能力即在測試集上的效果,測試集效果不好,意味著泛化能力不行,可以嘗試的方法:增加訓練樣本,調整超引數降低模型複雜度,特徵工程(增加或去掉一些特徵)。

4樓:Curry

混淆矩陣表現效果好說明,模型在驗證集上的表現ok;如果是有驗證集集的並且在驗證集表現不錯,應該不是模型過擬合;

在測試集上表現不好,很大可能是測試的資料和訓練的資料不在同乙份分布下;

更改下資料集劃分方式試試。

5樓:雙魚理

大概是過擬合吧,訓練集和測試機分布不太均勻,可以通過對抗校驗驗證下,是不是資料有漂移。

方案1 看看能不能增加一些樣本到訓練集,或者丟棄部分訓練集樣本,測測看

6樓:

過擬合。或者,無論是訓練集還是測試集,你的目標和你的資料之間沒有關聯性。

如果是前者這種情況,那結果應該是測試集效果比訓練集低了不少,但也大於盲猜。舉個例子,二分類,訓練集上acc為0.9,測試集上為0.

7,雖然測試集效果不好,但準確率也大於盲猜,盲猜的acc為0.5,至少說明你的label和資料之間是有顯著聯絡的,且你的這個模型已經初步挖掘出了這種聯絡。這個時候,你應該考慮的就是怎麼降低過擬合,例如通過加入正則化,dropout,用交叉驗證等手段。

如果是第二種情況,還是乙個二分類,那結果可以是訓練集acc 0.9以上,而在測試集上的acc為0.5,即約等於盲猜。

(其實這個也是一種過擬合現象,即模型在訓練時記住了你的樣本所對應的label)。但是更深層一點的,你應該考慮你的資料和特徵是否是有聯絡的,即檢查你的資料。

7樓:xcm

訓練集上效果好,測試集上差是典型的過擬合.

原因:1.資料量小,如果模型複雜,容易出現訓練集準確率高,測試集低的情況

2.多分類問題,0, 1, 2三類標籤樣本也不均衡,也會造成上述結果建議:1.增大資料集,均衡各類樣本數量

2.使模型相對簡單,或使用正則化

8樓:24wind

一般是先往過擬合的角度考慮,特別你用了GBDT,樹演算法不對子數數量,資訊增益或單節點樣本樹木做限制的話容易過擬合。

再往前猜測,也可能你的關鍵feature有問題。10個點的差值很多了。你可以看看train和test資料集裡資訊增益大的feature的資料分布是否一致,這裡可能發生變數過擬合。

如果資料很不均衡,要想辦法做均衡才行。

總的來說,問題在模型和資料兩方面。

9樓:閃電俠的右手

從資料量上看,屬於欠擬合。從結果上看,屬於過擬合。具體還要實驗來界定。

資料量太少,模型可能訓練不充分,可以考慮資料增強方法。資料量起碼過萬。也可以考慮模型整合,多訓練幾種模型試試到底是不是資料量太少。

訓練集比測試集高十個點,可能是訓練集和測試集分布不同,可以畫分布圖,確認一下。 如果分布相同,要考慮使用正則。

大概就這些。

10樓:

檢查你的原始資料有沒有問題。兩個子資料處理有沒有問題。

模型只能學習到訓練集的情況,泛化能力不足。對測試集未知的情況難以擬合,可能存在過擬合(overfitting)了。解決過擬合問題方法很多。

比如,為你的loss function新增正則化項;early stopping;增加訓練資料;Dropout;增加batch size等。

結論,具體導致問題的原因還是看實際情況,多研究研究吧。

欠擬合和過擬合出現原因及解決方案 - 范中豪 - 部落格園

11樓:大龍貓

典型的"過擬合"問題。

除了去嘗試一些解決過擬合的方法外(正則化等),還要去看一下訓練集/測試集是否屬於「同分布」。如果訓練集/測試集很不一樣的話,也有可能出現這樣的問題。

測試集precision 大於訓練集說明什麼?

資料洩露的話,測試集的結果也不會優於訓練集吧,如果測試集和訓練集一樣,那結果就相等,在此基礎上,把測試集的部分資料換成其他模型沒見過的資料,結果應該下降啊。有可能是這樣 訓練集的資料分布在拋物線上,但模型只能擬合出直線,所以訓練集上的誤差較大。但測試集太特殊太簡單,資料點剛好落在模型擬合出的直線上,...

將資料集分為訓練集和測試集,訓練集上網格搜尋調參,得到最優引數,能用到在訓練集交叉驗證上嗎?

liaoyanjun 我理解你的意思是先做網格搜尋,選擇一組引數,然後做交叉驗證是不。答案是完全可以,你得到的就是一組引數對應的交叉驗證的均值。交叉驗證的均值好,引數就說明優秀。但是如果資料很大,程式會很慢。 哈哈祥 GridSearchCV,它存在的意義就是自動調參,只要把引數輸進去,就能給出最優...

驗證集是訓練集的子集,還是測試集的子集?

AI森 驗證集可以取自測試集,在雪梨科技大學鄭哲東的Person re ID中,驗證集來自於測試集的一部分,https 這是Github上的鏈結 For this reason,no example from the test set can be used in the validation se...