前言
最近接觸到ROC曲線相關(guān)的問(wèn)題,因此下面整理出相關(guān)的文章,記錄相關(guān)原理和應(yīng)用。
數(shù)據(jù)分析最讓人著迷的一種用途是可以基于現(xiàn)有數(shù)據(jù)創(chuàng)建能夠區(qū)分不同類型情景的機(jī)器學(xué)習(xí)預(yù)測(cè)模型。通過(guò)定義明確的模型,可以確定能夠預(yù)測(cè)結(jié)果的最重要影響因素,為戰(zhàn)略假設(shè)開(kāi)發(fā)有價(jià)值的洞察力,甚至可以通過(guò)友好的用戶界面將模型的邏輯實(shí)現(xiàn)到軟件應(yīng)用程序中。
首先,我們需要評(píng)估構(gòu)建好的預(yù)測(cè)模型是否具有良好準(zhǔn)確的預(yù)測(cè)能力!比如,如果我們的電子郵件程序的垃圾郵件分類器只能檢測(cè)到50%的不需要的電子郵件或請(qǐng)求,我們都會(huì)非常憤怒。本文將討論如何使用經(jīng)典工具來(lái)評(píng)估預(yù)測(cè)模型:接收器操作特性(ROC)曲線。
本文主要分為三個(gè)部分整理ROC曲線相關(guān)內(nèi)容,可根據(jù)自己的需要進(jìn)行挑選:
1、使用ROC曲線分析的相關(guān)文獻(xiàn)實(shí)例
2、ROC曲線的原理和歷史
3、如何繪制ROC曲線
使用ROC曲線分析的相關(guān)文獻(xiàn)實(shí)例
從一篇SCI出發(fā):Improvement of Insulin Sensitivity after Lean Donor Feces in Metabolic Syndrome Is Driven by Baseline Intestinal Microbiota Composition
這是阿姆斯特丹大學(xué)學(xué)術(shù)醫(yī)學(xué)中心在2017年發(fā)表在cell子刊上的文獻(xiàn),其中一個(gè)highlight提到:Response to lean donor FMT is driven by baseline fecal microbiota composition,使用了ROC曲線來(lái)評(píng)估預(yù)測(cè)模型的好壞。

為了比較異體FMT中菌群與效果之間的關(guān)系,首先按照FMT前后Rd值的變化將患者分為responders組和non-responders組,并比較了兩組的菌群差異,從菌群多樣性變化來(lái)看,基于Shannon指數(shù)發(fā)現(xiàn),兩組的多樣性均沒(méi)有發(fā)生顯著改變,然而,兩組基線時(shí)的菌群多樣性卻又顯著差異(圖5A),具體表現(xiàn)為non-responders的基線菌群多樣性顯著高于responders。隨后,作者使用了彈性網(wǎng)絡(luò)算法elastic net?algorithm (Zou and Hastie, 2005)區(qū)分responders和non-responders,為了避免過(guò)度擬合,在數(shù)據(jù)的訓(xùn)練分區(qū)(80%)上使用了十折交叉驗(yàn)證,剩下的20%樣品用作測(cè)試數(shù)據(jù)集。要選擇的參數(shù)是 L1,L2范數(shù)和正則化閾值之間的比率。穩(wěn)定性選擇采用80% 的隨機(jī)二次抽樣方法進(jìn)行,共100次。在穩(wěn)定性選擇過(guò)程中,計(jì)算所有權(quán)重系數(shù)為非零的特征。這些計(jì)數(shù)被歸一化并轉(zhuǎn)換為穩(wěn)定系數(shù),對(duì)于總是被選擇的特征值在1.0之間,對(duì)于從未被選擇的特征值在0.0之間。通過(guò)隨機(jī)試驗(yàn)評(píng)價(jià)彈性網(wǎng)絡(luò)算法所得結(jié)果的統(tǒng)計(jì)有效性。按照程序?qū)⒔Y(jié)果變量(例如,同種異體相對(duì)于自體或應(yīng)答者相對(duì)于無(wú)應(yīng)答者)隨機(jī)重組,同時(shí)保留相應(yīng)的微生物譜。重復(fù)100次,每次計(jì)算受試者-工作特征-曲線下面積(ROC AUC)評(píng)分。用于二進(jìn)制分類任務(wù)的性能度量是 ROC AUC。ROC 可以理解為一個(gè)正確分類同種異體受試者與自體受試者或有效者與無(wú)效者的概率圖。數(shù)據(jù)集中的交叉驗(yàn)證是通過(guò)隨機(jī)隱藏模型中20% 的受試者并評(píng)估該組的預(yù)測(cè)質(zhì)量來(lái)完成的。ROC AUC 評(píng)分用0.5 AUC 來(lái)衡量分類模型的預(yù)測(cè)準(zhǔn)確性,對(duì)應(yīng)于一個(gè)隨機(jī)結(jié)果。定義了一個(gè)臨界值0.05,并將原始數(shù)據(jù)集的真實(shí) AUC 與此值進(jìn)行了比較。

作者通過(guò)ROC曲線評(píng)估了基線菌群組成預(yù)測(cè)6周代謝反應(yīng)的模型,顯示AUC=0.88,模型良好。
從這篇文獻(xiàn)了解到ROC曲線可用于評(píng)估某個(gè)尋找biomarkers的預(yù)測(cè)模型的好壞。
再?gòu)囊黄猄CI了解:Alterations in the gut microbiome and metabolism with coronary artery disease severity
這是一篇本課題組與北京協(xié)和醫(yī)學(xué)院合作在2019年發(fā)表的文章,關(guān)注了不同冠狀動(dòng)脈疾病Coronary artery disease (CAD)類型患者的腸道菌群區(qū)分差異。其中,作者通過(guò)ROC曲線評(píng)估了區(qū)分不同CAD亞型(穩(wěn)定型冠狀動(dòng)脈疾病(SCAD) ,不穩(wěn)定型心絞痛(UA)和心肌梗死(MI))的特征共變化菌群和代謝物隨機(jī)森林模型,得到比較良好的預(yù)測(cè)結(jié)果。
Subgroup identification and prediction based on CAGs and CAD-associated metabotypes
為了確定腸道菌群中的 CAGs 和代謝產(chǎn)物模塊是否可以作為鑒別冠心病不同階段與正常冠狀動(dòng)脈的生物標(biāo)志物,根據(jù)24個(gè) CAGs 和72個(gè)血清代謝類型構(gòu)建了隨機(jī)森林模型對(duì)冠心病不同階段進(jìn)行分類,并利用 ROC曲線(ROC)曲線對(duì)分類進(jìn)行了檢驗(yàn)(詳情見(jiàn)“材料和方法”一節(jié))??偣矘?gòu)建了5個(gè)預(yù)測(cè)模型(Control vs. CAD, Control vs. SCAD, SCAD vs. UA, SCAD vs. ACS和UA vs. MI)。
隨后,作者再通過(guò)招募新隊(duì)列使用該模型進(jìn)行分類預(yù)測(cè),進(jìn)一步論證該疾病亞型識(shí)別模型的潛在分類能力。

小結(jié):從這兩篇文獻(xiàn)來(lái)看,作者均通過(guò)某個(gè)分類法機(jī)器學(xué)習(xí)預(yù)測(cè)模型尋找biomarkers,然后使用ROC曲線對(duì)模型進(jìn)行評(píng)估。因此,我們可以初步得知,ROC曲線是用于檢驗(yàn)構(gòu)建的預(yù)測(cè)模型好壞的一種衡量方法。那么除了這種用途,ROC曲線還能做什么呢?
為了進(jìn)一步了解并應(yīng)用ROC曲線,我們需要首先了解ROC曲線的原理和過(guò)往↓
ROC曲線的原理和歷史
關(guān)于ROC曲線相關(guān)介紹的文章非常多,這里我摘抄出個(gè)人認(rèn)為比較詳細(xì),可用性強(qiáng)的文章,加以理解。
一、評(píng)估預(yù)測(cè)模型的方法
首先,我們應(yīng)該了解到預(yù)測(cè)模型的類型可以分為回歸模型和分類模型(分類模型又有兩類算法:分類輸出型和概率輸出型,這里就不一一贅述),而不同模型的評(píng)估度量也是不同的,如何評(píng)估模型好壞,機(jī)器學(xué)習(xí)(二十四)——常見(jiàn)模型評(píng)估方法,分類模型的評(píng)估方法簡(jiǎn)介首先需要了解自己構(gòu)建的預(yù)測(cè)模型類型來(lái)決定評(píng)估方法,并不局限于使用ROC曲線進(jìn)行評(píng)估。
ROC曲線原理:
關(guān)于ROC曲線的概念和意義可參考:ROC曲線的概念和意義
英文比較好的話也可以看看這篇:ROC curves – what are they and how are they used?
為了更直觀的理解ROC,也可以看看這個(gè)視頻:ROC and AUC, Clearly Explained!
受試者工作特征曲線(receiver operator characteristic curve, ROC曲線),最初用于評(píng)價(jià)雷達(dá)性能,又稱為接收者操作特性曲線。ROC曲線其實(shí)就是從混淆矩陣衍生出來(lái)的圖形,以真陽(yáng)性率(靈敏度,Sensitivity)為縱坐標(biāo),假陽(yáng)性率(1-特異度,1-Specificity)為橫坐標(biāo)繪制的曲線。
其自變量(檢驗(yàn)項(xiàng)目)一般為連續(xù)性變量(如蛋白質(zhì)因子、菌株、代謝物等的檢測(cè)豐度或含量),因變量(金標(biāo)準(zhǔn),如某疾病亞型分類、治療響應(yīng)和無(wú)響應(yīng)、患病和未患?。┮话銥槎诸愖兞?。

ROC曲線圖形:隨著閾值的減小,更多的值歸于正類,敏感度和1-特異度也相應(yīng)增加,所以ROC曲線呈遞增趨勢(shì)。那條45度對(duì)角線是一條參照線,也就是說(shuō)ROC曲線要與這條曲線比較。簡(jiǎn)單的說(shuō),如果我們不用模型,直接隨機(jī)把客戶分類,我們得到的曲線就是那條參照線,然而我們使用了模型進(jìn)行預(yù)測(cè),就應(yīng)該比隨機(jī)的要好,所以ROC曲線要盡量遠(yuǎn)離參照線,越遠(yuǎn),我們的模型預(yù)測(cè)效果越好。
ROC曲線就是用來(lái)判斷診斷的正確性,最理想的就是曲線下的面積為1,比較理想的狀態(tài)就是曲線下的面積在0.8-0.9之間,0.5的話對(duì)實(shí)驗(yàn)結(jié)果沒(méi)有什么影響。
提到ROC曲線,就離不開(kāi)AUC(ROC曲線下面積),其判定方法為AUC應(yīng)該大于0.5。ROC曲線是根據(jù)與對(duì)角線進(jìn)行比較來(lái)判斷模型的好壞,但這只是一種直覺(jué)上的定性分析,如果我們需要精確一些,就要用到AUC,也就是ROC曲線下面積(AUC)。
從AUC判斷分類器(預(yù)測(cè)模型)優(yōu)劣的標(biāo)準(zhǔn):
AUC = 1,是完美分類器,采用這個(gè)預(yù)測(cè)模型時(shí),存在至少一個(gè)閾值能得出完美預(yù)測(cè)。絕大多數(shù)預(yù)測(cè)的場(chǎng)合,不存在完美分類器。
0.5 < AUC < 1,優(yōu)于隨機(jī)猜測(cè)。這個(gè)分類器(模型)妥善設(shè)定閾值的話,能有預(yù)測(cè)價(jià)值。
AUC = 0.5,跟隨機(jī)猜測(cè)一樣(例:丟銅板),模型沒(méi)有預(yù)測(cè)價(jià)值。
AUC < 0.5,比隨機(jī)猜測(cè)還差;但只要總是反預(yù)測(cè)而行,就優(yōu)于隨機(jī)猜測(cè)。


看上圖,參考線的面積是0.5,ROC曲線與它偏離越大,ROC曲線就越往左上方靠攏,它下面的面積(AUC)也就越大,這里面積是0.869。我們可以根據(jù)AUC的值與0.5相比,來(lái)評(píng)估一個(gè)分類模型的預(yù)測(cè)效果。
二、ROC曲線的歷史和關(guān)鍵值
這里推薦閱讀這篇簡(jiǎn)書(shū):機(jī)器學(xué)習(xí)基礎(chǔ)(1)- ROC曲線理解。這里從最初雷達(dá)兵使用ROC曲線評(píng)估的故事說(shuō)起,言簡(jiǎn)意賅。
ROC曲線最初的研究是為了確定美國(guó)雷達(dá)“接收機(jī)操作員”是如何漏掉日本飛機(jī)的。在模型預(yù)測(cè)判斷中,會(huì)出現(xiàn)真陽(yáng)、假陽(yáng)、真陰和假陰的三種情況,而不同雷達(dá)兵都可能有自己的一套評(píng)判標(biāo)準(zhǔn),對(duì)每個(gè)接收的信號(hào)是大鳥(niǎo)還是轟炸機(jī),每個(gè)雷達(dá)兵會(huì)給出自己的判斷結(jié)果,這樣每個(gè)雷達(dá)兵就都能計(jì)算出一個(gè)ROC曲線上的關(guān)鍵點(diǎn)(一組FPR,TPR值),把大家的點(diǎn)連起來(lái),也就是最早的ROC曲線了。
ROC曲線需要了解幾個(gè)關(guān)鍵值:
敏感性:正確識(shí)別真陽(yáng)性的比例。在這種情況下,健康患者的比例由診斷工具正確識(shí)別。這有時(shí)被稱為“召回”。
SN =真陽(yáng)性/(真陽(yáng)性+假陰性)
逆(1靈敏度)=?假負(fù)率。未被該工具檢測(cè)到的健康患者被錯(cuò)誤地識(shí)別為患有CAD。假陰性也稱為II型錯(cuò)誤。
特異性:正確識(shí)別真陰性的比例。在這種情況下,通過(guò)診斷工具正確識(shí)別CAD患者的比例。
SP =真陰性/(真陰性+誤報(bào))
逆(1-特異性)=?假陽(yáng)性率。CAD患者被錯(cuò)誤地識(shí)別為無(wú)CAD。誤報(bào)也稱為I型錯(cuò)誤。
積極預(yù)測(cè)價(jià)值:該工具報(bào)告的陽(yáng)性比例,實(shí)際上是積極的。對(duì)于診斷工具報(bào)告缺乏CAD的患者組,PPV是實(shí)際上沒(méi)有患病的患者的比例。這有時(shí)被稱為“精確度”。
PPV =真陽(yáng)性/(真陽(yáng)性+誤報(bào))
負(fù)面預(yù)測(cè)值:該工具報(bào)告的負(fù)面影響的比例,實(shí)際上是負(fù)面的。對(duì)于診斷工具報(bào)告存在CAD的患者組,NPV是實(shí)際上沒(méi)有CAD的患者的比例。
NPV =真陰性/(真陰性+假陰性)
這里可以借助混淆矩陣加以理解:
TP(True Positive): 真實(shí)為0,預(yù)測(cè)也為0
FN(False Negative): 真實(shí)為0,預(yù)測(cè)為1
FP(False Positive): 真實(shí)為1,預(yù)測(cè)為0
TN(True Negative): 真實(shí)為0,預(yù)測(cè)也為0

三、ROC曲線的主要作用
1、ROC曲線能很容易地查出任意界限值時(shí)的對(duì)疾病的識(shí)別能力。
2、選擇最佳的診斷界限值。
3、兩種或兩種以上不同診斷試驗(yàn)對(duì)疾病識(shí)別能力的比較。在對(duì)同一種疾病的兩種或兩種以上診斷方法進(jìn)行比較時(shí),可將各試驗(yàn)的ROC曲線繪制到同一坐標(biāo)中,以直觀地鑒別優(yōu)劣,靠近左上角的ROC曲線所代表的受試者工作最準(zhǔn)確。亦可通過(guò)分別計(jì)算各個(gè)試驗(yàn)的ROC曲線下的面積(AUC)進(jìn)行比較,哪一種試驗(yàn)的AUC最大,則哪一種試驗(yàn)的診斷價(jià)值最佳。
四、交叉驗(yàn)證和過(guò)擬合問(wèn)題
機(jī)器學(xué)習(xí)】Cross-Validation(交叉驗(yàn)證)詳解
10折交叉驗(yàn)證(10-fold Cross Validation)與留一法(Leave-One-Out)、分層采樣(Stratification)
意識(shí)到過(guò)擬合好像也是個(gè)棘手的問(wèn)題,所以在這里補(bǔ)充一下:
簡(jiǎn)單來(lái)講,當(dāng) train set 誤差較小,而 test set 誤差較大時(shí),我們即可認(rèn)為模型過(guò)擬合。這句話表達(dá)的另一層意思是,模型評(píng)估指標(biāo)的方差(variance)較大,即可認(rèn)為模型過(guò)擬合。另外,無(wú)論監(jiān)督學(xué)習(xí)還是非監(jiān)督學(xué)習(xí),均存在過(guò)擬合的問(wèn)題。
有一個(gè)比喻還不錯(cuò),這里也摘抄下來(lái):
語(yǔ)文老師 讓同學(xué)A 解釋一個(gè)句子: ?‘某魯迅先生的文章~~~~~~~~’
欠擬合: ? ?差生: 這是個(gè)什么鬼東西,比例嗶哩嗶哩~~~~
過(guò)擬合: ? ?語(yǔ)文老師的解釋: ‘表面上看是~~~,但其實(shí)~~~~,本質(zhì)上~~~~~~,反映了~~~~心情,烘托了~~~氣氛~~~’
正常: ? ? ? ?當(dāng)時(shí)魯迅先生覺(jué)得天色晚了,該休息了。
那么,如何才能夠在一定程度上避免過(guò)擬合呢?這就引出了交叉驗(yàn)證:
最簡(jiǎn)單的判斷模型是否過(guò)擬合的方法,就是通過(guò)training accuracy 和 test accuracy 數(shù)值大小,直觀的判斷模型是否過(guò)擬合。例如,訓(xùn)練集的準(zhǔn)確率為90%,而測(cè)試集的準(zhǔn)確率為70%,那么我們可以認(rèn)為模型過(guò)擬合。不過(guò),這種方法沒(méi)有明確的判斷標(biāo)準(zhǔn),完全靠個(gè)人的主觀判斷——“感覺(jué)訓(xùn)練和測(cè)試的誤差相差有點(diǎn)大,有可能過(guò)擬合”。
如何利用交叉驗(yàn)證避免過(guò)擬合?
避免模型過(guò)擬合的方法,總結(jié)大概以下幾點(diǎn):
? ?- 重新清洗數(shù)據(jù)(刪除稀疏特征、對(duì)噪聲數(shù)據(jù)進(jìn)行處理(刪除/替換))
- 重新采樣(改變采樣方法等)
- 增加訓(xùn)練數(shù)據(jù)
- 采用交叉驗(yàn)證訓(xùn)練模型
- 重新篩選特征
- 降低模型復(fù)雜度(增加正則項(xiàng):L1,L2)
- dropout(神經(jīng)網(wǎng)絡(luò)中,讓神經(jīng)元一定的概率不工作)
這里探討如何利用交叉驗(yàn)證來(lái)避免模型過(guò)擬合:
第一個(gè)作用是對(duì)模型的性能進(jìn)行評(píng)估。當(dāng)我們通過(guò)一次劃分樣本對(duì)模型進(jìn)行訓(xùn)練和測(cè)試時(shí),由于樣本劃分的偶然性,會(huì)導(dǎo)致我們對(duì)模型的評(píng)估不準(zhǔn)確。因此,可以采用交叉驗(yàn)證對(duì)模型進(jìn)行評(píng)估(一般采用5折或10折,sklearn默認(rèn)采用的是3折),以 n 折交叉驗(yàn)證結(jié)果的均值,作為模型的性能評(píng)估。
第二個(gè)作用就是用來(lái)避免過(guò)擬合。例如當(dāng)我們進(jìn)行10折交叉驗(yàn)證時(shí),訓(xùn)練了10次,得到了10個(gè)模型,每個(gè)模型的參數(shù)也是不同的,那么我們究竟用哪個(gè)模型作為我們最終的模型呢?答案是:一個(gè)都不用!我們要利用全量數(shù)據(jù)重新訓(xùn)練出一個(gè)最終模型!
ROC曲線的繪制方法
關(guān)于實(shí)現(xiàn)ROC曲線的繪制,可通過(guò)多種途徑進(jìn)行,這里列出一些可操作平臺(tái)和方法:
1、SPSS:如何用SPSS做ROC曲線分析?看這1篇就夠了!
2、R語(yǔ)言:R語(yǔ)言邏輯回歸、ROC曲線和十折交叉驗(yàn)證
? ? ? ? ? ? ? ? ? ?ROC曲線基于R語(yǔ)言-(pROC包)
? ? ? ? ? ? ? ? ? ?R語(yǔ)言pROC包繪制ROC曲線
3、Python:機(jī)器學(xué)習(xí)基礎(chǔ)(1)- ROC曲線理解
? ? ? ? ? ? ? ? ? ? ROC原理介紹及利用python實(shí)現(xiàn)二分類和多分類的ROC曲線
4、Matlab:Matlab繪圖——ROC曲線繪制(官方demo)
? ? ? ? ? ? ? ? ? ??ROC曲線詳解及matlab繪圖實(shí)例
小結(jié)
ROC曲線的初步學(xué)習(xí)就到這里,我們初步了解到ROC曲線最初是用來(lái)評(píng)估雷達(dá)兵判斷的轟炸機(jī)信號(hào)準(zhǔn)確性的方法,隨后沿用到了醫(yī)學(xué)指標(biāo)的判定上,在生活中應(yīng)用廣泛。ROC曲線可用于查出任意界限值時(shí)的對(duì)疾病的識(shí)別能力,選擇最佳的診斷界限值,還可以用在評(píng)估機(jī)器學(xué)習(xí)預(yù)測(cè)模型的好壞上(目前好像這方面用的比較多)。當(dāng)然,還有一些問(wèn)題值得討論,比如,何時(shí)需要使用ROC曲線,S折交叉驗(yàn)證平均ROC曲線如何繪制,等等。在機(jī)器學(xué)習(xí)模型構(gòu)建過(guò)程中,訓(xùn)練集和測(cè)試集的建立,模型的交叉驗(yàn)證和ROC曲線評(píng)估的結(jié)合,還需要繼續(xù)學(xué)習(xí)。
參考文獻(xiàn)
Kootte RS, Levin E, Saloj?rvi J, Smits LP, Hartstra AV, Udayappan SD, Hermes G, Bouter KE, Koopen AM, Holst JJ, Knop FK, Blaak EE, Zhao J, Smidt H, Harms AC, Hankemeijer T, Bergman JJGHM, Romijn HA, Schaap FG, Olde Damink SWM, Ackermans MT, Dallinga-Thie GM, Zoetendal E, de Vos WM, Serlie MJ, Stroes ESG, Groen AK, Nieuwdorp M. Improvement of Insulin Sensitivity after Lean Donor Feces in Metabolic Syndrome Is Driven by Baseline Intestinal Microbiota Composition. Cell Metab. 2017 Oct 3;26(4):611-619.e6. doi: 10.1016/j.cmet.2017.09.008. PMID: 28978426.
Liu H, Chen X, Hu X, Niu H, Tian R, Wang H, Pang H, Jiang L, Qiu B, Chen X, Zhang Y, Ma Y, Tang S, Li H, Feng S, Zhang S, Zhang C. Alterations in the gut microbiome and metabolism with coronary artery disease severity. Microbiome. 2019 Apr 26;7(1):68. doi: 10.1186/s40168-019-0683-9. PMID: 31027508; PMCID: PMC6486680.
Rodriguez-Ruiz A, L?ng K, Gubern-Merida A, Broeders M, Gennaro G, Clauser P, Helbich TH, Chevalier M, Tan T, Mertelmeier T, Wallis MG, Andersson I, Zackrisson S, Mann RM, Sechopoulos I. Stand-Alone Artificial Intelligence for Breast Cancer Detection in Mammography: Comparison With 101 Radiologists. J Natl Cancer Inst. 2019 Sep 1;111(9):916-922. doi: 10.1093/jnci/djy222. PMID: 30834436; PMCID: PMC6748773.
Duclos G, Bobbia X, Markarian T, Muller L, Cheyssac C, Castillon S, Resseguier N, Boussuges A, Volpicelli G, Leone M, Zieleskiewicz L. Speckle tracking quantification of lung sliding for the diagnosis of pneumothorax: a multicentric observational study. Intensive Care Med. 2019 Sep;45(9):1212-1218. doi: 10.1007/s00134-019-05710-1. Epub 2019 Jul 29. PMID: 31359081.