Python准确率与召回率的计算方法

1. 概述

在机器学习和数据分析中,我们经常需要评估模型的性能。其中,准确率(accuracy)和召回率(recall)是两个常用的评估指标。准确率衡量了模型预测正确的样本数占总样本数的比例,而召回率则衡量了模型预测为正样本的正确率。本文将介绍如何使用Python计算准确率和召回率。

2. 计算准确率与召回率的步骤

下面是计算准确率和召回率的步骤:

步骤 描述
1 确定真实标签和预测标签
2 统计真正例(True Positive)、假正例(False Positive)和假反例(False Negative)的个数
3 计算准确率和召回率

下面将逐步介绍每一个步骤所需的代码。

3. 确定真实标签和预测标签

在计算准确率和召回率之前,首先需要获得真实标签和预测标签。真实标签是指样本的真实分类情况,而预测标签是模型对样本进行预测得到的分类结果。

在Python中,我们可以使用列表或数组来存储标签。假设我们有一个真实标签列表true_labels和一个预测标签列表predicted_labels,可以使用以下代码定义它们:

true_labels = [0, 1, 0, 1, 1, 0]
predicted_labels = [0, 1, 1, 1, 0, 0]

上述代码中,true_labels代表了6个样本的真实分类情况,而predicted_labels代表了模型对这6个样本进行预测得到的分类结果。

4. 统计真正例、假正例和假反例的个数

在计算准确率和召回率之前,我们需要统计出真正例(True Positive)、假正例(False Positive)和假反例(False Negative)的个数。

真正例表示模型正确地预测为正样本的个数,假正例表示模型错误地预测为正样本的个数,假反例表示模型错误地预测为负样本的个数。

下面是计算真正例、假正例和假反例个数的代码:

tp = 0
fp = 0
fn = 0

for true_label, predicted_label in zip(true_labels, predicted_labels):
    if true_label == 1 and predicted_label == 1:
        tp += 1
    elif true_label == 0 and predicted_label == 1:
        fp += 1
    elif true_label == 1 and predicted_label == 0:
        fn += 1

上述代码中,我们使用了循环和条件语句,对每个样本的真实标签和预测标签进行比较,并根据不同情况来更新真正例、假正例和假反例的个数。

5. 计算准确率和召回率

在统计出真正例、假正例和假反例个数后,我们可以使用以下公式计算准确率和召回率:

准确率 = 真正例 / (真正例 + 假正例)

召回率 = 真正例 / (真正例 + 假反例)

下面是计算准确率和召回率的代码:

accuracy = tp / (tp + fp)
recall = tp / (tp + fn)

上述代码中,我们使用真正例、假正例和假反例的个数计算了准确率和召回率。

6. 完整代码

下面是计算准确率和召回率的完整代码:

true_labels = [0, 1, 0, 1, 1, 0]
predicted_labels = [0, 1, 1, 1, 0,