機器學習之ROC曲線

2021-09-05 18:59:57 字數 2542 閱讀 6627

在機器學習中評價分類模型時經常會用到roc曲線。

要學習roc曲線首先得知道什麼是tpr,什麼是fpr。

tpr的英文全稱為:true positive rate

fpr的英文全稱為:false positive rate

中文解釋為:

tpr(真正例率):真實值是正例,且**為正例的比例

fpr(假正例率):真實值為負例,而**為正例的比例

怎麼感覺有些繞口令啊?

ok,看下圖:

根據上圖圖示我們可以看到,真實的情況和**的情況把整體分成了4個部分:

a部分:真實為正例,**為正例

b部分:真實為正例,**為負例

c部分:真實為負例,**為正例

d部分:真實為負例,**為負例

問:什麼是正例,什麼是負例?

這個是你自己設定的,比如說我們定義是美女就是正例,是如花就是負例

於是上文就變成了:

roc曲線就是以tpr為y軸,以fpr為x軸,然後以乙個對不同的**值進行分類.

當取不同閾值時會得到不同的tpr和fpr,對應於roc曲線上的乙個點。

那麼roc曲線就反映了fpr與tpr之間動態關係的情況。

通俗地來說,即在tpr隨著fpr遞增的情況下,誰增長得更快,快多少的問題。

tpr增長得越快,曲線越往上曲,反映了模型的分類效能就越好。

當正負樣本不平衡時,這種模型評價方式比起一般的精確度評價方式 的好處尤其顯著。

問:閾值到底是什麼?是乙個固定的值嗎?比如說美女的比例

閾值不是乙個固定的值,它是你隨意指定的。先不要糾結於閾值是什麼,下文看家roc曲線是怎麼畫的你就知道它是什麼了(其實什麼都不是)

畫roc

下面舉個例子吧:

公司來了10個同事,全都是姑娘,但是美不美不知道。早已磨刀霍霍的兄弟們開始八卦:到底有幾位美女

同事a:有9位美女

同事b:有8位美女

同事c:有7位美女

同事d:有3位不美女

同事e:有2位不美女

同事f:有1位不美女

於是我們得到下面的概率矩陣:

分類概率

美女(正例)

0.9美女(正例)

0.8美女(正例)

0.7不是美女(負例)

0.3不是美女(負例)

0.2不是美女(負例)

0.1roc曲線的x軸和y軸取值範圍都是[0,1],現在我們開始畫圖——根據從大到小遍歷**值,把當前的**值當做閾值,計算fpr和tpr。

step1:選擇閾值最大,即為1,正例中和反例中都沒有**值大於等於1的,所以fpr=tpr=0。

step2:根據上表,選擇閾值為0.9,正例中有1個樣本的**值大於等於1,反例中有0個,所以,tpr=1/3,fpr=0。

step3:根據上表,選擇閾值為0.8,正例中有2個樣本的**值大於等於1,反例中有0個,所以,tpr=2/3,fpr=0。

step4:根據上表,選擇閾值為0.7,正例中有3個樣本的**值大於等於1,反例中有0個,所以,tpr=1,fpr=0。

step5:根據上表,選擇閾值為0.3,正例中有3個樣本的**值大於等於1,反例中有1個,所以,tpr=1,fpr=1/3。

step6:根據上表,選擇閾值為0.2,正例中有3個樣本的**值大於等於1,反例中有2個,所以,tpr=1,fpr=2/3。

step7:根據上表,選擇閾值為0.1,正例中有3個樣本的**值大於等於1,反例中有3個,所以,tpr=1,fpr=1。

綜上,我們得到下表

tprfpr

01/3

02/301

1/31

2/3111

描點連線,畫圖如下:

ok明白了嗎?在這裡閾值是隨意設的,設乙個閾值以後會得到一組tpr和fpr;然後換個閾值再得到另外一組tpr和fpr,然後描點成線。

當然這裡只是取了一種最特殊的情況。真實情況一般是這樣的:

其中:(0,0)表示:fpr=0,tpr=0。沒有負樣本**錯誤(也就是負樣本全部**正確),正樣本全部**錯誤。這說明把全部樣本都**為了負樣本。

(1,1)表示:fpr=1,tpr=1。負樣本全部**錯誤,正樣本全部**正確。這說明把全部樣本都**為了正樣本。

(0,1)表示:fpr=0,tpr=1。負樣本全部**正確,正樣本全部**正確。這個模型很完美。

(1,0) 表示:fpr=1,tpr=0。負樣本全部**錯誤,正樣本全部**錯誤。這個模型太爛了。

機器學習之ROC曲線理解

曲線的座標分別為真正例率 tpr 和假正例率 fpr 定義如下 真正例的個數是實際值為正例被 成為正例的值得個數,tpr是 結果中真正例占實際值中正例的比例 反正例的個數是實際值為反例被 成為正例的值得個數,fpr是 結果中反正例占實際值中的反例的比例 很多學習器是為測試樣本是產生乙個實值或概率 然...

機器學習 PR曲線, ROC曲線

在機器學習領域,如果把accuracy作為衡量模型效能好壞的唯一指標,可能會使我們對模型效能產生誤解,尤其是當我們模型輸出值是乙個概率值時,更不適宜只採取accuracy作為衡量模型性泛化能的指標 這篇博文會為大家介紹兩種比較二分決策模型效能的方法pr曲線,roc曲線 對於分類問題我們可以直接 輸入...

瞎聊機器學習 PR曲線 ROC曲線 AUC

roc曲線經常作為評估二分類的重要指標,其起源於軍事領域,全稱叫做receiver operating characteristic curve。roc曲線是二維平面內的曲線,其橫座標為假陽性率 fpr 縱座標為真陽性率 tpr 他們的計算方法如下 上式中 舉個例子 假設有10個人疑似感冒了,其中有...