Educoder 第九關ROC曲線與AUC

2021-10-04 17:58:28 字數 884 閱讀 3279

題目是計算auc

結合查到的資料寫的**,很多地方我也不理解含義

雖然在平台ac了

但在python執行沒有輸出auc

不知道什麼緣故

import numpy as np

def calauc(prob, labels):

'''計算auc並返回

:param prob: 模型**樣本為positive的概率列表,型別為ndarray

:param labels: 樣本的真實類別列表,其中1表示positive,0表示negtive,型別為ndarray

:return: auc,型別為float

'''#********* begin *********#

def m(labels):

return np.sum(labels==1)

def n(prob):

return np.sum(labels==0)

f = list(zip(prob,labels))//list函式:形成列表。zip函式:壓縮兩個列表為乙個。

rank = [values2 for values1,values2 in sorted(f,key=lambda x:x[0])] //???不理解

ranklist = [i+1 for i in range(len(rank)) if rank[i]==1] //???如果rank[i]==1則i+1 ???

auc = 0

auc = (sum(ranklist) - (m(labels)*(m(labels)+1))/2)/(m(labels)*n(labels))

return auc

#********* end *********#

PR曲線與ROC曲線

pr曲線中的p代表的是precision 精準率 r代表的是recall 召回率 其代表的是精準率與召回率的關係,一般情況下,將recall設定為橫座標,precision設定為縱座標。在機器學習中,分類器往往輸出的不是類別標號,而是屬於某個類別的概率值,根據分類器的 結果從大到小對樣例進行排序,排...

ROC曲線與PR曲線對比

tpr tpp tpt p fn tpr frac frac tpr pt p t p fn tp fpr fpn fpf p tn fpr frac frac fpr nf p f p tn fp roc曲線的縱座標為tpr,真正率,其實也是召回率。分母為所有實際正樣本。roc曲線的縱座標為fpr...

ks 曲線 ROC曲線與KS曲線的理解

roc曲線 roc曲線是評判乙個模型好壞的標準,有兩個值要知道,fpr 假正率 和tpr 真正率 roc曲線就是以這兩個值為座標軸畫的。比如邏輯回歸得到的結果是概率,那麼就要取閾值來劃分正負,這時候,每劃乙個閾值,就會產生一組fpr和tpr的值,然後把這組值畫成座標軸上的乙個點,這樣,當選取多組閾值...