處理不均衡數(shù)據(jù)粹断,有如下幾種方式:
1. 選擇對不均衡數(shù)據(jù)比較友好的metrics(比如f1, roc瓶埋、auc):
關(guān)于metrics有如下幾種:
1)accuracy?
? accuracy = (TP+TN)/(TP+FP+TN+FN)
" accuracy是最常見也是最基本的evaluation metric。但在binary classification 且正反例不平衡的情況下养筒,尤其是我們對minority class 更感興趣的時候,accuracy評價基本沒有參考價值挤悉。什么fraud detection(欺詐檢測)巫湘,癌癥檢測,都符合這種情況诀诊。例如:
在測試集里阅嘶,有100個sample,99個反例奠涌,只有1個正例磷杏。如果我的模型不分青紅皂白對任意一個sample都預(yù)測是反例捏卓,那么我的模型的accuracy是 正確的個數(shù)/總個數(shù) = 99/100 = 99%
這個屬于很不友好的了。
2) precision & recall & F1?
? ? ? precision = TP/(TP+FP)? ? ? ?recall = TP/(TP+FN)
這兩者處于trade-off的關(guān)系
F1 =?2*precision*recall / (precision + recall)
F1 score均衡了precision和recall遥金,是個還行的選擇把蒜田。
3) ROC&AUC
跟ROC息息相關(guān)的兩個變量sensitivity和speciality
sensitivity = recall = true positive rate
specificity = 1- false positive rate
上圖是A冲粤、B兩個不同分類器的roc曲線页眯,沒給定一個分類器的判定閾值厢呵,就能產(chǎn)生一個(fpr,tpr)點(diǎn),roc曲線就是把這些點(diǎn)連起來碌奉。
曲線下的面積叫auc, 面積越大分類越好寒砖。
對于不均衡數(shù)據(jù)roc, auc是個不錯的選擇。
2. 重抽樣
1) 隨機(jī)欠抽樣:
隨機(jī)刪除多數(shù)類的數(shù)據(jù)
會帶來潛在有效信息被刪除的問題魁兼。欠抽樣選擇的數(shù)據(jù)可能是偏差樣本茅逮,無法準(zhǔn)確代表總體。因此献雅,會導(dǎo)致在測試集中表現(xiàn)欠佳挺身。
2)隨機(jī)過抽樣:
隨機(jī)復(fù)制少數(shù)類的實(shí)例來增加少數(shù)類的數(shù)量
一般來說,過抽樣表現(xiàn)好于欠抽樣章钾。然而,由于過抽樣復(fù)制了多遍少數(shù)類數(shù)據(jù)惨撇,導(dǎo)致過擬合(over-fitting)的可能性變大府寒。
3) 基于聚類的過抽樣
基于聚類的過抽樣是將k-means聚類算法分別應(yīng)用在少數(shù)類和多數(shù)類中,識別出數(shù)據(jù)集中不同簇(cluster)剖淀。隨后纤房,通過對每個簇過抽樣來確保多數(shù)類和少數(shù)類的簇中實(shí)例的數(shù)目相等。
這也會導(dǎo)致過擬合捌刮。
4)?合成少數(shù)類過抽樣(SMOTE)
SMOTE避免了復(fù)制少數(shù)類導(dǎo)致的過擬合問題。用少數(shù)類的子集來創(chuàng)造新的合成的相似少數(shù)類實(shí)例糊啡。將這些合成的實(shí)例加入原有數(shù)據(jù)集棚蓄,豐富少數(shù)類的數(shù)據(jù)。
設(shè)訓(xùn)練集的一個少數(shù)類的樣本數(shù)為?T 梭依,那么SMOTE算法將為這個少數(shù)類合成?NT 個新樣本。這里要求?NN?必須是正整數(shù)糊探,如果給定的?N<1 那么算法將“認(rèn)為”少數(shù)類的樣本數(shù)?T=NT 河闰,并將強(qiáng)制?N=1 。
考慮該少數(shù)類的一個樣本?i瞪慧,其特征向量為?xi,i∈{1,...,T} :
1. 首先從該少數(shù)類的全部 T?個樣本中找到樣本 xi?的?k 個近鄰(例如用歐氏距離)部念,記為?xi(near),near∈{1,...,k};
2. 然后從這?k 個近鄰中隨機(jī)選擇一個樣本?xi(nn) 妓湘,再生成一個?0 到?1 之間的隨機(jī)數(shù)?ζ1?乌询,從而合成一個新樣本?xi1:
xi1=xi+ζ1?(xi(nn)?xi)
3. 將步驟2重復(fù)進(jìn)行?N 次,從而可以合成?NN個新樣本:xinew,new∈1,...,N竣灌。
那么秆麸,對全部的?T 個少數(shù)類樣本進(jìn)行上述操作及汉,便可為該少數(shù)類合成?NT個新樣本。
如果樣本的特征維數(shù)是?2 維房铭,那么每個樣本都可以用二維平面上的一個點(diǎn)來表示。SMOTE算法所合成出的一個新樣本 xi1?相當(dāng)于是表示樣本?xi 的點(diǎn)和表示樣本?xi(nn)的點(diǎn)之間所連線段上的一個點(diǎn)翁狐。所以說該算法是基于“插值”來合成新樣本凌蔬。
這種方法通過合成新數(shù)據(jù)緩解了由于復(fù)制少數(shù)類帶來的過擬合問題,同時不會造成有效信息丟失懈词。然而辩诞,當(dāng)合成新實(shí)例時,沒有考慮與其他類的相鄰實(shí)例抠忘,這可能會導(dǎo)致種類重疊外永,并且可能會添入額外的噪點(diǎn)。
3. 改進(jìn)分類算法
基于bagging或者boosting