1、阐述 tp fp fn tn其原理
预测值为正例,记为P(Positive)
预测值为反例,记为N(Negative)
预测值与真实值相同,记为T(True)
预测值与真实值相反,记为F(False)
TP -- 预测值和真实值一样,预测值为正样本(真实值为正样本)
TN -- 预测值和真实值一样,预测值为负样本(真实值为负样本)
FP -- 预测值和真实值不一样,预测值为正样本(真实值为负样本)
FN -- 预测值和真实值不一样,预测值为负样本(真实值为正样本)
2、两张图片 为例计算 4个参数
import numpy as np
import math
def compute_pos_neg(y_actual, y_hat):
TP = 0; FP = 0;TN = 0; FN = 0
for i in range(len(y_hat)):
if y_actual[i]==y_hat[i]==1:
TP += 1
if y_hat[i]==1 and y_actual[i]!=y_hat[i]:
FP += 1
if y_actual[i]==y_hat[i]==0:
TN += 1
if y_hat[i]==0 and y_actual[i]!=y_hat[i]:
FN += 1
return TP,FP,TN,FN
def metrics(TP,FP,TN,FN):
a=TP+FP
b=TP+FN
c=TN+FP
d=TN+FN
#mcc=((TP*TN)-(FP*FN))/(math.sqrt(float(a*b*c*d)+0.0001))
#F1=(2*TP)/float(2*TP+FP+FN+.0000001)
precision=TP/float(TP+FP+.0000001)
#recall=TP/floa