AUC與ROC的理解與實現(xiàn)

混淆矩陣

  • True negative(TN)肺然,稱為真負率陷揪,表明實際是負樣本預測成負樣本的樣本數(shù)
  • False positive(FP)艺蝴,稱為假正率猬腰,表明實際是負樣本預測成正樣本的樣本數(shù)
  • False negative(FN),稱為假負率猜敢,表明實際是正樣本預測成負樣本的樣本數(shù)
  • True positive(TP)姑荷,稱為真正率,表明實際是正樣本預測成正樣本的樣本數(shù)

幾乎所有評價指標缩擂,都是建立在混淆矩陣基礎上的鼠冕,包括準確率、精準率胯盯、召回率懈费、F1-score、AUC博脑。

ROC曲線

  • 縱軸:True Positive Rate(真正率憎乙,TPR薄坏,recall)預測為正樣本且預測對了的可能性。對于真正例率TPR寨闹,分子是得分>閾值t里面正樣本的數(shù)目胶坠,分母是總的正樣本數(shù)目。

  • 橫軸:False Positive Rate(假正率繁堡,F(xiàn)PR)預測為正樣本但是預測錯了的可能性沈善。對于假正例率FPR,分子是得分>閾值t里面負樣本的數(shù)目椭蹄,分母是總的負樣本數(shù)目绳矩。

    因此翼馆,如果定義N+(t),N?(t)分別為得分大于t的樣本中正負樣本數(shù)目严沥,N+,N?為總的正負樣本數(shù)目消玄,那么TPR和FPR可以表達為閾值t的函數(shù):


    隨著閾值t的變化,TPR和FPR在坐標圖上形成一條曲線兔跌,這條曲線就是ROC曲線浮定。

  • (0,0):假正率和真正率都為0立美,即分類器全部預測成負樣本

  • (0,1):假正率為0建蹄,真正率為1,全部完美預測正確

  • (1,0):假正率為1嘿棘,真正率為0鸟妙,全部完美預測錯誤

  • (1,1):假正率和真正率都為1,即分類器全部預測成正樣本

  • TPR=FPR房午,斜對角線郭厌,預測為正樣本的結(jié)果一半是對的,一半是錯的液走,代表隨機分類器的預測效果


AUC

ROC曲線一定程度上可以反映分類器的分類效果,但是不夠直觀巷懈,于是,就有了AUC涌攻。AUC實際上就是ROC曲線下的面積。AUC直觀地反映了ROC曲線表達的分類能力因痛。

  • AUC = 1鸵膏,代表完美分類器
  • 0.5 < AUC < 1廓译,優(yōu)于隨機分類器
  • 0 < AUC < 0.5,差于隨機分類器

AUC這個指標有兩種解釋方法院仿,一種是傳統(tǒng)的“曲線下面積”解釋,另一種是關(guān)于排序能力的解釋排惨。其含義可以大概理解為:隨機給定一個正樣本和一個負樣本,分類器輸出該正樣本為正的那個概率值比分類器輸出該負樣本為正的那個概率值大的可能性。可以看出在這個解釋下聚假,我們關(guān)心的只有正負樣本之間的分數(shù)高低,而具體的分值則無關(guān)緊要。即不關(guān)注具體得分,只關(guān)注排序結(jié)果喷户,因此河哑,它特別適用于排序問題的效果評估鲤妥,例如推薦排序的評估底扳。

用AUC評價CTR

  • PCTR是把分類器輸出的概率蒲赂,即點擊率的預估值,內(nèi)容的召回往往是根據(jù)PCTR的排序而決定的。我們不僅希望分類器給出是否點擊的分類信息意系,更需要分類器給出準確的概率值,作為排序的依據(jù)饺汹。
  • AUC量化了ROC曲線表達的分類能力蛔添,直觀地反映了PCTR的準確性(排序能力)。分類能力越好(AUC越大),那么輸出概率越合理迎瞧,排序的結(jié)果越合理夸溶。

AUC求解

  1. 得到結(jié)果數(shù)據(jù),數(shù)據(jù)結(jié)構(gòu)為:輸出概率(pctr)凶硅,標簽真值(click)
  2. 對結(jié)果數(shù)據(jù)按輸出概率(pctr)進行從大到小排序
  3. 從大到小缝裁,把每一個輸出概率作為分類閾值,統(tǒng)計該分類閾值下的TPR和FPR
  4. 微元法計算ROC曲線面積足绅、繪制ROC曲線

代碼實現(xiàn)

部分代碼

    def get_roc(data,pos,neg):
        data = sorted(data , key = lambda x:x[0] , reverse = True)
        roc_arr = []
        tp = fp = 0
        for sample in data:
            tp += (1 if sample[1] == 1 else 0)
            fp += (1 if sample[1] == -1 else 0)
            roc_arr.append((fp/neg , tp/pos))
        return roc_arr
    
    def draw_roc(roc_arr):
        x = [sample[0] for sample in roc_arr]
        y = [sample[1] for sample in roc_arr]
        
        plt.title("ROC curve")
        plt.xlabel("False Positive Rate")
        plt.ylabel("True Positive Rate")
        plt.plot(x,y)
        plt.show()
    
    def get_auc(roc_arr):
        #計算曲線下面積
        auc = 0.
        prev_x = 0
        for x,y in roc_arr:
            auc += (x - prev_x) * y
            prev_x = x
        return auc

ROC

手寫實現(xiàn)AUC:0.747925810015887
調(diào)用sklearn計算AUC:0.7479258153531436

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末捷绑,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子氢妈,更是在濱河造成了極大的恐慌粹污,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,084評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件首量,死亡現(xiàn)場離奇詭異壮吩,居然都是意外死亡,警方通過查閱死者的電腦和手機蕾总,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,623評論 3 392
  • 文/潘曉璐 我一進店門粥航,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人生百,你說我怎么就攤上這事递雀。” “怎么了蚀浆?”我有些...
    開封第一講書人閱讀 163,450評論 0 353
  • 文/不壞的土叔 我叫張陵缀程,是天一觀的道長。 經(jīng)常有香客問我市俊,道長杨凑,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,322評論 1 293
  • 正文 為了忘掉前任摆昧,我火速辦了婚禮撩满,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘绅你。我一直安慰自己伺帘,他們只是感情好,可當我...
    茶點故事閱讀 67,370評論 6 390
  • 文/花漫 我一把揭開白布忌锯。 她就那樣靜靜地躺著伪嫁,像睡著了一般。 火紅的嫁衣襯著肌膚如雪偶垮。 梳的紋絲不亂的頭發(fā)上张咳,一...
    開封第一講書人閱讀 51,274評論 1 300
  • 那天帝洪,我揣著相機與錄音,去河邊找鬼脚猾。 笑死葱峡,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的婚陪。 我是一名探鬼主播族沃,決...
    沈念sama閱讀 40,126評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼频祝,長吁一口氣:“原來是場噩夢啊……” “哼泌参!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起常空,我...
    開封第一講書人閱讀 38,980評論 0 275
  • 序言:老撾萬榮一對情侶失蹤沽一,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后漓糙,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體铣缠,經(jīng)...
    沈念sama閱讀 45,414評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,599評論 3 334
  • 正文 我和宋清朗相戀三年昆禽,在試婚紗的時候發(fā)現(xiàn)自己被綠了蝗蛙。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,773評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡醉鳖,死狀恐怖捡硅,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情盗棵,我是刑警寧澤壮韭,帶...
    沈念sama閱讀 35,470評論 5 344
  • 正文 年R本政府宣布,位于F島的核電站纹因,受9級特大地震影響喷屋,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜瞭恰,卻給世界環(huán)境...
    茶點故事閱讀 41,080評論 3 327
  • 文/蒙蒙 一屯曹、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧惊畏,春花似錦恶耽、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,713評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至农曲,卻和暖如春社搅,著一層夾襖步出監(jiān)牢的瞬間驻债,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,852評論 1 269
  • 我被黑心中介騙來泰國打工形葬, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留合呐,地道東北人。 一個月前我還...
    沈念sama閱讀 47,865評論 2 370
  • 正文 我出身青樓笙以,卻偏偏與公主長得像淌实,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子猖腕,可洞房花燭夜當晚...
    茶點故事閱讀 44,689評論 2 354

推薦閱讀更多精彩內(nèi)容