人工智能_數據分析_信號_心理學_生物學等重要術語: ROC接收者操作特征曲線

  • 時間:2019-02-24 21:25 作者:python作業AI畢業設計 來源:python作業AI畢業設計 閱讀:124
  • 掃一掃,手機訪問
摘要:在信號檢測理論中,接收者操作特征曲線(receiver operating characteristic curve,或者者叫ROC曲線)是坐標圖式的分析工具,用于 (1) 選擇最佳的信號偵測模型、舍棄次佳的模型。 (2) 在同一模型中設定最佳閾值。在做決策時,ROC分析能不受成本/效益的影響,給出客

在信號檢測理論中,接收者操作特征曲線(receiver operating characteristic curve,或者者叫ROC曲線)是坐標圖式的分析工具,用于 (1) 選擇最佳的信號偵測模型、舍棄次佳的模型。 (2) 在同一模型中設定最佳閾值。

在做決策時,ROC分析能不受成本/效益的影響,給出客觀中立的建議。

ROC曲線首先是由二戰中的電子工程師和雷達工程師發明的,用來偵測戰場上的敵軍載具(飛機、船艦),也就是信號檢測理論。之后很快就被引入了心理學來進行信號的知覺檢測。數十年來,ROC分析被用于醫學、無線電、生物學、犯罪心理學領域中,而且最近在機器學習(machine learning)和數據挖掘(data mining)領域也得到了很好的發展。

術語

  • 陽性 (P, positive)

  • 陰性 (N, Negative)

  • 真陽性 (TP, true positive) 正確的一定。又稱:命中 (hit)

  • 真陰性 (TN, true negative) 正確的否定。又稱:正確拒絕 (correct rejection)

  • 偽陽性 (FP, false positive) 錯誤的一定,又稱:假警報 (false alarm),第一型錯誤

  • 偽陰性 (FN, false negative) 錯誤的否定,又稱:未命中 (miss),第二型錯誤

  • 真陽性率 (TPR, true positive rate) 又稱:命中率 (hit rate)、敏感度(sensitivity)
    TPR = TP / P = TP / (TP+FN)

  • 偽陽性率(FPR, false positive rate) 又稱:錯誤命中率,假警報率 (false alarm rate) FPR = FP / N = FP / (FP + TN)

  • 精確度 (ACC, accuracy) ACC = (TP + TN) / (P + N) 即:(真陽性+真陰性) / 總樣本數

  • 真陰性率 (TNR) 又稱:特異度 (SPC, specificity) SPC = TN / N = TN / (FP + TN) = 1 - FPR

  • 陽性預測值 (PPV) PPV = TP / (TP + FP)

  • 陰性預測值 (NPV) NPV = TN / (TN + FN) 假發現率 (FDR) FDR = FP / (FP + TP)

參考資料

  • 探討qq群630011153 144081101
  • 本文最新版本地址
  • 本文涉及的python測試開發庫 謝謝點贊!
  • 本文相關海量書籍下載
  • 2018最佳人工智能機器學習工具書及下載(持續升級)

基本概念

分類模型(又稱分類器,或者診斷)將實例映射到特定類。ROC分析的是二元分類模型,也就是輸出結果只有兩種類別的模型,例如:(陽性/陰性) (有病/沒病) (垃圾郵件/非垃圾郵件) (敵軍/非敵軍)。

當訊號偵測(或者變量測量)的結果是連續值時,類與類的邊界必需用閾值來界定。舉例來說,用血壓值來檢測一個人能否有高血壓,測出的血壓值是連續的實數(從0~200都有可能),以收縮壓140/舒張壓90為閾值,閾值以上便診斷為有高血壓,閾值未滿者診斷為無高血壓。二元分類模型的個案預測有四種結局:

真陽性(TP):診斷為有,實際上也有高血壓。
偽陽性(FP):診斷為有,實際卻沒有高血壓。
真陰性(TN):診斷為沒有,實際上也沒有高血壓。
偽陰性(FN):診斷為沒有,實際卻有高血壓。

這四種結局可以畫成2 × 2的混淆矩陣

圖片.png

ROC空間

ROC空間將偽陽性率(FPR)定義為 X 軸,真陽性率(TPR)定義為 Y 軸。

給定二元分類模型和它的閾值,就能從所有樣本的(陽性/陰性)真實值和預測值計算出(X=FPR, Y=TPR) 座標點。

從 (0, 0) 到 (1,1) 的對角線將ROC空間劃分為左上/右下兩個區域,在這條線的以上的點代表了一個好的分類結果(勝過隨機分類),而在這條線以下的點代表了差的分類結果(劣于隨機分類)。

完美的預測是在左上角的點,在ROC空間座標 (0,1)點,X=0 代表著沒有偽陽性,Y=1 代表著沒有偽陰性(所有的陽性都是真陽性);也就是說,不論分類器輸出結果是陽性或者陰性,都是100%正確。一個隨機的預測會得到位于從 (0, 0) 到 (1, 1) 對角線(也叫無識別率線)上的一個點;最直觀的隨機預測的例子就是拋硬幣。

讓我們來看在實際有100個陽性和100個陰性的案例時,四種預測方法(可能是四種分類器,或者是同一分類器的四種閾值設定)的結果差異:

圖片.png

將這4種結果畫在ROC空間里:

點與隨機猜測線的距離,是預測力的指標:離左上角越近的點預測(診斷)精確率越高。離右下角越近的點,預測越不準。
在A、B、C三者當中,最好的結果是A方法。
B方法的結果位于隨機猜測線(對角線)上,在例子中我們可以看到B的精確度(ACC,定義見前面表格)是50%。
C盡管預測精確度最差,甚至劣于隨機分類,也就是低于0.5(低于對角線)。然而,當將C以 (0.5, 0.5) 為中點作一個鏡像后,C'的結果甚至要比A還要好。這個作鏡像的方法,簡單說,不論C(或者任何ROC點低于對角線的情況)預測了什么,就做相反的結論。

ROC曲線

上述ROC空間里的單點,是給定分類模型且給定閾值后得出的。但同一個二元分類模型的閾值可能設定為高或者低,每種閾值的設定會得出不同的FPR和TPR。

將同一模型每個閾值的(FPR, TPR)座標都畫在ROC空間里,就成為特定模型的ROC曲線。
例如右圖,人體的血液蛋白濃度是呈正態分布的連續變數,病人的分布是紅色,平均值為A g/dL,健康人的分布是藍色,平均值是C g/dL。健康檢查會測量血液樣本中的某種蛋白質濃度,達到某個值(閾值,threshold)以上診斷為有疾病征兆。研究者可以調整閾值的高低(將左上圖的B垂直線往左或者右移動),便會得出不同的偽陽性率與真陽性率,總之即得出不同的預測精確率。

  1. 因為每個不同的分類器(診斷工具、偵測工具)有各自的測量標準和測量值的單位(標示為:“健康人-病人分布圖”的橫軸),所以不同分類器的“健康人-病人分布圖”都長得不一樣。

  2. 比較不同分類器時,ROC曲線的實際形狀,便視兩個實際分布的重疊范圍而定,沒有規律可循。

  3. 但在同一個分類器之內,閾值的不同設定對ROC曲線的影響,仍有少量規律可循:

當閾值設定為最高時,亦即所有樣本都被預測為陰性,沒有樣本被預測為陽性,此時在偽陽性率 FPR = FP / ( FP + TN ) 算式中的 FP = 0,所以 FPR = 0%。同時在真陽性率(TPR)算式中, TPR = TP / ( TP + FN ) 算式中的 TP = 0,所以 TPR = 0%
→ 當閾值設定為最高時,必得出ROC座標系左下角的點 (0, 0)。
當閾值設定為最低時,亦即所有樣本都被預測為陽性,沒有樣本被預測為陰性,此時在偽陽性率FPR = FP / ( FP + TN ) 算式中的 TN = 0,所以 FPR = 100%。同時在真陽性率 TPR = TP / ( TP + FN ) 算式中的 FN = 0,所以 TPR=100%
→ 當閾值設定為最低時,必得出ROC座標系右上角的點 (1, 1)。
由于TP、FP、TN、FN都是累積次數,TN和FN隨著閾值調低而減少(或者持平),TP和FP隨著閾值調低而添加(或者持平),所以FPR和TPR皆必隨著閾值調低而添加(或者持平)。
→ 隨著閾值調低,ROC點 往右上(或者右/或者上)移動,或者不動;但絕不會往左下(或者左/或者下)移動。

圖片.png

曲線下面積(AUC)

例示三種AUC值(曲線下面積)
在比較不同的分類模型時,可以將每個模型的ROC曲線都畫出來,比較曲線下面積做為模型優劣的指標。

意義
ROC曲線下方的面積(英語:Area under the Curve of ROC (AUC ROC)),其意義是:

由于是在1x1的方格里求面積,AUC必在0~1之間。
假設閾值以上是陽性,以下是陰性;
若隨機抽取一個陽性樣本和一個陰性樣本,分類器正確判斷陽性樣本的值高于陰性樣本之機率。
簡單說:AUC值越大的分類器,正確率越高。
從AUC判斷分類器(預測模型)優劣的標準:

AUC = 1,是完美分類器,采用這個預測模型時,存在至少一個閾值能得出完美預測。絕大多數預測的場合,不存在完美分類器。
0.5 < AUC < 1,優于隨機猜測。這個分類器(模型)妥善設定閾值的話,能有預測價值。
AUC = 0.5,跟隨機猜測一樣(例:丟銅板),模型沒有預測價值。
AUC < 0.5,比隨機猜測還差;但只需總是反預測而行,就優于隨機猜測。
計算
AUC的計算有兩種方式,都是以逼近法求近似值。

梯形法
梯形法(英語:trapezoid method):簡單地將每個相鄰的點以直線連接,計算連線下方的總面積。由于每一線段下方都是一個梯形,所以叫梯形法。

優點:簡單,所以常用。
缺點:傾向于低估AUC。
ROC AUCH法
潛在問題
AUC of ROC是機器學習的社群最常使用來比較不同模型優劣的方法 。然而近來這個做法開始受到質疑,由于有些機器學習的研究指出,AUC的噪聲太多,并且很常求不出可信又有效的AUC值(此時便不能保證AUC傳達本節開頭所述之意義),使得AUC在模型比較時產生的問題比解釋的問題更多。

圖片.png

分析軟件

所有常用于統計分析的軟件(例:SPSS、SAS、SYSTAT、S-Plus、ROCKIT、RscorePlus)都有依據不同閾值自動計算真陽性和偽陽性比率、并依此繪制ROC曲線的功能。

離散分類器(英語:discrete,或者稱“間斷分類器”),如決策樹,產生的是離散的數值或者者一個二元標簽。應用到實例中,這樣的分類器最后只會在ROC空間產生單一的點。而少量其余的分類器,如樸素貝葉斯分類器,邏輯回歸或者者人工神經網絡,產生的是實例屬于某一類的可能性,對于這些方法,一個閾值就決定了ROC空間中點的位置。舉例來說,假如可能值低于或者者等于0.8這個閾值就將其認為是陽性的類,而其余的值被認為是陰性類。這樣即可以通過畫每一個閾值的ROC點來生成一個生成一條曲線。MedCalc是較好的ROC曲線分析軟件。

  • 全部評論(0)
最新發布的資訊信息
【系統環境|服務器應用】Discuz發布帖子時默認顯示第一個主題分類的修改方法(2019-12-09 00:13)
【系統環境|軟件環境】Android | App內存優化 之 內存泄漏 要點概述 以及 處理實戰(2019-12-04 14:27)
【系統環境|軟件環境】MySQL InnoDB 事務(2019-12-04 14:26)
【系統環境|軟件環境】vue-router(單頁面應用控制中心)常見用法(2019-12-04 14:26)
【系統環境|軟件環境】Linux中的Kill命令(2019-12-04 14:26)
【系統環境|軟件環境】Linux 入門時必學60個文件解決命令(2019-12-04 14:26)
【系統環境|軟件環境】更新版ThreeJS 3D粒子波浪動畫(2019-12-04 14:26)
【系統環境|軟件環境】前臺開發WebStorm常用快捷鍵,火速收藏!(2019-12-04 14:25)
【系統環境|軟件環境】微博H5登錄和發微博組件(2019-12-04 14:25)
【系統環境|軟件環境】5分鐘談前臺面試,小伙伴都驚呆了(2019-12-04 14:23)
手機二維碼手機訪問領取大禮包
返回頂部
澳洲幸运10精准人工计划