找回密码
 立即注册
查看: 33|回复: 0

数据词典:Spark MLlib

[复制链接]

656

主题

70

回帖

2291

积分

管理员

积分
2291
发表于 2025-11-7 13:36:09 | 显示全部楼层 |阅读模式
Spark MLlibMachine Learning Library)是Spark的机器学习库,旨在简化机器学习的工程实践,并能够方便地扩展到更大规模数据。MLlib提供了主要的机器学习算法,包括用于特征预处理的数理统计方法,特征提取、转换和选择,以及分类、回归、聚类、关联规则、推荐、优化、算法的评估等。
为什么会有Spark MLlib的出现呢?
传统的机器学习算法,由于技术和单机存储的限制,只能在少量数据上使用,因此,传统的统计、机器学习算法依赖于数据抽样。但是在实际应用中,样本往往很难做到随机,导致学习的模型不是很准确,在测试数据上的效果也不太好。随着HDFS等分布式文件系统的出现,我们可以对海量数据进行存储和管理,并利用MapReduce框架在全量数据上进行机器学习,这在一定程度上解决了统计随机性的问题,提高了机器学习的精度。但是, MapReduce自身存在缺陷,延迟高,磁盘开销大,无法高效支持迭代计算,这使得MapReduce无法高效地实现分布式机器学习算法。因为通常情况下,机器学习算法参数学习的过程都是迭代计算,本次计算的结果要作为下一次迭代的输入。这个过程中,MapReduce只能把中间结果存储到磁盘中,然后在下一次计算的时候重新从磁盘读取数据;对于迭代频发的算法,这是制约其性能的瓶颈。相比而言,Spark立足于内存计算,天然地适用于迭代式计算,能很好地与机器学习算法相匹配。这也是近年来Spark平台流行的重要原因,业界的很多业务纷纷从Hadoop平台转向Spark平台。
在大数据上的机器学习,需要处理全量数据并进行大量的迭代计算,这就要求机器学习平台具备强大的处理能力和分布式计算能力。然而,对于普通开发者来说,实现一个分布式机器学习算法,仍然是一件极具挑战的事情。为此,Spark提供了一个基于海量数据的机器学习库MLlib,它提供了常用机器学习算法的分布式实现,对于开发者而言,只需要有Spark编程基础,并且了解机器学习算法的基本原理和方法中相关参数的含义,就可以轻松地通过调用相应的 API,来实现基于海量数据的机器学习过程。同时,spark-shell也提供即席(Ad Hoc)查询的功能,算法工程师可以边写代码、边运行、边看结果。Spark提供的各种高效的工具,使得机器学习过程更加直观便捷。比如,可以通过sample函数非常方便地进行抽样。Spark发展到目前,已经拥有了实时批计算、批处理、算法库、SQL、流计算等模块,成为了一个全平台的系统,把机器学习作为关键模块加入到Spark中也是大势所趋。
MLlib由一些通用的学习算法和工具组成,包括分类、回归、聚类、协同过滤、降维等,同时还包括底层的优化原语和高层的管道API。具体来说,MLlib主要包括以下几方面的内容:
1.算法工具:常用的学习算法,如分类、回归、聚类和协同过滤;
2.特征化工具:特征提取、转化、降维和选择工具;
3.流水线(Pipeline):用于构建、评估和调整机器学习工作流的工具;
4.持久性:保存和加载算法、模型和管道;
5.实用工具:线性代数、统计、数据处理等工具。
Spark在机器学习方面的发展非常快,已经支持了主流的统计和机器学习算法。纵观所有基于分布式架构的开源机器学习库,MLlib以计算效率高而著称。MLlib目前支持常见的机器学习算法,包括分类、回归、聚类和协同过滤等。
【出处】林子雨,赖永炫,陶继平.Spark编程基础(Scala版).人民邮电出版社,20188.

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|全数联人才测评中心 ( 京ICP备2024094898号 )

GMT+8, 2025-11-18 04:34 , Processed in 0.099593 second(s), 20 queries .

版权所有: 全数联人才测评(北京)中心

友情链接: 中华全国数字人才培育联盟 全数联人才测评中心学习平台 全数联人才测评中心存证平台 全数联人工智能专员认证中心

快速回复 返回顶部 返回列表