1、分類算法的評估
一、二分類
ROC與AUC
1.1 roc曲線:接收者操做特徵(receiveroperating characteristic)
roc曲線上每一個點反映着對同一信號刺激的感覺性。橫軸:負正類率(false postive rate FPR)特異度,劃分實例中全部負例佔全部負例的比例;(1-Specificity);縱軸:真正類率(true postive rate TPR)靈敏度,Sensitivity(正類覆蓋率)。算法
2針對一個二分類問題,將實例分紅正類(postive)或者負類(negative)。可是實際中分類時,會出現四種狀況.post
(1)若一個實例是正類而且被預測爲正類,即爲真正類(True Postive TP)測試
(2)若一個實例是正類,可是被預測成爲負類,即爲假負類(False Negative FN)code
(3)若一個實例是負類,可是被預測成爲正類,即爲假正類(False Postive FP)排序
(4)若一個實例是負類,可是被預測成爲負類,即爲真負類(True Negative TN)ci
TP:正確的確定數目it
FN:漏報,沒有找到正確匹配的數目方法
FP:誤報,沒有的匹配不正確統計
TN:正確拒絕的非匹配數目vi
列聯表以下,1表明正類,0表明負類:
由上表可得出橫,縱軸的計算公式:
(1)真正類率(True Postive Rate)TPR: TP/(TP+FN),表明分類器預測的正類中實際正實例佔全部正實例的比例。Sensitivity
(2)負正類率(False Postive Rate)FPR: FP/(FP+TN),表明分類器預測的正類中實際負實例佔全部負實例的比例。1-Specificity
(3)真負類率(True Negative Rate)TNR: TN/(FP+TN),表明分類器預測的負類中實際負實例佔全部負實例的比例,TNR=1-FPR。Specificity
假設採用邏輯迴歸分類器,其給出針對每一個實例爲正類的機率,那麼經過設定一個閾值如0.6,機率大於等於0.6的爲正類,小於0.6的爲負類。對應的就能夠算出一組(FPR,TPR),在平面中獲得對應座標點。隨着閾值的逐漸減少,愈來愈多的實例被劃分爲正類,可是這些正類中一樣也摻雜着真正的負實例,即TPR和FPR會同時增大。閾值最大時,對應座標點爲(0,0),閾值最小時,對應座標點(1,1)。
以下面這幅圖,(a)圖中實線爲ROC曲線,線上每一個點對應一個閾值。
橫軸FPR:1-TNR,1-Specificity,FPR越大,預測正類中實際負類越多。
縱軸TPR:Sensitivity(正類覆蓋率),TPR越大,預測正類中實際正類越多。
理想目標:TPR=1,FPR=0,即圖中(0,1)點,故ROC曲線越靠攏(0,1)點,越偏離45度對角線越好,Sensitivity、Specificity越大效果越好。
二 如何畫roc曲線
假設已經得出一系列樣本被劃分爲正類的機率,而後按照大小排序,下圖是一個示例,圖中共有20個測試樣本,「Class」一欄表示每一個測試樣本真正的標籤(p表示正樣本,n表示負樣本),「Score」表示每一個測試樣本屬於正樣本的機率。
接下來,咱們從高到低,依次將「Score」值做爲閾值threshold,當測試樣本屬於正樣本的機率大於或等於這個threshold時,咱們認爲它爲正樣本,不然爲負樣本。舉例來講,對於圖中的第4個樣本,其「Score」值爲0.6,那麼樣本1,2,3,4都被認爲是正樣本,由於它們的「Score」值都大於等於0.6,而其餘樣本則都認爲是負樣本。每次選取一個不一樣的threshold,咱們就能夠獲得一組FPR和TPR,即ROC曲線上的一點。這樣一來,咱們一共獲得了20組FPR和TPR的值,將它們畫在ROC曲線的結果以下圖:
AUC(Area under Curve):Roc曲線下的面積,介於0.1和1之間。Auc做爲數值能夠直觀的評價分類器的好壞,值越大越好。
首先AUC值是一個機率值,當你隨機挑選一個正樣本以及負樣本,當前的分類算法根據計算獲得的Score值將這個正樣本排在負樣本前面的機率就是AUC值,AUC值越大,當前分類算法越有可能將正樣本排在負樣本前面,從而可以更好地分類。
2、AUC計算
公式解釋: 一、爲了求的組合中正樣本的score值大於負樣本,若是全部的正樣本score值都是大於負樣本的,那麼第一位與任意的進行組合score值都要大,咱們取它的rank值爲n,可是n-1中有M-1是正樣例和正樣例的組合這種是不在統計範圍內的(爲計算方便咱們取n組,相應的不符合的有M個),因此要減掉,那麼同理排在第二位的n-1,會有M-1個是不知足的,依次類推,故獲得後面的公式M*(M+1)/2,咱們能夠驗證在正樣本score都大於負樣本的假設下,AUC的值爲1 二、根據上面的解釋,不可貴出,rank的值表明的是可以產生score前大後小的這樣的組合數,可是這裏包含了(正,正)的狀況,因此要減去這樣的組(即排在它後面正例的個數),便可獲得上面的公式 另外,特別須要注意的是,再存在score相等的狀況時,對相等score的樣本,須要 賦予相同的rank(不管這個相等的score是出如今同類樣本仍是不一樣類的樣本之間,都須要這樣處理)。具體操做就是再把全部這些score相等的樣本 的rank取平均。而後再使用上述公式。
二、多分類