Pytorch 計算誤判率,計算準確率,計算召回率的例子
無論是官方文檔還是各位大神的論文或搭建的網(wǎng)絡(luò)很多都是計算準確率,很少有計算誤判率,
下面就說說怎么計算準確率以及誤判率、召回率等指標
1.計算正確率
獲取每批次的預(yù)判正確個數(shù)
train_correct = (pred == batch_y.squeeze(1)).sum()
該語句的意思是 預(yù)測的標簽與實際標簽相等的總數(shù)
獲取訓練集總的預(yù)判正確個數(shù)
train_acc += train_correct.data[0] #用來計算正確率
準確率 : train_acc / (len(train_data))
2.誤判率
舉例:當你是二分類時,你需要計算 原標簽為1,但預(yù)測為 0 ,以及 原標簽為0,預(yù)測為1的 誤判率
誤判率又分為:
CTW : correct to wrong 標簽為正確的,預(yù)測為錯誤的
WTC: wrong to correct 標簽為錯誤的,預(yù)測為正確的
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,預(yù)測為 0 的總數(shù)
train_correct10 = ((pred==ons)&(batch_y.squeeze(1)==zes)).sum() #原標簽為0,預(yù)測為1 的總數(shù)
train_correct11 = ((pred_y==ons)&(batch_y.squeeze(1)==ons)).sum()
train_correct00 = ((pred_y==zes)&(batch_y.squeeze(1)==zes)).sum()
獲取訓練集總的誤判個數(shù)
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)
最后,當你要計算多分類的誤判率時,只需在二分類的基礎(chǔ)上類推即可
以上這篇Pytorch 計算誤判率,計算準確率,計算召回率的例子就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章

基于django和dropzone.js實現(xiàn)上傳文件

Python實現(xiàn)日志實時監(jiān)測的示例詳解

python opencv3實現(xiàn)人臉識別(windows)

python GUI庫圖形界面開發(fā)之PyQt5開發(fā)環(huán)境配置與基礎(chǔ)使用

Jupyter Notebook切換conda虛擬環(huán)境的實現(xiàn)步驟

pycharm中如何自定義設(shè)置通過“ctrl+滾輪”進行放大和縮小實現(xiàn)方法

Django celery實現(xiàn)異步任務(wù)操作,并在后臺運行(守護進程)