簡體   English   中英

不平衡數據的特征工程

[英]Feature Engineering on imbalanced data

我正在訓練一個關於分類問題的機器學習模型。 我的數據集是10000 個觀察值,包含37 個分類類別。 但是數據不平衡,我有一些類有100 個觀測值,而其他一些類有30004000 個觀測值。

在搜索了如何對此類數據進行一些特征工程以提高算法的性能之后。 我找到了2個解決方案:

  • 上采樣意味着獲得更多關於少數類的數據
  • 下采樣意味着刪除關於多數類的數據

根據第一個解決方案:我有很多班級有一些觀察,所以它需要更多的數據和很長的時間。 所以這對我來說會很困難!
通過應用第二個:我認為所有類都會有一些觀察結果,並且數據將非常小,因此算法很難概括。

那么我可以嘗試解決這個問題的另一種解決方案嗎?

您可以更改損失函數中的權重,以便在優化時較小的類具有更大的重要性。 例如,在 keras 中,您可以使用weighted_cross_entropy_with_logits

您可以將兩者結合使用。

如果您對所有少數類進行上采樣以匹配多數類,那么您似乎擔心會得到過大的數據集。 如果是這種情況,您可以將多數類下采樣到 25% 或 50%,同時上采樣少數類。 上采樣的一種替代方法是使用 SMOTE 等算法為少數類合成樣本。

如果您正在批量訓練神經網絡,最好確保訓練集被正確打亂,並且您在小批量中擁有偶數/多數樣本的均勻分布。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM