【ML】一文詳盡系列之模型評估指標

  • 2019 年 12 月 2 日
  • 筆記

在機器學習領域通常會根據實際的業務場景擬定相應的不同的業務指標,針對不同機器學習問題如回歸、分類、排序,其評估指標也會不同。

準確率、精確率、召回率、F1值

定義

  • 準確率(Accuracy):正確分類的樣本個數佔總樣本個數,
  • 精確率(Precision):預測正確的正例數據占預測為正例數據的比例,
  • 召回率(Recall):預測為正確的正例數據占實際為正例數據的比例,
  • F1 值(F1 score):

計算

背景:假如有 100 個廣告,某用戶對 80 個不感興趣,對其中 20 個感興趣,目標是找出所有用戶感興趣的廣告,現在挑出 40 個,其中 10 個感興趣的,請問如何評估一下他的工作。

實際正類

實際負類

預測正類

TP=10

FP=30

預測負類

FN=10

TN=50

通過混淆矩陣,我們可以算出來

添加描述

優缺點

準確率、精確率、召回率、F1 值主要用於分類場景。

準確率可以理解為預測正確的概率,其缺陷在於:當正負樣本比例非常不均衡時,佔比大的類別會影響準確率。如異常點檢測時:99.9% 的都是非異常點,那我們把所有樣本都視為非異常點準確率就會非常高了。

精確率可以理解為預測出的東西有多少是用戶感興趣的,召回率可以理解為用戶感興趣的東西有多少被預測出來了。一般來說精確率和召回率是一對矛盾的度量。為了更好的表徵學習器在精確率和召回率的性能度量,我們引入 F1 值。

在個別領域可能我們對精確率和召回率的偏重不同,故我們引入

添加描述

來表達出對精確率和召回率的不同偏好。

添加描述

P-R、ROC、AUC

定義

  • P-R 曲線:橫軸召回率,縱軸精確率。
  • ROC(receiver operating characteristic curve接收者操作特徵曲線):採用不分類閾值時的TPR(真正例率)與FPR(假正例率)圍成的曲線,以FPR為橫坐標,TPR為縱坐標。如果 ROC 是光滑的,那麼基本可以判斷沒有太大的overfitting。
  • AUC(area under curve):計算從(0, 0)到(1, 1)之間整個ROC曲線一下的整個二維面積,用于衡量二分類問題其機器學習演算法性能的泛化能力。其另一種解讀方式可以是模型將某個隨機正類別樣本排列在某個隨機負類別樣本之上的概率。

計算

P-R

添加描述

P-R 曲線上的點代表不同閾值下模型將大於閾值的結果視為正樣本,小於閾值的為負樣本。

我們可以看到不同召回率下模型 A 和模型 B 的精確率表現不同,所以如果只對某點來衡量模型的性能是非常片面的,而只有通過 P-R 曲線的整體表現才能夠進行更為全面的評估。

ROC、AUC

除了 F1 和 P-R 曲線外,ROC 和 AUC 也可以綜合反應一個模型的性能。二分類真實值:

添加描述

分為正樣本的概率:

添加描述

針對 score 對數據進行排序,將閾值一次取為 值,故閾值依次取值為 0.1,0.35,0.4,0.8

然後我們依次計算不同閾值下的 TPR 和 FPR。我們以 為例

實際正類

實際負類

預測正類

TP=2

FP=0

預測負類

FN=1

TN=1

真陽性率:

添加描述

假陽性率:

添加描述

即可得到一個點的坐標。

計算完四種閾值後得到:

閾值

0.8

0.4

0.35

0.1

FPR

0

0.5

0.5

1

TPF

0.5

0.5

1

1

畫圖如下:

添加描述

我們可以看到 ROC 曲線是通過移動分類器的閾值來生成曲線上的關鍵點。ROC 曲線一般都處於y=x 直線的上方,所以AUC的取值一般是 0.5~1,AUC 越大,說明分類性能更好。

優缺點

P-R、ROC、AUC 主要用於分類場景。

相比 P-R 曲線來說,ROC 曲線有一個很大的特點:ROC 曲線的形狀不會隨著正負樣本分布的變化而產生很大的變化,而 P-R 曲線會發生很大的變化。

添加描述

如上圖測試集負樣本數量增加 10 倍以後 P-R 曲線發生了明顯的變化,而 ROC 曲線形狀基本不變。在實際環境中,正負樣本的數量往往是不平衡的,所以這也解釋了為什麼 ROC 曲線使用更為廣泛。

MSE、RMSE、MAE、R2

定義

  • MSE(Mean Squared Error) 均方誤差,

添加描述

  • RMSE(Root Mean Squared Error) 均方根誤差,

添加描述

  • MAE(Mean Absolute Error) 平均絕對誤差,

添加描述

  • 決定係數,

添加描述

優缺點

MSE、RMSE、MAE、R^2 主要用於回歸模型。

MSE 和 RMSE 可以很好的反應回歸模型預測值和真實值的偏離成都,但如果存在個別離群點的偏離程度非常大時,即使其數量非常少也會使得RMSE指標變差(因為用了平方)。解決這種問題主要有三個方案:

  1. 如果認為是異常點時,在數據預處理的時候就把它過濾掉;
  2. 如果不是異常點的話,就提高模型的預測能力,將離群點產生的原因建模進去;
  3. 此外也可以找魯棒性更好的評價指標,如:MAE。

餘弦距離的應用

樣本間的距離有不同的定義方式,常見的有歐式距離、曼哈頓距離、漢明距離、餘弦距離等等。這裡我們主要介紹下餘弦距離及其應用。

定義

餘弦相似度的定義如下:

添加描述

取值範圍為:

添加描述

如果我們想得到類似距離的表示,只需要將 1 減去餘弦相似度即可:

添加描述

其取值範圍為:

添加描述

我們要注意,雖然我們稱其為餘弦距離,但其並不是嚴格定義的距離。我們知道距離的嚴格定義需要滿足:非負性,對稱性,三角不等式。

  • 非負性:

添加描述

特別的:

添加描述

  • 對稱性:

添加描述

  • 三角不等式: 給出反例:

添加描述

因此有:

添加描述

通過以上證明我們可以看出來,餘弦距離是不滿足距離的定義的。

優缺點

我們知道餘弦相似度關注的是兩個向量之間的角度關係,並不關心其絕對大小。在推薦系統的最直接的優點在於:不同用戶對電影的打分力度不同,有的嚴一點平均打分低,有的松一點平均打分都很高,用餘弦相似性可以排除打分程度的干擾,關注相對差異。

總的來說歐式距離體現的數值上的絕對差異,而餘弦距離體現方向上的相對差異。

A/B測試

A/B 測試是驗證模型最終效果的主要手段。當進行 A/B 測試時,通常會採用兩個(或多個)組:A 組和 B 組。第一個組是對照組,第二個組會改變其中一些因素。

為什麼需要 A/B 測試

  1. 離線評估無法消除模型過擬合的影響,因此得出的離線評估結果無法完全替代線上評估結果;
  2. 離線評估無法完全還原線上的工程環境,如:數據丟失、標籤缺失等情況;
  3. 某些評估指標離線狀態下無法評估,比如:用戶點擊率、留存時長、PV 訪問量等。

理論基礎

中心極限定理:給定一個任意分布的總體,每次從這些總體中隨機抽取 n 個抽樣,一共抽 m 次。然後把這 m 組抽樣分別求出平均值。這些平均值的分布接近正態分布。

中心極限定理是 A/B 測試分析數據的基礎,我們可以通過隨機抽取樣本來估計出總體樣本的均值和方差。

設計原則

對用戶進行分桶,將用戶分成實驗組和對照組,對實驗組的用戶用新模型,對照組用就模型。分桶過程中注意樣本的獨立性和取樣方式的無偏性,從而確保同一用戶只能被分到一個桶中。

假設檢驗

假設檢驗的基本原理是先對總體的特徵作出某種假設,然後通過抽樣研究的統計推理,對此假設應該被拒絕還是接受作出推斷。假設檢驗意味著我們需要給出一個決定:到底是相信原假設,還是相信備擇假設。

其大概步驟為:

  1. 提出問題(給出零假設和備選假設,兩個假設互補);
  2. 收集證據(零假設成立時,得到樣本平均值的概率:p 值);
  3. 判斷標準(顯著水平 ,0.1% 1% 5%);
  4. 做出結論(p<=α,拒絕零假設,否則接受)。

假設檢驗的精髓在於,根據已有數據資訊構造出合理的檢驗統計量,當我看到這個統計量大於某一個數值的時候的就捨棄原假設,不然我就相信它。

常見假設檢驗的種類包括:t 檢驗,z 檢驗,卡方檢驗。

t 檢驗

也稱學生檢驗,主要用於樣本含量較小(例如 n<30),總體標準差 σ 未知的正態分布。目的在於比較樣本均數,所代表的未知總體均數 μ 和已知總體均數 μ 的比較。

適用條件:

  1. 已知一個總體均數;
  2. 可得到一個樣本均數及該樣本標準差;
  3. 樣本來自正態或近似正態總體。

步驟:

  1. 建立假設 H0: μ1=μ2,即先假定兩個總體平均數之間沒有顯著差異;
  2. 計算統計量 T 值,對於不同類型的問題選用不同的統計量計算方法;
  3. 根據自由度df=n-1 ,查 T 值表,找出規定的 T 理論值並進行比較。理論值差異的顯著水平為 0.01 級或 0.05 級;
  4. 比較計算得到的t值和理論T值,推斷髮生的概率,依據給出的T值與差異顯著性關係表作出判斷。

z 檢驗

z 檢驗是一般用於大樣本(即樣本容量大於 30)平均值差異性檢驗的方法。它是用標準正態分布的理論來推斷差異發生的概率,從而比較兩個平均數的差異是否顯著。

步驟:

  1. 建立虛無假設 H0: μ1=μ2 ,即先假定兩個平均數之間沒有顯著差異;
  2. 計算統計量 Z 值,對於不同類型的問題選用不同的統計量計算方法;
  3. 比較計算所得 Z 值與理論 Z 值,推斷髮生的概率,依據 Z 值與差異顯著性關係表作出判斷。

卡方檢驗

前兩個都是正態分布檢驗,卡方檢驗屬於非參數檢驗。主要是比較兩個及兩個以上樣本率(構成比)以及兩個分類變數的關聯性分析。其根本思想就是在於比較理論頻數和實際頻數的吻合程度問題。

卡方檢驗是以 卡方分布為基礎的一種常用假設檢驗方法,它的無效假設H0是:觀察頻數與期望頻數沒有差別。

卡方檢驗的基本思想是:首先假設 成立,基於此前提計算出 值,它表示觀察值與理論值之間的偏離程度。根據 分布及自由度可以確定在 H0 假設成立的情況下獲得當前統計量及更極端情況的概率 P。如果 P 值很小,說明觀察值與理論值偏離程度太大,應當拒絕零假設,表示其具有顯著性差異;否則就接受零假設。

卡方值表示觀察值與理論值之問的偏離程度,其大致步驟如下:

  1. 設 A 代表某個類別的觀察頻數,E 代表基於 H+0 計算出的期望頻數,A 與 E 之差稱為殘差;
  2. 殘差可以表示某一個類別觀察值和理論值的偏離程度,但如果將殘差簡單相加以表示各類別觀察頻數與期望頻數的差別,則有一定的不足之處。因為殘差有正有負,相加後會彼此抵消,總和仍然為 0,為此可以將殘差平方後求和;
  3. 另一方面,殘差大小是一個相對的概念,相對於期望頻數為 10 時,期望頻數為 20 的殘差非常大,但相對於期望頻數為 1000 時 20 的殘差就很小了。考慮到這一點,人們又將殘差平方除以期望頻數再求和,以估計觀察頻數與期望頻數的差別。

進行上述操作之後,就得到了常用的 卡方統計量,其公式如下:

添加描述

Ai為 i 水平的觀察頻數, Ei為 i 水平的期望頻數,n 為總頻數,Pi 為 i 水平的期望頻率。i 水平的期望頻數 Ei 等於總頻數 n 乘 i 水平的期望概率Pi,k 為單元格數。當 n 比較大時, 卡方統計量近似服從 k-1 (計算Ei 時用到的參數個數)個自由度的卡方分布。

例子——獨立性檢驗:

某機構欲了解現在性別與收入是否有關,他們隨機抽樣 500 人,詢問對此的看法,結果分為「有關、無關、不好說「三種答案,圖中為調查得到的數據:

添加描述

  1. 零假設 H0:性別與收入無關。
  2. 確定自由度為 (3-1)×(2-1)=2,選擇顯著水平 α=0.05。
  3. 求解男女對收入與性別相關不同看法的期望次數,這裡採用所在行列的合計值的乘機除以總計值來計算每一個期望值,在單元格 B9 中鍵入「=B5*E3/E5」,同理求出其他值。

4. 利用卡方統計量計算公式計算統計量,在單元格 B15 中鍵入 「=(B3-B9)^2/B9」,其餘單元格依次類推,結果如下所示:

  1. 最後得出統計量為 14.32483,而顯著水平為 0.05 自由度為 2 卡方分布的臨界值為 5.9915。
  2. 比較統計量度和臨界值,統計量 14.32483 大於臨界值 5.9915,故拒絕零假設。

參考

https://wiki.mbalib.com/wiki/%E5%8D%A1%E6%96%B9%E6%A3%80%E9%AA%8C