乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      ROC曲線學習總結

       廣旭qsian65x0b 2019-12-20

      ROC曲線學習總結

      最近在學習機器學習基礎知識部分的時候,看到了用于評估模型性能的ROC曲線,想起來之前上課的時候聽老師提起過,當時沒有認真去看,所以這次大體上了解了一下,來談談自己的看法,并做些總結。

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

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

      首先介紹一下在模型評估上的一些基本概念:

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

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

      其中最重要的兩個公式如下:

      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曲線圖中,每個點以對應的FPRFPRFPRFPR值為橫坐標,以TPRTPRTPRTPR值為縱坐標

      ROC曲線的繪制步驟如下:

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

      2. 從高到低,依次將“Score”值作為閾值threshold,當測試樣本屬于正樣本的概率大于或等于這個threshold時,我們認為它為正樣本,否則為負樣本。舉例來說,對于某個樣本,其“Score”值為0.6,那么“Score”值大于等于0.6的樣本都被認為是正樣本,而其他樣本則都認為是負樣本。

      3. 每次選取一個不同的threshold,得到一組FPR和TPR,以FPR值為橫坐標和TPR值為縱坐標,即ROC曲線上的一點。

      4. 根據(jù)3中的每個坐標點,畫圖。

      ROC曲線繪制實例

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

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

      3、將截斷點依次取為score值,計算TPR和FPR。
      當截斷點為0.1時:
      說明只要score>=0.1,它的預測類別就是正例。 因為4個樣本的score都大于等于0.1,所以,所有樣本的預測類別都為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;

      當截斷點為0.35時:
      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;

      當截斷點為0.4時:
      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;

      當截斷點為0.8時:
      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為縱軸畫圖。

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

      AUC表示ROC曲線下的面積,主要用于衡量模型的泛化性能,即分類效果的好壞。AUC是衡量二分類模型優(yōu)劣的一種評價指標,表示正例排在負例前面的概率。一般在分類模型中,預測結果都是以概率的形式表現(xiàn),如果要計算準確率,通常都會手動設置一個閾值來將對應的概率轉(zhuǎn)化成類別,這個閾值也就很大程度上影響了模型準確率的計算。

      之所以采用AUC來評價,主要還是考慮到ROC曲線本身并不能直觀的說明一個分類器性能的好壞,而AUC值作為一個數(shù)量值,具有可比較性,可以進行定量的比較。

      AUC值的計算方法

      • 將坐標點按照橫坐標FPR排序 。

      • 計算第iiii個坐標點和第i+1i+1i+1i+1個坐標點的間距dxdxdxdx 。

      • 獲取第iiii或者i+1i+1i+1i+1個坐標點的縱坐標y。

      • 計算面積微元ds=ydxds=ydxds=ydxds=ydx。

      • 對面積微元進行累加,得到AUC。

      AUC值對模型性能的判斷標準

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

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

      3. AUC = 0.5,跟隨機猜測一樣(例:丟銅板),模型沒有預測價值。

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

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

      首先了解一下ROC曲線圖上很重要的四個點:

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

      2. 第二個點(1,0)(1,0)(1,0)(1,0),即FPR=1,TPR=0,意味著這是一個最糟糕的分類器,因為它成功避開了所有的正確答案。

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

      4. 第四個點(1,1)(1,1)(1,1)(1,1),即FPR=TPR=1,分類器實際上預測所有的樣本都為正樣本。

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

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

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

      當然最直觀的比較方式就是基于AUC值,不同的模型對應的ROC曲線中,AUC值大的模型性能自然相對較好。而當AUC值近似相等時,有兩種情況:第一種是ROC曲線之間沒有交點;第二種是ROC曲線之間存在交點。在兩個模型AUC值相等時,并不代表兩個模型的分類性能也相等。

      ROC曲線之間沒有交點

      如下圖所示,A,B,C三個模型對應的ROC曲線之間交點,且AUC值是相等的,此時明顯更靠近(0,1)(0,1)(0,1)(0,1)點的A模型的分類性能會更好。

      ROC曲線之間存在交點

      如下圖所示,模型A、B對應的ROC曲線相交卻AUC值相等,此時就需要具體問題具體分析:當需要高Sensitivity值時,A模型好過B;當需要高Specificity值時,B模型好過A。

      在這里插入圖片描述

      3.2 同一模型中選擇最優(yōu)點對應的最優(yōu)模型

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

      ISO精度線(ISO Accuracy Lines)

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

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

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

      如下圖所示,當a=0.5a=0.5a=0.5a=0.5時,圖中的紅線都可以作為ISO精度線

      在這里插入圖片描述

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

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

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

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

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

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

      3.3 當測試集中的正負樣本的分布變換的時候,ROC曲線能夠保持不變

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

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

      那么如何理解這種不變性呢?網(wǎng)上找了很多博客都沒有人解釋過,我也只能簡要的談談我的想法,日后如果看到了比較權威的解釋再來補充吧。

      首先,ROC曲線每個點都是以某個閾值對應的TPR為縱坐標,以對應FPR為橫坐標,所以不變性肯定是反映在樣本分布改變時,ROC曲線圖中的點隨著閾值變化橫縱坐標的變化保持一致。

      舉個例子,當一個數(shù)據(jù)集中有PPPP個正樣本和NNNN個負樣本時,對應于某個閾值ThresholdThresholdThresholdThreshold,其TPRTPRTPRTPRFPRFPRFPRFPR計算公式如下:

      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

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

      1. TPRTPRTPRTPR值的取值范圍是不變,因為TP+FNTP+FNTP+FNTP+FN不變,同時TPTPTPTP的取值為[0,P][0,P][0,P][0,P]之間的整數(shù),所以TPRTPRTPRTPR的離散取值區(qū)間在負樣本增加的情況下是不變的。

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

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

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

      在這里插入圖片描述

      ROC曲線在多分類問題上的推廣

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

      1. 對于每種類別,分別計算其將所有樣本點的預測概率作為閾值所得到的TPRTPRTPRTPRFPRFPRFPRFPR值(是這種類別為正,其他類別為負),最后將每個取定的閾值下,對應所有類別的TPRTPRTPRTPR值和FPRFPRFPRFPR值分別求平均,得到最終對應這個閾值的TPRTPRTPRTPRFPRFPRFPRFPR

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

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

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

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多