策略產品經理必讀系列第七講:機器學習分類任務基礎評估指標AUC、召回率、準確率

1 評論 6064 瀏覽 26 收藏 18 分鐘

作為策略產品經理,了解機器學習的相關知識,一定程度上可以幫助到日常工作。在本篇文章里,作者便拆解和總結了機器學習的分類任務離線效果評估指標,一起來看看吧,也許會對你有幫助。

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

一、機器學習任務類型

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

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

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

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

1. 分類任務

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

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

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

2. 聚類任務

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

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

3. 回歸任務

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

二、分類任務離線評估指標

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

1. 混淆矩陣

針對分類任務在進行模型效果評估時首先要基于測試集的實際結果和評估結果構建一個混淆矩陣(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?;诙嘟M(FPR, TPR),我們可以得到如下圖所示的一個曲線圖:

上圖這個曲線,我們一般稱為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 協議

該文觀點僅代表作者本人,人人都是產品經理平臺僅提供信息存儲空間服務。

更多精彩內容,請關注人人都是產品經理微信公眾號或下載App
評論
評論請登錄
  1. 機器學習真的是各個行業的大勢所趨,auc指標其實也讓作者講述的很詳細了

    來自河北 回復