PySpark 逻辑回归

2025年1月31日 | 阅读 6 分钟
PySpark Logistic Regression

引言

PySpark 是 Apache Spark 的 Python API,它允许统计科学家和工程师利用分配计算的优势进行大规模数据处理。 PySpark 的重要组成部分之一是其机器学习库 (MLlib),它提供了可扩展的机器学习算法,包括逻辑回归。 逻辑回归是一种用于二元分类问题的重要算法。 在本文中,我们将深入研究 PySpark 的逻辑回归,探索其实现、各种示例和关键概念。

什么是逻辑回归?

PySpark Logistic Regression

逻辑回归是一种统计技术,用于从一组独立的变量预测二元结果(1/0、真/假、是/否)。 与预测非连续结果的线性回归不同,逻辑回归预测的概率被限制在 0 和 1 之间。 它使用逻辑函数(也称为 sigmoid 函数)来对二元因变量进行建模。

逻辑函数定义为

PySpark Logistic Regression

其中

  • z 是输入特征的线性聚合。

逻辑回归公式

逻辑回归模型可以表示为

P(Y=1∣X)=σ(β0+β1X1+β2X2+…+βnXn)

其中

  • P(Y=1∣X) 是结构化变量的可能性
  • Y 等于 1,给定输入函数
  • β0 是截距项。
  • β1,β2,…,βn 是与每个特征 X1,X2,…,Xn 相似的系数。

PySpark 和 MLlib

PySpark 的 MLlib 提供了处理大规模系统学习任务的工具。 它支持用于分类、回归、聚类和协同过滤的各种算法。 PySpark 中的逻辑回归是 MLlib 提供的算法类型的一部分。

设置 PySpark

在我们深入研究逻辑回归之前,允许在 PySpark 中进行设置。 确保您已安装 Java 和 Spark。 您可以使用 pip 安装 PySpark

接下来,让我们启动一个 PySpark 会话

数据准备

PySpark 需要数据采用 DataFrame 的形式,并且特征被组装成单个向量类型列。 为此,我们可以使用 pyspark.ml.feature 中的 VectorAssembler。

逻辑回归模型

现在,让我们使用 PySpark 的 LogisticRegression 类构建和训练逻辑回归模型。

模型评估

为了评估模型,我们可以使用各种指标,例如准确率、精确率、召回率和 F1 分数。 PySpark 提供了 BinaryClassificationEvaluator 用于二元分类任务。

详细示例 1

让我们通过一个更详细的示例,使用更大的数据集。 我们将使用流行的 Iris 数据集,但通过仅考虑两个物种来修改它以进行二元分类。

步骤 1:加载和准备数据

首先,加载 Iris 数据集并准备它以进行二元分类。

步骤 2:训练逻辑回归模型

步骤 3:评估模型

高级主题

正则化

正则化通过惩罚大系数来帮助防止过度拟合。 PySpark 的逻辑回归支持 L1 (Lasso) 和 L2 (Ridge) 正则化。

交叉验证

交叉验证通过将数据分成多个折叠来帮助选择最佳超参数。

from pyspark.ml.tuning import CrossValidator, ParamGridBuilder

流水线

在 PySpark 中,机器学习管道允许您链接多个转换和估计器。

详细示例 2

泰坦尼克号生存预测

步骤 1:设置 PySpark

首先,确保您已安装 PySpark 并设置 Spark 会话。

步骤 2:加载和探索数据集

我们将从 CSV 文件加载泰坦尼克号数据集并执行初始数据探索。

步骤 3:数据预处理

预处理步骤包括处理缺失值、将分类特征转换为数值特征以及将特征组合成单个向量。

步骤 4:将数据拆分为训练集和测试集

步骤 5:训练逻辑回归模型

步骤 6:评估模型

使用测试数据评估模型的性能。

步骤 7:使用交叉验证进行超参数调整

使用交叉验证找到最佳超参数。

步骤 8:对新数据进行预测

一旦模型经过训练和评估,您就可以使用它对新数据进行预测。

结论

在本完整指南中,我们探索了在 PySpark 中使用逻辑回归进行二元类别任务。 从介绍逻辑回归及其数学基础开始,我们继续安装 PySpark、准备数据以及使用 PySpark 的 MLlib 构建逻辑回归模型。 我们涵盖了关键步骤,其中包括信息预处理、版本培训、利用准确率和 ROC AUC 等指标进行评估以及高级主题,包括正则化、交叉验证和开发机器学习管道。 详细的示例,包括对泰坦尼克号数据集的关注,展示了一种处理真实世界事实、转换它们以及应用逻辑回归进行预测建模的方法。

PySpark 的强大框架和可扩展结构使其成为处理大规模统计处理和机器系统学习任务的有效工具。 通过利用 PySpark 的能力,记录科学家和工程师可以有效地构建、评估和跟踪逻辑回归模型,以解决复杂的分类问题。 无论是在使用标准数据集还是将策略应用于特定的业务需求,了解和利用 PySpark 中的逻辑回归都使从业者能够掌握在大型数据上下文中得出有意义的见解和做出事实驱动型决策的技能。


下个主题Pyspark-merge