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)
最後,當你要計算多分類的誤判率時,只需在二分類的基礎上類推即可
以上這篇Pytorch 計算誤判率,計算準確率,計算召回率的例子就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。