页面树结构

2017-07-25 Apache Spark 2.2.0 官方文档中文版发布 : http://spark.apachecn.org/docs/cn/2.2.0/


MachineLearning 优酷地址 : http://i.youku.com/apachecn

转至元数据结尾
转至元数据起始

MLlib是Spark的机器学习(ML)库。其目标是使实用的机器学习具有可扩展性和容易性。在高水平上,它提供了以下工具:

  • ML算法:常用的学习算法,如分类,回归,聚类和协同过滤
  • 特征:特征提取,变换,降维和选择
  • 管道:构建,评估和调整ML管道的工具
  • 持久性:保存和加载算法,模型和管道
  • 实用程序:线性代数,统计,数据处理等

 

公告:基于DataFrame的API是主要的API

基于MLlib RDD的API现在处于维护模式。

从Spark 2.0开始,spark.mllib软件包中的基于RDD的API已进入维护模式。 Spark的主要学习API现在是spark.ml包中基于DataFrame的API。

有什么影响?

  • MLlib仍然会在spark.mllib中支持基于RDD的API,并提供错误修复。
  • MLlib不会为基于RDD的API添加新功能。
  • 在Spark 2.x版本中,MLlib将向基于DataFrames的API添加功能,以实现与基于RDD的API的功能奇偶校验。
  • 达到功能奇偶校验(大概估计为Spark 2.2)后,将不推荐使用基于RDD的API。
  • 预计将在Spark 3.0中删除基于RDD的API。

为什么MLlib切换到基于DataFrame的API?

  • DataFrames提供比RDD更加用户友好的API。 DataFrames的许多好处包括Spark Datasources,SQL / DataFrame查询,Tungsten和Catalyst优化以及跨语言的统一API。
  • 用于MLlib的基于DataFrame的API为ML算法和跨多种语言提供了统一的API。
  • DataFrames有助于实际的ML管道,特别是特征转换。有关详细信息,请参阅管道指南

什么是“Spark ML”?

  • “Spark ML”不是官方名称,但偶尔用于引用基于MLlib DataFrame的API。这主要是由于基于DataFrame的API使用的org.apache.spark.ml Scala软件包名称以及我们最初用于强调管道概念的“Spark ML Pipelines”术语。

MLlib是否已弃用?

  • 不,MLlib包括基于RDD的API和基于DataFrame的API。基于RDD的API现在处于维护模式。但是,API都不被弃用,也不是MLlib。

 

依赖关系


MLlib使用线性代数包Breeze,它取决于netlib-java进行优化的数值处理。如果native libraries1在运行时不可用,则会看到一条警告消息,而将使用纯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或更高版本。

迁移指南

MLlib正在积极发展。标记为Experimental / DeveloperApi的API可能会在将来的版本中更改,下面的迁移指南将解释发行版之间的所有更改。

从2.0到2.1

突破变化

删除已弃用的方法

  • setLabelCol在feature.ChiSqSelectorModel中
  • numTrees在classification.RandomForestClassificationModel中(现在指的是Param叫numTrees)
  • numTrees在regression.RandomForestRegressionModel中(现在指的是Param叫numTrees)
  • modelregression.LinearRegressionSummary中
  • validateParams在PipelineStage中
  • validateParams在Evaluator中

废弃和行为变化

弃用

SPARK-18592:弃用所有Param setter方法,除了输入/输出列DecisionTreeClassificationModel的参数,GBTClassificationModel,RandomForestClassificationModel,DecisionTreeRegressionModel,GBTRegressionModel和RandomForestRegressionModel
行为变化

SPARK-17870:修正ChiSqSelector的错误,可能会改变其结果。现在,ChiSquareSelector使用pValue而不是raw statistic选择固定数量的顶级功能。
SPARK-3261:  如果k个不同的质心不可用或没有选择,KMeans会返回可能少于k个聚类中心。
SPARK-17389:K均值将k-means ||的默认步数从5减少到2初始化模式。

以前的Spark版本

此页面上存档了较早的迁移指南。 


1.要了解有关系统优化的本地人的好处和背景的更多信息,您可能希望观看Sam Halliday在Scala中的高性能线性代数的ScalaX演讲。 

 

  • 无标签