sklearn.metrics中micro和macro的区别

简介: 先看以下示例,区分micro和macro的区别,这里直接调用sklearn封装好的接口

sklearn安装


先看以下示例,区分micro和macro的区别,这里直接调用sklearn封装好的接口,如果没有安装sklearn可以使用以下命令进行安装:


pip install scikit-learn


如果直接使用


pip install sklearn


是没有作用的,将会安装一个未知的第三方库。


micro和macro区别


先看一段简单的代码示例:


from sklearn.metrics import precision_score, recall_score, f1_score
a = [1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 3] #真实
b = [1, 1, 2, 1, 2, 2, 2, 2, 3, 1, 3, 3] #预测
print(precision_score(a, b, average='micro'), precision_score(a, b, average='macro'))
print(recall_score(a, b, average='micro'), recall_score(a, b, average='macro'))
print(f1_score(a, b, average='micro'), f1_score(a, b, average='macro'))
'''
0.6666666666666666 0.7000000000000001
0.6666666666666666 0.6722222222222222
0.6666666666666666 0.6626984126984127
'''


我们可以构建混淆矩阵进行说明,混淆矩阵的四个基本概念:


  • TP:true positive,指的是正例,表示预测结果为真,标签的结果为真。
  • FP:false positive,指的是假阳,表示预测结果为真,标签的结果为假。
  • FN:false negative,指的是假阴,表示预测结果为假,标签的结果为真。
  • TN:false negative,指的是假阳,表示预测结果为假,标签的结果为假。


所以可以对上述实例构建混淆矩阵



1类
2类 3类 总数
TP 2 3 3 8
FP 2 2 0 4
FN 1 1 2 4
TN 7 6 7 20


precision、recall和F1计算公式如下所示


image.png


micro:利用总数的TP、FP和FN进行计算


image.png


macro:先计算各个类别的TP、FP和FN,在进行汇总计算


image.png


通过上述示例就可以清楚地知道micro和macro的区别了。

目录
相关文章
【sklearn报错解决方案】UndefinedMetricWarning: Precision is ill-defined and being set to 0.0
【sklearn报错解决方案】UndefinedMetricWarning: Precision is ill-defined and being set to 0.0
1644 0
【sklearn报错解决方案】UndefinedMetricWarning: Precision is ill-defined and being set to 0.0
|
机器学习/深度学习 PyTorch 算法框架/工具
# Pytorch 中可以直接调用的Loss Functions总结:(二)
# Pytorch 中可以直接调用的Loss Functions总结:(二)
148 0
# Pytorch 中可以直接调用的Loss Functions总结:(二)
|
网络虚拟化
在torch_geometric.datasets中使用Planetoid手动导入Core数据集及发生相关错误解决方案
在torch_geometric.datasets中使用Planetoid手动导入Core数据集及发生相关错误解决方案
758 0
在torch_geometric.datasets中使用Planetoid手动导入Core数据集及发生相关错误解决方案
|
PyTorch 算法框架/工具
# Pytorch 中可以直接调用的Loss Functions总结:(一)
# Pytorch 中可以直接调用的Loss Functions总结:(一)
149 0
|
PyTorch 算法框架/工具
# Pytorch 中可以直接调用的Loss Functions总结:(三)
# Pytorch 中可以直接调用的Loss Functions总结:(三)
603 0
|
PyTorch 算法框架/工具
pytorch中meter.ClassErrorMeter()使用方法
pytorch中meter.ClassErrorMeter()使用方法
165 0
|
机器学习/深度学习 存储 缓存
ML之sklearn:sklearn的make_pipeline函数、RobustScaler函数、KFold函数、cross_val_score函数的代码解释、使用方法之详细攻略
ML之sklearn:sklearn的make_pipeline函数、RobustScaler函数、KFold函数、cross_val_score函数的代码解释、使用方法之详细攻略
|
机器学习/深度学习 数据挖掘 索引
ML之sklearn:sklearn.metrics中常用的函数参数(比如confusion_matrix等 )解释及其用法说明之详细攻略
ML之sklearn:sklearn.metrics中常用的函数参数(比如confusion_matrix等 )解释及其用法说明之详细攻略
|
机器学习/深度学习 算法 大数据
ML之sklearn:sklearn.linear_mode中的LogisticRegression函数的简介、使用方法之详细攻略(一)
ML之sklearn:sklearn.linear_mode中的LogisticRegression函数的简介、使用方法之详细攻略