机器学习最常见的模型评估指标,其中包括:
Precision(精确度)
Recall(召回率)
F1-score(F1值)
PRC曲线
ROC和AUC
Accuracy(精度、准确率)和Error Rate(错误率)是分类模型中最常见的两种性能度量指标,既适用于二分类任务,也适用于多分类任务。
对于分类模型f和大小为n的测试集D,Accuracy(精度)的定义为:
Accuracy = 分对的样本点个数/总的测试的样本个数
混淆矩阵(confusion matrix)
对于大部分二分类问题,尤其是不平衡数据集(即一个类别出现的次数比另一个类别多很多),通常用的分类评估方法精度指标accuracy并不能很好的反映模型的好坏。
由混要矩阵可以延伸出一些列的指标,包括精度,精确率召回率等。
精度accuracy = (TP+TN)/(TP+TN+FP+FN)
精确率precision = TP/(TP+FP)召回率recall = TP/(TP+FN)
精度比较好理解,就是预测准确的数占所有样本的比例,是最基本的指标;
精确率表示被预测为正例的样本中有多少是真正的样本。(查准率)
召回率表示所有正类的样本中有多少是被准确预测为正类。(查全率)
这个问题我们真正应该关心的是有多少恐怖分子被识别出来,刚好对应的召回率。
F1-score(F1分值)
通常,查准率与查全率之间是反比关系。所以要想得到好的模型,我们需要另外一个指标( F1-score )。
F1分值是精确率和召回率的调和值(它是精确率和召回率的调和平均数),更接近于两个数较小的那个,所以精确率和召回率接近时,F1分值最大。很多推荐系统的评测指标就是用F值的。
有时候公式写为如下的形式:
注:调和平均数(倒数平均数),x_1,x_2………x_n的调和平均数为:
通常,查准率与查全率之间是反比关系,一个量的增加很可能意味着另一个量的减少。脑外科手术提供了一个很鲜明的例子。外科医生需要移除所有的肿瘤细胞,因为任何剩余的癌细胞都会再生肿瘤(召回率)。但是,外科医生必须不移除健康的脑细胞,因为这会使病人的脑功能受损(准确率)。
决策1:外科医生有可能会更自由更大胆地在大脑区域中移除癌细胞。这一决定增加查全率,但降低了查准率。
决策2:另一方面,外科医生可能会在大脑中更保守地移除癌细胞。这一决定提高了查准率,但减少了查全率。
也就是说,更高的查全率增加了消除健康细胞(阴性结果)的机会,并且也增加了消除所有癌细胞(阳性结果)的机会。更高的查准率降低了去除健康细胞(阳性结果)的机会,但也降低了消除所有的癌细胞(阴性结果)的机会。
classification_report简介
sklearn中的classification_report函数用于显示主要分类指标的文本报告.在报告中显示每个类的精确度,召回率,F1值等信息。 主要参数:
y_true:1维数组,或标签指示器数组/稀疏矩阵,目标值。
y_pred:1维数组,或标签指示器数组/稀疏矩阵,分类器返回的估计
labels:array,
shape = [n_labels],报表中包含的标签索引的可选列表。
target_names:字符串列表,与标签匹配的可选显示名称(相同顺序)。
强调: y_true和y_pred位置千万不要对调;
现在有四个样本点,实际上的标签为[1,0,0,1],分类的标签为[0,0,0,1]
则每个类别的召回率、精确率和F1-score值以及对应的混淆矩阵
宏平均(Macro-averaging)是指所有类别的每一个统计指标值的算数平均值,也就是宏精确率(Macro-Precision),宏召回率(Macro-Recall),宏F值(Macro-F Score),其计算公式如下:
宏查准率
宏查全率
宏F1
微平均(Micro-averaging)是将各个混淆矩阵对应元素平均,得到TP、FP、TN、FN,然后计算相应的平均值。其计算公式如下:
微查准率
微查全率
微F1