我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...

本文继续探求sklearn对一个模型的好坏做判断的标准,在前面的文章中,大家已经看到了precision_score,recall_scoref1_score这三个标准,实际上还有一个accuracy_score。所以,本文再对这个accuracy_scoreprecision_score做一下对比分析。

苏南大叔:sklearn的metrics,准确度accuracy_score查准率precision_score - sklearn精准度指标对比
sklearn的metrics,准确度accuracy_score查准率precision_score(图2-1)

苏南大叔的程序如此灵动博客,记录苏南大叔的代码编程经验总结。本文描述precision_scoreaccuracy_score这两个指标的区别。测试环境:win10python@3.11.0sklearn@1.2.2

前文提示

关于sklearn中对一个模型好坏的评判标准的问题,这里一共写过两篇文章了。分别是:

在第二篇文章中,苏南大叔提到:
精准度实际上有三种情况,分别是:阳性的精准度(最常见),阴性的精准度,整体的精准度。实际上在sklearn.metrics中,有:

求解别称函数
阳性样本的精准度查准率precision_score()
样本整体的精准度准确率accuracy_score()
能感受到的是,这些模型评判标准,更加倾向于查出阳性样本的个体,对于阴性样本的个体,并不是特别的关心。

数据测算

这里还是拿上一篇文章里面的例子做测算。

实际值 [0 0 0 1 1 1]
预测值 [1 1 1 0 0 1]
对不对 [False False False False False  True]
有问题被发现了(tp):1
有问题没被发现(fn):2
没有问题被误诊(fp):3
放心啥事都没有(tn):0
阳性查准率[tp / tp + fp]:0.25
阴性查准率[tn / tn + fp]:0.0
整体准确率[(tp + tn) / (tp + fp + tn + fn)]:0.16666666666666666

苏南大叔:sklearn的metrics,准确度accuracy_score查准率precision_score - 精准度代码对比
sklearn的metrics,准确度accuracy_score查准率precision_score(图2-2)

from sklearn.metrics import accuracy_score,precision_score
y_true=[0, 0, 0, 1, 1, 1]
y_pred=[1, 1, 1, 0, 0, 1]
print('查准率Precision Score:',precision_score(y_true,y_pred))
print('准确率Accuracy Score:',accuracy_score(y_true,y_pred))

输出是:

查准率Precision Score: 0.25
准确率Accuracy Score: 0.16666666666666666

结论

名称解释函数算法
查准率阳性样本准确度precision_score()tp / tp + fp
准确率整体样本准确度accuracy_score()(tp + tn) / (tp + fp + tn + fn)

结束语

precisionaccuracy的英文意思都是"准确,精准",看来还是有很大区别的。更多苏南大叔的机器学习的文章,请参考:

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。

 【福利】 腾讯云最新爆款活动!1核2G云服务器首年50元!

 【源码】本文代码片段及相关软件,请点此获取更多信息

 【绝密】秘籍文章入口,仅传授于有缘之人   python    sklearn