在機器學習中評價分類模型時經常會用到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個人疑似感冒了,其中有...