日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

ROC曲線學(xué)習(xí)總結(jié)

 廣旭qsian65x0b 2019-12-20

ROC曲線學(xué)習(xí)總結(jié)

最近在學(xué)習(xí)機(jī)器學(xué)習(xí)基礎(chǔ)知識(shí)部分的時(shí)候,看到了用于評(píng)估模型性能的ROC曲線,想起來(lái)之前上課的時(shí)候聽(tīng)老師提起過(guò),當(dāng)時(shí)沒(méi)有認(rèn)真去看,所以這次大體上了解了一下,來(lái)談?wù)勛约旱目捶?,并做些總結(jié)。

1. ROC曲線(Receiver Operating Characteristic)的概念和繪制

ROC的全稱是“受試者工作特征”(Receiver Operating Characteristic)曲線,首先是由二戰(zhàn)中的電子工程師和雷達(dá)工程師發(fā)明的,用來(lái)偵測(cè)戰(zhàn)場(chǎng)上的敵軍載具(飛機(jī)、船艦),也就是信號(hào)檢測(cè)理論。之后很快就被引入了心理學(xué)來(lái)進(jìn)行信號(hào)的知覺(jué)檢測(cè)。此后被引入機(jī)器學(xué)習(xí)領(lǐng)域,用來(lái)評(píng)判分類、檢測(cè)結(jié)果的好壞。因此,ROC曲線是非常重要和常見(jiàn)的統(tǒng)計(jì)分析方法。

首先介紹一下在模型評(píng)估上的一些基本概念:

真實(shí)情況預(yù)測(cè)結(jié)果含義 統(tǒng)計(jì)量
正例反例
正例TP(將正例正確預(yù)測(cè)為正例)FN(將正例錯(cuò)誤預(yù)測(cè)為負(fù)例)TP + FN 表示實(shí)際數(shù)據(jù)集中正樣本的數(shù)量召回率Recall / 靈敏度Sensitivity / TPR = TP/(TP+FN), 漏診率 = 1 - 靈敏度
反例FP(將負(fù)例錯(cuò)誤的預(yù)測(cè)為正例)TN(將負(fù)例正確的預(yù)測(cè)為負(fù)例)FP + TN 表示實(shí)際數(shù)據(jù)集中負(fù)樣本的數(shù)量FPR = FP/(FP+TN), 特異度(Specificity) = 1 - FPR = TN/(FP+TN)
加和含義TP + FP 表示預(yù)測(cè)的正類樣本數(shù) FN + TN 表示預(yù)測(cè)的負(fù)類樣本數(shù)TP + FN + FP + TN 表示樣本總數(shù)
統(tǒng)計(jì)量精確率Precision = TP/(TP+FP)

正確率Accuracy = (TP+TN)/(TP+TN+FP+FN), 錯(cuò)誤率 = (FP+FN)/(TP+TN+FP+FN), F-measure = 2*(Precision*Recall)/(Precision+Recall)

其中最重要的兩個(gè)公式如下:

TPR=TPTP+FN,FPR=FPFP+TNTPR=TPTP+FN,FPR=FPFP+TNTPR = \frac{TP}{TP+FN} ,FPR = \frac{FP}{FP+TN}TPR=TP+FNTP,FPR=FP+TNFP

在ROC曲線圖中,每個(gè)點(diǎn)以對(duì)應(yīng)的FPRFPRFPRFPR值為橫坐標(biāo),以TPRTPRTPRTPR值為縱坐標(biāo)

ROC曲線的繪制步驟如下:

  1. 假設(shè)已經(jīng)得出一系列樣本被劃分為正類的概率Score值,按照大小排序。

  2. 從高到低,依次將“Score”值作為閾值threshold,當(dāng)測(cè)試樣本屬于正樣本的概率大于或等于這個(gè)threshold時(shí),我們認(rèn)為它為正樣本,否則為負(fù)樣本。舉例來(lái)說(shuō),對(duì)于某個(gè)樣本,其“Score”值為0.6,那么“Score”值大于等于0.6的樣本都被認(rèn)為是正樣本,而其他樣本則都認(rèn)為是負(fù)樣本。

  3. 每次選取一個(gè)不同的threshold,得到一組FPR和TPR,以FPR值為橫坐標(biāo)和TPR值為縱坐標(biāo),即ROC曲線上的一點(diǎn)。

  4. 根據(jù)3中的每個(gè)坐標(biāo)點(diǎn),畫(huà)圖。

ROC曲線繪制實(shí)例

1、分析數(shù)據(jù)
y_true = [0, 0, 1, 1];scores = [0.1, 0.4, 0.35, 0.8];
2、列表

樣本預(yù)測(cè)屬于P的概率(score)真實(shí)類別
y[0]0.1N
y[1]0.4N
y[2]0.35P
y[3]0.8P

3、將截?cái)帱c(diǎn)依次取為score值,計(jì)算TPR和FPR。
當(dāng)截?cái)帱c(diǎn)為0.1時(shí):
說(shuō)明只要score>=0.1,它的預(yù)測(cè)類別就是正例。 因?yàn)?個(gè)樣本的score都大于等于0.1,所以,所有樣本的預(yù)測(cè)類別都為P。
scores = [0.1, 0.4, 0.35, 0.8];y_true = [0, 0, 1, 1];y_pred = [1, 1, 1, 1];
正例與反例信息如下:


正例反例
正例TP=2FN=0
反例FP=2TN=0

由此可得:
TPR = TP/(TP+FN) = 1; FPR = FP/(TN+FP) = 1;

當(dāng)截?cái)帱c(diǎn)為0.35時(shí):
scores = [0.1, 0.4, 0.35, 0.8];y_true = [0, 0, 1, 1];y_pred = [0, 1, 1, 1];
正例與反例信息如下:


正例反例
正例TP=2FN=0
反例FP=1TN=1

由此可得:
TPR = TP/(TP+FN) = 1; FPR = FP/(TN+FP) = 0.5;

當(dāng)截?cái)帱c(diǎn)為0.4時(shí):
scores = [0.1, 0.4, 0.35, 0.8];y_true = [0, 0, 1, 1];y_pred = [0, 1, 0, 1];
正例與反例信息如下:


正例反例
正例TP=1FN=1
反例FP=1TN=1

由此可得:
TPR = TP/(TP+FN) = 0.5; FPR = FP/(TN+FP) = 0.5;

當(dāng)截?cái)帱c(diǎn)為0.8時(shí):
scores = [0.1, 0.4, 0.35, 0.8];y_true = [0, 0, 1, 1];y_pred = [0, 0, 0, 1];

正例與反例信息如下:


正例反例
正例TP=1FN=1
反例FP=0TN=2

由此可得:
TPR = TP/(TP+FN) = 0.5; FPR = FP/(TN+FP) = 0;

4、根據(jù)TPR、FPR值,以FPR為橫軸,TPR為縱軸畫(huà)圖。

2. 利用ROC曲線評(píng)價(jià)模型性能——AUC(Area Under Curve)

AUC表示ROC曲線下的面積,主要用于衡量模型的泛化性能,即分類效果的好壞。AUC是衡量二分類模型優(yōu)劣的一種評(píng)價(jià)指標(biāo),表示正例排在負(fù)例前面的概率。一般在分類模型中,預(yù)測(cè)結(jié)果都是以概率的形式表現(xiàn),如果要計(jì)算準(zhǔn)確率,通常都會(huì)手動(dòng)設(shè)置一個(gè)閾值來(lái)將對(duì)應(yīng)的概率轉(zhuǎn)化成類別,這個(gè)閾值也就很大程度上影響了模型準(zhǔn)確率的計(jì)算。

之所以采用AUC來(lái)評(píng)價(jià),主要還是考慮到ROC曲線本身并不能直觀的說(shuō)明一個(gè)分類器性能的好壞,而AUC值作為一個(gè)數(shù)量值,具有可比較性,可以進(jìn)行定量的比較。

AUC值的計(jì)算方法

  • 將坐標(biāo)點(diǎn)按照橫坐標(biāo)FPR排序 。

  • 計(jì)算第iiii個(gè)坐標(biāo)點(diǎn)和第i+1i+1i+1i+1個(gè)坐標(biāo)點(diǎn)的間距dxdxdxdx 。

  • 獲取第iiii或者i+1i+1i+1i+1個(gè)坐標(biāo)點(diǎn)的縱坐標(biāo)y。

  • 計(jì)算面積微元ds=ydxds=ydxds=ydxds=ydx。

  • 對(duì)面積微元進(jìn)行累加,得到AUC。

AUC值對(duì)模型性能的判斷標(biāo)準(zhǔn)

  1. AUC = 1,是完美分類器,采用這個(gè)預(yù)測(cè)模型時(shí),存在至少一個(gè)閾值能得出完美預(yù)測(cè)。絕大多數(shù)預(yù)測(cè)的場(chǎng)合,不存在完美分類器。

  2. 0.5 < AUC < 1,優(yōu)于隨機(jī)猜測(cè)。這個(gè)分類器(模型)妥善設(shè)定閾值的話,能有預(yù)測(cè)價(jià)值。

  3. AUC = 0.5,跟隨機(jī)猜測(cè)一樣(例:丟銅板),模型沒(méi)有預(yù)測(cè)價(jià)值。

  4. AUC < 0.5,比隨機(jī)猜測(cè)還差;但只要總是反預(yù)測(cè)而行,就優(yōu)于隨機(jī)猜測(cè)。

3. 利用ROC曲線選擇最佳模型

首先了解一下ROC曲線圖上很重要的四個(gè)點(diǎn):

  1. 第一個(gè)點(diǎn)(0,1)(0,1)(0,1)(0,1),即FPR=0, TPR=1,這意味著FN(False Negative)=0,并且FP(False Positive)=0。意味著這是一個(gè)完美的分類器,它將所有的樣本都正確分類。

  2. 第二個(gè)點(diǎn)(1,0)(1,0)(1,0)(1,0),即FPR=1,TPR=0,意味著這是一個(gè)最糟糕的分類器,因?yàn)樗晒Ρ荛_(kāi)了所有的正確答案。

  3. 第三個(gè)點(diǎn)(0,0)(0,0)(0,0)(0,0),即FPR=TPR=0,即FP(False Positive)=TP(True Positive)=0,可以發(fā)現(xiàn)該分類器預(yù)測(cè)所有的樣本都為負(fù)樣本(Negative)。

  4. 第四個(gè)點(diǎn)(1,1)(1,1)(1,1)(1,1),即FPR=TPR=1,分類器實(shí)際上預(yù)測(cè)所有的樣本都為正樣本。

從上面給出的四個(gè)點(diǎn)可以發(fā)現(xiàn),==ROC曲線圖中,越靠近(0,1)的點(diǎn)對(duì)應(yīng)的模型分類性能越好。==而且可以明確的一點(diǎn)是,ROC曲線圖中的點(diǎn)對(duì)應(yīng)的模型,它們的不同之處僅僅是在分類時(shí)選用的閾值(Threshold)不同,每個(gè)點(diǎn)所選用的閾值都對(duì)應(yīng)某個(gè)樣本被預(yù)測(cè)為正類的概率值。

那么我們?nèi)绾胃鶕?jù)ROC曲線圖定量的找到當(dāng)前最優(yōu)的分類模型呢?

3.1 不同模型之間選擇最優(yōu)模型

當(dāng)然最直觀的比較方式就是基于AUC值,不同的模型對(duì)應(yīng)的ROC曲線中,AUC值大的模型性能自然相對(duì)較好。而當(dāng)AUC值近似相等時(shí),有兩種情況:第一種是ROC曲線之間沒(méi)有交點(diǎn);第二種是ROC曲線之間存在交點(diǎn)。在兩個(gè)模型AUC值相等時(shí),并不代表兩個(gè)模型的分類性能也相等。

ROC曲線之間沒(méi)有交點(diǎn)

如下圖所示,A,B,C三個(gè)模型對(duì)應(yīng)的ROC曲線之間交點(diǎn),且AUC值是相等的,此時(shí)明顯更靠近(0,1)(0,1)(0,1)(0,1)點(diǎn)的A模型的分類性能會(huì)更好。

ROC曲線之間存在交點(diǎn)

如下圖所示,模型A、B對(duì)應(yīng)的ROC曲線相交卻AUC值相等,此時(shí)就需要具體問(wèn)題具體分析:當(dāng)需要高Sensitivity值時(shí),A模型好過(guò)B;當(dāng)需要高Specificity值時(shí),B模型好過(guò)A。

在這里插入圖片描述

3.2 同一模型中選擇最優(yōu)點(diǎn)對(duì)應(yīng)的最優(yōu)模型

根據(jù)前面的內(nèi)容,我們可以知道,在同一條ROC曲線上,越靠近(0,1)(0,1)(0,1)(0,1)的坐標(biāo)點(diǎn)對(duì)應(yīng)的模型性能越好,因?yàn)榇藭r(shí)模型具有較高的真正率和較低的假正率。那么我們?nèi)绾味康膹囊粭lROC曲線上找到這個(gè)最優(yōu)的點(diǎn)呢?通常需要借助ISO精度線來(lái)找到這個(gè)最優(yōu)的點(diǎn)

ISO精度線(ISO Accuracy Lines)

ISO精度線實(shí)際上一類斜率確定而截距不確定的直線,設(shè)ISO精度線的方程為y=ax+by=ax+by=ax+by=ax+b,其中aaaa為直線的斜率,bbbb為直線的截距。

a=NEGPOSa=NEGPOSa = \frac{NEG}{POS}a=POSNEG

其中,NEGNEGNEGNEG為數(shù)據(jù)集中負(fù)樣本的數(shù)目,POSPOSPOSPOS為數(shù)據(jù)集中正樣本的數(shù)目

如下圖所示,當(dāng)a=0.5a=0.5a=0.5a=0.5時(shí),圖中的紅線都可以作為ISO精度線

在這里插入圖片描述

根據(jù)ISO精度線確定最優(yōu)點(diǎn)

因?yàn)镽OC曲線上的點(diǎn)都是在同一模型下改變分類閾值得到的,所以在同一條ROC曲線上確定最優(yōu)點(diǎn)的過(guò)程,其實(shí)就是確定最佳分類閾值的過(guò)程,這個(gè)閾值能夠讓模型在高真正率和低假正率之間取得最好的平衡,即模型的分類性能最好。

根據(jù)ISO精度線確定最優(yōu)點(diǎn)的步驟:

  1. 首先得到ISO精度線的斜率 a=NEGPOSa=NEGPOSa = \frac{NEG}{POS}a=POSNEG

  2. 初始化截距b=0b=0b=0b=0,即此時(shí)的直線方程為y=axy=axy=axy=ax

  3. 逐漸增大截距,即把直線向左上角移動(dòng),直到直線與ROC曲線只有一個(gè)交點(diǎn),則這個(gè)交點(diǎn)即為我們要找的最優(yōu)點(diǎn),這個(gè)最優(yōu)點(diǎn)對(duì)應(yīng)的分類閾值即為使得當(dāng)前模型性能最優(yōu)的分類閾值(本來(lái)剛開(kāi)始考慮這個(gè)點(diǎn)應(yīng)該是切點(diǎn),不過(guò)后來(lái)想想應(yīng)該不是,因?yàn)镽OC圖本身是不連續(xù)的,相鄰節(jié)點(diǎn)間都是通過(guò)直線連接的)

3.3 當(dāng)測(cè)試集中的正負(fù)樣本的分布變換的時(shí)候,ROC曲線能夠保持不變

之所以把ROC曲線的這個(gè)特性特意提出來(lái)講,是因?yàn)槲矣X(jué)得這是ROC曲線和AUC這個(gè)評(píng)價(jià)標(biāo)準(zhǔn)最大的優(yōu)勢(shì)所在。其他的如正確率、精確率、召回率和F值都會(huì)受到樣本分布的影響,即對(duì)于同一模型,采用這些指標(biāo)進(jìn)行性能評(píng)估的話,如果輸入的樣本中正負(fù)樣本分布發(fā)生變化,則最終的正確率等參數(shù)也會(huì)變化,這種最終結(jié)果會(huì)被輸入樣本分布影響的特性,顯然使得這些指標(biāo)在評(píng)估某個(gè)樣本性能時(shí)會(huì)對(duì)輸入樣本產(chǎn)生依賴,不能很客觀的反應(yīng)模型的性能(所以這也是為什么一個(gè)可信數(shù)據(jù)集非常重要的原因,因?yàn)閿?shù)據(jù)集不僅影響對(duì)模型的訓(xùn)練,也會(huì)直接影響對(duì)模型性能的評(píng)估?;谶@兩點(diǎn),我們就可以斷言,對(duì)于同一個(gè)模型,更可信的數(shù)據(jù)集肯定能夠取得更好的效果。)

而對(duì)應(yīng)于同一個(gè)模型,當(dāng)其中的正負(fù)樣本分布發(fā)生變化時(shí),ROC曲線能夠基本保持不變,這就保證至少在模型評(píng)估階段,樣本分布不會(huì)對(duì)這一過(guò)程產(chǎn)生太大的影響。

那么如何理解這種不變性呢?網(wǎng)上找了很多博客都沒(méi)有人解釋過(guò),我也只能簡(jiǎn)要的談?wù)勎业南敕?,日后如果看到了比較權(quán)威的解釋再來(lái)補(bǔ)充吧。

首先,ROC曲線每個(gè)點(diǎn)都是以某個(gè)閾值對(duì)應(yīng)的TPR為縱坐標(biāo),以對(duì)應(yīng)FPR為橫坐標(biāo),所以不變性肯定是反映在樣本分布改變時(shí),ROC曲線圖中的點(diǎn)隨著閾值變化橫縱坐標(biāo)的變化保持一致。

舉個(gè)例子,當(dāng)一個(gè)數(shù)據(jù)集中有PPPP個(gè)正樣本和NNNN個(gè)負(fù)樣本時(shí),對(duì)應(yīng)于某個(gè)閾值ThresholdThresholdThresholdThreshold,其TPRTPRTPRTPRFPRFPRFPRFPR計(jì)算公式如下:

TPR=TPTP+FN,FPR=FPFP+TNTPR=TPTP+FN,FPR=FPFP+TNTPR = \frac{TP}{TP+FN} ,FPR = \frac{FP}{FP+TN}TPR=TP+FNTP,FPR=FP+TNFP

當(dāng)我們將負(fù)樣本的數(shù)目增加十倍,即此時(shí)數(shù)據(jù)集中有PPPP個(gè)正樣本和10?N10?N10*N10?N個(gè)負(fù)樣本,根據(jù)上面的計(jì)算公式可知,在負(fù)樣本數(shù)量增加十倍之后,

  1. TPRTPRTPRTPR值的取值范圍是不變,因?yàn)?span style="position: relative;">TP+FNTP+FNTP+FNTP+FN不變,同時(shí)TPTPTPTP的取值為[0,P][0,P][0,P][0,P]之間的整數(shù),所以TPRTPRTPRTPR的離散取值區(qū)間在負(fù)樣本增加的情況下是不變的。

  2. TPRTPRTPRTPR值不變的條件下,此時(shí)對(duì)應(yīng)的ThresholdThresholdThresholdThreshold閾值基本不變(如果變化,則TPRTPRTPRTPR值不可能不變),其對(duì)應(yīng)的FPRFPRFPRFPR值的取值范圍也是不變的。根據(jù)樣本獨(dú)立同分布的假設(shè),負(fù)樣本數(shù)目改變,但負(fù)樣本的預(yù)測(cè)概率分布是不變的,即當(dāng)ThresholdThresholdThresholdThreshold不變時(shí),FPFPFPFP值和FP+TNFP+TNFP+TNFP+TN值應(yīng)該是等比例變化的,此時(shí)FPRFPRFPRFPR值不變。

綜上,我們可以從感性認(rèn)識(shí)上證明當(dāng)樣本的分布發(fā)生變化時(shí),ROC曲線能夠基本保持不變。

接下來(lái)給出一個(gè)實(shí)例,對(duì)比ROC曲線和PR(Precision-Recall)曲線在樣本分布變化時(shí)的不同。下圖中,(a)和(b)分別為從初始測(cè)試集中得到的ROC曲線和PR曲線,?和(d)分別為負(fù)樣本增加十倍之后得到的ROC曲線和PR曲線。由圖中可知,當(dāng)樣本分布變化時(shí),ROC曲線基本沒(méi)有變化,而PR曲線則變化很大,這充分說(shuō)明了ROC曲線在模型性能評(píng)估上的優(yōu)勢(shì)。

在這里插入圖片描述

ROC曲線在多分類問(wèn)題上的推廣

經(jīng)典的ROC曲線適用于對(duì)二分類問(wèn)題進(jìn)行模型評(píng)估,通常將它推廣到多分類問(wèn)題的方式有兩種:

  1. 對(duì)于每種類別,分別計(jì)算其將所有樣本點(diǎn)的預(yù)測(cè)概率作為閾值所得到的TPRTPRTPRTPRFPRFPRFPRFPR值(是這種類別為正,其他類別為負(fù)),最后將每個(gè)取定的閾值下,對(duì)應(yīng)所有類別的TPRTPRTPRTPR值和FPRFPRFPRFPR值分別求平均,得到最終對(duì)應(yīng)這個(gè)閾值的TPRTPRTPRTPRFPRFPRFPRFPR

  2. 首先,對(duì)于一個(gè)測(cè)試樣本:1)標(biāo)簽只由0和1組成,1的位置表明了它的類別(可對(duì)應(yīng)二分類問(wèn)題中的‘’正’’),0就表示其他類別(‘’負(fù)‘’);2)要是分類器對(duì)該測(cè)試樣本分類正確,則該樣本標(biāo)簽中1對(duì)應(yīng)的位置在概率矩陣P中的值是大于0對(duì)應(yīng)的位置的概率值的。

上面的兩個(gè)方法得到的ROC曲線是不同的,當(dāng)然曲線下的面積AUC也是不一樣的。 在python中,方法1和方法2分別對(duì)應(yīng)sklearn.metrics.roc_auc_score函數(shù)中參數(shù)average值為’macro’和’micro’的情況。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多