Spark机器学习库(MLlib)中文指南

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。

中文指南目录

1 管道

2特征提取、特征变换、特征选择

2.1 特征提取

2.1.1 词频-逆向文件频率(TF-IDF)

2.1.2 Word2Vec

2.1.3 计数向量器

2.2 特征变换

2.2.1 分词器

2.2.2 停用词移除

2.2.3 n-gram

2.2.4 二值化

2.2.5 主成分分析(PCA)

2.2.6 多项式展开

2.2.7 离散余弦变换(DCT)

2.2.8 字符串-索引变换

2.2.9 索引-字符串变换

2.2.10 独热编码

2.2.11 向量-索引变换

2.2.12 正则化

2.2.13 标准缩放

2.2.14 最大值-最小值缩放

2.2.15 最大值-平均值缩放

2.2.16 离散化重组

2.2.17 元素乘积

2.2.18 SQL转换器

2.2.19 向量汇编

2.2.20 分位数求解器

2.3 特征选择

2.3.1 向量机

2.3.2 R公式

2.3.3 选择

3 分类和回归

3.1 分类

3.1.1 逻辑回归

3.1.2决策树分类

3.1.3 随机森林分裂

3.1.4 梯度迭代树分类

3.1.5 多层感知机

3.1.6 一对多分类器

3.1.7 朴素贝叶斯

3.2 回归

3.2.1 广义线性模型

3.2.2 决策树回归

3.2.3 随机森林回归

3.2.4 梯度迭代树回归

3.2.5 生存回归

3.2.6 保序回归

4 聚类

4.1 K均值聚类

4.2 文档主题生成模型(LDA)

4.3 二分K均值

4.4 高斯混合模型(GMM)

5 协同过滤

6 模型选择和调试

6.1 交叉检验

6.2 训练检验分裂

7 高级主题

编辑于 2017-01-05 11:54