什么是 Sklearn 指标以及为什么需要了解它们?

已发表: 2021-10-22

Python 是全球开发人员最常用的编程语言之一。 它的数据自动化和算法能力使其成为构建和训练程序、机器和基于计算机的系统以及进行预测的理想选择。 因此,具有 Python 技能的候选人越来越受到机器学习和数据科学等利润丰厚的职业道路的青睐。

如果您是初学者,自己寻找合适的工具可能会让人望而生畏。 像 Scikit-learn 这样的免费软件可以让您轻松掌握相关技能。 机器学习库为 Python 程序员提供了多种分类、回归和聚类算法。

本博客将特别关注分类问题和 sklearn 指标,以指导您的学习之旅。 您将了解评估指标的应用,并了解其背后的数学原理。

目录

Scikit-Learn 中的分类指标

分类是预测建模的一个组成部分。 您可以使用它来识别总体中特定样本所属的类别。 假设您想预测患者是否会再次住院。 这里有两种可能的类型:阳性(住院)和阴性(未住院)。 分类模型将预测应该放置样本的桶,预测为阳性或预测为阴性。 训练模型后,您将发现预测的准确性。

大多数数据科学家和机器学习工程师使用 Scikit-Learn 包来分析预测模型的性能。 sklearn 指标模块使您可以访问许多内置功能。 让我们用这些指标从头开始编写函数的过程。

加入来自世界顶级大学的在线机器学习课程——硕士、高级管理人员研究生课程和 ML 和 AI 高级证书课程,以加快您的职业生涯。

Sklearn 指标解释

Sklearn 指标可让您实现分数、损失和效用函数来评估分类性能。

以下是涉及的关键步骤:

  • 加载数据;
  • 将其拆分为训练集和测试集;
  • 建立训练模型;
  • 对测试数据进行预测或预测;
  • 使用特定方法评估机器学习模型。

要继续,您需要为随机森林和线性回归这两个模型加载样本数据集和预测功能。 我们称它们为 Model_RF 和 Model_LR。

运行此代码以导入 Pandas 模块并读取数据文件并检查其元素。

将熊猫导入为 ps

df = ps.read_csv('data.csv')

df.head()

在大多数项目中,您定义一个阈值并将预测概率标记为预测正数和预测负数。 这会在您的表格中再添加两列。

阈值 = 0.5

df['forecasted_RF'] = (df.model_RF >= 0.5).astype('int')

df['forecasted_LR'] = (df.model_LR >= 0.5).astype('int')

df.head()

现在我们有了实际和预测的标签,我们可以将样本分成四个不同的桶。

使用混淆矩阵,我们可以得到一个 2X2 数组,其中标签分为以下桶:

  • 真阳性 (TP)
  • 误报 (FP)
  • 假阴性 (FN)
  • 真阴性 (TN)

从 sklearn 指标导入混淆矩阵并传递实际和预测标签后,您可以定义函数来验证它。

您还可以使用 Python 的 assert 函数和 NumPy 的 array_equal 函数手动检查结果是否匹配。

我们可以使用 TP、FP、TN 和 FN 这四个桶来计算许多其他性能指标。 这些是:

1.accuracy_score

它将实际和预测的标签作为输入,并产生正确预测的样本分数。

2.recall_score

它给出了正确预测的积极事件的比例。 召回也称为敏感性。

3.precision_score

它显示了预测的阳性事件中阳性的比例。

在计算完所有这些指标后,假设您发现 RF 模型在召回率和精度方面更好。 这里的选择很容易。 但是,如果 LR 模型的召回率更高,而 RF 模型的准确率更高呢? 在这种情况下,您将需要另一种称为 F1 分数的方法。

4. f1_score

它是召回率和准确率的调和平均值。 得分越高的模型被认为是更好的选择。

上述指标是使用定义的阈值 0.5 计算的。 人们可能想知道这个阈值的变化是否也会改变性能指标。 答案? 是的,它会。

我们还有另一种无需选择阈值即可评估模型的方法,即接收器操作特征 (ROC) 曲线。 Scikit-learn 还具有用于分析它们的内置函数。

roc_curve 和 roc_auc_score 函数将实际标签和预测概率作为输入。

  • roc_curve

它返回三个列表,即阈值(按降序排列的唯一预测概率)、FPR(假阳性率)和 TPR(真阳性率)。

  • roc_auc_curve

它可以找到 RF 和 LR 模型的曲线下面积。

绘制 ROC 曲线并将 AUC 添加到图例后,您可以确定更好的性能指标。

加起来

在预测分析中,您可以从多种指标中进行选择。 准确率、召回率、精度、f1 和 AUC 是一些流行的分数。

有些人可能更喜欢定义阈值并使用准确度、召回率、精度和 f1 分数等性能指标。 其他人可能喜欢使用 AUC 来分析模型的性能,因为它不需要选择阈值。 最后,您应该选择最适合手头业务问题的指标。

有了这个,我们为您提供了 sklearn 指标的概述。 您可以使用此信息来阐明 Python 编程的基础知识并通过在线课程继续学习。 您还可以进行项目工作来练习和完善您的技能。 像 upGrad 的机器学习和人工智能理学硕士这样的项目可以在这两个方面提供帮助。

该课程让您熟悉完整的数据科学工具包,并涵盖 Scikit-Learn 和其他软件的实际方面。 此外,利物浦约翰摩尔斯大学和班加罗尔 IIIT 等知名机构的证书使您在工作申请和安置面试的竞争中脱颖而出。

Python 中的评估指标是什么?

评估指标通常用于 Python 中的分类问题。 Scikit-Learn 是一个免费的机器学习库,可以执行广泛的预测分析任务。 有抱负的数据科学家和机器学习工程师可以使用它来预测数据并分析特定模型的质量。

为什么需要 sklearn 指标?

Sklearn 指标可让您评估预测的质量。 您可以在 Scikit-Learn 中将此模块用于各种数据集、评分函数和性能指标。 sklearn 中的混淆矩阵是预测准确性的方便表示。 使用实际和预测标签等输入,以及定义的阈值或置信度值,您可以计算召回率、精度和 f1 分数等指标。 ROC 曲线法平衡概率估计,并根据曲线下面积给出性能指标。

人工智能和机器学习的研究生教育如何帮助职业发展?

人工智能和机器学习领域的大多数高级认证都包括课程中的 Scikit-Learn 等工具。 它是 Python 编程和数据科学培训的重要组成部分。 但是在当今竞争激烈的工作环境中,Python 和 Scikit-Learn 的编码食谱是不够的。 您需要获得面向行业的知识并练习您的技能。 因此,选择能够提供实施项目和任务的机会的学习计划。