天天看點

政策産品經理必讀系列第七講:機器學習分類任務基礎評估名額AUC、召回率、準确率

作者:人人都是産品經理
作為政策産品經理,了解機器學習的相關知識,一定程度上可以幫助到日常工作。在本篇文章裡,作者便拆解和總結了機器學習的分類任務離線效果評估名額,一起來看看吧,也許會對你有幫助。
政策産品經理必讀系列第七講:機器學習分類任務基礎評估名額AUC、召回率、準确率

前言:網上已經有很多文章介紹AUC、召回率和準确率等名額了,但更多隻是從計算公式來講解,并沒有結合工作中實際的業務場景。一上來就介紹名額計算,并沒有給到讀者一個對于機器學習任務離線效果評估名額體系的整體認知。同時關于AUC名額和ROC曲線的介紹很多文章講解的都很難了解,本次我們分為兩個系列第一篇先介紹分類任務的離線效果評估名額,第二篇介紹回歸和聚類任務的離線效果評估名額。

一、機器學習任務類型

在介紹各類機器學習任務離線效果名額評估之前,我們需要清楚機器學習的任務分類。

機器學習的任務類型可以分為兩大類,一類是預測類任務比如銷量預測、人群分類、推薦系統等,針對新的輸入資料做出判斷即可。另一類是生成類任務比如ChatGPT模型的建構,需要模型基于曆史資料學習後可以完全從零生成新的内容。

本篇文章我們核心介紹機器學習預測類任務。預測類機器學習的任務類型還可以細分為以下三種:

政策産品經理必讀系列第七講:機器學習分類任務基礎評估名額AUC、召回率、準确率

主要分為分類、聚類和回歸三大類任務,下面我們分别展開介紹。

1. 分類任務

政策産品經理必讀系列第七講:機器學習分類任務基礎評估名額AUC、召回率、準确率

對模型輸入相關資料,模型輸出該條資料屬于已知K類中的哪一類。

分類任務又可以分為二分類和多分類,比如推薦系統CTR預估就是二分類的任務,模型預估使用者對于内容是點選還是不點選,人臉識别就是多分類任務,因為人臉的種類有非常多。

很多讀者會認為推薦是回歸任務,覺得模型最終輸出了一個使用者對于推薦内容的興趣度,是一個具體的數值。但實際推薦系統線上上使用者給的回報就是點選或不點選,我們并不知道使用者對于内容的真實興趣度是多少,無法量化。模型訓練時所輸入的訓練資料的标簽也隻是點選和不點選,并不是興趣度是多少,是以此處需要特别注意不能把推薦系統CTR預估任務的類型弄混淆了。

2. 聚類任務

政策産品經理必讀系列第七講:機器學習分類任務基礎評估名額AUC、召回率、準确率

對模型輸入相關資料,并設定希望将整體資料分成K個類,模型自動将資料分為K個類。如上圖所示,我們将全部資料分為了5個Cluster(簇),也就是5個類。

常見的應用場景有人群分類和圖形分類等,将全部的使用者按照彼此之間的相似度可以分為K個類。

3. 回歸任務

政策産品經理必讀系列第七講:機器學習分類任務基礎評估名額AUC、召回率、準确率

對模型輸入相關資料,模型傳回具體的預測數值,結果是一個連續值。分類和聚類任務最終模型的輸出都是這個樣本屬于哪一個類别,但是回歸任務是輸出最終實際的數值是什麼,是一個具體的數字。常見的應用場景有銷量預測和智能定價。

二、分類任務離線評估名額

不同的任務類型決定了我們使用不同的名額來離線評估模型的效果。本次我們先介紹分類任務的離線效果評估名額,我們以推薦系統CTR預估模型為例。

1. 混淆矩陣

政策産品經理必讀系列第七講:機器學習分類任務基礎評估名額AUC、召回率、準确率

針對分類任務在進行模型效果評估時首先要基于測試集的實際結果和評估結果建構一個混淆矩陣(Confusion Matrix)。本次模型預估使用者A對100個物料的點選情況,預估使用者點選了哪些物料,沒有點選哪些物料 ,是一個二分類任務:“點選”或“不點選”。上圖中綠色代表模型在測試集上的預估資料,黃色代表測試集中物料的實際類别。

1)TP (True Positive,真正例)

預測為正樣本且真實也為正樣本的個數,也就是預估使用者會點選實際使用者也點選了的樣本個數,上述混淆矩陣中為8;

2)FP (False Positive,假正例)

預測為正樣本但真實為負樣本的個數,也就是預估使用者會點選實際使用者未點選的樣本個數,上述混淆矩陣中為10;

3)FN (False Negative,假負例)

預測為負樣本但真實為正樣本的個數,也就是預估使用者不會點選但實際使用者點選了的樣本個數,上述混淆矩陣中為2;

4)TN (True Negative,真負例)

預測為負樣本且真實也為負樣本的個數,也就是預估使用者不會點選實際使用者也沒有點選的樣本個數,上述混淆矩陣中為80;

5)Accuracy Rate(準确率)

準确率是指模型整體預測結果的準确性,是否能夠将正樣本和負樣本準确的區分開,既沒有錯判也沒有漏判。計算公式如下:

ACC= (TP+TN)/(TP+FP+TN+FN)=(8+80)/100=0.88

但是準确率存在一個誤區,比如金融反欺詐場景裡,欺詐使用者整體占比很少可能就1/1000,如果欺詐使用者識别模型将所有的使用者都預測為負樣本(此場景下欺詐使用者是正樣本,正常使用者是負樣本) ,那麼模型的準确率也是99.9%。是以當樣本中正負樣本比例嚴重失調時,準确率不具備參考意義。

6)Recall Rate(查全率 or 召回率)

查全率或召回率的定義是指模型能夠将資料中所有正樣本找到的覆寫度,計算公式如下:

R= TP/(TP+FN)=8/(8+2)=0.8

本案例中真實的正樣本一共10個,模型挑選出來8個,是以查全率是80%。查全率同樣存在誤區,如果模型預估時召回了大量的樣本作為正樣本,恰好這些預估的正樣本把所有真實的正樣本都包含了,這樣計算出來的查全率就是100%。

但是這裡面就會存在很多誤判,如果是金融反欺詐模型誤判太多就會對正常使用者的金融服務使用造成了非常不好的體驗。是以我們在看查全率的時候同時也要看模型預估的精确性,也就是下面的查準率名額。

7)Precision Rate(查準率 or 精準率)

查準率或精準率的定義是指模型預估中的正樣本多少是真實的正樣本,模型預估的精準性如何。計算公式如下:

P= TP/(TP+FP)=8/(8+10)=0.44

本案例中模型預估了18個正樣本,但實際隻有8個才是真實的,是以查準率是44.4%。查準率也同樣存在誤區,很多模型在設計時為了擔心誤判将模型設計的非常嚴苛,雖然最後模型篩選出來的正樣本都是準确的,查準率是100%,但是模型也漏篩了大量的正樣本,對比查全率的誤區,從一個極端走向了另一個極端。

8)F_β-Score

是以實際模型效果評估時我們需要将查全率和查準率綜合在一起進行綜合效果評估,也就是 F_β-Score 。計算公式如下:

F_β=((1+β^2)*R*P)/(R+β^2*P)

當 β=1 時就是均衡考慮查全率和查準率的重要性;當 β>1 時,場景更側重查全率;當 0 <β<1 時, 場景更側重查準率。在不同場景下對于模型的查準率和查全率側重點不一樣,比如推薦場景更看重查準率,確定推薦給使用者都是使用者真實喜歡的,不希望引起使用者的負回報。而在金融欺詐場景更看重查全率,確定将所有有風險的客戶都能夠召回,甯願錯殺一千也不能放過一個。

2. ROC曲線與AUC名額

上述介紹了很多基礎名額,即使我們有了 F_β-Score 也很難去規避因為正負樣本不均衡導緻得到的查全率和查準率并不能夠客觀真實的反應模型真實的水準的情況。樣本的不均衡,要麼是正樣本太多負樣本太少,要麼就是正樣本太少負樣本太多,那麼我們能不能建構兩個名額分别站在真實的正樣本和真實的負樣本視角去統計效果了?這樣的話即使樣本不均衡,但是我們統計的時候兩邊都進行了統計,就不會因為樣本不均衡導緻模型效果評估片面了。

這樣的兩個名額就是真正率( True Positive Rate )和假正率( False Positive Rate )。

真正率=True Positive Rate=TPR= TP/(TP+FN)

真正率的計算公式和查全率計算公式一樣,站在所有正樣本視角,統計模型能夠将所有真實正樣本都可以找出來的機率。

假正率=False Positive Rate=FPR= FP/(FP+TN)

假正率是完全站在所有負樣本視角,統計模型将真實負樣本誤識别為正樣本的機率。TPR代表的是模型預測響應的覆寫度,FPR代表的是模型預測響應的虛報程度。一個好的模型一定是TPR = 1,FPR = 0,模型能夠将所有的真實正樣本識别出來,同時模型也不進行虛假上報。

那麼我們如何用TPR和FPR兩個名額去綜合評估模型的分類效果了。因為我們在分類任務中建構出來是一個打分模型,模型是沒法直接告訴我們這個樣本是正還是負,模型是針對每個樣本進行打分。當模型訓練好以後我們需要去設定一個分類門檻值(Threshold),當分數 > 門檻值時,則此樣本為正,當分數 ≤ 門檻值時,則此樣本為負。

每一個門檻值都會對應一組(FPR, TPR),我們以FPR為橫坐标TPR為縱坐标,一組(FPR, TPR)就是一個點。那麼我們應該将門檻值設定為多少才合适了?門檻值的設定很關鍵,這個将會影響模型線上上的效果,如何去找出這個最佳門檻值?

通用的方法是将模型針對所有預測樣本的打分按照從高到低排序,将每一個預測值分别作為分類門檻值,這樣就可以得到多組(FPR, TPR)。将預測值中最大值作為門檻值時,隻有大于該值才能是正樣本,那麼所有樣本均為負樣本,TPR 和FPR均為 0;将預測值中最小的值作為門檻值,那麼所有樣本均為正樣本,TPR 和FPR均為1。基于多組(FPR, TPR),我們可以得到如下圖所示的一個曲線圖:

政策産品經理必讀系列第七講:機器學習分類任務基礎評估名額AUC、召回率、準确率

上圖這個曲線,我們一般稱為ROC曲線。ROC(Receiver Operating Characteristic Curve),接收者操作特征曲線,最開始應用于二戰雷達分析技術裡,後來被引進到了機器學習中。

上圖中右側圖是一個将實際預測值作為分類門檻值周遊後得到的ROC曲線,當預測的樣本夠多,ROC曲線就如左側圖所示是一個平滑的曲線。

一個好的ROC曲線,一定是TPR越大的同時FPR越小,模型曲線越陡,而且ROC曲線本身基本不随着正負樣本比例的變化而變化。針對目前訓練出來的模型我們如何去取一個合适的門檻值來作為正負樣本的分割線了?

如上圖裡面的左圖所示,一般我們是找ROC曲線裡離(0,1)最近點的門檻值取值作為目前模型最佳門檻值取值,因為(0,1)點是最優的TPR和FPR的取值,離(0,1)最近的點兼顧了TPR和FPR。

假設我們現在針對同樣一個分類任務訓練出來了兩個模型,我們需要從中選擇出最優的一個模型,我們能否借助ROC曲線了?

我們針對兩個模型分别去畫出ROC曲線,如果模型A的ROC曲線完全将模型B的ROC曲線包圍,那麼即為在相同FPR的情況下,模型A的TPR名額永遠高于模型B,很明顯模型A的效果要優于模型B。

但實際情況,一般是模型A和模型B各自的ROC曲線有交叉一部分重疊一部分不重疊,那麼如何去評估?

這時候引入了一個新的名額AUC,AUC名額全稱Area Under Curve(曲線下的面積)。我們去計算ROC曲線下的面積,理論上ROC曲線越陡越好,FPR越小,TPR越大,是以AUC的取值範圍是[0,1],AUC越大代表模型效果越好。

AUC名額的業務意義是模型對于樣本的排序能力,在CTR預估模型裡它代表的業務含義是在一個正樣本和一個負樣本中,模型将正樣本排序在負樣本前的機率。

再通俗一點就是說随機選兩個内容,模型能夠将使用者更感興趣的内容排序在前的能力。當我們将ROC曲線裡(0,0)和(1,1)兩個點直接連起來時,AUC = 0.5,一個随機分類模型的AUC就是0.5,是以實際模型的AUC值都是大于0.5的。

在離線效果評估時,模型在測試集上的AUC名額表現必須得達到0.7以上才可能線上上有比較明顯的正向效果,低于0.7線上效果不顯著,因為随機模型的基準AUC就是0.5。

AUC名額如果在0.8-0.9之間,模型的效果就非常好了;實際業務中分類模型的AUC名額不太可能大于0.9,大于0.9基本是測試集資料選取有問題或者資料穿越了。工業界裡還沒有哪家網際網路公司的CTR預估模型離線AUC名額可以大于0.9。作為政策産品經理需要知道AUC的正常取值範圍,當算法工程師訓練了一個新的分類模型時,第一時間問的名額就應該是離線AUC名額的提升。

下一篇我們将介紹機器學習回歸和聚類任務的離線效果評估名額體系。

本文由 @King James 原創釋出于人人都是産品經理。未經許可,禁止轉載。

題圖來自 Unsplash,基于 CC0 協定

該文觀點僅代表作者本人,人人都是産品經理平台僅提供資訊存儲空間服務。

繼續閱讀