1. 程式人生 > >處理樣本不均衡數據

處理樣本不均衡數據

svc 分類器 回歸 形式 生成 自動調整 處理 bsp 損失函數

處理樣本不均衡數據一般可以有以下方法:

1、人為將樣本變為均衡數據。

上采樣:重復采樣樣本量少的部分,以數據量多的一方的樣本數量為標準,把樣本數量較少的類的樣本數量生成和樣本數量多的一方相同。

下采樣:減少采樣樣本量多的部分,以數據量少的一方的樣本數量為標準。

2、調節模型參數(class_weigh,sample_weight,這些參數不是對樣本進行上采樣下采樣等處理,而是在損失函數上對不同的樣本加上權重)

(A)邏輯回歸中的參數class_weigh;

在邏輯回歸中,參數class_weight默認None,此模式表示假設數據集中的所有標簽是均衡的,即自動認為標簽的比例是1:1。所以當樣本不均衡的時候,我們可以使用形如{標簽的值1:權重1,標簽的值2:權重2}的字典來輸入真實的樣本標簽比例(例如{“違約”:10,“未違約”:1}),來提高違約樣本在損失函數中的權重

或者使用”balanced“模式,直接使用n_samples/(n_classes * np.bincount(y)),即樣本總數/(類別數量*y0出現頻率)作為權重,可以比較好地修正我們的樣本不均衡情況。

(B)在SVM中使用SVC類的參數class_weigh和接口fit中可以設定的sample_weight:

SVC類的參數class_weigh:

對於class_weight,輸入形如{"標簽的值1":權重1,"標簽的值2":權重2}的字典,則不同類別的C將會自動被設為不同的值: