策略產(chǎn)品經(jīng)理必讀系列第七講:機器學(xué)習分類(lèi)任務(wù)基礎評估指標AUC、召回率、準確率
作為策略產(chǎn)品經(jīng)理,了解機器學(xué)習的相關(guān)知識,一定程度上可以幫助到日常工作。在本篇文章里,作者便拆解和總結了機器學(xué)習的分類(lèi)任務(wù)離線(xiàn)效果評估指標,一起來(lái)看看吧,也許會(huì )對你有幫助。
前言:網(wǎng)上已經(jīng)有很多文章介紹AUC、召回率和準確率等指標了,但更多只是從計算公式來(lái)講解,并沒(méi)有結合工作中實(shí)際的業(yè)務(wù)場(chǎng)景。一上來(lái)就介紹指標計算,并沒(méi)有給到讀者一個(gè)對于機器學(xué)習任務(wù)離線(xiàn)效果評估指標體系的整體認知。同時(shí)關(guān)于A(yíng)UC指標和ROC曲線(xiàn)的介紹很多文章講解的都很難理解,本次我們分為兩個(gè)系列第一篇先介紹分類(lèi)任務(wù)的離線(xiàn)效果評估指標,第二篇介紹回歸和聚類(lèi)任務(wù)的離線(xiàn)效果評估指標。
一、機器學(xué)習任務(wù)類(lèi)型
在介紹各類(lèi)機器學(xué)習任務(wù)離線(xiàn)效果指標評估之前,我們需要清楚機器學(xué)習的任務(wù)分類(lèi)。
機器學(xué)習的任務(wù)類(lèi)型可以分為兩大類(lèi),一類(lèi)是預測類(lèi)任務(wù)比如銷(xiāo)量預測、人群分類(lèi)、推薦系統等,針對新的輸入數據做出判斷即可。另一類(lèi)是生成類(lèi)任務(wù)比如ChatGPT模型的構建,需要模型基于歷史數據學(xué)習后可以完全從零生成新的內容。
本篇文章我們核心介紹機器學(xué)習預測類(lèi)任務(wù)。預測類(lèi)機器學(xué)習的任務(wù)類(lèi)型還可以細分為以下三種:
主要分為分類(lèi)、聚類(lèi)和回歸三大類(lèi)任務(wù),下面我們分別展開(kāi)介紹。
1. 分類(lèi)任務(wù)
對模型輸入相關(guān)數據,模型輸出該條數據屬于已知K類(lèi)中的哪一類(lèi)。
分類(lèi)任務(wù)又可以分為二分類(lèi)和多分類(lèi),比如推薦系統CTR預估就是二分類(lèi)的任務(wù),模型預估用戶(hù)對于內容是點(diǎn)擊還是不點(diǎn)擊,人臉識別就是多分類(lèi)任務(wù),因為人臉的種類(lèi)有非常多。
很多讀者會(huì )認為推薦是回歸任務(wù),覺(jué)得模型最終輸出了一個(gè)用戶(hù)對于推薦內容的興趣度,是一個(gè)具體的數值。但實(shí)際推薦系統在線(xiàn)上用戶(hù)給的反饋就是點(diǎn)擊或不點(diǎn)擊,我們并不知道用戶(hù)對于內容的真實(shí)興趣度是多少,無(wú)法量化。模型訓練時(shí)所輸入的訓練數據的標簽也只是點(diǎn)擊和不點(diǎn)擊,并不是興趣度是多少,所以此處需要特別注意不能把推薦系統CTR預估任務(wù)的類(lèi)型弄混淆了。
2. 聚類(lèi)任務(wù)
對模型輸入相關(guān)數據,并設置希望將整體數據分成K個(gè)類(lèi),模型自動(dòng)將數據分為K個(gè)類(lèi)。如上圖所示,我們將全部數據分為了5個(gè)Cluster(簇),也就是5個(gè)類(lèi)。
常見(jiàn)的應用場(chǎng)景有人群分類(lèi)和圖形分類(lèi)等,將全部的用戶(hù)按照彼此之間的相似度可以分為K個(gè)類(lèi)。
3. 回歸任務(wù)
對模型輸入相關(guān)數據,模型返回具體的預測數值,結果是一個(gè)連續值。分類(lèi)和聚類(lèi)任務(wù)最終模型的輸出都是這個(gè)樣本屬于哪一個(gè)類(lèi)別,但是回歸任務(wù)是輸出最終實(shí)際的數值是什么,是一個(gè)具體的數字。常見(jiàn)的應用場(chǎng)景有銷(xiāo)量預測和智能定價(jià)。
二、分類(lèi)任務(wù)離線(xiàn)評估指標
不同的任務(wù)類(lèi)型決定了我們使用不同的指標來(lái)離線(xiàn)評估模型的效果。本次我們先介紹分類(lèi)任務(wù)的離線(xiàn)效果評估指標,我們以推薦系統CTR預估模型為例。
1. 混淆矩陣
針對分類(lèi)任務(wù)在進(jìn)行模型效果評估時(shí)首先要基于測試集的實(shí)際結果和評估結果構建一個(gè)混淆矩陣(Confusion Matrix)。本次模型預估用戶(hù)A對100個(gè)物料的點(diǎn)擊情況,預估用戶(hù)點(diǎn)擊了哪些物料,沒(méi)有點(diǎn)擊哪些物料 ,是一個(gè)二分類(lèi)任務(wù):“點(diǎn)擊”或“不點(diǎn)擊”。上圖中綠色代表模型在測試集上的預估數據,黃色代表測試集中物料的實(shí)際類(lèi)別。
1)TP (True Positive,真正例)
預測為正樣本且真實(shí)也為正樣本的個(gè)數,也就是預估用戶(hù)會(huì )點(diǎn)擊實(shí)際用戶(hù)也點(diǎn)擊了的樣本個(gè)數,上述混淆矩陣中為8;
2)FP (False Positive,假正例)
預測為正樣本但真實(shí)為負樣本的個(gè)數,也就是預估用戶(hù)會(huì )點(diǎn)擊實(shí)際用戶(hù)未點(diǎn)擊的樣本個(gè)數,上述混淆矩陣中為10;
3)FN (False Negative,假負例)
預測為負樣本但真實(shí)為正樣本的個(gè)數,也就是預估用戶(hù)不會(huì )點(diǎn)擊但實(shí)際用戶(hù)點(diǎn)擊了的樣本個(gè)數,上述混淆矩陣中為2;
4)TN (True Negative,真負例)
預測為負樣本且真實(shí)也為負樣本的個(gè)數,也就是預估用戶(hù)不會(huì )點(diǎn)擊實(shí)際用戶(hù)也沒(méi)有點(diǎn)擊的樣本個(gè)數,上述混淆矩陣中為80;
5)Accuracy Rate(準確率)
準確率是指模型整體預測結果的準確性,是否能夠將正樣本和負樣本準確的區分開(kāi),既沒(méi)有錯判也沒(méi)有漏判。計算公式如下:
ACC= (TP+TN)/(TP+FP+TN+FN)=(8+80)/100=0.88
但是準確率存在一個(gè)誤區,比如金融反欺詐場(chǎng)景里,欺詐用戶(hù)整體占比很少可能就1/1000,如果欺詐用戶(hù)識別模型將所有的用戶(hù)都預測為負樣本(此場(chǎng)景下欺詐用戶(hù)是正樣本,正常用戶(hù)是負樣本) ,那么模型的準確率也是99.9%。所以當樣本中正負樣本比例嚴重失調時(shí),準確率不具備參考意義。
6)Recall Rate(查全率 or 召回率)
查全率或召回率的定義是指模型能夠將數據中所有正樣本找到的覆蓋度,計算公式如下:
R= TP/(TP+FN)=8/(8+2)=0.8
本案例中真實(shí)的正樣本一共10個(gè),模型挑選出來(lái)8個(gè),所以查全率是80%。查全率同樣存在誤區,如果模型預估時(shí)召回了大量的樣本作為正樣本,恰好這些預估的正樣本把所有真實(shí)的正樣本都包含了,這樣計算出來(lái)的查全率就是100%。
但是這里面就會(huì )存在很多誤判,如果是金融反欺詐模型誤判太多就會(huì )對正常用戶(hù)的金融服務(wù)使用造成了非常不好的體驗。所以我們在看查全率的時(shí)候同時(shí)也要看模型預估的精確性,也就是下面的查準率指標。
7)Precision Rate(查準率 or 精準率)
查準率或精準率的定義是指模型預估中的正樣本多少是真實(shí)的正樣本,模型預估的精準性如何。計算公式如下:
P= TP/(TP+FP)=8/(8+10)=0.44
本案例中模型預估了18個(gè)正樣本,但實(shí)際只有8個(gè)才是真實(shí)的,所以查準率是44.4%。查準率也同樣存在誤區,很多模型在設計時(shí)為了擔心誤判將模型設計的非常嚴苛,雖然最后模型篩選出來(lái)的正樣本都是準確的,查準率是100%,但是模型也漏篩了大量的正樣本,對比查全率的誤區,從一個(gè)極端走向了另一個(gè)極端。
8)F_β-Score
所以實(shí)際模型效果評估時(shí)我們需要將查全率和查準率綜合在一起進(jìn)行綜合效果評估,也就是 F_β-Score 。計算公式如下:
F_β=((1+β^2)*R*P)/(R+β^2*P)
當 β=1 時(shí)就是均衡考慮查全率和查準率的重要性;當 β1 時(shí),場(chǎng)景更側重查全率;當 0
2. ROC曲線(xiàn)與AUC指標
上述介紹了很多基礎指標,即使我們有了 F_β-Score 也很難去規避因為正負樣本不均衡導致得到的查全率和查準率并不能夠客觀(guān)真實(shí)的反應模型真實(shí)的水準的情況。樣本的不均衡,要么是正樣本太多負樣本太少,要么就是正樣本太少負樣本太多,那么我們能不能構建兩個(gè)指標分別站在真實(shí)的正樣本和真實(shí)的負樣本視角去統計效果了?這樣的話(huà)即使樣本不均衡,但是我們統計的時(shí)候兩邊都進(jìn)行了統計,就不會(huì )因為樣本不均衡導致模型效果評估片面了。
這樣的兩個(gè)指標就是真正率( True Positive Rate )和假正率( False Positive Rate )。
真正率=True Positive Rate=TPR= TP/(TP+FN)
真正率的計算公式和查全率計算公式一樣,站在所有正樣本視角,統計模型能夠將所有真實(shí)正樣本都可以找出來(lái)的概率。
假正率=False Positive Rate=FPR= FP/(FP+TN)
假正率是完全站在所有負樣本視角,統計模型將真實(shí)負樣本誤識別為正樣本的概率。TPR代表的是模型預測響應的覆蓋度,FPR代表的是模型預測響應的虛報程度。一個(gè)好的模型一定是TPR = 1,FPR = 0,模型能夠將所有的真實(shí)正樣本識別出來(lái),同時(shí)模型也不進(jìn)行虛假上報。
那么我們如何用TPR和FPR兩個(gè)指標去綜合評估模型的分類(lèi)效果了。因為我們在分類(lèi)任務(wù)中構建出來(lái)是一個(gè)打分模型,模型是沒(méi)法直接告訴我們這個(gè)樣本是正還是負,模型是針對每個(gè)樣本進(jìn)行打分。當模型訓練好以后我們需要去設定一個(gè)分類(lèi)閾值(Threshold),當分數 閾值時(shí),則此樣本為正,當分數 ≤ 閾值時(shí),則此樣本為負。
每一個(gè)閾值都會(huì )對應一組(FPR, TPR),我們以FPR為橫坐標TPR為縱坐標,一組(FPR, TPR)就是一個(gè)點(diǎn)。那么我們應該將閾值設置為多少才合適了?閾值的設置很關(guān)鍵,這個(gè)將會(huì )影響模型在線(xiàn)上的效果,如何去找出這個(gè)最佳閾值?
通用的方法是將模型針對所有預測樣本的打分按照從高到低排序,將每一個(gè)預測值分別作為分類(lèi)閾值,這樣就可以得到多組(FPR, TPR)。將預測值中最大值作為閾值時(shí),只有大于該值才能是正樣本,那么所有樣本均為負樣本,TPR 和FPR均為 0;將預測值中最小的值作為閾值,那么所有樣本均為正樣本,TPR 和FPR均為1?;诙嘟M(FPR, TPR),我們可以得到如下圖所示的一個(gè)曲線(xiàn)圖:
上圖這個(gè)曲線(xiàn),我們一般稱(chēng)為ROC曲線(xiàn)。ROC(Receiver Operating Characteristic Curve),接收者操作特征曲線(xiàn),最開(kāi)始應用于二戰雷達分析技術(shù)里,后來(lái)被引進(jìn)到了機器學(xué)習中。
上圖中右側圖是一個(gè)將實(shí)際預測值作為分類(lèi)閾值遍歷后得到的ROC曲線(xiàn),當預測的樣本夠多,ROC曲線(xiàn)就如左側圖所示是一個(gè)平滑的曲線(xiàn)。
一個(gè)好的ROC曲線(xiàn),一定是TPR越大的同時(shí)FPR越小,模型曲線(xiàn)越陡,而且ROC曲線(xiàn)本身基本不隨著(zhù)正負樣本比例的變化而變化。針對當前訓練出來(lái)的模型我們如何去取一個(gè)合適的閾值來(lái)作為正負樣本的分割線(xiàn)了?
如上圖里面的左圖所示,一般我們是找ROC曲線(xiàn)里離(0,1)最近點(diǎn)的閾值取值作為當前模型最佳閾值取值,因為(0,1)點(diǎn)是最優(yōu)的TPR和FPR的取值,離(0,1)最近的點(diǎn)兼顧了TPR和FPR。
假設我們現在針對同樣一個(gè)分類(lèi)任務(wù)訓練出來(lái)了兩個(gè)模型,我們需要從中選擇出最優(yōu)的一個(gè)模型,我們能否借助ROC曲線(xiàn)了?
我們針對兩個(gè)模型分別去畫(huà)出ROC曲線(xiàn),如果模型A的ROC曲線(xiàn)完全將模型B的ROC曲線(xiàn)包圍,那么即為在相同FPR的情況下,模型A的TPR指標永遠高于模型B,很明顯模型A的效果要優(yōu)于模型B。
但實(shí)際情況,一般是模型A和模型B各自的ROC曲線(xiàn)有交叉一部分重疊一部分不重疊,那么如何去評估?
這時(shí)候引入了一個(gè)新的指標AUC,AUC指標全稱(chēng)Area Under Curve(曲線(xiàn)下的面積)。我們去計算ROC曲線(xiàn)下的面積,理論上ROC曲線(xiàn)越陡越好,FPR越小,TPR越大,所以AUC的取值范圍是[0,1],AUC越大代表模型效果越好。
AUC指標的業(yè)務(wù)意義是模型對于樣本的排序能力,在CTR預估模型里它代表的業(yè)務(wù)含義是在一個(gè)正樣本和一個(gè)負樣本中,模型將正樣本排序在負樣本前的概率。
再通俗一點(diǎn)就是說(shuō)隨機選兩個(gè)內容,模型能夠將用戶(hù)更感興趣的內容排序在前的能力。當我們將ROC曲線(xiàn)里(0,0)和(1,1)兩個(gè)點(diǎn)直接連起來(lái)時(shí),AUC = 0.5,一個(gè)隨機分類(lèi)模型的AUC就是0.5,所以實(shí)際模型的AUC值都是大于0.5的。
在離線(xiàn)效果評估時(shí),模型在測試集上的AUC指標表現必須得達到0.7以上才可能在線(xiàn)上有比較明顯的正向效果,低于0.7線(xiàn)上效果不顯著(zhù),因為隨機模型的基準AUC就是0.5。
AUC指標如果在0.8-0.9之間,模型的效果就非常好了;實(shí)際業(yè)務(wù)中分類(lèi)模型的AUC指標不太可能大于0.9,大于0.9基本是測試集數據選取有問(wèn)題或者數據穿越了。工業(yè)界里還沒(méi)有哪家互聯(lián)網(wǎng)公司的CTR預估模型離線(xiàn)AUC指標可以大于0.9。作為策略產(chǎn)品經(jīng)理需要知道AUC的正常取值范圍,當算法工程師訓練了一個(gè)新的分類(lèi)模型時(shí),第一時(shí)間問(wèn)的指標就應該是離線(xiàn)AUC指標的提升。
下一篇我們將介紹機器學(xué)習回歸和聚類(lèi)任務(wù)的離線(xiàn)效果評估指標體系。
本文由 @King James 原創(chuàng )發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉載。
題圖來(lái)自 Unsplash,基于 CC0 協(xié)議