本文介绍了Spark中MLlib和ML库的区别。内容非常详细。感兴趣的朋友可以参考一下,希望对你有所帮助。
00-1010ml lib是Spark的机器学习(ml)库。它的目标是使实用的机器学习变得可扩展和容易。在高层次上,它提供了以下工具:
ML算法:分类、回归、聚类、协同过滤等通用学习算法。
特征提取、特征提取、变换、降维和选择。
管道:用于构建、评估和调整ML管道的工具。
持久性:保存和加载算法、模型和管道
实用性:线性代数、统计学、数据处理等。
机器学习库(MLlib)
MLlib基于RDD的API现在处于维护模式。
自Spark 2.0以来,包中位于RDD的APIspark.mllib已进入维护模式。Spark的主要机器学习API现在是包中基于DataFrame的APIspark.ml。
有什么影响?
MLlib仍将支持总部位于RDD的APIspark.mllib并修复该错误。
MLlib不会向基于RDD的API添加新功能。
在Spark 2.x版本中,MLlib将向基于DataFrame的API添加函数,以实现与基于RDD的API的功能等效。
达到功能等同(粗略估计为Spark 2.2)后,将放弃基于RDD的API。
基于RDD的应用编程接口预计将在Spark 3.0中删除。
为什么MLlib切换到基于DataFrame的API?
数据帧提供了比RDD更友好的应用编程接口。数据框架的许多优势包括Spark数据源、SQL/数据框架查询、钨和催化剂优化以及跨语言的统一应用编程接口。
MLlib基于DataFrame的API提供跨ML算法和跨多种语言的统一API。
数据框方便了实际的ML管道,尤其是函数转换。
什么是“Spark ML”?
“Spark ML”不是一个正式的名称,但偶尔会用来指代基于MLlib DataFrame的API。这主要是由于org.apache.spark.ml基于DataFrame的API所使用的Scala包名以及我们最初用来强调管道概念的术语“Spark ML Pipelines”。
MLlib是否被弃用?
MLlib号包括基于RDD的API和基于数据框架的API。基于RDD的应用编程接口现在处于维护模式。
公告:基于DataFrame的API是主要的API
MLlib使用线性代数包Breeze,它依赖netlib-java进行优化的数值处理。如果该库在运行时不可用,您将看到一条警告消息,并将改用纯JVM实现。
由于运行时专有二进制文件netlib-java的授权问题,默认情况下,我们不包括本地代理。要配置netlib-java/Breeze使用系统优化的二进制文件,请将com . github . fommil . netlib : all :1 . 1 . 2(或build Spark-Pnetlib-lgpl)作为项目的依赖项,并阅读netlib-java文档了解平台的其他安装说明。
要在Python中使用MLlib,您将需要NumPy1.4或更高版本。
Spark中的MLlib和ML库有什么区别?我在这里分享一下。我希望
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/149264.html