前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >请别再问我Spark的MLlib和ML库的区别

请别再问我Spark的MLlib和ML库的区别

作者头像
Spark学习技巧
发布2018-01-31 12:15:51
2K0
发布2018-01-31 12:15:51
举报
文章被收录于专栏:Spark学习技巧

机器学习库(MLlib)指南

MLlib是Spark的机器学习(ML)库。其目标是使实际的机器学习可扩展和容易。在高层次上,它提供了如下工具:

  • ML算法:通用学习算法,如分类,回归,聚类和协同过滤
  • 特征提取,特征提取,转换,降维和选择
  • 管道:用于构建,评估和调整ML管道的工具
  • 持久性:保存和加载算法,模型和管道
  • 实用程序:线性代数,统计,数据处理等

公告:基于DataFrame的API是主要的API

MLlib基于RDD的API现在处于维护模式。

从Spark 2.0开始,包中的基于RDD的API spark.mllib已进入维护模式。Spark的主要机器学习API现在是包中的基于DataFrame的API spark.ml

有什么影响?

  • MLlib将仍然支持基于RDD的API spark.mllib并修复错误。
  • MLlib不会将新功能添加到基于RDD的API。
  • 在Spark 2.x版本中,MLlib将向基于DataFrame的API添加功能,以便与基于RDD的API达成功能对等。
  • 达到功能对等(大致估计为Spark 2.2)后,基于RDD的API将被弃用。
  • 基于RDD的API预计将在Spark 3.0中被删除。

为什么MLlib切换到基于DataFrame的API?

  • DataFrames提供比RDD更友好的API。DataFrame的许多优点包括Spark数据源,SQL / DataFrame查询,Tungsten和Catalyst优化以及跨语言的统一API。
  • 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和基于DataFrame的API。基于RDD的API现在处于维护模式。

依赖

MLlib使用线性代数包Breeze,它依赖于 netlib-java进行优化的数值处理。如果本机库在运行时不可用,您将看到一条警告消息,而将使用纯JVM实现。

由于运行时专有二进制文件的授权问题,netlib-java默认情况下,我们不包含本地代理。要配置netlib-java/ Breeze以使用系统优化的二进制文件,请包括 com.github.fommil.netlib:all:1.1.2(或者构建Spark -Pnetlib-lgpl)作为项目的依赖项,并阅读netlib-java文档以获取平台的其他安装说明。

要在Python中使用MLlib,您将需要NumPy 1.4或更高版本。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2017-12-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 浪尖聊大数据 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 机器学习库(MLlib)指南
  • 公告:基于DataFrame的API是主要的API
  • 依赖
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档