一文讀懂AUC-ROC

2021-03-01 我愛計算機視覺

點擊我愛計算機視覺標星,更快獲取CVML新技術

本文來自於純真學者出神入化公眾號。

英文原文:

https://towardsdatascience.com/understanding-auc-roc-curve-68b2303cc9c5

在機器學習中,性能測量是一項重要任務。當涉及到分類問題時,我們依靠AUC  -  ROC曲線來做性能評測。當我們需要檢查或可視化多類分類問題的性能時,我們使用AUC(曲線下面積)和ROC(接收器操作特性)曲線。它是檢查任何分類模型性能的最重要的評估指標之一。AUC有時也被寫為AUROC(接收器工作特性下的區域),本篇文章我們將著重於回答以下問題:

 

1.什麼是AUC  -  ROC曲線?

 

2.定義AUC和ROC曲線中使用的術語。

 

3.如何推測模型的性能?

 

4.靈敏度,特異性,FPR和閾值之間的關係。

 

5.如何使用AUC-ROC曲線進行多類別分類?

什麼是AUC-ROC 曲線?

AUC - ROC曲線是在各種閾值設置下的分類問題的性能測量方法。 ROC是概率曲線,AUC表示可分離性的程度。它告訴我們有關模型區分的能力。 AUC越高,模型越好,將0預測為0,將1預測為1。AUC越高,模型越好區分疾病患者和無疾病患者。用TPR對FPR繪製ROC曲線,其中TPR在y軸上,FPR在x軸上。

定義一些術語

True Positive Rate/Recall/Sensitivity

Specificity

False Positive Rate

一個優秀的模型具有接近1的AUC,這意味著它具有良好的可分離性。一個糟糕的模型的AUC接近0,這意味著它具有最差的可分離性度量。事實上,這是對結果的顛倒。它將0預測為1,將1預測為0。當AUC為0.5時,意味著模型沒有任何類別分離能力。

 

進一步用圖形來解釋:ROC是概率曲線。因此,讓我們繪製這些概率的分布:

 (注意:紅色分布曲線是陽性分類(患有疾病的患者),綠色分布曲線是陰性分類(沒有疾病的患者))。

這是一個理想的情況。當兩條曲線完全不重疊時,模型具有理想的可分離性度量。它完全能夠區分TP和TN。


當兩個分布重疊時,我們引入類型1和類型2錯誤。根據閾值,我們可以最小化或最大化它們。當AUC為0.7時,意味著該模型有70%的可能區分正類和負類。

下面是最糟糕的情況。當AUC約為0.5時,模型沒有區分正類和負類的辨別能力。

當AUC大約為0時,模型實際上是對類進行了顛倒。這意味著,模型將負類預測為正類,反之亦然。


如何用AUC-ROC 曲線做多類別分類?

在多類別模型中,我們可以使用One vs ALL方法為N個數字類繪製N個AUC-ROC曲線。因此,例如,如果你有三個名為X,Y和Z的類,你將有一個針對Y和Z分類的X的ROC,針對X和Z分類的Y的另一個ROC,以及針對Y和X分類的Z的第三個ROC 。

加群交流

關注各種神奇的計算機視覺技術,歡迎加入52CV專業討論群,掃碼添加CV君拉你入群,

(請務必註明:52CV)

喜歡在QQ交流的童鞋,可以加52CV官方QQ群:702781905。

(不會時時在線,如果沒能及時通過驗證還請見諒)

長按關注我愛計算機視

相關焦點

  • AUC的一般計算和近似計算方式
    import pandas as pdimport numpy as npimport matplotlib.pyplot as pltfrom sklearn.metrics import roc_curve, auc# Calculate 'True Positive Rate' and 'False Positive Rate
  • 機器學習中的AUC-ROC曲線
    我們可以生成不同的混淆矩陣,並比較上一節中討論的各種度量。但這樣做並不明智。相反,我們所能做的是在這些度量之間生成一個圖,這樣我們就可以很容易地看到哪個閾值給了我們一個更好的結果。AUC-ROC曲線正好解決了這個問題!AUC-ROC曲線是什麼?ROC曲線是二值分類問題的一個評價指標。
  • 一文搞定風控模型6大核心指標(附代碼)
    from sklearn.metrics import roc_auc_score, roc_curvedef get_auc(ytrue, yprob):    auc = roc_auc_score(ytrue, yprob)    if auc < 0.5:        auc = 1 - auc
  • 機器學習備忘錄 | AUC值的含義與計算方法
    可以看出,使用 scikit-learn 工具提供的 roc_auc_score 函數計算 AUC 值相當簡單,只需要提供樣本的實際標籤和預測值這兩個變量即可,大大方便了我們的使用,真心感謝這些開源軟體的作者們!總的來說, AUC 值就是一個用來評價二分類模型優劣的常用指標, AUC 值越高通常表明模型的效果越好,在實際使用中我們可以藉助軟體包的相應函數進行快速計算。
  • 從結構到性能,一文概述XGBoost、Light GBM和CatBoost的同與不同
    (m, train, test):return (metrics.roc_auc_score(y_train,m.predict_proba(train)[:,1]),metrics.roc_auc_score(y_test,m.predict_proba(test)[:,1]))
  • AUC 的缺陷是什麼?
    連結:https://zhuanlan.zhihu.com/p/92792702翻譯自:難得的好文。在這篇手稿中,我們回顧了這一度量的一些特點,並將其作為模型結果的準確性的比較度量,對其可靠性提出了質疑。
  • 一文讀懂電容傳感器
    藍色標題,獲取文章】 10、一文讀懂光纖傳感器 11、一文讀懂溫溼度傳感器 12
  • 2021年經濟學統計學學手稿(一)
    一、邏輯回歸的目標與問題
  • 一文讀懂磁傳感器(必須收藏)
    【點擊藍色標題,獲取文章】 >、一文讀懂接近傳感器 3、一文讀懂磁傳感器 4、一文讀懂流量傳感器
  • 萬字長文總結機器學習的模型評估與調參|附代碼下載
    ROC曲線代碼實現:1from sklearn.metrics import roc_curve, auc2from scipy import interp34pipe_lr = Pipeline([('scl', StandardScaler()),5 ('pca', PCA(n_components=2)),
  • 一文讀懂MEMS傳感器(必須收藏)
    【點擊藍色標題,獲取文章】 1
  • Time-dependent ROC 曲線
    曲線比較類似,前者相比後者多了時間因素,以便我們可以根據不同時間節點繪製不同的ROC曲線本質上ROC曲線可以根據靈敏度和特異度兩個指標來繪製的,所以我們通過比較常規的ROC曲線和time-dependent的ROC曲線對於靈敏度和特異度的計算公式即可明白兩者的差別了公式可以參考真實世界大數據分析系列|ROC曲線與Time-dependent ROC 曲線和時間依賴性ROC曲線(一)
  • 一文讀懂二元分類模型評估指標
    推薦閱讀時間:10min~12min文章內容:解讀二元分類模型各種評估指標在分類模型中,有很多關於模型性能的評估指標(evaluation metric),比如 accuracy、precision、recall、f1-score、roc、auc、prc 等等。這裡慢慢梳理下這些指標的含義以及用途。
  • AUC和線上點擊率指標不一致問題分析
    已經高於基線,上線後ctr表現也由於基線,但是基於線上實際反饋的打點日誌,深度學習的模型的auc要明顯低於基線。但以前的模型迭代auc是可以和線上ctr對應的。這個問題比較奇怪,一般情況下,因為線上樣本存在bias,將新模型同時去測試基線流量和實驗流量時,實驗流量的auc會略高於基線流量。可以這樣理解,新的模型的增量是帶來了一些新的好樣本,但是如果直接去評估基線的數據,由於推薦或排序的數據是動態反饋的,這部分的好樣本就沒有了,auc會偏低。但我們的實驗情況恰恰是相反的。
  • roc指標選股公式 該指標的計算方法如何
    ROC指標一般指變動率指標,那麼這roc指標選股公式怎麼樣?還有roc指標的計算方法如何?我們一起來看看!roc指標選股公式 roc指標是以當日的收盤價和N天前的收盤價比較,通過計算股價某一段時間內收盤價變動的比例
  • roc指標參數設置 該指標的計算公式一覽
    不同的指標有不同的含義,當然有炒股的人肯定要了解不同指標了,ROC指標一般指變動率指標,屬於反趨勢指標之一了,那麼roc指標參數設置是怎麼樣的呢?該指標最佳的設置是哪些?我們一起來看看!
  • 股票變動率roc應用 定義和計算公式介紹
    在股市中,在分析股票的時候,一般情況下都需要使用不同的指標進行股票分析,股票變動率指標(roc)就是其中一個技術分析指標。roc指標是變動速率指標,它具有超買超賣的特性,那麼股票變動率roc應用如何呢?
  • 一文讀懂三相電原理及其接法大全!
    打開APP 一文讀懂三相電原理及其接法大全!