Apache Spark机器学习.1.4 MLlib

1.4 MLlib


MLlib是一个可扩展的Spark机器学习库,包括很多常用的机器学习算法。MLlib内置的算法如下:

以向量和矩阵形式处理数据

基本的统计计算,例如:汇总统计和相关性、简单随机数生成、分层抽样、执行简单的假设检验

分类和回归建模

协同过滤

聚类

降维

特征提取与转换

频繁模式挖掘

开发优化

PMML模型导出

Spark MLlib还处在活跃开发阶段,预计每次新版发布都会有新的算法加入其中。

MLlib符合Apache Spark的计算哲学,简单易用,性能卓越。

MLlib使用依赖于netlib-java和jblas的线性代数包Breeze。netlib-java和jblas依赖于本地Fortran程序。如果节点没有安装gfortran运行库,用户需要自行安装。要是没有自动检测到库,MLlib会报链接错误。

关于MLib用例和详细的使用信息,请访问:http://researcher.watson.ibm.com/researcher/files/us-ytian/systemML.pdf。

其他机器学习库

正如前面讨论的,MLlib已经实现了常用的回归和分类算法。但这些基本的算法不足以支持复杂的机器学习。

如果我们等待Spark团队将所有需要的机器学习算法加入库中,则需要很长时间。正因为如此,很多第三方团队向Spark贡献了机器学习库。

IBM已经向Apache Spark贡献了机器学习库SystemML。

除了MLlib提供的功能外,SystemML提供了更丰富的机器学习算法,如缺失数据填补、SVM、GLM、ARIMA、非线性优化、图建模及矩阵分解等算法。

SystemML由IBM Almaden研究组开发,是一个分布式机器学习引擎,可以扩展到任意大的数据集,它的优势有:

整合了分散的机器学习环境

给出了Spark核心生态完整的DML集

允许数据科学家集中精力关注算法问题,而不是具体实现

提升了数据科学团队的时间价值

建立了一个事实上可重用的机器学习程序标准

SystemML参考了R 语言语法和语义,并提供通过其自己的语言编写新算法的能力。

Spark通过SparkR与R语言进行了较好的集成,用户需要时可以使用R语言众多的机器学习算法。正如后面我们要讨论的,SparkR notebook使得这些操作非常容易。

上一篇:使用Spark SQL进行流式机器学习计算(上)


下一篇:Apache Spark机器学习.1.7 机器学习工作流示例