一文讀懂二元分類模型評估指標

2021-02-20 AI派

推薦閱讀時間:10min~12min

文章內容:解讀二元分類模型各種評估指標

在分類模型中,有很多關於模型性能的評估指標(evaluation metric),比如 accuracy、precision、recall、f1-score、roc、auc、prc 等等。這裡慢慢梳理下這些指標的含義以及用途。

混淆矩陣

介紹這些概念之前先來介紹一個概念:混淆矩陣(confusion matrix)。對於 k 元分類,其實它就是一個k x k的表格,用來記錄分類器的預測結果。對於常見的二元分類,它的混淆矩陣是 2x2 的。

假設要對 15 個人預測是否患病,使用 1 表示患病,使用 0 表示正常。預測結果如下:

預測值:111110000011101真實值:011011001010100

將上面的預測結果轉為混淆矩陣,如下:

上圖展示了一個二元分類的混淆矩陣,從該混淆矩陣可以得到以下信息:

二元分類問題可以獲得 True Positive(TP,真陽性)、False Positive(FP,假陽性)、 False Negative(FN,假陰性) 和 True Negative(TN,真陰性)。這四個值分別對應二元分類問題的混淆矩陣的四個位置。

小技巧:上面的這四個概念經常會被搞混淆(難道混淆矩陣的名稱就是這麼來的?),這裡有個小方法幫你記住它。在醫學上,一般認為陽性是患病,陰性是正常。所以只要出現「陽性」關鍵字就表示結果為患病,此外,陽性也分為真陽性和假陽性,從名稱就可以看出:真陽性表示確確實實的陽性,也就是說實際為陽性(患病),預測也為陽性(患病);假陽性表示不真實的陽性,也就是說實際為陰性(正常),預測為陽性(患病)。真陰性和假陰性也可以按照上面的方式來簡單理解。

很明顯,這裡的 TP=5,FP=2,FN=4,TN=4。

評估指標

說完混淆矩陣後,得到了 TP、FP、FN、TN,通過這四個概念,可以計算出各種評估指標。

普及一些基本概念:有時候「陽性」、「真」、「正類」、「1」 指的是一回事,「陰性」、「假」、「負類」、「0」指的也是一回事。例如模型對這個樣本的預測結果為 1,可以認為模型對這個樣本的預測結果為真、或者為正類、或者為陽性,實質上說的都是一個意思。

accuracy

accuracy 翻譯成中文一般叫準確率,它指的是模型的預測結果中正確的比例。

一般情況下,accuracy 越高,說明模型的效果越好。

precision

precision 翻譯成中文一般叫精確率,它指的是模型預測為真,實際也為真的樣本數量佔模型預測所有為真的樣本數量的比例。

一般情況下,precision 越高,說明模型的效果越好。

recall

recall 翻譯成中文一般叫召回率,有的地方會叫查全率,它指的是模型預測為真,實際也為真的樣本數量佔實際所有為真的樣本數量的比例。

一般情況下,recall 越高,說明有更多的正類樣本被模型預測正確,模型的效果越好。

F1-score

F1-score 也叫 F1 值,它是綜合考慮 precision 和 recall 後的結果,並且兩者的權重一致。

一般情況下,F1-score 越高,說明模型的效果越好。

Fa-score

Fa-score 是 F1-score 更一般的形式,它表示在生成得分過程中,recall 的權重是 precision 權重的阿爾法倍。

一般情況下,F1-score 越高,說明模型的效果越好。

TPR

TPR 是 True Positive Rate 的縮寫,翻譯成中文一般叫真陽性率,有的地方會叫 sensitivity(敏感性),說的都是一個意思,它的計算方式與 recall 一樣,指的是模型預測為真,實際也為真的樣本數量佔實際所有為真的樣本數量的比例。

一般情況下,TPR 越高,說明有更多的正類樣本被模型預測正確,模型的效果越好。

FPR

FPR 是 False Positive Rate 的縮寫,翻譯成中文一般叫假陽性率,它指的是模型預測為真,實際為假的樣本數量佔實際所有為假的樣本的數量的比例。

一般情況下,FPR 越低,說明有更多的負類樣本被模型預測正確,模型的效果越好。

TNR

TNR 是 True Negative Rate 的縮寫,翻譯成中文一般叫真陰性率,有的地方會叫 specificity(特異性),它指的是模型預測為假,實際也為假的樣本數量佔實際所有為假的樣本數量的比例。

一般情況下,TNR 越高,說明有更多的負類樣本被模型預測正確,模型的效果越好。

FNR

FNR 是 False Negative Rate 的縮寫,翻譯成中文一般叫假陰性率,它指的是模型預測為假,實際為真的樣本的數量佔實際所有為真的樣本的數量的比例。

一般情況下,FNR 越低,說明有更多的正類樣本被模型預測正確,模型的效果越好。

ROC

一般說的 ROC (receiver operating characteristic curve) 都是指 ROC 曲線。ROC曲線的縱坐標為 TPR(Talse Positive Rate,真陽性率),橫坐標為 FPR(False Positive Rate,假陽性率)。

如何得到 ROC 曲線呢?可以看到,ROC 曲線是由一系列 (FPR, TPR)點構成的,但一個特定的分類器,只得到一個分類結果,即只有一組 (FPR, TPR),如何得到多個呢?

我們都知道,一般分類器預測每個樣本時可以輸出該樣本屬於正類(也就是1)的概率值,概率值的範圍在 (0-1) 之間,一般閾值(threshold)為 0.5,也就是概率值大於等於 0.5 的認為是正類,否則是負類。現在我們將模型對所有樣本的預測值(屬於正類的概率值)降序排列,然後依次將預測的概率值作為閾值,每次得到該閾值下模型預測結果為正類、負類的樣本數,然後生成一組 (FPR, TPR) 值,這樣就可以得到 ROC 曲線上的一點,最後將所有的點連接起來就出現了 ROC 曲線。很明顯,閾值設置的次數越多,就會生成更多的 (FPR, TPR) 值,畫出的 ROC 曲線也就越光滑。也就是說 ROC 曲線的光滑程度與閾值設置次數的多少有絕對的關係,與樣本數量沒有必然聯繫。現實中,我們畫出的 ROC 曲線多數都是不光滑的。

來看下 ROC 曲線中的幾個特殊點和特殊的線。

第一個點 (0, 1),即 FPR = 0,TPR = 1,這意味著 FP(假陽性)=0, FN(假陰性)=0,這就是一個完美的分類器,因為能夠對所有的樣本正確分類。

第二個點 (1, 0),即 FPR = 1,TPR = 0,這意味著 TN(真陰性)=0, TP(真陽性)=0,這是一個非常糟糕的分類器,因為所有的預測結果都是錯誤的。

第三個點 (0, 0),即 FPR = 0,TPR = 0,這意味著 FP(假陽性)=0, TP(真陽性)=0,這說明模型將所有樣本都預測為負類。

第四個點 (1, 1),即 FPR = 1,TPR = 1,這意味著 FN(假陰性)=0, TN(真陰性)=0,這說明模型將所有樣本都預測為正類。

通過上面的分析可以得到一個結論:ROC 曲線越靠近左上角,模型性能越好。

特殊的線:y = x,這條線上的所有的點都表示模型的區分能力與隨機猜測沒有差別。

AUC

AUC(Area Under Curve)被定義為ROC曲線下的面積,很明顯,AUC 的結果不會超過 1,通常 ROC 曲線都在 y = x 這條直線上面,所以,AUC 的值一般在 0.5 ~ 1 之間。

AUC 的數值與每個預測概率的數值大小無關,在乎的是每個預測概率的排序。舉個例子,隨機挑選一個正樣本以及一個負樣本,分類器對這兩個樣本進行預測得到每個樣本屬於正類的概率值,根據概率值對樣本進行排序後,正樣本排在負樣本前面的概率就是 AUC 值。極端情況,如果 AUC = 1,意味著按照模型對所有樣本的預測值降序排序後,所有正樣本都排在負樣本前面。

如果 AUC 小於 0.5,要麼是預測標籤設置反了,要麼是模型效果真的很差。

一般情況下,AUC 值越高,模型效果越好。

PRC

PRC (precision recall curve) 一般指 PRC 曲線,PRC 曲線的縱坐標為 precision,橫坐標為 recall。它的生成方式與 ROC 曲線類似,也是取不同的閾值(threshold)來生成不同的坐標點,最後連接起來生成。

來看下一個特殊的點(1, 1),即 recall=1,precision=1,這意味著 FN=0,FP=0,此時分類器模型的效果非常完美。由此可以知道,越靠近右上角,說明模型效果越好。

由於 recall 與 TPR 是一個意思,所以 PRC 曲線的橫坐標與 ROC 曲線的縱坐標一樣。

選擇指標

為什麼要出現這麼多評估指標呢?實際上,不同的分類任務適合使用不同的指標來衡量。

例如,推薦系統中,如果希望更精準的了解客戶需求,避免推送用戶不感興趣的內容,precision 就更加重要;在疾病檢測的時候,我們不希望查漏任何一項疾病,這時 recall(TPR) 就更重要。當兩者都需要考慮時,F1-score 就是一種參考指標。

真實世界中的數據經常會面臨 class imbalance 問題,即正負樣本比例失衡,而且測試數據中的正負樣本的分布也可能隨著時間變化。根據計算公式可以推知,在測試數據出現imbalance 時 ROC 曲線能基本保持不變,而 PRC 則會出現大變化。

相關焦點

  • 財富二元模型_二元分類 - CSDN
    本節使用決策樹二元分類分析StumbleUpon數據集,預測網頁是暫時性的(ephemeral)或是長青的(evergreen),並調校參數找出最佳參數組合,提高預測準確度。
  • 機器學習中評估分類模型性能的10個重要指標
    在這篇文章中,我們將學習10個最重要的模型性能度量,這些度量可用於評估分類模型的模型性能。混淆矩陣是一個表,通常用於描述一個分類模型(或「分類器」)在一組已知真實值的測試數據上的性能Type I Error第1類錯誤也稱為假陽性,當分類模型錯誤地預測最初錯誤觀察的真實結果時發生。例如:假設我們的邏輯模型正在處理一個垃圾郵件而不是垃圾郵件的用例。
  • 二分類模型評估指標:Accuracy、Recall、Precision、F1-Score
    準確率是一個用於評估分類模型的指標。在 91 個良性腫瘤中,該模型將 90 個正確識別為良性。這很好。不過,在 9 個惡性腫瘤中,該模型僅將 1 個正確識別為惡性。雖然 91% 的準確率可能乍一看還不錯,但如果另一個腫瘤分類器模型總是預測良性,那麼這個模型使用我們的樣本進行預測也會實現相同的準確率(100 個中有 91 個預測正確)。
  • 機器學習模型評估指標Python代碼示例
    我們什麼時候評估我們的機器學習模型呢?答案不是只有一次。在您選擇了一個準確度最好的機器學習模型後,您將跳轉到超參數調優部分,以提高精度和通用性。這裡是您將使用這些度量的第二點。在本文中,我試圖製作機器學習模型評估指標的總結。交叉驗證用於模型比較我們拆分數據的原因和方式的起點是泛化。
  • 11個重要的機器學習模型評估指標
    全文共8139字,預計學習時長16分鐘構建機器學習模型的想法應基於建設性的反饋原則。你可以構建模型,從指標得到反饋,不斷改進,直到達到理想的準確度。評估指標能體現模型的運轉情況。評估指標的一個重要作用在於能夠區分眾多模型的結果。
  • 一文掌握多分類logistic回歸
    Logistic回歸分析(logit回歸)一般可分為3類,分別是二元Logistic回歸分析、多分類Logistic回歸分析和有序Logistic回歸分析。logistic回歸分析類型如下所示。1、多分類logistic回歸分析基本說明只要是logistic回歸,都是研究X對於Y的影響,區別在於因變量Y上,logistic回歸時,因變量Y是看成定類數據的,如果為二元(即選項只有2個),那麼就是二元logistic回歸; 如果Y是多個類別且類別之間無法進行對比程度或者大小
  • 不管你是不是年薪30W的算法工程師,都要了解這幾個模型評估指標
    在機器學習領域,對模型的評估非常的重要,只有選擇與問題相匹配的評估方法,才能更好的模型訓練和模型選擇的時候出現的問題,才能更好的對模型進行迭代優化。模型評估主要分為離線評估和在線評估。針對分類、排序、回歸、序列預測等不同類型的機器學習問題,模型評估指標的選擇也有所不同。知道每種評估指標的精確定義、有針對性的選擇合適的評估指標、根據評估指標的反饋進行模型的調整,這些都是機器學習在模型評估階段的關鍵問題,也是一名合格的算法工程師應該具備的基本功。模型評估指標反映模型效果。
  • 一文讀懂MEMS傳感器(必須收藏)
    【點擊藍色標題,獲取文章】 1
  • 一文讀懂電容傳感器
    藍色標題,獲取文章】 1、一文讀懂MEMS傳感器 2、一文讀懂接近傳感器
  • 萬字長文總結機器學習的模型評估與調參|附代碼下載
    3.1 模型準確度3.2 繪製學習曲線得到樣本數與準確率的關係3.3 繪製驗證曲線得到超參和準確率關係四、網格搜索4.1 兩層for循環暴力檢索4.2 構建字典暴力檢索五、嵌套交叉驗證六、相關評價指標6.1 混淆矩陣及其實現6.2 相關評價指標實現
  • 一文讀懂AUC-ROC
    當涉及到分類問題時,我們依靠AUC  -  ROC曲線來做性能評測。當我們需要檢查或可視化多類分類問題的性能時,我們使用AUC(曲線下面積)和ROC(接收器操作特性)曲線。它是檢查任何分類模型性能的最重要的評估指標之一。AUC有時也被寫為AUROC(接收器工作特性下的區域),本篇文章我們將著重於回答以下問題: 1.什麼是AUC  -  ROC曲線?
  • 一文讀懂磁傳感器(必須收藏)
    【點擊藍色標題,獲取文章】 > 1、一文讀懂MEMS傳感器 2
  • 廣義線性回歸分析模型Logistic,一文讀懂它!
    作者:丁點helper來源:丁點幫你前文我們已經講解了相關與回歸的基礎知識,並且重點討論了多重線性回歸的應用與診斷分析。今天的文章,我們來看看日常學習和科研中應用同樣廣泛的另一類回歸分析——Logistic回歸。Logisti回歸與多重線性回歸的區別多重線性回歸,一般是指有多個自變量X,只有一個因變量Y。
  • 一文讀懂三極體的符號、分類及如何判斷極性
    打開APP 一文讀懂三極體的符號、分類及如何判斷極性 佚名 發表於 2017-02-28 11:24:06 一、三極體的電路符號 二、三極體的分類 a.按頻率分:高頻管和低頻管 b.按功率分:小功率管,中功率管和的功率管
  • 回歸or分類?線性or邏輯?一文掌握模型的不同之處
    如果目標變量是一個量或概率,須應用回歸模型。這意味著如果要推測量值,如高度、收入、價格和分數,使用的模型應該輸出一個連續數字。或者,如果目標變量是某一項二進位標籤的概率(判斷好壞的概率除外),那麼也應該選擇回歸模型,只是具體使用的模型略有不同。我們用均方差(MSE或其它誤差)和均方根誤差(RMSE或標準差)來評估此類模型,以量化模型中的誤差。
  • 廣義線性模型|二分類廣義線性模型—因變量是二分類變量
    (本例引用自陳希孺.廣義線性模型(一)[J].數理統計與管理, 2002,21(5):54-61)表1 小白鼠腹腔注射苯氰的毒性實驗結果圖2 廣義線性模型的命令調用  首先因本例小白鼠死亡與否是二分類數據,服從二項分布,可用probit回歸分析,因而在模型類型對話框中選擇「二元概率
  • 數據挖掘之模型評估(均方誤差、精確率、召回率及ROC曲線的含義)
    我們都知道,數據挖掘最終的目的就是建立業務模型,然後投入到實際中做一些分類或者預測的事情,但是這個模型做的好不好,我們總要評價吧?這就需要我們對建立的模型做評估,然後根據評估指標和實際的業務情況決定是否要發布這個模型,那麼常用的模型評估指標有哪些呢?他們之間的聯繫又是什麼呢?
  • 入門| CNN也能用於NLP任務,一文簡述文本分類任務的7個模型
    原標題:入門 | CNN也能用於NLP任務,一文簡述文本分類任務的7個模型 選自Ahmed BESBES 作者:Ahmed Besbes那時我建立了一個簡單的模型:基於 keras 訓練的兩層前饋神經網絡。用組成推文的詞嵌入的加權平均值作為文檔向量來表示輸入推文。 我用的嵌入是用 gensim 基於語料庫從頭訓練出來的 word2vec 模型。該是一個二分類任務,準確率能達到 79%。
  • 工業網際網路成熟度評估模型
    (四)為政產研用搭建一個持續透明的信息窗口     工業網際網路成熟度評估模型的制定並不是一蹴而就的,當前的 1.0 版本主要是結合現階段工業網際網路發展的特點和先進實踐而得出的,將來還有持續發展、反覆迭代的過程,需要藉助產業界各類主體的意見和建議深化模型,並結合企業對模型的應用結果和反饋,不斷更替或補充更符合不同階段實際情況的評估因素,不斷修正完善評估指標、權重和評估問卷設置等
  • 一文讀懂條件Logistic回歸
    其與普通的二元logistic回歸區別在於,多出配對ID,即將配對組納入考慮範疇。1、案例背景某北方城市研究喉癌發病的危險因素,使用1:2匹配的病例對照研究方法進行調查。共有25對配對數據(每對3個,即25*3=75行數據)。現研究兩個影響因素分別是:是否吸菸和是否有癌症家族史。