關於處理樣本不平衡問題的Trick整理
微信公眾號
關鍵字全網搜尋最新排名
【機器學習演算法】:排名第一
【機器學習】:排名第一
【Python】:排名第三
【演算法】:排名第四
轉自:小象
在銀行欺詐檢測、實時競價或網路入侵檢測等領域通常是什麼樣的資料集呢?這些領域使用的資料通常有不到1%少量但“有趣的”事件,例如欺詐者利用信用卡,使用者點選廣告或者損壞的伺服器掃描網路。 然而,大多數機器學習演算法不能有效的處理不平衡資料集的學習問題,以下七種技術可以有效的幫助你處理上述存在的問題。
1.使用正確的評估指標
如上圖,對於該問題如果使用精度來衡量模型的好壞,將所有測試樣本分類為“0”的模型具有很好的準確性(99.8%),但顯然這種模型不能為我們提供任何有價值的資訊。
在這種情況下,可以使用如下所示的其他指標:
-
精度/特異性:有多少個選定的相關例項。
-
呼叫/靈敏度:選擇了多少個相關例項。
-
F1得分:精度和召回的諧波平均值。
-
MCC:觀察和預測的二進位制分類之間的相關係數。
-
AUC:正確率與誤報率之間的關係。
2.重新取樣訓練集
欠取樣通過減少冗餘類的數量來平衡資料集。通過將所有樣本儲存在少數類中,並在多數類中隨機選擇相等數量的樣本,可以檢索平衡的新資料集以進一步建模。
相反,當資料量不足時應採用過取樣,嘗試通過增加稀有樣本的數量來平衡資料集。不是去除樣本的多樣性,而是通過使用諸如重複、自舉或SMOTE等方法生成新樣本(合成少數過取樣技術)
請注意,一種重取樣方法與另一種相比沒有絕對的優勢。這兩種方法的應用取決於它適用的用例和資料集本身。
3.以正確的方式使用K-fold交叉驗證
需要注意的是,使用過取樣方法來解決不平衡問題時,應適當地應用交叉驗證。過取樣會觀察到稀有的樣本,並根據分佈函式自舉生成新的隨機資料。如果在過取樣之後應用交叉驗證,那麼我們所做的就是將模型過度適應於特定的人工引導結果。這就是為什麼在過取樣資料之前應該始終進行交叉驗證,就像實現特徵選擇一樣。只有對資料進行重複取樣,可以將隨機性引入到資料集中,以確保不會出現過擬合問題。
4.組合不同的重取樣資料集
生成通用模型的最簡單方法是使用更多的資料。問題是,開箱即用的分類器,如邏輯迴歸或機森隨林,傾向於通過丟棄稀有樣例來推廣。一個簡單的最佳實現是建立n個模型,使用少數類的所有樣本和數量充足類別的n個不同樣本。假如您想要組合10個模型,需要少數類1000例,隨機抽取10.000例多數類的樣本。然後,只需將10000個樣本分成10個塊,訓練出10個不同的模型。
如果有大量資料,那麼這種方法很簡單,完美地實現水平擴充套件,因此可以在不同的叢集節點上訓練和執行模型。集合模型也趨於一般化,使得該方法容易處理。
5.用不同比例重新取樣
以前的方法可以通過少數類和多數類之間的比例進行微調。最好的比例在很大程度上取決於所使用的資料和模型。但是,不是在整體中以相同的比例訓練所有模型,合併不同的比例值得嘗試。 所以如果訓練了10個模型,對一個模型比例為1:1(少數:多數),另一個1:3甚至是2:1的模型是有意義的。 根據使用的模型可以影響一個類獲得的權重。
6. 對多數類進行聚類
Sergey Quora提出了一種優雅的方法。他建議不要依賴隨機樣本來覆蓋訓練樣本的種類,而是將r個分組中的多數類進行聚類,其中r為r中的樣本數。對於每個組,只保留質心(樣本的中心)。然後該模型僅保留了少數類和樣本質心來訓練。
7.設計自己的模型
以前的所有方法都集中在資料上,並將模型作為固定的元件。但事實上,如果模型適用於不平衡資料,則不需要對資料進行重新取樣。如果資料樣本沒有太多的傾斜,著名的XGBoost已經是一個很好的起點,因為該模型內部對資料進行了很好的處理,它訓練的資料並不是不平衡的。但是再次,如果資料被重新取樣,它只是悄悄進行。
通過設計一個損失函式來懲罰少數類的錯誤分類,而不是多數類,可以設計出許多自然泛化為支援少數類的模型。例如,調整SVM以相同的比例懲罰未被充分代表的少數類的分類錯誤。
綜上所述
這不是一份獨家的技術清單,而是處理不平衡資料的一個起點。
沒有適合所有問題的最佳方法或模型,強烈建議嘗試不同的技術和模型來評估哪些方法最有效。 可以嘗試創造性地結合不同的方法。
廣告、商業合作
請發郵件:[email protected]
喜歡,別忘關注~
幫助你在AI領域更好的發展,期待與你相遇!
相關推薦
關於處理樣本不平衡問題的Trick整理
微信公眾號 關鍵字全網搜尋最新排名 【機器學習演算法】:排名第一 【機器學習】:排名第一 【Python】:排名第三 【演算法】:排名第四 轉自:小象 在銀行欺詐檢測、實時競價或網路入侵檢測等領域通常是什麼樣的資料集呢?這些領域使用的資料通常有不到1%少量但“有趣的”事件,例如欺詐者利用信用卡,使用者點選廣
處理樣本不平衡LOSS—Focal Loss
0 前言 Focal Loss是為了處理樣本不平衡問題而提出的,經時間驗證,在多種任務上,效果還是不錯的。在理解Focal Loss前,需要先深刻理一下交叉熵損失,和帶權重的交叉熵損失。然後我們從樣本權重的角度出發,理解Focal Loss是如何分配樣本權重的。Focal是動詞Focus的形容詞形式,那麼它究
樣本不平衡處理
一.下采樣 對於樣本不均衡來說,使得兩個樣本(向少的樣本靠齊)同樣的少.將多的資料進行裁剪使得樣本最後可以均衡,具體的程式碼設計如下: #以二分類為例 #對整個樣本進行分開 one_data=data[data['label']==1].index zero_data=data[data['la
系統學習機器學習之樣本不平衡問題處理
原文連結:http://blog.csdn.net/heyongluoyao8/article/details/49408131 在分類中如何處理訓練集中不平衡問題 在很多機器學習任務中,訓練集中可能會存在某個或某些類別下的樣本數遠大於另一些類別下的樣本數目。即類別不平衡,為了使得學習達
正負樣本不平衡處理方法總結
1, Bootstrapping,hard negative mining 最原始的一種方法,主要使用在傳統的機器學習方法中。 比如,訓練cascade型別分類模型的時候,可以將每一級分類錯誤的樣本繼續新增進下一層進行訓練。 比如,SVM分類中去掉那些離分界線較遠的
機器學習中樣本不平衡處理辦法
在機器學習任務中,我們經常會遇到這種困擾:資料不平衡問題。比如在廣告點選預估、反欺詐、風控裡面。 資料不平衡問題主要存在於有監督機器學習任務中。當遇到不平衡資料時,以總體分類準確率為學習目標的傳統分類演算法會過多地關注多數類,從而使得少數類樣本的分類效能下降。絕大
Sklearn-LogisticRegression邏輯迴歸(有處理樣本不均衡時設定引數的方法)
版權宣告:本文為博主原創文章,未經博主允許不得轉載。 https://blog.csdn.net/CherDW/article/details/54891073 邏輯迴歸: 可以做概率預測,也可用於分類,僅能用於線性問題。通過計算真實值與預測值的概率,然後變換成損失函式,求損失函式
pytorch處理類別不平衡問題
訪問本站觀看效果更佳 當訓練樣本不均勻時,我們可以採用過取樣、欠取樣、資料增強等手段來避免過擬合。今天遇到一個3d點雲資料集合,樣本分佈極不均勻,正例與負例相差4-5個數量級。資料增強效果就不會太好了,另外過取樣也不太合適,因為是空間資料,新增的點有可能會對真實分佈產生未知影響。所以採用欠取
機器學習之樣本不平衡
機器學習之樣本不平衡 1.樣本不平衡導致什麼問題? 在機器學習的分類問題中,以二分類為例,如果訓練集合的正例和負例的樣本不平衡,相差懸殊很大。比如針對這個不平衡的訓練結合運用邏輯迴歸的時候,一般來說,邏輯迴歸的閾值0~1,常取0.5,當樣本不平衡時,採用預設的分類閾值可能會導致輸出全
文字分類 - 樣本不平衡的解決思路與交叉驗證CV的有效性
現實情況中,很多機器學習訓練集會遇到樣本不均衡的情況,應對的方案也有很多種。 筆者把看到的一些內容進行簡單羅列,此處還想分享的是交叉驗證對不平衡資料訓練極為重要。 文章目錄 1 樣本不平衡的解決思路 1.2 將不平衡樣本當作離群點
過取樣(處理資料不平衡問題)
import pandas as pd import matplotlib.pyplot as plt import numpy as np from sklearn.preprocessing import StandardScaler from sklearn.model_selection i
下采樣(處理資料不平衡問題)
import pandas as pd import matplotlib.pyplot as plt import numpy as np from sklearn.preprocessing import StandardScaler#去均值,方差歸一化,類似於特徵縮放 from sklearn
處理樣本不均衡數據
svc 分類器 回歸 形式 生成 自動調整 處理 bsp 損失函數 處理樣本不均衡數據一般可以有以下方法: 1、人為將樣本變為均衡數據。 上采樣:重復采樣樣本量少的部分,以數據量多的一方的樣本數量為標準,把樣本數量較少的類的樣本數量生成和樣本數量多的一方相同。 下采樣:減少
解決樣本不平衡問題的奇技淫巧 彙總
先舉一個“恐怖”的例子,直觀的感受一下樣本不平衡問題: 你根據1000個正樣本和1000個負樣本正確訓練出了一個準確率90%召回率90%的分類器,且通過實驗驗證沒有欠取樣過取樣的問題哦~完美的樣本,完美的模型,破費,你心裡暗自得意。然後模型上線,正式預測每天的未知樣本~。
類別樣本不平衡問題
類別不平衡就是指分類任務中不同類別的訓練樣例數目差別很大的情況。下面以這樣的一種情況作為假設例項,假定正類樣例較少,反類樣例較多。 一半對於樣本平衡的二類分類任務,事實上是用預測出的y值與一個閾值進行
不平衡樣本處理方法
在分類中如何處理訓練集中不平衡問題 在很多機器學習任務中,訓練集中可能會存在某個或某些類別下的樣本數遠大於另一些類別下的樣本數目。即類別不平衡,為了使得學習達到更好的效果,因此需要解決該類別不平衡問題。 原文標題:8 Tactics to Combat Imb
[轉]如何處理機器學習中的不平衡類別
down 觀測 input 推薦 可能 type 兩個 好的 exchange 如何處理機器學習中的不平衡類別 原文地址:How to Handle Imbalanced Classes in Machine Learning 原文作者:elitedatascienc
用R處理不平衡的數據
時間 pre chan 合數 r語言 協同過濾算法 cred 分析 一個 歡迎大家前往騰訊雲+社區,獲取更多騰訊海量技術實踐幹貨哦~ 本文來自雲+社區翻譯社,作者ArrayZoneYour 在分類問題當中,數據不平衡是指樣本中某一類的樣本數遠大於其他的類別樣本數。相比於
不平衡資料集的處理
一、不平衡資料集的定義 所謂的不平衡資料集指的是資料集各個類別的樣本量極不均衡。以二分類問題為例,假設正類的樣本數量遠大於負類的樣本數量,通常情況下通常情況下把多數類樣本的比例接近100:1這種情況下的資料稱為不平衡資料。不平衡資料的學習即需要在分佈不均勻的資料集中學習到有用的資訊。 不平衡資
【機器學習】在分類中如何處理訓練集中不平衡問題
原文地址:一隻鳥的天空,http://blog.csdn.net/heyongluoyao8/article/details/49408131 在分類中如何處理訓練集中不平衡問題 在很多機器學習任務中,訓練集中可能會存在某個或某些類別下的樣本數遠大於另一些類別下的樣本數目。即類別不平衡,為了