MLlib 是 Spark 的机器学习库,旨在简化机器学习的工程实践工作,并方便扩展到更大规模。
MLlib 由一些通用的学习算法和工具组成,包括分类、回归、聚类、协同过滤、降维等,同时还包括底层的优化原语和高层的管道 API。
本节将对 Spark MLlib 进行简单介绍,在介绍数据挖掘算法时,将使用 Spark MLlib 提供的算法进行实例讲解。
Spark MLlib的构成
Spark 是基于内存计算的,天然适应于数据挖掘的迭代式计算,但是对于普通开发者来说,实现分布式的数据挖掘算法仍然具有极大的挑战性。因此,Spark 提供了一个基于海量数据的机器学习库 MLlib,它提供了常用数据挖掘算法的分布式实现功能。
开发者只需要有 Spark 基础并且了解数据挖掘算法的原理,以及算法参数的含义,就可以通过调用相应的算法的 API 来实现基于海量数据的挖掘过程。
MLlib 由 4 部分组成:数据类型,数学统计计算库,算法评测和机器学习算法。
名称 | 说明 |
---|---|
数据类型 | 向量、带类别的向量、矩阵等 |
数学统计计算库 | 基本统计量、相关分析、随机数产生器、假设检验等 |
算法评测 | AUC、准确率、召回率、F-Measure 等 |
机器学习算法 | 分类算法、回归算法、聚类算法、协同过滤等 |
具体来讲,分类算法和回归算法包括逻辑回归、SVM、朴素贝叶斯、决策树和随机森林等算法。用于聚类算法包括 k-means 和 LDA 算法。协同过滤算法包括交替最小二乘法(ALS)算