Apache Spark机器学习.1.4 MLlib

    xiaoxiao2024-01-06  152

    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使得这些操作非常容易。

    最新回复(0)