如何使用 PySpark 进行机器学习
自从 Apache Spark(一种用于处理大数据的开源框架)发布以来,它已成为跨多个容器并行处理大量数据的最广泛使用的技术之一 - 它以效率和速度而自豪与之前存在的类似软件相比。
通过 PySpark 在 Python 中使用这项令人惊叹的技术是可行的,PySpark 是一个 Python API,允许您使用 Python 编程语言与 ApacheSpark 进行交互并挖掘 ApacheSpark 的惊人潜力。
在本文中,您将学习并开始使用 PySpark 使用线性回归算法构建机器学习模型。
注意:预先了解 Python、VSCode 等 IDE、如何使用命令提示符/终端以及熟悉机器学习概念对于正确理解本文中包含的概念至关重要。
通过阅读本文,您应该能够:
- 了解 ApacheSpark 是什么。
- 了解 PySpark 以及如何将其用于机器学习。
PySpark 到底是什么?
根据 Apache Spark 官方网站,PySpark 可让您利用 ApacheSpark(简单性、速度、可扩展性、多功能性)和 Python(丰富的生态系统、成熟的库、简单性)的综合优势进行“数据工程”单节点机器或集群上的数据科学和机器学习。”
图片来源
PySpark 是 ApacheSpark 的 Python API,这意味着它充当一个接口,让用 Python 编写的代码与用 Scala 编写的 ApacheSpark 技术进行通信。这样,已经熟悉Python生态系统的专业人士就可以快速利用ApacheSpark技术。这也确保了 Python 中使用的现有库保持相关性。
有关如何使用 PySpark 进行机器学习的详细指南
在接下来的步骤中,我们将使用线性回归算法构建机器学习模型:
- 安装项目依赖项:我假设您的计算机上已经安装了 Python。如果没有,请先安装它,然后再进行下一步。打开终端或命令提示符并输入以下代码以安装 PySpark 库。
pip install pyspark
如果没有这些额外的 Python 库,您可以安装它们。
pip install pyspark
- 创建文件并导入必要的库:打开 VSCode,然后在您选择的项目目录中为您的项目创建一个文件,例如 pyspart_model.py。打开文件并导入项目所需的库。
pip install pandas numpy
- 创建 Spark 会话:通过在导入下输入此代码来启动项目的 Spark 会话。
from pyspark.sql import SparkSession from pyspark.ml.feature import VectorAssembler from pyspark.ml.classification import LogisticRegression from pyspark.ml.evaluation import BinaryClassificationEvaluator import pandas as pd
- 读取 CSV 文件(您将使用的数据集):如果您的项目目录/文件夹中已有名为 data.csv 的数据集,请使用以下代码加载它。
spark = SparkSession.builder.appName("LogisticRegressionExample").getOrCreate()
- 探索性数据分析:此步骤可帮助您了解正在使用的数据集。检查空值并决定使用的清理方法。
data = spark.read.csv("data.csv", header=True, inferSchema=True)
如果您正在使用小型数据集,您可以将其转换为 Python 数据框和目录,并使用 Python 检查缺失值。
# Display the schema my data.printSchema() # Show the first ten rows data.show(10) # Count null values in each column missing_values = df.select( [count(when(isnull(c), c)).alias(c) for c in df.columns] ) # Show the result missing_values.show()
- 数据预处理:此步骤涉及将数据集中的列/特征转换为 PySpark 的机器学习库可以轻松理解或兼容的格式。
使用 VectorAssembler 将所有特征组合到单个向量列中。
pandas_df = data.toPandas() # Use Pandas to check missing values print(pandas_df.isna().sum())
- 分割数据集:按照您方便的比例分割数据集。在这里,我们使用 70% 到 30%:70% 用于训练,30% 用于测试模型。
# Combine feature columns into a single vector column feature_columns = [col for col in data.columns if col != "label"] assembler = VectorAssembler(inputCols=feature_columns, outputCol="features") # Transform the data data = assembler.transform(data) # Select only the 'features' and 'label' columns for training final_data = data.select("features", "label") # Show the transformed data final_data.show(5)
- 训练你的模型:我们正在使用逻辑回归算法来训练我们的模型。
创建 LogisticRegression 类的实例并拟合模型。
train_data, test_data = final_data.randomSplit([0.7, 0.3], seed=42)
- 使用您训练的模型进行预测:使用我们在上一步中训练的模型进行预测
lr = LogisticRegression(featuresCol="features", labelCol="label") # Train the model lr_model = lr.fit(train_data)
- 模型评估:在这里,正在评估模型以确定其预测性能或其正确性水平。我们通过使用合适的评估指标来实现这一目标。
使用 AUC 指标评估模型
predictions = lr_model.transform(test_data) # Show predictions predictions.select("features", "label", "prediction", "probability").show(5)
本文使用的端到端代码如下所示:
evaluator = BinaryClassificationEvaluator(rawPredictionCol="rawPrediction", labelCol="label", metricName="areaUnderROC") # Compute the AUC auc = evaluator.evaluate(predictions) print(f"Area Under ROC: {auc}")
下一步?
我们已经到了本文的结尾。通过执行上述步骤,您已经使用 PySpark 构建了机器学习模型。
在继续下一步之前,请务必确保您的数据集干净并且没有空值。最后,在继续训练模型之前,请确保您的特征全部包含数值。
以上是如何使用 PySpark 进行机器学习的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

Python更易学且易用,C 则更强大但复杂。1.Python语法简洁,适合初学者,动态类型和自动内存管理使其易用,但可能导致运行时错误。2.C 提供低级控制和高级特性,适合高性能应用,但学习门槛高,需手动管理内存和类型安全。

要在有限的时间内最大化学习Python的效率,可以使用Python的datetime、time和schedule模块。1.datetime模块用于记录和规划学习时间。2.time模块帮助设置学习和休息时间。3.schedule模块自动化安排每周学习任务。

Python在开发效率上优于C ,但C 在执行性能上更高。1.Python的简洁语法和丰富库提高开发效率。2.C 的编译型特性和硬件控制提升执行性能。选择时需根据项目需求权衡开发速度与执行效率。

每天学习Python两个小时是否足够?这取决于你的目标和学习方法。1)制定清晰的学习计划,2)选择合适的学习资源和方法,3)动手实践和复习巩固,可以在这段时间内逐步掌握Python的基本知识和高级功能。

Python和C 各有优势,选择应基于项目需求。1)Python适合快速开发和数据处理,因其简洁语法和动态类型。2)C 适用于高性能和系统编程,因其静态类型和手动内存管理。

pythonlistsarepartofthestAndArdLibrary,herilearRaysarenot.listsarebuilt-In,多功能,和Rused ForStoringCollections,而EasaraySaraySaraySaraysaraySaraySaraysaraySaraysarrayModuleandleandleandlesscommonlyusedDduetolimitedFunctionalityFunctionalityFunctionality。

Python在自动化、脚本编写和任务管理中表现出色。1)自动化:通过标准库如os、shutil实现文件备份。2)脚本编写:使用psutil库监控系统资源。3)任务管理:利用schedule库调度任务。Python的易用性和丰富库支持使其在这些领域中成为首选工具。

Python在Web开发中的关键应用包括使用Django和Flask框架、API开发、数据分析与可视化、机器学习与AI、以及性能优化。1.Django和Flask框架:Django适合快速开发复杂应用,Flask适用于小型或高度自定义项目。2.API开发:使用Flask或DjangoRESTFramework构建RESTfulAPI。3.数据分析与可视化:利用Python处理数据并通过Web界面展示。4.机器学习与AI:Python用于构建智能Web应用。5.性能优化:通过异步编程、缓存和代码优
