6種方式處理機器學習中不平衡的資料集 - svpino
讓我們從一個例子開始:您正在嘗試構建一個分類模型。
- 1 類:貓
- 2 類:狗
不幸的是,您的資料非常不準確:有 950 張貓圖片和 50 張狗圖片。
如果您的模型將每張圖片都歸類為貓,那麼您的準確率將達到 95%。想一想:由於類別不平衡,愚蠢的模型將使您達到 95% 的準確率。這是業界非常普遍的問題。
注意:“不平衡”並不意味著“每個類別的樣本數量不同”。擁有 550 張貓圖片和 450 張狗圖片不一定是問題。
現在讓我們透過一些技巧來解決這個問題:
1. 不要在不平衡的資料集上使用“準確性”。
對於這些問題,精度並不是一個好的效能指標。
相反,請檢視以下內容:
- 精度
- Recall召回
- F-Score
- 混淆矩陣
- ROC 曲線
2. 收集更多資料。
在我們的示例中,您可能能夠找到更多的狗圖片新增到您的資料集中並減少差異。我總是喜歡從這裡開始,但收集更多資料並不總是一種選擇。
3. 用合成資料擴充資料集。
這是處理非結構化資料的好方法:建立類似於真實資料的新樣本。非結構化資料是指:影片、影像、文字、音訊。
您可以轉換一些狗圖片以建立新樣本:
- 更改對比度
- 水平翻轉
- 輕微旋轉
- 新增噪聲
- ...
結合這些技術,我們可以生成大量新資料。
對於結構化資料,增強要困難得多,有時根本不可能。結構化資料 是指: 表格資料(想想列和行。)
4. 重新取樣您的資料集。
有幾種方法可以做到這一點:
- 對狗的圖片進行過取樣。
- 對貓的圖片取樣不足。
您也可以將兩者結合起來。
以下是對我們的資料集重新取樣的示例:
- 將每張狗圖片使用四次。
- 使用所有其他貓圖片。
新資料集:
- 狗:400 張圖片(50 × 4)
- 貓:475 張圖片(950 ÷ 2)
好多了,嗯?
重要提示:過取樣和欠取樣都會給您的資料集帶來偏差:您正在透過任意弄亂現有樣本來改變資料的分佈。請務必牢記這一點並考慮後果。
5. 使用成本敏感性Cost Sensitivity。
向模型新增成本敏感層是最佳化預測的好方法。這將有助於權衡在不平衡資料上訓練的模型的結果。我們只關心錯誤,因為如果模型正確,成本為 0 美元。在相信結果之前,我們將計算出錯時的潛在錯誤成本。
6. 檢查不同的演算法。
決策樹非常擅長處理不平衡的類。當然,我們不能將決策樹用於“貓與狗”問題,但在處理結構化資料時它可能是一個很好的解決方案。
相關文章
- 機器學習中如何處理不平衡資料(imbalanced data)?機器學習
- 機器學習:處理不平衡資料的5個重要技術機器學習
- 訓練機器學習的資料集大小很重要 - svpino機器學習
- 機器學習中資料缺失的處理及建模方法機器學習
- 通俗講明白機器學習中的學習問題 - svpino機器學習
- 機器學習一:資料預處理機器學習
- 業界使用的兩種主要機器學習技術 -svpino機器學習
- 機器學習演算法筆記之6:資料預處理機器學習演算法筆記
- 機器學習:探索資料和資料預處理機器學習
- 用R處理不平衡的資料
- 機器學習筆記---資料預處理機器學習筆記
- 機器學習導圖系列(1):資料處理機器學習
- 機器學習操作基本步驟 - svpino機器學習
- 深度學習煉丹-不平衡樣本的處理深度學習
- 機器學習中的有標註資料集和無標註資料集機器學習
- 一文教你如何處理不平衡資料集(附程式碼)
- 機器學習 第2篇:資料預處理(缺失值)機器學習
- 機器學習之資料集的劃分機器學習
- ETL中後設資料處理的方式
- C#中處理JSON資料的方式C#JSON
- 機器學習 第3篇:資料預處理(使用插補法處理缺失值)機器學習
- 100天搞定機器學習|Day1資料預處理機器學習
- C#中的深度學習(二):預處理識別硬幣的資料集C#深度學習
- 【火爐煉AI】機器學習015-如何處理樣本數偏差較大的資料集AI機器學習
- 分散式機器學習常用資料集分散式機器學習
- 33個機器學習常用資料集機器學習
- 機器學習筆記——資料集分割機器學習筆記
- 不平衡樣本的處理
- (轉)機器學習:偏差處理(2)機器學習
- 將機器學習投入生產的雲服務SageMaker - svpino機器學習
- 機器學習助力移動革命的四種方式機器學習
- [原始碼解析] 機器學習引數伺服器Paracel (3)------資料處理原始碼機器學習伺服器
- HBase協處理器載入的三種方式
- 深度學習--資料預處理深度學習
- 在機器學習領域,主要的學習方式是哪幾種?機器學習
- 最強資料集集合:50個最佳機器學習公共資料集機器學習
- SpringMVC入門學習---資料的處理SpringMVC
- 機器學習 第4篇:資料預處理(sklearn 插補缺失值)機器學習