做推薦業務,這4種機器效果測評方法你應該知道
在與策略相關的產品功能(搜索、排序、推薦)中,往往都涉及機器學習算法,因此評估推薦效果就轉化為評估機器學習算法模型的好壞。那如何評估最終推薦的效果呢?本文作者梳理分析了4種方法,供大家參考和學習。
我們一般以人工標注為準,即看做真實結果,用各種率去衡量機器預測和真實結果之間的差距。評估方式有很多種,各有各的優點。
R\P\A\F值
用Recall、Precision、Accuracy、F值,評估單個機器學習算法的效果,是最常見、最基礎的方法。
對象分類:
(1)二分類:每一個評估對象有唯一的標簽,YES or NO。如低俗、標題黨文章。
(2)多分類(機器需要識別的標簽數包含3個及3個以上,一般情況下,每一種標簽的識別結果都是我們的關注目標)
- 單標簽,每一個評估對象有唯一的標簽,選擇大于等于3,如文章分類。
- 多標簽,每一個評估對象有多個標簽,如文章興趣點、文章關鍵詞。
1. 二分類
人工標注結果為“真”的樣本記做T(True),人工標注結果為“假”的樣本記做F(False);
機器預測結果為“真”的樣本記做P(Positive),機器預測結果為“假”的樣本記做N(Negative)。
將其轉化為矩陣,有四種結果:
- TP:預測正確,預測情況是P,因此真實情況也是P。
- FP:預測錯誤,預測情況是P,因此實際情況是N。
- FN:預測錯誤,預測情況是N,因此實際情況是P。
- TN:預測正確,預測情況是N,因此實際情況也是N。
(混淆矩陣示意圖)
召回率(Recall)=TP/(TP+FN),機器正確識別出”真”的樣本數總和/樣本總數
精準率(Precison)=TP/(TP+FP),機器正確識別出”真”的樣本數總和/機器識別樣本總數
準確率(Accuracy)=(TP+TNP)/(TP+FN+FP+TN),機器正確識別的樣本總數/樣本總數(備注:正確識別包含把“True”樣本識別為“Positive”,把“False”樣本識別為“Negative”兩種情況)
雖然準確率可以判斷總的正確率,但如果樣本中T、F樣本分布極度不平衡,準確率結果會含有很大的水分,基本失去參考價值。
如樣本中T占95%,F占5%,我們將模型設置為所有樣本均預測為P的策略,則準確率有95%那么高,但實際上毫無意義。更多經典例子來自疾病試紙和驗孕試紙(有興趣的朋友可以查閱一下),所以統計的時候需要注意統計的對象。
針對R\P\A的計算,舉個栗子:
(以上數據僅做理論說明,不做實際參考)
圖解一:
- 召回率(R)=140/(140+11)=92.72%
- 精準率(P)=140/(140+40)=77.78%
- 準確率(A)=(140+4809)/(140+4809+40+11)=98.98%
圖解二:
- 召回率(R)=140/151=92.72%
- 精準率(P)=140/180=77.78%
- 準確率(A)=(5000-40-11)/5000=98.98%
對于同一策略模型,同一閾值,可以統計出一組確定的精準率和召回率。調整參數,遍歷0-1之間的所有閾值,就可以畫出每個閾值下的關系點,從而得到一條曲線,稱之為P-R曲線。
(召回率也叫查全率,精確率也叫查準率)
通過曲線發現,召回率和精準率相互制約,此起彼伏,所以只能找二者之間的平衡點。這時需要引入F值評估:F-Score(也稱F-Measure),它是Precision和Recall加權調和平均數,[0,1],值越大表示效果越好。
F1 Score:召回率和精確率同等重要
但往往我們對召回率和精準率的權重要求是不同的,這是我們需要用到 Fβ Score。
- F2:召回率的重要程度是準確率的2倍
- F0.5:召回率的重要程度是準確率的一半
(β大于0)
2. 多分類單標簽
M_i : 表示機器識別是 i 類別,同時是正確的樣本數
C_i : 表示機器識別是 i 類別的總樣本數
N_i : 表示 i 類別的實際總數(即人工標記為是 i 類別的樣本數)
D :文章總數
K: 類別總數
- 精確率(A)=(M_0+M_1+……+M_K)/(C_1+C_2 + …… + C_K)
- 召回率(R)=(M_0+M_1+……+M_K)/(N_1+N_2+……+N_K)=(M_0+M_1+……+M_K)/D
- 覆蓋率(Coverage)= 所有精確度符合要求的機器預測樣本數/D
對于覆蓋率,舉個栗子:
假設單個類別精度要求90%,沒有滿足要求的類別,覆蓋率C=0;
假設單個類別精度要求85%,則滿足要求的類別有a、c,則覆蓋率C=(90+100)/(100+100+200)*100%=47.5%。
在實際的文本審核工作中,還需要加上“無需審核的文章量”=準確率達標的文章量,用于評估減少人工審核文章量。
3. 多分類多標簽
M_i : 表示 i 標簽識別正確的總樣本數;
C_i : 表示 i 標簽出現的總樣本數;
N_i : 表示 i 標簽實際總樣本數(即人工標記為是 i 標簽的總樣本數)
K:表示標簽集合的大?。床煌瑯撕灥膫€數)
- 準確率(A)=(M_0+M_1+……+M_K)/(C_0+C_1+……+C_K)
- 召回率(R)=(M_0+M_1+……+M_K)/(N_1+N_2+……+N_K)
但在實際工作中,考慮到人工標注可行性,評估指標不考慮多標簽結果的先后順序;并且考慮到每一篇文章人工打全所有標簽的成本較大,召回率指標僅作為參考,看情況提供。
ROC、AUC
前文介紹了R\P\A\F值,但它僅能評估單點效果而無法衡量策略的整體效果,于是我們再引入ROC(Receiver Operating Characteristic)、AUC(Area Under Curve),它是一套成熟的整體策略評估方法。
先引入兩個指標,這兩個指標是ROC、AUC可以無視樣本中T、F不平衡的原因。
- 真正率(TPR)=TP/(TP+FN),在“真”樣本里預測正確的樣本;
- 假正率(FPR)=FP/(FP+TN),在“假”樣本里預測錯誤的樣本。
設橫坐標是FPR、縱坐標是TPR,每個點都描繪了在某一確定閾值下模型中真正的P和錯誤的P之間的關系,遍歷0-1的所有閾值,繪制一條連續的曲線,這就是ROC曲線。
如果我們遍歷閾值,多次回歸模型繪制出ROC曲線上的點,這種做法非常低效。因此我們可以用另外一種方法來代替ROC,即AUC,計算曲線下的面積。
如上圖虛線,若我們將對角線連接,它的面積正好是0.5,代表模型完全隨機判斷,P/N概率均為50%。若ROC曲線越陡,AUC就越接近正方形,面積越接近1,代表效果越好。所以,AUC的值一般都介于0.5-1之間。
MAP
除了考慮召回結果整體準確率之外,有時候還需要考慮召回結果的排序。于是我們要提起MAP(Mean Average Precision)。
先說說AP的計算,假設這N個樣本中有M個正例,那么我們會得到M個Recall值(1/M, 2/M, …, M/M),如下圖,N個樣本里有6個正例,有6個Recall值:1/6, 2/6, …, 6/6,對于每個Recall值,我們可以計算出對于這個正例最大Precision,然后對這6個Precision取平均即得到最后的AP值。計算方法如下:?
AP衡量的是學出來的模型在給定類別上的好壞,而MAP衡量的是學出的模型在所有類別上的好壞,得到AP后MAP的計算就變得很簡單了,就是取所有AP的平均值。
CG/DCG/NDCG
之前的指標大多是將目標值分為P和N兩種情況,但用CG/DCG/NDCG(Normalized Discounted cumulative gain)算法可以用更多維度的指標來評估。
比如可以將目標值分為Good、Fair、Bad三類,也可以按照評分。CG->DCG->NDCG是一個考慮精度逐步復雜的演變,多用于搜索結果的評估,當規定相關分值越大表示越相關時,CG/DCG/NDCG值越大表示效果越好。
累計增益(CG),只考慮結果的相關性(reli),不考慮位置因素。公式:
舉個栗子:
假設某次搜索返回5個結果,相關度分數分別是4、2、1、1、2
所以CG=4+2+1+1+2=10
折損累計增益(DCG),既考慮結果的相關性,也考慮位置因素:a. 高關聯度的結果比一般關聯度的結果更影響最終的指標得分;b. 有高關聯度的結果出現在更靠前的位置的時候,指標會越高。DCG公式:
再舉個栗子:
假設某次搜索返回5個結果,相關度分數分別是4、2、1、1、2
DCG=1.26+3+0.38+0+1.26=5.9
歸一化折損累計增益(NDCG),由于搜索結果隨著檢索詞的不同,返回的數量是不一致的,沒法針對兩個不同的搜索結果進行比較,因此需要歸一化處理。NDCG公式:
IDCG為理想情況下(相關度降序排列)最大的DCG值:
再再再舉個栗子:
假設某次搜索返回5個結果,相關度分數分別是4、2、1、1、2
假如我們實際召回了7個物品,除了上面的5個,還有兩個結果,假設第6個相關性為3,第7個相關性為0。在理想情況下的相關性分數排序應該是:3、3、2、2、1
所以IDCG=3+3+1.26+1.26+0.38=8.9,NDCG=DCG/IDCG=5.9/8.9*100%=66.29%
參考文獻:
- Willy_G《搜索:由流程框架到實現方法》,http://www.aharts.cn/pd/2866942.html
- 胖喵~《搜索評價指標——NDCG》,https://www.cnblogs.com/by-dream/p/9403984.html
- 殘陽崔雪《性能指標(模型評估)之mAP》,https://blog.csdn.net/u014203453/article/details/77598997
本文由 @張小喵Miu 原創發布于人人都是產品經理,未經作者許可,禁止轉載。
題圖來自Unsplash,基于CC0協議。
講的太好了!?。?!
看不懂,看不懂;看您應該有過一些推薦策略的實戰經驗;想問一下,如果像學習一些策略推薦等,需要怎么入手,或者您是如何成長的 ?? ;