題目是計算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的值,然後把這組值畫成座標軸上的乙個點,這樣,當選取多組閾值...