如果不同類別的訓練樣例數目稍有差別,通常影響不大,但若差別很大,則會對學習過程造成困擾。例如有998個反例,但正例只有2個,那麼學習方法只需返回乙個永遠將新樣本**為反例的學習器,就能達到99.8%的精度;然而這樣的學習器往往沒有價值,因為它不能**出任何正例。
類別不平衡(class-imbalance)就是值分類任務中不同類別的訓練樣例數目差別很大的情況。不是一般性,本節假定正類樣例較少,反類樣例較多。在現實的分類任務中,我們經常會遇到類別不平衡,例如在通過拆分法解多分類問題時,即使原始問題中不同類別的訓練樣例數目相當,因此有必要了解類別不平衡性處理的基本方法。
從線性分類器的角度討論容易理解,在我們用
若y/(1-y) > 1則,**為正例 (1)
然而,當訓練集中正、反例的數目不同時,令
若但是,我們的分類器是基於式(1)進行比較決策,因此,需對其**值進行調整,使其基於式(1)決策時,實際上是在執行式(2),要做到這一點很容易,只需令
這就是類別不平衡學習的乙個基本決策------"再縮放"(rescaling)。
再縮放的思想雖簡單,但實際操作卻不平凡,主要是因為「訓練集是真實樣本總體的無偏取樣」這個假設往往並不成立,也就是說,我們未必能有效地基於訓練集觀測機率來推斷出真實機率。現有技術大體有三類:
欠取樣法的時間開銷通常遠小於過取樣法,因為前者丟棄了很多反例,使得分類器訓練集遠小於初始訓練集,而過取樣法增加了很多正例,其訓練集大於初始訓練集。需注意的是,過取樣法不能簡單地對初始樣本進行重複取樣,否則會招致嚴重的過擬合;過取樣法的代表性演算法smothe是通過對訓練集裡的正例進行插值來產生額外的正例。另一方面,欠取樣法若隨機丟棄反例,可能丟失一些重要資訊;欠取樣法的代表性演算法easyensemble則是利用整合學習機制,將反例劃分為若干個集合供不同學習器使用,這樣對每個學習器來看都進行了欠取樣,但在全域性來看卻不會丟失重要資訊。值得一提的是,「再縮放」也是「代價敏感學習」(cost-sensitive learning)的基礎,在代價敏感學習中將式(3)中的
機器學習中的不平衡問題
從少數類sm in中抽取資料集 e 取樣的數量要大於原有少數類的數量,最終的訓練集為sm aj e 對於少數類中每乙個樣本 x 以歐氏距離為標準計算它到少數類樣本集sm in中所有樣本的距離,得到其k近鄰。根據樣本不平衡比例設定乙個取樣比例以確定取樣倍率n,對於每乙個少數類樣本x,從其k近鄰中隨機選...
不平衡類問題總結
不平衡類的問題很常見,解決該類問題的方法一般有兩種,一種是在目標函式中增加懲罰項,使得錯分某一種類 或多類 的成本增大。另一種是重取樣,使得兩類或多類的分布較為均衡。乙個分類器的效能好壞,取決於取決於用什麼樣的度量標準。混淆矩陣是一種常用的度量方法,混淆矩陣的示意圖如下 其中,tn表示為 true ...
機器學習 不平衡資料集
不平衡資料集是指在解決分類問題時每個類別的樣本量不均衡的資料集。比如,在二分類中你有100個樣本其中80個樣本被標記為class 1,其餘20個被標記為class 2.這個資料集就是乙個不平衡資料集,class 1和class 2的樣本數量之比為4 1.不平衡資料集不僅存在於二分類問題而且存在於多分...