Spark MLLib

Spark MLLib简介
MLlib作为Spark的机器学习库,提供了非常丰富的机器学习算法,比如分类、回归、聚类及推荐算法等。目前,MLlib分为两个代码包:spark.mllib与spark.ml。

spark.mllib

Spark MLlib是Spark的重要组成部分,是最初提供的一个机器学习库。这
个库有一个明显的缺点,就是面对复杂的数据集,需要做多次处理,或者
当需要对新数据结合多个已经训练好的单个模型进行综合计算时,使用
Spark MLlib会使程序结构变得复杂,甚至难以实现。
spark.mllib是基于RDD的原始算法API,目前处于维护状态。该库下包含4
类常见的机器学习算法:分类、回归、聚类、协同过滤。值得注意的是,
基于RDD的API不会再添加新的功能。

在这里插入图片描述
spark.ml

Spark1.2版本引入了ML Pipeline,经过多个版本的发展,Spark ML克服
了MLlib处理机器学习问题的一些不足(复杂、流程不清晰),向用户提
供了基于DataFrame API的机器学习库,提升数据处理效率。
与RDD相比,DataFrame提供了更加友好的API。DataFrame的优势,包
括Spark数据源,SQL / DataFrame查询,Tungsten和Catalyst优化以及跨
语言的统一API。
Spark ML API提供了很多数据特征处理函数,如特征选取、特征转换、类
别数值化、正则化、降维等。另外基于DataFrame API的ml库支持构建机
器学习的Pipeline,把机器学习过程一些任务有序地组织在一起,便于运
行和迁移。

比如说,在数据变换上,Spark ML中提供了非常丰富的数据转换算法,
对数据进行规范化、离散化、衍生指标等;在数据规约上,Spark ML提
供的特征选择和降维的方法。

关于大数据学习,Spark MLlib入门,以上就为大家做了简单的介绍了。
大数据学习是一个循序渐进的过程,Spark生态圈也是重要的学习内容,
一个组件一个组件地深入,慢慢来。

Spark中ml和mllib的主要区别和联系如下:

ml和mllib都是Spark中的机器学习库,目前常用的机器学习功能2个库都
能满足需求。
spark官方推荐使用ml, 因为ml功能更全面更灵活,未来会主要支持ml,
mllib很有可能会被废弃(据说可能是在spark3.0中deprecated)。
ml主要操作的是DataFrame, 而mllib操作的是RDD,也就是说二者面向的
数据集不一样。相比于mllib在RDD提供的基础操作,ml在DataFrame上
的抽象级别更高,数据和操作耦合度更低。
DataFrame和RDD什么关系?DataFrame是Dataset的子集,也就是
Dataset[Row], 而DataSet是对RDD的封装,对SQL之类的操作做了很多
优化。
相比于mllib在RDD提供的基础操作,ml在DataFrame上的抽象级别更
高,数据和操作耦合度更低。
ml中的操作可以使用pipeline, 跟sklearn一样,可以把很多操作(算法/特征
提取/特征转换)以管道的形式串起来,然后让数据在这个管道中流动。大
家可以脑补一下Linux管道在做任务组合时有多么方便。
ml中无论是什么模型,都提供了统一的算法操作接口,比如模型训练都是
fit;不像mllib中不同模型会有各种各样的trainXXX。
mllib在spark2.0之后进入维护状态, 这个状态通常只修复BUG不增加新功
能。
以上就是ml和mllib的主要异同点。下面是ml和mllib逻辑回归的例子,可以
对比看一下, 虽然都是模型训练和预测,但是画风很不一样。

在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值