首先,来了解一下下真正例、假正例、假负例、真负例。(TP,FP,FN,TN)
听着就迷迷糊糊
不过,有了下面这张图就好理解多了
嘻嘻这是我花了二十分钟做出来的!!!
下面郑重介绍一下这四个词:
·真正例 TP :实际值为yes ,预测也为yes
·假正例 FP :实际值为no,预测为yes
·假负例 FN :实际值为yes,预测为no
·真负例 TN:实际值为no,预测为no
其实,只要好好分析字母含义,就能很好地理解了><
然后进入正题:三个指标(准确率,精度,召回率)
·accrucy
(预测正确的占总量)
accuracy=(TP+TN)/(TP+TN+FP+FN)
·precision
(预测正类预测正确的占预测为正类的)
precision=TP/(TP+FP)
·recall
(预测正类预测正确的占实际为正类的)
recall=TP/(TP+FN)
(ps:附加新鲜出炉的代代码)
forecast=[1,0,1,1,1,0,1,1,1,1,0,0,1,1,0,0,0,0,0,1,0,1,0,0]
tru =[1,0,1,1,1,0,1,1,1,1,0,0,1,1,0,0,0,1,0,1,0,1,0,0]
l={'TP': 0, 'TN':0, 'FP': 0, 'FN': 0}
le=len(tru)
#print(le)
for i in range(0,le):
if forecast[i]==1 and tru[i]==1:
l['TP']+=1
if forecast[i]==0 and tru[i]==1:
l['FN']+=1
if forecast[i]==1 and tru[i]==0:
l['FP']+=1
if forecast[i]==0 and tru[i]==0:
l['TN']+=1
print(l)
TP=l['TP']
FP=l['FP']
TN=l['TN']
FN=l['FN']
accuracy=(TP+TN)/(TP+TN+FP+FN)
precision=TP/(TP+FP)
recall=TP/(TP+FN)
print(accuracy,precision,recall)
版权声明:本文为qq_43981607原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。