無論是官方文檔還是各位大神的論文或搭建的網絡很多都是計算準確率,很少有計算誤判率,
下面就說說怎麼計算準確率以及誤判率、召回率等指標
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.精準率和召回率
4.真正例率和假正例率
最後,當你要計算多分類的誤判率時,只需在二分類的基礎上類推即可