python - sklearn 计算准确率
因为最近写的分类模型需要性能评价 ,常用的分类性能评价有 准确率、查准率、召回率、F1
分类问题的常用的包 sklearn ,下面对准确率所用的方法进行介绍
召回率 请看另外一篇文章: sklearn 计算召回率
查准率 请看另外一篇文章: sklearn 计算查准率
F1 请看另外一篇文章:sklearn 计算 F1
前提知识
对于我们的二分类问题,会有以下情况:
- 真正例(True Positive,TP):真实类别为正例,预测类别为正例。
- 假正例(False Positive,FP):真实类别为负例,预测类别为正例。
- 假负例(False Negative,FN):真实类别为正例,预测类别为负例。
- 真负例(True Negative,TN):真实类别为负例,预测类别为负例。
然后可以构建混淆矩阵(Confusion Matrix)如下表所示。
真实类别 | 预测类别 | 预测类别 |
---|---|---|
正例 | 负例 | |
正例 | TP | FN |
负例 | FP | TN |
ACC
A
c
c
=
(
T
P
+
T
N
)
/
t
o
t
a
l
Acc=(TP+TN)/total
Acc=(TP+TN)/total
1、sklearn.metrics.accuracy_score()方法
方法说明:
sklearn.metrics.accuracy_score(y_true, y_pred, *, normalize=True, sample_weight=None):
参数介绍:
-
y_true:真实的标签,即数据集中真实的分类标签情况,是一个1维的数组
-
y_pred:预测标签,即模型预测的分类标签情况,是一个1维的数组
-
normalize:默认为True,返回正确分类样本的分数,如果“False”,则返回正确分类的样本数
-
sample_weight:数组类型,样本的权重
举例:
from sklearn.metrics import accuracy_score
pred = [0, 1, 0, 1]
target = [0, 1, 1, 0]
acc = accuracy_score(pred , target)
print(acc)
====>0.5