AUC及其計算

2022-07-14 09:27:11 字數 1121 閱讀 2204

含義理解二 : auc(are under curve)是乙個模型的評價指標,用於分類任務。

那麼這個指標代表什麼呢?這個指標想表達的含義,簡單來說其實就是隨機抽出一對樣本(乙個正樣本,乙個負樣本),然後用訓練得到的分類器來對這兩個樣本進行**,**得到正樣本的概率大於負樣本概率的概率。

參考方法一 : 定義計算 -> 計算面積 -> 不好實現

方法二: 從概率的角度進行實現

有如下公式:

公式解釋:

首先對score從大到小排序,然後令最大score對應的sample 的rank為n,第二大score對應sample的rank為n-1,以此類推。然後把所有的正類樣本的rank相加,再減去m-1種兩個正樣本組合的情況。得到的就是所有的樣本中有多少對正類樣本的score大於負類樣本的score。然後再除以m×n

**實現:

import numpy as np

def calculate_auc(y, p):

'''y: 真實label的向量 ndarray

p: **為正例的概率的向量 ndarray

'''# 保證相同概率的0排在1前面

tmp = np.array(sorted(zip(y, p), key=lambda x:(x[1], -x[0]), reverse=true))

neg = 0

pos = 0

for i in y:

if i == 0:

neg += 1

elif i == 1:

pos += 1

loss = 0

neglst = np.array()

for i in range(len(tmp)):

if tmp[i][0] == 1:

loss += np.sum(neglst == tmp[i][1]) / 2 + np.sum(neglst != tmp[i][1])

else:

return 1 - loss / (neg*pos)

參考:

時間匆匆,簡單記錄~

AUC如何計算

auc area under curve 是機器學習二分類模型中非常常用的評估指標,相比於f1 score對專案的不平衡有更大的容忍性,目前常見的機器學習庫中 比如scikit learn 一般也都是整合該指標的計算,但是有時候模型是單獨的或者自己編寫的,此時想要評估訓練模型的好壞就得自己搞乙個au...

auc計算公式 AUC與logloss

在ctr預估中,auc area under curve 用於衡量排序能力,auc值為roc曲線下的面積,是乙個概率值,越大越好。簡單來說這個指標的含義其實就是隨機抽出一對樣本 乙個正樣本,乙個負樣本 然後用訓練得到的分類器來對這兩個樣本進行 得到正樣本的概率大於負樣本概率的概率。auc是乙個二分類...

AUC計算方法總結

auc area under the curve 是一種用來度量分類模型好壞的乙個標準,這裡不詳細敘述auc的定義及意義,詳見wiki。演算法1 如下圖是乙個分類器的結果,計算點形成的折線的面積就是auc的值 如下 public double aucalg1 if scores 1 contains...