Pytorch 計算誤判率,計算準確率,計算召回率

無論是官方文檔還是各位大神的論文或搭建的網絡很多都是計算準確率,很少有計算誤判率,

下面就說說怎麼計算準確率以及誤判率、召回率等指標

1.計算正確率

獲取每批次的預判正確個數

train_correct = (pred == batch_y.squeeze(1)).sum()

該語句的意思是 預測的標籤與實際標籤相等的總數

獲取訓練集總的預判正確個數

train_acc += train_correct.data[0]      #用來計算正確率

準確率 : train_acc / (len(train_data))


2.誤判率

舉例:當你是二分類時,你需要計算 原標籤爲1,但預測爲 0 ,以及 原標籤爲0,預測爲1的 誤判率

誤判率又分爲:

CTW : correct to wrong    標籤爲正確的,預測爲錯誤的

WTC: wrong to correct     標籤爲錯誤的,預測爲正確的


zes=Variable(torch.zeros(lasize).type(torch.LongTensor))#全0變量

ons=Variable(torch.ones(lasize).type(torch.LongTensor))#全1變量

train_correct01 = ((pred==zes)&(batch_y.squeeze(1)==ons)).sum()  #原標籤爲1,預測爲 0 的總數

train_correct10 = ((pred==ons)&(batch_y.squeeze(1)==zes)).sum()  #原標籤爲0,預測爲1  的總數

train_correct11 = ((pred_y==ons)&(batch_y.squeeze(1)==ons)).sum()
train_correct00 = ((pred_y==zes)&(batch_y.squeeze(1)==zes)).sum()

獲取訓練集總的誤判個數

FN += train_correct01.data[0]       

FP += train_correct10.data[0]

TP += train_correct11.data[0]  
TN += train_correct00.data[0]


誤判率

(FN+FP)/(len(train_data))    #CTW+WTC


3.精準率和召回率

精準率: P = TP/ (TP+FP)
召回率: R = TP/ (TP+FN)


4.真正例率和假正例率

真正例率:TPR = TP/ (TP+FN)
假正例率:FPR =FP/ (FP+TN)


最後,當你要計算多分類的誤判率時,只需在二分類的基礎上類推即可

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章