訓練集和測試集的分布差距太大有好的處理方法嗎?

時間 2021-05-05 20:51:22

1樓:

樣本同分布是機器學習有效性的前提。

可以通過train-test的psi穩定性指針對特徵進行篩選,對分布不穩定的特徵剔除。

特徵選擇可以參考

2樓:

不同情況處理辦法都不一樣

第一,分布差距大是重要特徵數值差距大,比如乙個是 0-1,另外乙個 0.5-2,如果是這種情況無解,你能做的只能擴大訓練集合,因為重要特徵一旦偏離,哪怕數學上都是有交集,現實上下文都是差距極大的,這和資料採集流程和規範等非技術問題有關。

第二,重要特徵資料差距不大,不太重要的差距較大,這種情況可以遮蔽這些特徵,或者利用類似遷移學習 prototype 那種思路約束特徵輸入不過於偏離訓練集。

第三,所有特徵數值差距都不大,但是特徵之間相關性統計差距大,比如訓練集當中 A 和 B 相關性更加強,但是測試集合 A 和 C 的相關性更加強,這對你模型本身高階組合就要約束,比如上DNN 的話,前期就不是明智的選擇。

第四,特徵數值差距不大,特徵相關性差距也不大,但是目標數值差距過大,這個好辦,改變任務設定共同的中間目標,比如你說的目標值是否可以採取相對值,增長率,夏普等,而非絕對值

第五,你心大,感覺差距大,但是懶得論證那裡大,這時候,for 迴圈所有已知模型,找最好的交差。

3樓:

當目標任務(對應的領域稱為目標領域)很難準備足夠多的訓練資料,此時如果有乙個相關任務(對應的領域稱為源領域)已經有了大量的訓練資料,遷移學習實現把從源領域學習到的東西應用到目標領域上去(源領域的資料和目標領域的資料往往遵循不同的分布)。

我推薦的讀物有楊強老師的《遷移學習》

基於樣本的遷移學習方法:從源域中篩選出符合目標域資料的相似分布的樣本將它們運用於訓練以降低新模型的偏差和方差。

基於特徵的遷移學習方法:將資料對映到乙個特徵空間上,在這個特徵空間上,源域和目標域樣本的分布差異得以縮小

基於模型的遷移學習方法:也稱為基於引數的遷移學習(parameter-based transfer learning),其假設是在模型層次上源任務和目標任務共享模型引數等知識。

如果你是做這方面的理論研究的,現在比較流行通過深度學習技術來解決遷移學習,可以嘗試在這上面做創新工作。如果你只是應用,可以先從簡單的基於樣本的遷移學習方法開始。

4樓:

可以使用Adversarial Validation確定驗證集。只選擇和測試集分布最像的那部分訓練資料作為驗證集。參考https://www.

5樓:林小小

Covariate Shift - Unearthing hidden problems in Real World Data Science

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

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

機器學習的訓練集和測試集劃分問題?

ZongSing 剛剛也遇到這問題,並且直接用np.arange 100 這種簡單又直觀的資料下去測試這個function。我以為train test split是先分割在各自打亂 data 1,2,3,4,5,6,7,8,9,10 step1.分割 train 1,2,3,4,5,6,7,8 te...

能不能只要訓練集和測試集,不要驗證集呢?

李弘宇 99 的情況下不行,原因就是怕過擬合測試集,過擬合的原因是你拿到的資料集裡面的資料和真正世界的資料不一樣,有一些資料是無法測試的 1 的情況可以,就是你可以幾乎收集到所有的資料,或者說你確定你的模型只用於你資料集裡面的資料,你就可以盡情過擬合 另外,打一次有AB榜的kaggle比賽,可以有效...