机器学习:性能度量_分类_混淆矩阵、查准率(precision)、查全率(recall)

本文介绍了混淆矩阵的概念及其在二分类和多分类问题中的应用,并详细解释了查准率(Precision)和召回率(Recall)这两个重要的评估指标,包括它们的定义、计算方式及在sklearn中的实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、混淆矩阵

1.二分类

对于二分类问题,分类器在测试集上的预测或者正确或者不正确,令

  • TP(True Positive):分类器将正类预测为正类的数量。
  • FN(False Negative):分类器将正类预测为负类的数量。
  • FP(False Positive):分类器将负类预测为正类的数量。
  • TN(True Negative):分类器将负类预测为负类的数量。
真值情况预测结果
正类反类
正类TPFN
反类FPTN

2.confusion_matrix

2.1原型
sklearn.metrics.confusion_matrix(y_true,y_pred,labels=None)

2.2参数

  • y_true:样本集的真实标记。
  • y_pred:分类器对样本集预测的预测值。
  • labels:指定混淆矩阵中出现哪些类别。

2.3示例代码

from sklearn.metrics import confusion_matrix
y_true = [1,1,1,1,1,0,0,0,0,0]
y_pred = [0,0,1,1,0,0,0,0,0,0]
print("Confusion Matrix:\n",confusion_matrix(y_true,y_pred))
Confusion Matrix:
 [[5 0]
 [3 2]]

3.多分类

多分类仍然可以使用混淆矩阵

from sklearn.metrics import confusion_matrix
y_true = [1,2,2,1,1,0,1,1,0,2]
y_pred = [1,2,1,1,1,0,2,1,0,1]
print("Confusion Matrix:\n",confusion_matrix(y_true,y_pred))
Confusion Matrix:
 [[2 0 0]
 [0 4 1]
 [0 2 1]]

二、查准率(precision)

1.查准率的定义:precision=TPTP+FPprecision=TPTP+FP

2.含义:所有被预测为正类中真正正类的比例。

3.precision_score

3.1原型

  • sklearn.metrics.precision_score(y_true,y_pred,labels=None,pos_label=1,average=’binary’,sample_weight=None)

3.2参数

  • y_true:样本集的真实标记。
  • y_pred:分类器对样本集预测的预测值。
  • pos_label:一个字符串或整数,指定哪个标记值属于正类。
  • average:一个字符串,用于多分类问题。
  • sample_weight:样本权重,默认每个样本的权重为1。

3.3示例代码

from sklearn.metrics import accuracy_score,precision_score
y_true = [1,1,1,1,1,0,0,0,0,0]
y_pred = [0,0,1,1,0,0,0,0,0,0]
print("Accuracy Score:",accuracy_score(y_true,y_pred,normalize=True))
print("Precision Score",precision_score(y_true,y_pred))
Accuracy Score: 0.7
Precision Score 1.0

三、召回率(recall)

1.召回率定义:recall=TPTP+FNrecall=TPTP+FN

2.含义:所有正类中,被找出的正类的比例。

3.recall_score

3.1原型

  • sklearn.metrics.recall_score(y_true,y_pred,labels=None,pos_labels=1,average=’binary’,sample_weight=None)

3.2参数

  • y_true:样本集的真实标记。
  • y_pred:分类器对样本集预测的预测值。
  • pos_label:一个字符串或整数,指定哪个标记值属于正类。
  • average:一个字符串,用于多分类问题。
  • sample_weight:样本权重,默认每个样本的权重为1。

3.3示例代码

from sklearn.metrics import accuracy_score,precision_score,recall_score
y_true = [1,1,1,1,1,0,0,0,0,0]
y_pred = [0,0,1,1,0,0,0,0,0,0]
print("Accuracy Score:",accuracy_score(y_true,y_pred,normalize=True))
print("Precision Score",precision_score(y_true,y_pred))
print("Recall Score",recall_score(y_true,y_pred))
Accuracy Score: 0.7
Precision Score 1.0
Recall Score 0.4
### 如何计算机器学习中的混淆矩阵查准率查全率 #### 混淆矩阵的计算方法 混淆矩阵是监督学习中的一种可视化工具,主要用于比较分类结果和实例的真实信息。矩阵中的每一行代表实例的预测类别,每一列代表实例的真实类别[^1]。 对于一个多分类问题,可以通过 `sklearn` 库来轻松获取混淆矩阵: ```python from sklearn.metrics import confusion_matrix import numpy as np # 示例的真实标签和预测标签 y_true = np.array([1, 0, 1, 2, 0, 1, 2, 3, 2]) y_pred = np.array([1, 0, 1, 2, 0, 2, 1, 3, 2]) # 计算混淆矩阵 conf_matrix = confusion_matrix(y_true, y_pred) print("Confusion Matrix:") print(conf_matrix) ``` 这段代码会输出一个混淆矩阵,显示不同类别的预测情况[^3]。 #### 查准率 (Precision)查全率 (Recall) 的定义及其公式 查准率是指所有被预测为正类中真正正类的比例,其公式如下: \[ \text{precision}=\frac{\text{TP}}{\text{TP}+\text{FP}} \] 其中 TP 表示真阳性(True Positive),即实际为正类且被正确识别的数量;FP 表示假阳性(False Positive),即实际为负类却被错误地标记成正类的数量[^4]。 查全率指的是所有真实的正类中有多少比例被成功检索出来,表达式为: \[ \text{recall}=\frac{\text{TP}}{\text{TP}+\text{FN}} \] 这里 FN 是指假阴性(False Negative),意味着实际上属于正类但是未被检测到的情况数。 为了更具体地理解这些概念并应用它们,在 Python 中可以直接调用 `sklearn` 提供的相关函数来进行评估: ```python from sklearn.metrics import precision_score, recall_score # 假设我们只关注某一特定类别作为 "positive" average_method = 'binary' prec = precision_score(y_true == 1, y_pred == 1, average=average_method) rec = recall_score(y_true == 1, y_pred == 1, average=average_method) print(f"Precision: {prec:.2f}") print(f"Recall: {rec:.2f}") ``` 上述例子展示了针对单个类别的 PrecisionRecall 的计算方式。如果面对的是多分类任务,则可能需要调整参数设置以适应具体情况。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BQW_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值