博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《Spark 官方文档》机器学习库(MLlib)指南
阅读量:5072 次
发布时间:2019-06-12

本文共 1959 字,大约阅读时间需要 6 分钟。

spark-2.0.2

机器学习库(MLlib)指南

MLlib是的(ML)库。旨在简化机器学习的工程实践工作,并方便扩展到更大规模。MLlib由一些通用的学习和工具组成,包括分类、回归、聚类、协同过滤、降维等,同时还包括底层的优化原语和高层的管道API。

MLllib目前分为两个代码包:

  •  包含基于RDD的原始算法API。
  •  则提供了基于 高层次的API,可以用来构建机器学习管道。

 

我们推荐您使用spark.ml,因为基于DataFrames的API更加的通用而且灵活。不过我们也会继续支持spark.mllib包。用户可以放心使用,spark.mllib还会持续地增加新的功能。不过开发者需要注意,如果新的算法能够适用于机器学习管道的概念,就应该将其放到spark.ml包中,如:特征提取器和转换器。

下面的列表列出了两个包的主要功能。

spark.mllib: 数据类型,算法以及工具

  • (数据类型)
  • (基础统计)
    • (摘要统计)
    • (相关性)
    • (分层抽样)
    • (假设检验)
    • (随机数据生成)
    •  (核密度估计)
  • (分类和回归)
    • (线性模型(SVM,逻辑回归,线性回归))
    • (朴素贝叶斯)
    • (决策树)
    • (树套装(随机森林和梯度提升决策树))
    • (保序回归)
  • (协同过滤)
    • (交替最小二乘(ALS))
  • (聚类)
    • (K-均值)
    • (高斯混合)
    • (幂迭代聚类(PIC))
    • (隐含狄利克雷分配)
    • (平分K-均值)
    • (流式K-均值)
  • (降维)
    • (奇异值分解(SVD))
    • (主成分分析(PCA))
  • (特征抽取和转换)
  • (频繁模式挖掘)
    • (FP-增长)
    • (关联规则)
    • (PrefixSpan)
  • (评价指标)
  • (PMML模型导出)
  • (优化(开发者))
    • (随机梯度下降)
    • (有限的记忆BFGS(L-BFGS))

spark.ml: 机器学习管道高级API

  • (概览:评估器,转换器和管道)
  • (抽取,转换和选取特征)
  • (分类和回归)
  • (聚类)
  • (高级主题)

虽然还有些降维技术在spark.ml中尚不可用,不过用户可以将spark.mllib中的的相关实现和spark.ml中的算法无缝地结合起来。

依赖项

MLlib使用的线性代数代码包是,而又依赖于  优化的数值处理。如果在运行时环境中这些原生库不可用,你将会收到一条警告,而后spark会使用纯JVM实现来替代之。

由于许可限制的原因,spark在默认情况下不会包含netlib-的原生代理库。如果需要配置netlib-java/Breeze使用其系统优化库,你需要添加依赖项:com.github.fommil.netlib:all:1.1.2(或者在编译时加上参数:-Pnetlib-lgpl),然后再看一看  相应的安装文档。

要使用MLlib的接口,你需要安装 1.4以上的版本。

迁移指南

MLlib目前还在积极的开发当中。所以标记为 Experimental / DeveloperApi 的接口可能在未来发生变化,下面的迁移指南说明了版本升级后的变化。

从1.5升级到1.6

从1.5到1.6,spark.mllib 和 spark.ml 包中并没有重大的API变化,不过有一些行为不再支持或者发生变化。

已经废弃:

  • : spark.mllib.clustering.KMeans 的runs参数已经废弃
  • : spark.ml.classification.LogisticRegressionModel和spark.ml.regresion.LinearRegressionModel 中,weights字段改名为coefficients。这一变动有助于消除歧义,可以和输入给算法的实例(行)权重(weights)区分开来。

行为有变:

  • spark.mllib.tree.GradientBoostedTreesvalidationTol 的语义在1.6中有变。原先其代表误差变化绝对值的一个阈值,而现在它类似于GradientDescent中的convergenceTol:对于较大的误差,使用相对误差(相对于上一次);而对于较小的误差(<0.01),使用绝对误差。
  • : spark.ml.feature.RegexTokenizer:以前,在分词之前不会讲字符串转小写。现在的实现是,默认会将字符串转小写,不过有选项可以设为不转。这中实现和Tokenizertransformer的行为相匹配。

Spark老版本

以前版本的迁移指南归档在这里:


  1. 要了解更多有关系统优化的好处和背景资料,可以看看Sam Halliday关于ScalaX的演讲:
转载自
本文链接地址:
 

转载于:https://www.cnblogs.com/LT-blogs/p/6228805.html

你可能感兴趣的文章
Sand Making Plant Produced by Red Star
查看>>
读《雷军给郁亮等传统大佬的一句血泪忠告》
查看>>
Win 10 文件浏览器无法打开
查看>>
HDU 1212 Big Number(C++ 大数取模)(java 大数类运用)
查看>>
-bash: xx: command not found 在有yum源情况下处理
查看>>
[leetcode]Minimum Path Sum
查看>>
内存管理 浅析 内存管理/内存优化技巧
查看>>
hiho1079 线段树区间改动离散化
查看>>
【BZOJ 5222】[Lydsy2017省队十连测]怪题
查看>>
第二次作业
查看>>
【input】 失去焦点时 显示默认值 focus blur ★★★★★
查看>>
Java跟Javac,package与import
查看>>
day-12 python实现简单线性回归和多元线性回归算法
查看>>
Json格式的字符串转换为正常显示的日期格式
查看>>
[转]使用 Razor 进行递归操作
查看>>
[转]Android xxx is not translated in yyy, zzz 的解决方法
查看>>
docker入门
查看>>
Android系统--输入系统(十一)Reader线程_简单处理
查看>>
监督学习模型分类 生成模型vs判别模型 概率模型vs非概率模型 参数模型vs非参数模型...
查看>>
Mobiscroll脚本破解,去除Trial和注册时间限制【转】
查看>>