sklearn的metrics,准确度accuracy_score查准率precision_score
发布于 作者:苏南大叔 来源:程序如此灵动~ 我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...
本文继续探求sklearn
对一个模型的好坏做判断的标准,在前面的文章中,大家已经看到了precision_score
,recall_score
和f1_score
这三个标准,实际上还有一个accuracy_score
。所以,本文再对这个accuracy_score
和precision_score
做一下对比分析。
苏南大叔的程序如此灵动博客,记录苏南大叔的代码编程经验总结。本文描述precision_score
和accuracy_score
这两个指标的区别。测试环境:win10
,python@3.11.0
,sklearn@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
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) |
结束语
precision
和accuracy
的英文意思都是"准确,精准",看来还是有很大区别的。更多苏南大叔的机器学习的文章,请参考:
如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。