Spark机器学习库(MLlib)开发指南(1)

机器学习库(MLlib)开发指南(1)

本文是翻译自官方文档,如有错误,欢迎指正。
原文 https://spark.apache.org/docs/latest/ml-guide.html

MLlib是spark的机器学习库,它的目标是使得实战机器学习变得易于扩展。在较高层次上,它提供了如下的工具

  • 机器学习算法:通常的学习型算法,例如分类 ,回归,聚类以及协同过滤
  • 特征处理:特征提取,转换,降维以及特征选择
  • pipeline:用于构建,评估及调整ML pipeline的工具
  • 持久化:保存及加载算法,模型及pipeline
  • 工具类:线性代数,统计,数据绑定等等
声明:DataFrame-based api是主要api
MLlib RDD-based API 现在处于维护状态
在 Spark 2.0,在 spark.MLlib这个包下的 RDD-based APIs 已经进入维护状态。现在主要的 api 是位于 spark.ml 这从此包下面的 DataFrame-based API

这个声明的说明

  • MLlib将仍然支持位于 spark.MLlib 下面的 RDD-based API,并提供错误修复
  • MLlib将不再添加新的功能为RDD-based API
  • 在Spark 2.x版本中,MLlib 将添加功能到 DataFrames-based API ,为了达到RDD-based API相同的功能
  • 在达到相同的功能后(粗略估计到Spark 2.3),RDD-based API 将被废弃
  • RDD-based API 预计在Spark 3.0时移除

为什么 MLlib要切换到DataFrame-based API

  • DataFrames 提供了比RDD更加用户友好的API,DataFrames的许多好处包括Spark Datasources,SQL / DataFrame查询,Tungsten和Catalyst优化以及跨语言的统一API
  • 基于DataFrame的ML API为ML算法和跨多种语言提供了统一的API。
  • DataFrames有助于实际的ML Pipelines,特别是特征转换。
    有关详细信息,请参阅Pipelines指南

什么是Spark ML

  • Spark ML 不是一个官方的名称,但偶尔用于引用基于MLlib DataFrame的API。这主要是由于基于DataFrame的API使用的org.apache.spark.ml Scala软件包名称以及我们最初用于强调管道概念的“Spark ML Pipelines”术语。

MLlib被弃用

  • 不,MLlib 包含 RDD-based API 和 DataFrame-based API。 RDD-based API 现在进入维护状态,但是MLlib是一个整体,API不会弃用。

依赖
MLlib使用线性代数包Breeze,它依赖数值处理优化包netlib-java。如果在运行时本地库不可用,你将看到一个警告消息,一个纯JVM实现将作为替换使用。
由于运行时专有二进制文件的许可问题,我们默认不包括netlib-java的代理。
要将netlib-java / Breeze配置为使用系统优化的二进制文件,请将com.github.fommil.netlib:all:1.1.2(或构建Spark with -Pnetlib-lgpl)作为项目的依赖项,并读取netlib-java文档
为您的平台的额外的安装说明。

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

2.2版本中的亮点
下面的列表突出显示了在2.2版本的Spark中添加到MLlib的一些新功能和增强功能:

  • 对用户或者物品进行topk推荐的ALS方法,与MLlib(SPARK-19535)中的功能相匹配。
    ml和MLlib(SPARK-11968和SPARK-20587)的性能也得到改善
  • Correlation and ChiSquareTest为DataFrames增加统计函数
  • FPGrowth 算法 或者 frequent pattern mining (SPARK-14503)
  • GLM现在支持完整的Tweedie系列(SPARK-18929)
  • 在dataset中估计缺失值 通过特征变换
  • LinearSVC 实现 svm(SPARK-14709)
  • 逻辑回归现在支持训练过程中系数的约束

迁移指导
MLlib正在积极发展。标记为Experimental / DeveloperApi的API可能会在将来的版本中更改,下面的迁移指南将解释发行版之间的所有更改。

行为变化

  • SPARK-19787:对于ALS.train方法(标记为DeveloperApi),regParam的默认值从1.0变为0.1。请注意,这不影响ALS估算器或模型,也不影响MLlib的ALS类。
  • SPARK-14772:修复了Param.copy方法的Python和Scala API之间的不一致。
  • SPARK-11569:StringIndexer现在处理NULL值的方式与未看到的值相同。以前,无论handleInvalid参数的设置如何,都会抛出异常。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,406评论 6 503
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,732评论 3 393
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,711评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,380评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,432评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,301评论 1 301
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,145评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,008评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,443评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,649评论 3 334
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,795评论 1 347
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,501评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,119评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,731评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,865评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,899评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,724评论 2 354

推荐阅读更多精彩内容