机器学习库(MLlib)指南
MLlib是Spark的机器学习(ML)库。旨在简化机器学习的工程实践工作,并方便扩展到更大规模。MLlib由一些通用的学习算法和工具组成,包括分类、回归、聚类、协同过滤、降维等,同时还包括底层的优化原语和高层的管道API。
MLllib目前分为两个代码包:
-
spark.mllib
包含基于RDD的原始算法API。 -
spark.ml
则提供了基于DataFrames 高层次的API,可以用来构建机器学习管道。
我们推荐您使用spark.ml,因为基于DataFrames的API更加的通用而且灵活。不过我们也会继续支持spark.mllib包。用户可以放心使用,spark.mllib还会持续地增加新的功能。不过开发者需要注意,如果新的算法能够适用于机器学习管道的概念,就应该将其放到spark.ml包中,如:特征提取器和转换器。
下面的列表列出了两个包的主要功能。
spark.mllib: 数据类型,算法以及工具
- Data types(数据类型)
-
Basic statistics(基础统计)
- summary statistics(摘要统计)
- correlations(相关性)
- stratified sampling(分层抽样)
- hypothesis testing(假设检验)
- streaming significance testing
- random data generation(随机数据生成)
-
Classification and regression(分类和回归)
- linear models (SVMs, logistic regression, linear regression)(线性模型(SVM,逻辑回归,线性回归))
- naive Bayes(朴素贝叶斯)
- decision trees(决策树)
- ensembles of trees (Random Forests and Gradient-Boosted Trees)(树套装(随机森林和梯度提升决策树))
- isotonic regression(保序回归)
-
Collaborative filtering(协同过滤)
- alternating least squares (ALS)(交替最小二乘(ALS))
-
Clustering(聚类)
- k-means(K-均值)
- Gaussian mixture(高斯混合)
- power iteration clustering (PIC)(幂迭代聚类(PIC))
- latent Dirichlet allocation (LDA)(隐含狄利克雷分配)
- bisecting k-means(平分K-均值)
- streaming k-means(流式K-均值)
-
Dimensionality reduction(降维)
- singular value decomposition (SVD)(奇异值分解(SVD))
- principal component analysis (PCA)(主成分分析(PCA))
- Feature extraction and transformation(特征抽取和转换)
-
Frequent pattern mining(频繁模式挖掘)
- FP-growth(FP-增长)
- association rules(关联规则)
- PrefixSpan(PrefixSpan)
- Evaluation metrics(评价指标)
- PMML model export(PMML模型导出)
-
Optimization (developer)(优化(开发者))
- stochastic gradient descent(随机梯度下降)
- limited-memory BFGS (L-BFGS)(有限的记忆BFGS(L-BFGS))
spark.ml: 机器学习管道高级API
- Overview: estimators, transformers and pipelines(概览:评估器,转换器和管道)
- Extracting, transforming and selecting features(抽取,转换和选取特征)
- Classification and regression(分类和回归)
- Clustering(聚类)
- Advanced topics(高级主题)
虽然还有些降维技术在spark.ml中尚不可用,不过用户可以将spark.mllib中的的相关实现和spark.ml中的算法无缝地结合起来。
依赖项
MLlib使用的线性代数代码包是Breeze,而Breeze又依赖于 netlib-java 优化的数值处理。如果在运行时环境中这些原生库不可用,你将会收到一条警告,而后spark会使用纯JVM实现来替代之。
由于许可限制的原因,spark在默认情况下不会包含netlib-java的原生代理库。如果需要配置netlib-java/Breeze使用其系统优化库,你需要添加依赖项:com.github.fommil.netlib:all:1.1.2(或者在编译时加上参数:-Pnetlib-lgpl),然后再看一看 netlib-java 相应的安装文档。
要使用MLlib的Python接口,你需要安装NumPy 1.4以上的版本。
http://ifeve.com
相关推荐
《Spark+MLlib机器学习实践》是王晓华撰写的一本深度解析Spark机器学习库MLlib的实战指南。这本书全面介绍了如何利用Apache Spark的MLlib库进行高效、大规模的数据挖掘和机器学习任务。以下是对该书内容的详细解读:...
5. **MLlib**:Spark的机器学习库,包含了多种机器学习算法,如分类、回归、聚类、协同过滤等,同时也提供了模型选择、特征工程和管道等功能。 6. **ML(Machine Learning Library)**:在Spark 2.x中,MLlib进一步...
- **机器学习框架**:Spark MLlib、Angel、TensorFlow、PyTorch等,覆盖不同算法与模型训练需求。 2. **基础设施配置**: - **数据存储**:选择适合的存储方式,如HDFS、数据库、NFS或对象存储(如S3),确保数据...
《PySpark:机器学习、自然语言处理与推荐系统的实践指南》 PySpark是Apache Spark的Python接口,它为数据科学家和工程师提供了强大的分布式计算能力,用于处理大规模数据。本资源包含一套完整的PySpark项目,涵盖...
3. 机器学习算法实现:有许多开源库,如Mahout和Spark MLlib,专门用于在Hadoop平台上实现各种机器学习算法,如分类、回归、聚类和协同过滤等。 4. 模型评估与优化:通过评估不同模型的性能,比如准确率、召回率、...
《Spark编程基础及项目实践》课程的课后习题涵盖了Spark图形处理的基础概念和技术,主要涉及图论基础知识、Spark图计算API以及实际操作题目。...通过解答这些习题,学习者能够深化对Spark编程和大数据分析的理解。
这是机器学习资源的列表,并且是一些入门框架和库的指南。 创始人布莱恩·库里(Brian Curry)@ 以下是一些用于机器学习,数据科学和深度学习的顶级库,框架和工具。 这只是一个起点,但是应该提供一些可用的机器...
作为Packt Publishing出版的图书,该书详细介绍了Spark的机器学习库MLlib,并提供了大量的实例和案例研究帮助读者深入理解和应用。 在本书的前言中,我们可以看到对版权的声明,作者和出版方对于该书的复制、存储和...
Spark提供了MLlib库,这是一个包含大量机器学习算法的集合,包括监督和无监督学习,以及预处理和评估工具。书中会详细介绍如何利用这些API实现机器学习任务,包括模型训练、调参和评估。此外,Spark还支持多种编程...
在机器学习领域,Spark提供了MLlib库,包含了丰富的机器学习算法,如线性回归、决策树、随机森林、梯度提升机、协同过滤等,使得数据科学家可以方便地进行模型开发和实验。 接下来,Kubernetes(K8s)作为容器编排...
同时,Spark MLlib库提供了完整的机器学习流水线功能,使得模型构建、验证和调优过程更为便捷。 5. **项目结构与代码解读**:项目可能包含以下几个关键部分: - `data`: 存放原始数据集。 - `src/main/scala`: ...
7. **MLlib**:Spark的机器学习库MLlib提供了多种机器学习算法,包括分类、回归、聚类、协同过滤等,同时还有模型选择和评估工具,方便开发人员构建和优化机器学习模型。 8. **Spark Shuffle**:Shuffle是Spark中...
PySpark整合了MLlib库,支持多种机器学习算法,如分类、回归、聚类和协同过滤等。本章将深入讲解如何使用PySpark进行分布式机器学习,包括模型训练、评估和调优,并分享一些实际案例,帮助读者理解如何在大规模数据...
3. 机器学习库:Python 中有多个强大的机器学习库,如 Scikit-learn(sklearn)。Scikit-learn 提供了一整套用于数据挖掘和数据分析的工具,包括分类、回归、聚类、降维等算法,以及模型选择和预处理等功能。它是 ...
本项目以Apache Spark的机器学习库MLlib中的协同过滤算法ALS(Alternating Least Squares)为基础,构建了一个音乐推荐系统。Spark作为大数据处理的利器,以其高效的并行计算能力,能够快速处理海量用户行为数据,...
13. **机器学习库MLlib**:虽然不是Spark SQL的直接部分,但Spark的机器学习库MLlib可以通过DataFrame和Dataset API进行访问,实现数据预处理和模型训练。 通过对《Spark SQL编程指南》的深入学习,开发者将能够...
书中涵盖了多个关键的Java机器学习库,这些库包括但不限于Weka、Deeplearning4j、MLlib(Apache Spark的一部分)和 Smile等。通过这些库,读者可以学习如何构建、训练和部署自己的机器学习模型。例如,Weka是一个...
4. **机器学习(MLlib)**:Spark的机器学习库MLlib包含多种机器学习算法,如分类、回归、聚类、协同过滤等。这一章节会深入讲解如何使用MLlib构建模型,包括数据预处理、特征工程、模型训练、评估和调优。 5. **...
这份PDF教程涵盖了Spark的生态系统、部署与安装、编程模型、运行框架,以及相关的高级特性,如流处理、SQL支持、机器学习库MLlib和图计算库GraphX,还有Tachyon存储系统。 一、Spark生态圈 Spark生态圈包括一系列...