首先我们来介绍一下这些名称的含义。
- TP: 预测为1(Positive),实际也为1(Truth-预测对了)
- TN: 预测为0(Negative),实际也为0(Truth-预测对了)
- FP: 预测为1(Positive),实际为0(False-预测错了)
- FN: 预测为0(Negative),实际为1(False-预测错了)
Accuracy = (预测正确的样本数)/(总样本数)=(TP+TN)/(TP+TN+FP+FN)
Precision = (预测为1且正确预测的样本数)/(所有预测为1的样本数) = TP/(TP+FP)
Recall = (预测为1且正确预测的样本数)/(所有真实情况为1的样本数) = TP/(TP+FN)
由于Precision/Recall是两个值,无法根据两个值来对比模型的好坏。于是有了F1评价指标。
F1 = 2*(Precision*Recall)/(Precision+Recall)
这里快捷的计算方法是使用sklearn封装好的metrics类即可。
使用方法如下:
from sklearn.metrics import classification_report
y=[0,1,2,2,2]
y_=[0,0,2,2,1]
target_names=['class 0','class 1','class 2']
print(classification_report(y,y_,target_names=tar)
那么在深度学习CNN图像分类网络中如何使用呢,