當前位置:吉日网官网 - 傳統節日 - 如何處理數據不平衡的問題

如何處理數據不平衡的問題

基於上壹篇文章,采訪被濫用了,我們來整理記錄壹下第壹個問題,關於數據的不平衡。

以下內容是指:

blogs.com/charlotte77/p/10455900.html/news/2065 438+0706/dtre 5 ow 9 qbvlkzsy . html

數據不平衡也可以稱為數據偏斜。在實際應用中,不同標簽的樣本比例很可能是不平衡的,尤其是在數據集的分類中。所以如果直接用算法訓練進行分類,訓練效果可能會很差。

解決實際應用中的數據不平衡問題,可以從三個方面入手,即處理數據、選擇合適的評價方法和使用合適的算法。

1)過采樣:

主動獲取更多比例較小的樣本數據。由於樣本比例不均衡,在條件允許的情況下,可以盡量獲取比例較小的樣本數據。(PS:這就是為什麽我幾乎沒有遇到過數據不平衡的問題。每個測試中使用的數據集盡可能完美地平衡)或者可以通過使用諸如重復、自舉或合成少數過采樣(SMOTE)的方法來產生新的稀有樣本。

如果簡單的直接復制重復,特征少的話,就會導致過擬合的問題。改進的過采樣方法通過將隨機噪聲和幹擾數據添加到幾個類中或按照壹定的規則生成新的合成樣本(數據增強)。

2)欠采樣:

當數據量足夠時,可以通過保留小比例樣本數據和減少大比例樣本數據來平衡數據集。缺點是大部分課的壹些重要信息會丟失。

3)改變重量:

對不同樣本量的類別賦予不同的權重(通常設置為與樣本量成反比)

4)使用K倍交叉驗證

值得註意的是,在使用過抽樣方法解決不平衡問題時,交叉驗證應該得到適當的應用。這是因為過采樣將觀察稀有樣本,並且將應用bootstrap來根據分布函數生成新的隨機數據。如果在過采樣之後應用交叉驗證,那麽我們所做的就是使我們的模型過度適應特定的人工指導結果。這就是為什麽交叉驗證應該總是在過采樣數據之前進行,就像特征選擇壹樣。只有重復采樣的數據才能在數據集中引入隨機性,保證不會出現過擬合問題。

K倍交叉驗證是將原始數據隨機分成K份,選擇這K份中的壹份作為測試數據,剩下的K-1作為訓練數據。交叉驗證的過程其實就是重復實驗k次,每次實驗從k個部分中選擇不同的部分作為測試數據,剩下的數據作為實驗的訓練數據。最後將得到的k個實驗結果進行平均。

此外,還要註意樣本在訓練集和測試集中的概率分布。如果實際數據是不平衡的,那麽用平衡采樣訓練數據集後,模型在測試集中仍然是無效的。因此,在實際應用中,訓練樣本和測試樣本的概率分布應盡可能保持壹致。

1)慎重選擇AUC作為評價指標:當數據極度不平衡時,可以觀察相同數據下不同算法訓練結果的精度和召回率。這有兩個好處。壹是知道不同算法對數據的敏感程度,二是知道哪個評價指標更合適。為了解決機器學習中的數據不平衡問題,建議更多地使用PR(Precision-Recall curve)而不是ROC曲線。具體原因可以通過繪圖了解。如果以ROC曲線作為評價指標,很容易忽略對少量樣本的實際效果並不理想,因為AUC值較高。

2)不要只看準確度:準確度可以說是最模糊的指標,因為高指標可能根本不代表好的商業效果。在實際生產中,我們更關註精度/召回率/地圖等具體指標,具體側重於那個指標,視實際情況而定。

1)選擇對數據傾斜相對不敏感的算法。例如樹模型。

2)綜合學習。多型號裝袋。首先從大部分類別中隨機抽取若幹子集,每個子集與少數類別數據組合訓練生成多個基分類器,然後加權形成新的分類器,如加法模型、Adaboost、隨機森林等。

3)轉化為異常檢測或分類問題。(具體內容有空再跟進。)

補充:什麽是數據增強?

參考鏈接:/p/3e9f 4812 BBC

數據增強允許有限的數據生成更多的數據,增加訓練樣本(噪聲數據)的數量和多樣性,提高模型的魯棒性,壹般用於訓練集。神經網絡需要很多參數,神經網絡的很多參數都是上百萬的,需要大量的數據進行訓練才能讓這些參數正確工作,但是在很多實際項目中,我們很難找到足夠的數據來完成任務。隨機改變訓練樣本可以減少模型對某些屬性的依賴,從而提高模型的泛化能力。

數據增強方法:

比如我們可以用不同的方式裁剪圖像,讓物體以不同的例子出現在圖像的不同位置,這樣也可以降低模型對目標位置的敏感度。此外,還會調整亮度、對比度、飽和度和色調等因素,以降低模型對顏色的敏感度。再者,隨機裁剪、隨機反轉、隨機對比度增強、顏色變化等等。壹般來說,隨機反轉和小比例的隨機調整大小,然後是隨機剪輯是更常用的。在NLP中把單詞連在壹起形成新的樣本,也屬於數據增強。

數據增強的分類:

數據增強可以分為兩類,壹類是離線增強,壹類是在線增強。

離線增強:直接對數據集進行處理,數據的個數會變成增強因子乘以原始數據集的個數。當數據集非常小時,通常使用這種方法。

在線增強:這種增強方法用於獲取批量數據,然後對這個批量數據進行增強,比如旋轉、平移、折疊等相應的變化。因為有些數據集不能接受線性增長,所以這種方法長期用於大型數據集,很多機器學習框架已經支持這種數據增強方法,GPU可以用來優化計算。

  • 上一篇:好聽又有意義的酒吧名字。
  • 下一篇:如何磨壹把可以刮胡子的刀?謝謝大家的提問。
  • copyright 2024吉日网官网