class CountARP(object):
'''
TP:正类预测成正类 FP:负类预测成正类
TN:负类预测成负类 FN:正类预测成负类
'''
def __init__(self):
self.TP, self.FP = 0,0
self.TN, self.FN = 0,0
def get_TF(self,pred,label):
for i in range(len(pred)):
if pred[i] == 1 and label[i] == 1:
self.TP += 1
if pred[i] == 1 and label[i] == 0:
self.FP += 1
if pred[i] == 0 and label[i] == 0:
self.TN += 1
if pred[i] == 0 and label[i] == 1:
self.FN += 1
return 0
def get_ARP(self,pred,label):
self.get_TF(pred,label)
if self.TP * self.FP != 0:
precision = self.TP / (self.TP + self.FP)
elif self.TP * self.FP == 0:
precision = 0
if self.TP * self.FN != 0:
recall = self.TP / (self.TP + self.FN)
elif self.TP * self.FN == 0:
recall = 0
if self.TP * self.FP * self.TN * self.FN != 0:
accuracy = (self.TP + self.TN) / (self.TP + self.FP + self.TN + self.FN)
elif self.TP * self.FP * self.TN * self.FN == 0:
accuracy = 0
return precision*100, recall*100, accuracy*100
if __name__=='__main__':
precision, recall, accuracy= CountARP().get_ARP(pred,label)
print(precision, recall, accuracy)
10 统计准确率、精确率、召回率
最新推荐文章于 2024-01-18 16:11:14 发布