Spark机器学习库(MLlib)指南
MLlib是Spark里的机器学习库。它的目标是使实用的机器学习算法可扩展并容易使用。它提供如下工具:
1.机器学习算法:常规机器学习算法包括分类、回归、聚类和协同过滤。
2.特征工程:特征提取、特征转换、特征选择以及降维。
3.管道:构造、评估和调整的管道的工具。
4.存储:保存和加载算法、模型及管道
5.实用工具:线性代数,统计,数据处理等。
*注意:主要接口为基于数据框的接口,基于RDD的接口目前处于维护模式。
在Spark2.0中,spark.mllib包中的RDD接口已进入维护模式。现在主要的机器学习接口为spark.ml包中的基于数据框接口。
这一转变包含哪些信息?
1.MLlib将继续在spark.mllib中支持基于RDD的接口。
2.MLlib不会向基于RDD的接口中继续添加新的特征。
3.在Spark2.0以后的版本中,将继续向基于数据框的接口添加新特征以缩小与基于RDD接口的差异。
4.当两种接口之间达到特征相同时(初步估计为Spark2.2),基于RDD的接口将被废弃。
5.基于RDD的接口将在Spark3.0中被移除。
为什么MLlib转向数据框接口?
1.数据框可以提供比RDD更容易掌握使用的接口。数据框的主要优点包括Spark数据源来源、结构化查询语言的数据框查询、各编程语言之间统一的接口。
2.基于数据框的MLlib接口为多种机器学习算法与编程语言提供统一的接口。
3.数据框有助于实现机器学习管道,特别是特征转换。管道指南中可查看详细信息。
调用信息
MLlib使用线性代数包Breeze,Breeze使用Netlib-java来优化数值问题。如果运行时本地包不可用,你将看到一个警告提示信息,然后使用纯虚拟机进行处理。
考虑到运行二进制问题时的证书许可问题,我们默认不使用netlib-java的本地代理。安装netlib-java/Breeze来使用系统二进优化,请阅读netlib-java官方文档来获得安装说明。
基于Python语言使用MLlib,需要安装1.4以上版本Numpy。
中文指南目录
2特征提取、特征变换、特征选择
3 分类和回归
3.1 分类
3.2 回归
4 聚类
6 模型选择和调试