Neural-Networks

過採樣:整集或訓練集

  • June 20, 2018

我有一個相當小的 4 000 個點(140 個特徵)的數據集來提供給 NN 二元分類器。問題是其中只有約 700 個代表第二類。**重新採樣整個數據集然後拆分,還是先拆分然後重新採樣更常見?**各自的優點或缺點是什麼?

我目前的方法是試圖獲得接近 1:1 的比例(2:1 似乎也可以正常工作):

  • 複製並添加屬於第二類的元素最多 4 倍
  • 將數據打亂並分成 80:20 的訓練/測試集

我得到了似乎不錯的結果,但我認為相同的數據點很可能出現在兩組中這一事實可能會扭曲結果。這些是不同方法的預測。

2:1 過採樣整組

2:1 重採樣

對訓練集進行 4 倍過採樣

訓練重採樣

當然,考慮到大量數據,這個問題將不存在,但既然如此:**對整個數據集進行過採樣會產生對評估無效的結果嗎?**還是在處理小樣本時它甚至是首選方法?

任何見解將不勝感激!

編輯:

這個問題似乎解決了一個類似的問題,並說對整個數據集進行過採樣是一個壞主意。但是,它沒有提及任何特定的分類器。此外,這裡的數據並沒有嚴重失衡。但這是一個小樣本。

編輯二:ADASYN

我使用 ADASYN 算法生成合成樣本。對整個集合進行採樣會產生更準確的結果,但對訓練集進行採樣卻是優柔寡斷的。準確性更差,但預測本身看起來更好。

您的測試集應該盡可能接近您實際應用分類器的分佈中的樣本。我肯定會先拆分你的數據集(事實上,這通常是我獲得數據集後要做的第一件事),收起你的測試集,然後在訓練集上做你想做的一切。否則,偏見很容易蔓延。

這同樣適用於您的驗證集,例如,如果您使用交叉驗證。您真正想要的是估計您的方法在樣本外的工作情況,以便您可以選擇最佳方法。最好的方法是根據實際的、未經修改的樣本外數據評估您的方法。

引用自:https://stats.stackexchange.com/questions/352266

comments powered by Disqus