PySpark数据分析基础:pyspark.mllib.regression机器学习回归核心类详解(二)+代码详解

简介: PySpark数据分析基础:pyspark.mllib.regression机器学习回归核心类详解(二)+代码详解

前言


这段时间PySpark数据分析基础系列文章将持续讲述Pyspark.MLlib这一大块核心内容,更贴近我们的大数据分布式计算结合数据分析。这一部分内容是十分重要且比较难懂不易编程的部分,文章紧接此系列的上篇文章内容:PySpark数据分析基础:pyspark.mllib.regression机器学习回归核心类详解(一)+代码详解


上篇内容我们讲述了一些属于机器学习最基础的内容和相关原理,内容也由浅入深。接下来我们将重点了解每个回归的函数操作以及实现,回归的数学原理和实现方法大家可以订阅我的数学建模专栏详细了解每个回归的原理,这里仅作运用。


若将来想要从事数据挖掘和大数据分析的相关职业,不妨可以关注博主和订阅博主的一些专栏,我将承诺每篇文章将用心纂写长期维护,尽可能输出毕生所学结合如今先有案例项目和技术将每个知识点都讲明白清楚。


希望读者看完能够在评论区提出错误或者看法,博主会长期维护博客做及时更新。


一、RidgeRegressionModel岭回归


岭回归算是回归算法中最经典的算法之一了,原理不在此作介绍,以后会单独开篇文章专门写岭回归算法原理和运用,这里只作运用。


函数语法:


RidgeRegressionModel(weights: pyspark.mllib.linalg.Vector, intercept: float)


参数说明:


  • weight:每个特征计算的权重。
  • intercept:模型的截距。


方法


该函数的方法和LinearRegressionWithSGD的方法是一样的,也有三个方法,分别是:


load(sc, path):登陆一个RidgeRegressionModel模型。

predict(x):预测给定向量或包含自变量值的向量RDD的因变量值。

save(x):保存一个RidgeRegressionModel模型。

该示例缺少train。


二、RidgeRegressionWithSGD随机梯度下降岭回归


使用随机梯度下降训练具有L2正则化的岭回归模型。自版本2.0.0以来已弃用:使用pyspark.ml.regression且elasticNetParam=0.0的线性回归。对于使用GD的RidgeRegression,默认regParam为0.01,而对于线性回归,则为0.0。


以及tarin方法:

classmethod train(data: pyspark.rdd.RDD[pyspark.mllib.regression.LabeledPoint],
                  iterations: int = 100,
                  step: float = 1.0,
                  regParam: float = 0.01,
                  miniBatchFraction: float = 1.0,
                  initialWeights: Optional[VectorLike] = None,
                  intercept: bool = False,
                  validateData: bool = True,
                  convergenceTol: float = 0.001)
 → pyspark.mllib.regression.RidgeRegressionModel

参数说明:


   data:接收类型为Pyspark.RDD。指定训练用到的数据集,可以是LabeledPoint的RDD。

   iterations:接收类型为int,指定迭代次数,默认为100。

   step:接收类型为float,SGD中使用的阶跃参数,默认为1.0。

   regParam:接受类型为float,正则化参数。默认为0.01

   miniBatchFraction:接收类型为float,用于每次SGD迭代的数据部分,默认为1.0.

   initialWeights:接收类型为pyspark.mllib.linalg.Vector,指定初始权重。

   regType:接收类型为str,用于训练模型的正则化子类型。

       使用l1正则化:“l1”

       使用l2正则化:“l2”

       若为None则表示无正则化(默认)

   intercept:接收类型为bool,指示是否使用训练数据的增强表示(即是否激活偏差特征)。(默认值:False)

   validateData:接收类型为bool,指示算法是否应在训练前验证数据。(默认值:True)

   convergenceTol:接收类型为float,决定迭代终止的条件。(默认值:0.001)

 

实例运用

from pyspark.mllib.linalg import SparseVector
from pyspark.mllib.regression import RidgeRegressionWithSGD
from pyspark.mllib.regression import LabeledPoint
data = [
    LabeledPoint(0.0, [0.0]),
    LabeledPoint(1.0, [1.0]),
    LabeledPoint(3.0, [2.0]),
    LabeledPoint(2.0, [3.0])
]
lrm = RidgeRegressionWithSGD.train(sc.parallelize(data), iterations=10)
lrm.predict([10.0])

f390634e48834bcf93eb020aaa77ef9b.png

import os, tempfile
path = tempfile.mkdtemp()
lrm.save(sc, path)
sameModel = RidgeRegressionModel.load(sc, path)
sameModel.predict(np.array([0.0]))

7460e5bada0842b0a75081e9d48d0c94.png

目录
相关文章
|
机器学习/深度学习 数据采集 数据挖掘
实战派教学:掌握Scikit-learn,轻松实现数据分析与机器学习模型优化!
【10月更文挑战第4天】Scikit-learn凭借高效、易用及全面性成为数据科学领域的首选工具,简化了数据预处理、模型训练与评估流程,并提供丰富算法库。本文通过实战教学,详细介绍Scikit-learn的基础入门、数据预处理、模型选择与训练、评估及调优等关键步骤,助你快速掌握并优化数据分析与机器学习模型。从环境搭建到参数调优,每一步都配有示例代码,便于理解和实践。
416 2
|
6月前
|
自然语言处理 数据挖掘 数据处理
告别低效代码:用对这10个Pandas方法让数据分析效率翻倍
本文将介绍 10 个在数据处理中至关重要的 Pandas 技术模式。这些模式能够显著减少调试时间,提升代码的可维护性,并构建更加清晰的数据处理流水线。
243 3
告别低效代码:用对这10个Pandas方法让数据分析效率翻倍
|
10月前
|
SQL 人工智能 算法
TDengine 发布时序数据分析 AI 智能体 TDgpt,核心代码开源
2025 年 3 月 26 日,涛思数据通过线上直播形式正式发布了其新一代时序数据分析 AI 智能体——TDgpt,并同步开源其核心代码(GitHub 地址:https://github.com/taosdata/TDengine)。这一创新功能作为 TDengine 3.3.6.0 的重要组成部分,标志着时序数据库在原生集成 AI 能力方面迈出了关键一步。
667 0
|
5月前
|
机器学习/深度学习 算法 数据挖掘
【数据分析】基于matlab私家车充电模型(含私家车日行驶距离概率密度及累加函数,电动汽车出发时间(或者称开始充电的时间)概率)(Matlab代码实现)
【数据分析】基于matlab私家车充电模型(含私家车日行驶距离概率密度及累加函数,电动汽车出发时间(或者称开始充电的时间)概率)(Matlab代码实现)
138 0
|
机器学习/深度学习 数据采集 数据可视化
基于爬虫和机器学习的招聘数据分析与可视化系统,python django框架,前端bootstrap,机器学习有八种带有可视化大屏和后台
本文介绍了一个基于Python Django框架和Bootstrap前端技术,集成了机器学习算法和数据可视化的招聘数据分析与可视化系统,该系统通过爬虫技术获取职位信息,并使用多种机器学习模型进行薪资预测、职位匹配和趋势分析,提供了一个直观的可视化大屏和后台管理系统,以优化招聘策略并提升决策质量。
915 4
|
10月前
|
机器学习/深度学习 传感器 数据采集
基于机器学习的数据分析:PLC采集的生产数据预测设备故障模型
本文介绍如何利用Python和Scikit-learn构建基于PLC数据的设备故障预测模型。通过实时采集温度、振动、电流等参数,进行数据预处理和特征提取,选择合适的机器学习模型(如随机森林、XGBoost),并优化模型性能。文章还分享了边缘计算部署方案及常见问题排查,强调模型预测应结合定期维护,确保系统稳定运行。
1032 0
|
机器学习/深度学习 数据采集 算法
机器学习在医疗诊断中的前沿应用,包括神经网络、决策树和支持向量机等方法,及其在医学影像、疾病预测和基因数据分析中的具体应用
医疗诊断是医学的核心,其准确性和效率至关重要。本文探讨了机器学习在医疗诊断中的前沿应用,包括神经网络、决策树和支持向量机等方法,及其在医学影像、疾病预测和基因数据分析中的具体应用。文章还讨论了Python在构建机器学习模型中的作用,面临的挑战及应对策略,并展望了未来的发展趋势。
846 1
|
机器学习/深度学习 并行计算 数据挖掘
R语言是一种强大的统计分析工具,广泛应用于数据分析和机器学习领域
【10月更文挑战第21天】R语言是一种强大的统计分析工具,广泛应用于数据分析和机器学习领域。本文将介绍R语言中的一些高级编程技巧,包括函数式编程、向量化运算、字符串处理、循环和条件语句、异常处理和性能优化等方面,以帮助读者更好地掌握R语言的编程技巧,提高数据分析的效率。
355 2
|
机器学习/深度学习 算法 数据挖掘
从零到精通:Scikit-learn在手,数据分析与机器学习模型评估不再难!
【10月更文挑战第4天】在数据科学领域,模型评估是连接理论与实践的桥梁,帮助我们理解模型在未知数据上的表现。对于初学者而言,众多评估指标和工具常令人困惑。幸运的是,Scikit-learn 这一强大的 Python 库使模型评估变得简单。本文通过问答形式,带你逐步掌握 Scikit-learn 的评估技巧。Scikit-learn 提供了丰富的工具,如交叉验证、评分函数(准确率、精确率、召回率、F1 分数)、混淆矩阵和 ROC 曲线等。
269 1
|
机器学习/深度学习 算法 数据挖掘
Python数据分析革命:Scikit-learn库,让机器学习模型训练与评估变得简单高效!
在数据驱动时代,Python 以强大的生态系统成为数据科学的首选语言,而 Scikit-learn 则因简洁的 API 和广泛的支持脱颖而出。本文将指导你使用 Scikit-learn 进行机器学习模型的训练与评估。首先通过 `pip install scikit-learn` 安装库,然后利用内置数据集进行数据准备,选择合适的模型(如逻辑回归),并通过交叉验证评估其性能。最终,使用模型对新数据进行预测,简化整个流程。无论你是新手还是专家,Scikit-learn 都能助你一臂之力。
538 8

热门文章

最新文章