MLlib是Spark的机器学习(ML)库。其目标是使实用的机器学习具有可扩展性和容易性。在高水平上,它提供了以下工具:
基于MLlib RDD的API现在处于维护模式。
从Spark 2.0开始,spark.mllib软件包中的基于RDD的API已进入维护模式。 Spark的主要学习API现在是spark.ml包中基于DataFrame的API。
有什么影响?
为什么MLlib切换到基于DataFrame的API?
什么是“Spark ML”?
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可能会在将来的版本中更改,下面的迁移指南将解释发行版之间的所有更改。
删除已弃用的方法
model在
regression.LinearRegressionSummary中
弃用
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初始化模式。
此页面上存档了较早的迁移指南。
1.要了解有关系统优化的本地人的好处和背景的更多信息,您可能希望观看Sam Halliday在Scala中的高性能线性代数的ScalaX演讲。