MLlib官方简介

MLlibSpark的机器学习(ML)库。 其目标是使实际的机器学习具有可扩展性和易用性。

在较高的层面上,它提供了以下工具:

(1)ML算法:通用学习算法,如分类回归聚类协作过滤

(2)特征提取:特征提取,转换,降维和选择

(3)管道:用于构建,评估和调整ML管道的工具

(4)持久性:保存和加载算法,模型和管道

(5)实用程序:线性代数,统计,数据处理等

公告:基于DataFrameAPI是主要的API

基于MLlib RDDAPI现在处于维护模式。

Spark 2.0开始,spark.mllib包中的基于RDDAPI已进入维护模式。 Spark的主要机器学习API现在是spark.ml包中的基于DataFrameAPI

什么影响?

(1)MLlib仍然会支持spark.mllib中基于RDDAPI并提供错误修复。

(2)MLlib不会将新功能添加到基于RDDAPI

(3)Spark 2.x版本中,MLlib将向基于DataFramesAPI添加功能以达到与基于RDDAPI的功能一致性。

(4)达到功能奇偶校验(大致估计为Spark 2.3)后,基于RDDAPI将被弃用。

(5)预计在Spark 3.0中将删除基于RDDAPI

为什么MLlib切换到基于DataFrameAPI

(1)DataFrames提供比RDD更友好的APIDataFrame的许多优点包括Spark数据源,SQL / DataFrame查询,TungstenCatalyst优化以及跨语言的统一API

(2)MLlib的基于DataFrameAPI提供跨ML算法和跨多种语言的统一API

(3)DataFrames方便实用ML管道,特别是功能转换。 有关详细信息,请参阅管道指南。

什么是“Spark ML”

“Spark ML”不是一个正式名称,但偶尔用于指代基于MLlib DataFrameAPI。 这主要是由于基于DataFrameAPI所使用的org.apache.spark.ml Scala包名称以及我们最初用来强调管道概念的“Spark ML Pipelines”术语。

MLlib是否被弃用?

不会,MLlib包含基于RDDAPI和基于DataFrameAPI。 基于RDDAPI现在处于维护模式。 但是这两种API都没有被弃用,也没有和MLlib作为一个整体。

 依赖

MLlib使用线性代数包Breeze,它依赖于netlib-java进行优化的数值处理。 如果本机库1在运行时不可用,您将看到一条警告消息,而将使用纯JVM实现。


你可能感兴趣的:(MLlib简介,Spark)