色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

在機器學習中,如何處理數(shù)據(jù)不平衡的問題?

傅智翔2年前13瀏覽0評論

數(shù)據(jù)的不平衡問題是在機器學習中常遇到的問題,特別是在數(shù)據(jù)化運營過程中,經(jīng)常產(chǎn)生樣本分布不均衡,但不平衡的樣本在訓練中通常會影響模型的訓練,那么如何可以更好的解決數(shù)據(jù)類別不平衡問題呢?

我們從兩個層面和維度來看解決數(shù)據(jù)類別不平衡問題的方案:

1.數(shù)據(jù)層面解決方案

2.算法層面解決方案

從數(shù)據(jù)層面解決類別不平衡問題

數(shù)據(jù)層面的方法主要包括過樣本、數(shù)據(jù)動態(tài)采樣、數(shù)據(jù)合成:

(1)過樣本(oversampling)和欠采樣(undersampling)

過抽樣

過抽樣(也叫上采樣、over-sampling)方法通過增加分類中少數(shù)類樣本的數(shù)量來實現(xiàn)樣本均衡,最直接的方法是簡單復制少數(shù)類樣本形成多條記錄,這種方法的缺點是如果樣本特征少而可能導致過擬合的問題;經(jīng)過改進的過抽樣方法通過在少數(shù)類中加入隨機噪聲、干擾數(shù)據(jù)或通過一定規(guī)則產(chǎn)生新的合成樣本,例如SMOTE算法。

欠抽樣

欠抽樣(也叫下采樣、under-sampling)方法通過減少分類中多數(shù)類樣本的樣本數(shù)量來實現(xiàn)樣本均衡,最直接的方法是隨機地去掉一些多數(shù)類樣本來減小多數(shù)類的規(guī)模,缺點是會丟失多數(shù)類樣本中的一些重要信息。

(2)動態(tài)采樣(dynamicsampling)

動態(tài)采樣就是將根據(jù)訓練結(jié)果對數(shù)據(jù)集進行動態(tài)調(diào)整,對結(jié)果較好的類別進行隨機刪除樣本操作,對結(jié)果較差的類別進行隨機復制操作,以保證分類模型每次學習都能學到相關的信息。

注意:當使用重采樣方法(例如從C0獲得的數(shù)據(jù)多于從C1獲得的數(shù)據(jù))時,我們在訓練過程向分類器顯示了兩個類的錯誤比例。以這種方式學得的分類器在未來實際測試數(shù)據(jù)上得到的準確率甚至比在未改變數(shù)據(jù)集上訓練的分類器準確率還低。實際上,類的真實比例對于分類新的點非常重要,而這一信息在重新采樣數(shù)據(jù)集時被丟失了。

當我們采用重采樣的方法修改數(shù)據(jù)集時,我們正在改變事實,因此需要小心并記住這對分類器輸出結(jié)果意味著什么。


(3)數(shù)據(jù)合成

生成合成數(shù)據(jù)是從少數(shù)類創(chuàng)建新的合成點,以增加其基數(shù)。合成方法指的是在每次生成訓練集時使用所有分類中的小樣本量,同時從分類中的大樣本量中隨機抽取數(shù)據(jù)來與小樣本量合并構成訓練集,這樣反復多次會得到很多訓練集和訓練模型。最后在應用時,使用組合方法(例如投票、加權投票等)產(chǎn)生分類預測結(jié)果。

例如,在數(shù)據(jù)集中的正、負例的樣本分別為100和10000條,比例為1:100。此時可以將負例樣本(類別中的大量樣本集)隨機分為100份(當然也可以分更多),每份100條數(shù)據(jù);然后每次形成訓練集時使用所有的正樣本(100條)和隨機抽取的負樣本(100條)形成新的數(shù)據(jù)集。如此反復可以得到100個訓練集和對應的訓練模型。

這種解決問題的思路類似于隨機森林。在隨機森林中,雖然每個小決策樹的分類能力很弱,但是通過大量的“小樹”組合形成的“森林”具有良好的模型預測能力。

SMOTE算法的基本思想是對少數(shù)類樣本進行分析并根據(jù)少數(shù)類樣本人工合成新樣本添加到數(shù)據(jù)集中,具體下圖所示,算法流程如下:

1、對于少數(shù)類中每一個樣本x,計算該點與少數(shù)類中其他樣本點的距離,得到最近的k個近鄰(即對少數(shù)類點進行KNN算法)。

2、根據(jù)樣本不平衡比例設置一個采樣比例以確定采樣倍率,對于每一個少數(shù)類樣本x,從其k近鄰中隨機選擇若干個樣本,假設選擇的近鄰為x'。

3、對于每一個隨機選出的近鄰x',分別與原樣本按照如下的公式構建新的樣本:

xnew=x+rand(0,1)?(x′?x)

但是SMOTE算法缺點也十分明顯:一方面是增加了類之間重疊的可能性(由于對每個少數(shù)類樣本都生成新樣本,因此容易發(fā)生生成樣本重疊(Overlapping)的問題),

另一方面是生成一些沒有提供有益信息的樣本。


(4)添加額外特征

除了重采樣的方法外,還可以在數(shù)據(jù)集中添加多個其他特征來豐富數(shù)據(jù)集,這樣可能獲得更好的準確率結(jié)果。針對兩個類無法很好地分離開來,我們附加一個新的特征幫助分離兩個類:

基于算法層面解決類別不平衡問題

在介紹之前,我們首先要理解兩個概念精度和召回率:

  • 高精度+高召回率:模型能夠很好地檢測該類;
  • 高精度+低召回率:模型不能很好地檢測該類,但是在它檢測到這個類時,判斷結(jié)果是高度可信的;
  • 低精度+高召回率:模型能夠很好地檢測該類,但檢測結(jié)果中也包含其他類的點;
  • 低精度+低召回率:模型不能很好地檢測該類。

但是這種評估并不符合現(xiàn)實的情況,而結(jié)果不好的根本原因在于目標函數(shù)沒有得到很好的定義。截至此時,我們一直假設分類器具備高準確率,同時假設兩類錯誤(「假陽性」和「假陰性」)具有相同的成本(cost)。在我們的例子中,這意味著真實標簽為C1、預測結(jié)果為C0與真實標簽為C0、預測結(jié)果為C1一樣糟糕,錯誤是對稱的。然而實際情況往往不是這樣。

讓我們考慮本文第一個例子,關于有缺陷(C1)和無缺陷(C0)產(chǎn)品。可以想象,對公司而言,沒有檢測到有缺陷的產(chǎn)品的代價遠遠大于將無缺陷的產(chǎn)品標注為有缺陷產(chǎn)品(如客戶服務成本、法律審判成本等)。因此在真實案例中,錯誤的代價是不對稱的。

因此,我們需要重新指定目標評估函數(shù):

基于算法層面的方法主要對現(xiàn)有的深度學習算法進行改進,通過修改損失函數(shù)或?qū)W習方式的方法來消除類別不平衡帶來的影響。

MSFE(meansquaredfalseerrorloss)


輸出閾值(outputthresholding)

通過調(diào)整網(wǎng)絡結(jié)果的輸出閾值來改善類別不平衡的問題。模型設計者根據(jù)數(shù)據(jù)集的構成和輸出的概率值,人工設計一個合理的閾值,以降低樣本數(shù)目較少的類別的輸出要求,使得其預測結(jié)果更加合理。

在分類器中考慮成本的第一種可行方法是在訓練后進行,也即按照基本的方法訓練分類器,輸出如下概率:

這里沒有考慮任何成本。然后,如果滿足下述條件

則預測類為C0,否則為C1。

這里,只要輸出給定點的每個類的概率,使用哪個分類器并不重要。在我們的例子中,我們可以在數(shù)據(jù)上擬合貝葉斯分類器,然后對獲得的概率重新加權,根據(jù)成本誤差來調(diào)整分類器。

類重新加權

類重新加權(classreweight),即在分類器訓練期間直接考慮成本誤差的不對稱性,這使每個類的輸出概率都嵌入成本誤差信息。然后這個概率將用于定義具有0.5閾值的分類規(guī)則。

對于某些模型(例如神經(jīng)網(wǎng)絡分類器),我們可以在訓練期間通過調(diào)整目標函數(shù)來考慮成本。我們?nèi)匀幌M诸惼鬏敵?/p>

但是這次的訓練將使以下的成本函數(shù)最小化

對于一些其他模型(例如貝葉斯分類器),我們可以使用重采樣方法來偏置類的比例,以便在類比例內(nèi)輸入成本誤差信息。如果考慮成本P01和P10(如P01>P10),我們可以:

  • 對少數(shù)類按照P01/P10的比例進行過采樣(少數(shù)類的基數(shù)乘以P01/P10);
  • 對多數(shù)類按照P10/P01的比例進行欠采樣(多數(shù)類的基數(shù)乘以P10/P01)。

類重新加權方法:多數(shù)類按比例進行欠采樣,這樣可以直接在類比例中引入成本信息總結(jié)