1. 數據不平衡的數據處理
2. 數據不平衡的分類器評價指標
1. 分類器評價指標
1.1 混淆矩陣
在數據不平衡的分類任務中,我們不在使用准確率當作模型性能度量的指標,而是使用混淆矩陣、精准率、召回率、F1值當作模型的性能度量指標。
- TP(True Positive):真實是正例,預測也為正例的情況(預測對的部分)
- FP(False Positive):真實是反例,預測為正例的情況(預測錯的部分)
- FN(False Negative):真實是正例,預測為反例的情況(預測錯的部分)
- TN(True Negative):真實是反例,預測也為反例的情況(預測對的部分)
精准率P
召回率R
F1值
F1值是精准率和召回率的調和平均值。兩個數值的調和平均更加接近兩個數當中較小的那個,因此如果要使得F1很高的話那么精准率和召回率都必須很高。
F值的一般情況
PR曲線
精准率和召回率是一個對矛盾的變量。一般精准率高,召回率就會降低,精准率降低,召回率就會偏高。所以我們可以通過PR曲線來尋找精准率和召回率的平衡點。我們一般可以通過改變分類的閾值來對一個模型的一組結果進行繪制PR曲線。比如針對邏輯回歸的一組概率,通過設置閾值分別小於[0,0.1,0.2,...,0.8,0.9,1],來分別計算精准率和召回率,然后繪制出曲線。
如上圖所示,曲線B完全包住了曲線C,我們說曲線B的模型比曲線C的模型要好。
如上圖所示的平衡點,基本就是自身曲線的精准率和召回率的平衡的地方,由於這個平衡點比較難評估,所以這時候用F1來近似平衡點。
1.2 ROC和AUC
ROC曲線和PR曲線的原理非常相似,繪制的方式也是通過改變分類的閾值。不同的地方是,ROC是以FPR為X軸和TPR為Y軸進行繪制。PR是以R為X軸,P為Y軸進行繪制。
FPR(False Positive Rate)
TPR(True Positive Rate)
可以從下公式看出,TPR和召回率是一樣的。
ROC曲線評價標准是,越靠近左上角,模型效果越好。我們用ROC包住的面積叫做AUC,用AUC的大小來衡量模型的優劣。
1.3 代價敏感學習
代價敏感的學習方法是機器學習領域中的一種新方法,它主要考慮在分類中,當不同的分類錯誤會導致不同的懲罰力度時如何訓練分類器。例如在醫療中,“將病人誤診為健康人的代價”與“將健康人誤診為病人的代價”不同;在金融信用卡盜用檢測中,“將盜用誤認為正常使用的代價”與將“正常使用誤認為盜用的代價”也不同。
通常,不同的代價被表示成為一個N×N的Cost矩陣中,其中N是類別的個數。\(cost_{ij}\)表示將一個i類的對象錯分到j類中的代價。代價敏感分類就是為不同類型的錯誤分配不同的代價,使得在分類時,高代價錯誤產生的數量和錯誤分類的代價總和最小。
加入了代價矩陣后,錯誤率的公式改為如下:
在非均等代價下,ROC曲線就不能直接反映出模型的總體代價,需要用代價曲線來度量總體代價。
1.4 繪制正例代價曲線
代價曲線的X軸是取值[0,1]的正例概率代價,計算方式如下,其中p是正例的概率:
代價曲線的Y軸是取值為[0,1]的歸一化代價,FNR是假反例率,FPR是假正例,公式如下:
ROC曲線上的每一點對應了代價平面上的一條線段,設ROC曲線上的點的坐標為(TPR,FPR),則可以計算出FNR,然后在代價平面上繪制一條從(0,FPR)到(1,FNR)的直線,直線下的面積代表該條件下的期望總體代價;將ROC上的點全都轉換為直線,然后取所有線段下界,圍城的面積即為在所有條件下的學習器的期望總體代