classification_report函数主要用于显示主要分类指标的文本报告
1.前言
在报告中显示每个类的精确度、召回率等信息(可以用来检测回归算法的准确度)。
2.classification_report()参数
详见官方文档,这里只说几个重要参数
y_true
:1维数组,目标值
y_pred
:1维数组,分类器返回的估计值
label
:数组,报告中显示的类标签索引列表
target_names
:字符串列表,当和label
匹配时作为label
的名称
3.classification_report()返回值
混淆矩阵(Confusion Matrix)。
解释一下两个名词
正样本:与你所要研究的目的相关
负样本:与你所要研究的目的无关
举个例子:如果你要做一间教室里的人脸识别,那么正样本就是人脸,负样本就是课桌、门窗之类的
TP(True Positive): 预测为正样本, 实际为正样本(预测正确)
FP(False Positive): 预测为正样本, 实际为负样本 (预测错误)
FN(False Negative): 预测为负样本,实际为正样本 (预测错误)
TN(True Negative): 预测为负样本, 实际为负样本 (预测正确)
精确度(precision)=正确预测的个数(TP)/预测为正样本的个数(TP+FP)
检索结果中,都是你认为应该为正的样本(第二个字母都是P),但是其中有你判断正确的和判断错误的(第一个字母有T ,F)。
召回率(recall)=正确预测值的个数(TP)/实际为正样本的个数(TP+FN)
检索结果中,你判断为正的样本也确实为正的,以及那些没在检索结果中被你判断为负但是事实上是正的,或者说你没预测到的(FN)。
F1值=2*精度*召回率/(精度+召回率)
不明白的话参考以下代码:
1 | In [4]: from sklearn.metrics import classification_report |
最右边support
列为每个标签的出现次数(权重)。
micro avg
:计算所有数据中预测正确的值,比如这里是3/5=0.6
macro avg
:每个类别指标中的未加权平均值(一列),比如准确率(precision)的macro avg
是:$(0.5+1.0+0)/3=0.5$
weighted avg
:每个类别指标中的加权平均,比如准确率(precision)的weighted avg
是:$(0.51+1.03+0*1)/3=0.7$
4.参考资料
[1] 博客园
[2] CSDN博客
[3] CSDN博客