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

目录
相关文章
|
12月前
|
机器学习/深度学习 人工智能 自然语言处理
机器学习之线性回归与逻辑回归【完整房价预测和鸢尾花分类代码解释】
机器学习之线性回归与逻辑回归【完整房价预测和鸢尾花分类代码解释】
|
12月前
|
机器学习/深度学习 算法 搜索推荐
Machine Learning机器学习之决策树算法 Decision Tree(附Python代码)
Machine Learning机器学习之决策树算法 Decision Tree(附Python代码)
|
12月前
|
机器学习/深度学习 算法 数据可视化
计算机视觉+深度学习+机器学习+opencv+目标检测跟踪+一站式学习(代码+视频+PPT)-2
计算机视觉+深度学习+机器学习+opencv+目标检测跟踪+一站式学习(代码+视频+PPT)
|
12月前
|
机器学习/深度学习 Ubuntu Linux
计算机视觉+深度学习+机器学习+opencv+目标检测跟踪+一站式学习(代码+视频+PPT)-1
计算机视觉+深度学习+机器学习+opencv+目标检测跟踪+一站式学习(代码+视频+PPT)
|
9月前
|
供应链 数据挖掘 Serverless
【python】美妆类商品跨境电商数据分析(源码+课程论文+数据集)【独一无二】
【python】美妆类商品跨境电商数据分析(源码+课程论文+数据集)【独一无二】
190 3
【python】美妆类商品跨境电商数据分析(源码+课程论文+数据集)【独一无二】
|
8月前
|
机器学习/深度学习 SQL 数据可视化
业务类数据分析师
业务类数据分析师
84 2
|
11月前
|
机器学习/深度学习 人工智能 算法
人工智能平台PAI产品使用合集之在执行shade打包后遇到“类找不到”的错误,是什么原因
阿里云人工智能平台PAI是一个功能强大、易于使用的AI开发平台,旨在降低AI开发门槛,加速创新,助力企业和开发者高效构建、部署和管理人工智能应用。其中包含了一系列相互协同的产品与服务,共同构成一个完整的人工智能开发与应用生态系统。以下是对PAI产品使用合集的概述,涵盖数据处理、模型开发、训练加速、模型部署及管理等多个环节。
|
12月前
|
机器学习/深度学习 数据采集 数据可视化
机器学习 —— 分类预测与集成学习(上)
机器学习 —— 分类预测与集成学习
230 2
|
11月前
|
机器学习/深度学习 算法 搜索推荐
【机器学习】近邻类模型:KNN算法在数据科学中的实践与探索
【机器学习】近邻类模型:KNN算法在数据科学中的实践与探索
151 0
|
11月前
|
机器学习/深度学习 人工智能 机器人
【机器学习】符号主义类模型:解码智能的逻辑之钥
【机器学习】符号主义类模型:解码智能的逻辑之钥
214 0

热门文章

最新文章