分类评价指标介绍
评价指标
在机器学习中,性能指标(Metrics)是衡量一个模型好坏的关键,通过衡量模型输出y_predict和y_true之间的某种“距离”得出的。
下面是常用的分类评估指标的Sklearn方法:
准确率
准确率是指我们的模型预测正确的结果所占的比例。
正式点说,准确率的定义如下:
$Accuracy=\frac{Number of correct predictions}{Total number of predictions}$
精确率
精确率指标尝试回答以下问题:
在被识别为正类别的样本中,确实为正类别的比例是多少?
精确率的定义如下:
$Precision=\frac{TP}{TP+FP}$
召回率
召回率尝试回答以下问题:
在所有正类别样本中,被正确识别为正类别的比例是多少?
从数学上讲,召回率的定义如下:
$recall=\frac{TP}{TP+FN}$
F1 Score
混淆矩阵
分类报告
ROC
ROC 曲线用于绘制采用不同分类阈值时的 TPR 与 FPR。
降低分类阈值会导致将更多样本归为正类别,从而增加假正例和真正例的个数。
准确率
分类正确的样本个数占总样本的比例
1 |
|
精确率
所有分正确的正样本/所有预测为正类的样本数。
- 宏平均(Macro-averaging),是先对每一个类统计指标值,然后在对所有类求算术平均值。
- 微平均(Micro-averaging),是对数据集中的每一个实例不分类别进行统计建立全局混淆矩阵,然后计算相应指标。
(来源:谈谈评价指标中的宏平均和微平均)
1 |
|
召回率
所有分正确的正样本/所有的正样本数
1 |
|
F值
1 |
|
关键参数: average
①None:返回每一类各自的f1_score,得到一个array。
②’binary’ 只对二分类问题有效,返回由pos_label指定的类的f1_score。
③’micro’ : 设置average=’micro’时,Precision = Recall = F1_score = Accuracy。
④’macro’: 对每一类别的f1_score进行简单算术平均(unweighted mean)
⑤’weighted’: 对每一类别的f1_score进行加权平均,权重为各类别数在y_true中所占比例。
⑥’samples’
混淆矩阵
混淆矩阵通过计算各种分类度量,指导模型的评估
1 |
|
分类报告
sklearn中的classification_report函数用于显示主要分类指标的文本报告.在报告中显示每个类的精确度,召回率,F1值等信息。 主要参数:
- y_true:1维数组,或标签指示器数组/稀疏矩阵,目标值。
- y_pred:1维数组,或标签指示器数组/稀疏矩阵,分类器返回的估计值。
- labels:array,shape = [n_labels],报表中包含的标签索引的可选列表。
- target_names:字符串列表,与标签匹配的可选显示名称(相同顺序)。
- sample_weight:类似于shape = [n_samples]的数组,可选项,样本权重。
- digits:int,输出浮点值的位数.
1 |
|
在版本0.20.3的结果:
1 |
|
在版本0.21.x以上的结果:
1 |
|
③’micro’ : 设置average=’micro’时,Precision = Recall = F1_score = Accuracy
④’macro’: 对每一类别的f1_score进行简单算术平均 (0.8+0+1)/3=0.6
⑤’weighted’: 对每一类别的f1_score进行加权平均,权重为各类别数在y_true中所占比例 (0.8*0.4+0*0.2+1*0.4)/3=0.6
ROC
1,计算ROC值,即Auc
Auc是ROC(Receiver Operating Characteristic)曲线下的面积
1 |
|
2,ROC曲线
描述分类器的True Positive Rate与False Positive Rate之间的变化关系
1 |
|