这期内容当中小编将会给大家带来有关Spark2.2 机器学习库MLlib的原理分析是怎样的,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
MLlib是Spark的机器学习(ML)库。机器学习具有可扩展性和易用性。提供高级API,它提供了以下工具:
ML算法:常见的学习算法,如分类、回归、聚类和协同过滤
特征化:特征提取、变换、降维和选择
管道:用于构建、评估和调优ML管道的工具
持久性:保存和加载算法、模型和管道
实用程序:线性代数,统计学,数据处理等。
基于MLlib RDD的API现在处于维护模式。
从Spark 2.0开始,在spark.mllib
程序包已进入维护模式。Spark的主要机器学习API现在是DataFrame-based API spark.ml
。
有什么影响 ?
MLlib将支持基于RDD的API spark.mllib
以及错误修复。
MLlib不会为基于RDD的API添加新功能 。
在Spark 2.x版本中,MLlib将为基于DataFrames的API添加功能,以实现与基于RDD的API的功能奇偶校验。
在达到功能奇偶校验(粗略估计Spark 2.3)之后,将弃用基于RDD的API。
The RDD-based API is expected to be removed in Spark 3.0.
预计将在Spark 3.0中删除基于RDD的API。
为什么MLlib会切换到基于DataFrame的API?
DataFrames提供比RDD更加用户友好的API。DataFrame的许多优势包括Spark Datasources, SQL/DataFrame queries,Tungsten和Catalyst优化以及跨语言的统一API。
基于DataFrame的MLlib API跨ML算法和多种语言提供统一的API。
DataFrames有助于的ML Pipelines,特别是特征变换。有关详细信息,请参阅Pipelines guide。
什么是“Spark ML”?
“Spark ML”不是官方名称,但偶尔用于指代基于MLlib DataFrame的API。这主要是由于org.apache.spark.ml
基于DataFrame的API使用的Scala包名称,以及我们最初用来强调管道概念的“Spark ML Pipelines”术语。
MLlib已被弃用吗?
不,MLlib包括基于RDD的API和基于DataFrame的API。基于RDD的API现在处于维护模式。但是API和MLlib都没有被弃用。
MLlib使用线性代数包Breeze,它依赖于 netlib-java进行优化的数值处理。如果本机库1在运行时不可用,您将看到一条警告消息,而将改用纯JVM实现。
由于运行时专有二进制文件的许可问题,我们netlib-java
默认情况下不包含本机代理。要配置netlib-java
/ Breeze以使用系统优化的二进制文件,请包含 com.github.fommil.netlib:all:1.1.2
(或构建Spark with -Pnetlib-lgpl
)作为项目的依赖项,并阅读netlib-java文档以获取平台的其他安装说明。
要在Python中使用MLlib,您将需要额外的NumPy版本以及1.4或更高版本。
下面的列表重点介绍了Spark 2.2版本中添加到MLlib的一些新特性和增强功能:
所有用户或项目的top-k推荐的ALS方法,与mllib(SPARK-19535)中的功能相匹配。ml和mllib (SPARK-11968 and SPARK-20587)的性能也有所提高
用DataFrames 统计 相关性 和 ChiSquareTest
(SPARK-19636 and SPARK-19635)
FPGrowth
频繁模式挖掘算法 (SPARK-14503)
GLM
now supports the full Tweedie
family (SPARK-18929)
Imputer
用于填充数据集中缺失值的特征转换器 (SPARK-13568)
LinearSVC
线性支持向量机分类 (SPARK-14709)
Logistic回归现在支持在训练期间对系数的约束 (SPARK-20047)
MLlib正在积极开发中。标记为Experimental/DeveloperApi的api在将来的版本中可能会发生变化,下面的迁移指南将解释版本之间的所有变化。
没有突破性的变化。
反对
没有人反对。
Changes of behavior
SPARK-19787: Default value of regParam
changed from 1.0
to 0.1
for ALS.train
method (marked DeveloperApi
). Note this does not affect the ALS
Estimator or Model, nor MLlib’s ALS
class.
SPARK-14772: Fixed inconsistency between Python and Scala APIs for Param.copy
method.
SPARK-11569: StringIndexer
now handles NULL
values in the same way as unseen values. Previously an exception would always be thrown regardless of the setting of the handleInvalid
parameter.
上述就是小编为大家分享的Spark2.2 机器学习库MLlib的原理分析是怎样的了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注亿速云行业资讯频道。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。