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