sklearn【Recall】召回率介绍,以及实战代码!

一、Recall 介绍

在分类任务中,Recall(召回率)是一个关键的评估指标,用于衡量模型正确识别正例的能力。特别是在那些对正例误判损失较大的场景中,Recall尤为重要。本文将介绍如何使用sklearn库来计算Recall,并解释其背后的计算原理。

首先,我们需要理解Recall的计算方式。Recall衡量的是所有真正为正例的样本中,被模型正确预测为正例的比例。其计算公式为:

R e c a l l = T P / ( T P + F N ) Recall = TP / (TP + FN) Recall=TP/(TP+FN)

其中:

  • TP(True Positive)表示真正例,即实际为正例且被模型预测为正例的样本数。
  • FN(False Negative)表示假反例,即实际为正例但被模型错误预测为反例的样本数。

二、案例学习

sklearn库中提供了recall_score函数,可以方便地计算Recall。下面我们将通过一个简单的例子来演示如何使用这个函数。

首先,我们需要导入必要的库,并准备数据集。在这个例子中,我们将使用sklearn自带的鸢尾花(Iris)数据集,这是一个多分类问题,但我们可以将其转化为二分类问题来简化演示。

from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import label_binarize
from sklearn.metrics import recall_score
from sklearn.linear_model import LogisticRegression

# 加载鸢尾花数据集
iris = datasets.load_iris()
X = iris.data
y = iris.target

# 将多分类问题转化为二分类问题(例如,只区分山鸢尾和非山鸢尾)
y = label_binarize(y, classes=[2])
y = y.ravel()

# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)

接下来,我们创建一个分类模型,并使用训练数据进行训练。在这个例子中,我们将使用逻辑回归作为分类器。

# 创建逻辑回归模型
model = LogisticRegression()

# 使用训练数据进行训练
model.fit(X_train, y_train)

训练完成后,我们可以使用模型对测试集进行预测,并使用sklearn的recall_score函数来计算Recall。

# 对测试集进行预测
y_pred = model.predict(X_test)

# 计算Recall
recall = recall_score(y_test, y_pred)
print(f'Recall: {recall:.2f}')

# Recall: 0.98

在上面的代码中,recall_score函数接受实际的目标值(y_test)和模型预测的值(y_pred)作为输入,然后返回Recall的值。Recall是一个介于0和1之间的值,越接近1表示模型在识别正例方面的能力越强。

需要注意的是,Recall只考虑了真正为正例的样本,而没有考虑预测为正例的样本中实际为反例的情况。因此,在某些情况下,我们可能还需要考虑其他指标,如Precision(精确度),来更全面地评估模型的性能。Precision和Recall往往是相互矛盾的,提高Recall通常意味着降低Precision,反之亦然。因此,在实际应用中,我们可能需要根据具体的需求来权衡这两个指标。

此外,当数据集的正反例样本数不平衡时,Recall可能不是最好的评估指标。在这种情况下,可以考虑使用其他指标,如F1 Score(F1分数),它是Precision和Recall的调和平均值,能够更全面地反映模型的性能。

三、总结

通过上面的示例,我们展示了如何使用sklearn来训练和评估一个分类模型,并计算其在测试集上的Recall。在实际应用中,我们可以根据具体的问题和数据集选择合适的分类模型和评估指标,以得到更准确的分类结果和性能评估。

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

帅帅的Python

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

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

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

打赏作者

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

抵扣说明:

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

余额充值