0. 前言
模型的評價指標和評價體系是建模過程中的一個重要環節,針對不同類型的項目和模型,要合理選擇不同的評價指標和體系。下面先給出二分類模型中預測值和實際值的混淆矩陣(confusion matrix)和定義,然后介紹幾種評價指標。
二分類模型的預測值與實際值的結果
TP(True Positive):模型預測為正例(1),實際為正例(1)的觀察對象的數量。
TN(True Negative):模型預測為負例(0),實際為負例(0)的觀察對象的數量。
FP(False Positive):模型預測為正例(1),實際為負例(0)的觀察對象的數量。
FN(False Negative):模型預測為負例(0),實際為正例(1)的觀察對象的數量。
1. 正確率(Accuracy)
正確率和錯誤率是相對的兩個概念,通常我們把分類錯誤的樣本數占樣本總數的比例稱為錯誤率(error rate)。
2. 敏感度(Sensitivity)和 特異度(Specificity)
3. 查全率(Recall)、查准率(Precision)與F1-Score
查全率和查准率是一對矛盾的度量。一般來說,查准率高時,查全率往往偏低;而查全率高時,查准率往往偏低。
在一些應用中,對查准率和查全率的重視程度有所不同。例如在商品推薦系統中,為了盡可能少打擾用戶,更希望推薦內容確是用戶感興趣的,此時查准率更重要;而在逃犯信息檢索系統中,更希望盡可能少的漏掉逃犯,此時查全率更重要。
查全率和查准率是兩個度量,如果同時有 A 和 B 兩個學習器,如何去判斷哪個模型更好呢?\(F_1\) 度量是查全率和查准率的調和平均(如下),可以用這個指標對兩個學習器作比較。
\(F_1\)度量的一般形式——\(F_\beta\) ,能讓我們表達出對查准率/查全率的不同偏好,它定義為
其中 \(\beta > 0\) 度量了查全率對查准率的相對重要。 \(\beta = 1\) 退化為標准的 \(F_1\) ;\(\beta > 1\) 時查全率有更大影響;\(\beta < 1\) 時查准率有更大影響。
4. ROC (Receiver Operating Characteristic)和 AUC (Area Under ROC Curve)
ROC 全稱是“受試者工作特征”曲線,它源於“二戰”中用於敵機檢測的雷達信號分析技術。
ROC曲線的縱軸是“真正例率”(True Positive Rate,簡稱 TPR),橫軸是“假正例率”(False Positive Rate,簡稱 FPR),兩者的定義為:
圖(a)給出了一個示意圖,顯然,對角線對應於“隨機猜測”模型,而點 (0, 1) 則對應於將所有正例排在所有反例之前的“理想模型”。
顯示任務中通常是利用有限個測試樣例來繪制ROC圖,此時僅能獲得有限個(真正例率,假正例率)坐標對,無法產生圖(a)中的光滑 ROC 曲線,只能繪制出如圖(b)所示的近似 ROC 曲線。繪圖過程很簡單:給定 \(m^+\) 個正例和 \(m^-\) 個反例,根據學習器預測概率對樣例進行排序,然后把分類閾值設為最大,即把所有樣例均預測為反例,此時真正例率和假正例率均為0,在坐標(0, 0)處標記一個點。然后,將閾值依次設為每個樣例的預測值,即依次將每個樣例划分為正例。設前一個標記點左邊為 \((x, y)\) ,當前若為真正例,則對應標記點的坐標為\((x, y + \frac{1}{m^+})\);當前若為假正例,則對應標記點的坐標為\((x + \frac{1}{m^-}, y)\),然后用線段連接相鄰點即得。
若一個學習器的 ROC 曲線被另一個學習器的曲線完全“包住”,則可斷言后者的性能優於前者;若兩個學習器的 ROC 曲線發生交叉,則難以一般性的斷言兩者孰優孰劣。此時如果一定要進行比較,則教為合理的判斷依據是比較 ROC 曲線下的面積,即 AUC。

5. KS值(Kolmogorov-Smirnov)
KS值是比較常用的一種判斷二分類(預測)模型准確度的方法,該方法來源於統計學中的 Kolmogorov-Smirnov Test。 KS值越大,表示模型對正、負樣本的區分度越高。通常來講,KS值(在測試集上)大於0.2表示模型有比較好的預測准確度。
KS值計算方法:
- 將測試集里所有的樣本根據模型預測概率值由大到小順序排序;
- 分別計算每個概率值(從高到低)所對應的實際上為正、負樣本的累計值,以及他們占全體測試樣本實際為正(TP + FN)、負(TN + FP)的總數量的百分比;
- 將這兩種累計百分比繪制在同一張圖上,得到KS曲線;
- KS值 = max{實際為正的累計比例 - 實際為負的累計比例}。
以上步驟對應:
- 按照概率值大小排序;
- 計算 TPR 和 FPR;
- 繪制 TPR 和 FPR 曲線;
- $ KS = \max(TPR - FPR) $ 。

6. Gini系數或Gini統計量(Gini Coefficient)
Gini系數是20世紀初意大利學者科拉多·基尼根據勞倫茨曲線所定義的判斷年收入分配公平程度的指標。是比例數值,在0和1之間。在民眾收入中,如基尼系數最大為“1”,最小為“0”。前者表示居民之間的年收入分配絕對不平均(即該年所有收入都集中在一個人手里,其余的國民沒有收入),而后者則表示居民之間的該年收入分配絕對平均,即人與人之間收入絕對平等,這基尼系數的實際數值只能介於這兩種極端情況,即0~1之間。基尼系數越小,年收入分配越平均,基尼系數越大,年收入分配越不平均。
設下圖中的實際收入分配曲線(紅線)和收入分配絕對平等線(綠線)之間的面積為A,和收入分配絕對不平等線(藍線)之間的面積為B,則表示收入與人口之間的比例的基尼系數為\(\frac {A}{A+B}\)。
在模型評價中,將模型預測違約概率由低到高排列,計算(累計違約用戶數量/總體違約用戶數量)*100%,按以上方法計算Gini系數。

7. Lift值、響應率(%Response)和捕獲率(%Captured Response)
Lift值
二分類(預測)模型在具體的業務場景中,都有一個Random Rate(基於已有業務的真實的正比例,也稱為“正”時間的隨機響應概率)。如果通過建模得到一個不錯的預測模型,那么將預測概率值從高到低排序中,排名靠前的樣本中,真正的“正”樣本在累計的總觀察值里的占比應該是高於 Random Rate 的。
舉例來說,某二院分類(預測)模型針對10000名潛在用戶打分(預測其購買某產品的可能性),Random Rate 為 9%,即其中有900人會實際購買該產品,將這10000名用戶經過模型打分后所得的概率分數從高到低進行排序,如果排名前 10% 的用戶,即1000名概率最高的用戶里實際購買產品的用戶數量為600人,那么與Random Rate相比較,可得出排名前10%的用戶其實際購買率的Lift值為6.67。
響應率
響應率是指上述經過概率分數排序后的某區間或累計區間觀察對象中,屬於正的觀察對象占該區間或該累計區間總體觀察對象數量的百分比。所以,響應率越大,說明在該區間或累計區間模型的預測准確度越高。
捕獲率
響應率是指上述經過概率分數排序后的某區間或累計區間觀察對象中,屬於正的觀察對象占全體觀察對象中屬於正的總數的百分比。
8. 模型穩定性評估
模型的好壞,不僅要考察其在訓練集和驗證集的表現,還要對模型的穩定性進行評估。
考察穩定性最好的辦法就是抽取另一個時間窗口的數據(最好是最新時間的數據),通過模型在這些新數據上的表現來與之前在訓練集和測試集上的表現進行比較,看模型的穩定性,其效果衰減幅度是否可以接受,如果條件許可,最好用幾個不同時間窗口的數據分別進行觀察比較。
參考資料:
《數據挖掘與數據化運營實戰》 盧輝
《機器學習》 周志華
Wikipedia 基尼系數