推薦系統評估指標
https://www.cnblogs.com/eilearn/p/14164687.html
PNR(Positive Negative Rate)
- 正逆序比 = 正序數 / 逆序數;
AUC(Area Under Curve)
- ROC(Receiver Operating Characteristic)曲線與AUC(Area Under Curve)
ROC曲線:
-
橫坐標:假正率(False positive rate, FPR),FPR = FP / [FP + TN] ,代表所有負樣本中錯誤預測為正樣本的概率,假警報率;
-
縱坐標:真正率(True positive rate, TPR),TPR = TP / [TP + FN] ,代表所有正樣本中預測正確的概率,命中率。
對角線對應於隨機猜測模型,而(0,1)對應於所有整理排在所有反例之前的理想模型。曲線越接近左上角,分類器的性能越好。
ROC曲線有個很好的特性:當測試集中的正負樣本的分布變化的時候,ROC曲線能夠保持不變。在實際的數據集中經常會出現類不平衡(class imbalance)現象,即負樣本比正樣本多很多(或者相反),而且測試數據中的正負樣本的分布也可能隨着時間變化。
ROC曲線繪制:
(1) 根據每個測試樣本屬於正樣本的概率值從大到小排序;
(2) 從高到低,依次將“Score”值作為閾值threshold,當測試樣本屬於正樣本的概率大於或等於這個threshold時,我們認為它為正樣本,否則為負樣本;
(3) 每次選取一個不同的threshold,我們就可以得到一組FPR和TPR,即ROC曲線上的一點。
- 當我們將threshold設置為1和0時,分別可以得到ROC曲線上的(0,0)和(1,1)兩個點。將這些(FPR,TPR)對連接起來,就得到了ROC曲線。當threshold取值越多,ROC曲線越平滑。
AUC(Area Under Curve)即為ROC曲線下的面積
- AUC越接近於1,分類器性能越好。
物理意義:首先AUC值是一個概率值,當你隨機挑選一個正樣本以及一個負樣本,當前的分類算法根據計算得到的Score值將這個正樣本排在負樣本前面的概率就是AUC值。當然,AUC值越大,當前的分類算法越有可能將正樣本排在負樣本前面,即能夠更好的分類。
計算公式:就是求曲線下矩形面積。
推薦系統的 auc:https://mp.weixin.qq.com/s/e3qcSo8LPDf2S8TUvU6S1A
- AUC代表模型預估樣本之間的排序關系,即正負樣本之間預測的gap越大,auc越大。
ROC曲線反映了分類器的分類能力,結合考慮了分類器輸出概率的准確性
AUC量化了ROC曲線的分類能力,越大分類效果越好,輸出概率越合理
AUC常用作CTR的離線評價,AUC越大,CTR的排序能力越強
計算邏輯問題:
AUC計算是基於模型對全集樣本的的排序能力,而真實線上場景,往往只考慮一個用戶一個session下的排序關系。這里的gap往往導致一些問題。正如參考[3]中的舉例的幾個case,比較典型。主要包括兩點:
-
線上會出現新樣本,在線下沒有見過,造成AUC不足。這部分更多是采用online learning的方式去緩解,AUC本身可改進的不多。
-
線上的排序發生在一個用戶的session下,而線下計算全集AUC,即把user1點擊的正樣本排序高於user2未點擊的負樣本是沒有實際意義的,但線下auc計算的時候考慮了它。
-
改進:deepES 數據分析時,分用戶進行 pnr 統計;