文档章节

学习spark机器学习库MLlib

jhonephone
 jhonephone
发布于 2014/10/14 17:36
字数 984
阅读 163
收藏 0

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

MLlib是spark的机器学习库,其目的是使得机器学习算法更容易使用和扩展。MLlib包含分类、回归、聚类、协同滤波、降维,以及更低层级的优化原语和更高层级的管道API。MLlib分成两个包:spark.mllib包含建立在RDD之上的原始API,spark.ml提供了建立在DataFrames之上的更高层级的机器学习管道API。推荐使用spark.ml,因为DataFrames使得API更加通用和灵活。

下面链接是本人做的一个关于半监督式学习的ppt

半监督学习ppt

MLlib数据类型

  1. MLlib支持保存在本地的,或者由RDD所表示的分布式向量和矩阵。代数运算由Breeze和jblas库支持。在监督式学习中,一个训练样本称为:a labeled point
  2. 本地向量:元素为double类型,向量下标索引从0开始的int整数;支持dense和sparse两种类型。dense 向量由一个double数组保存向量中所有的值;sparse向量由两个并行的数组支持,分别保存索引和值。类继承关系:Vector -> (DenseVector, SparseVector)
  3. LabeledPoint:包括一个本地向量(可以是dense vector或者sparse vector),和给该向量打上的标签。标签采用double类型保存,所以LabeledPoint可用于分类和回归问题中。对于二值分类问题,标签要么为0,要么为1;对于多类问题,标签为从0开始的整数:0,1,2,...。实际问题中经常遇到训练数据稀疏的情况,MLlib支持从LIBSVM文件加载数据,构造LabeledPoint
  4. 本地矩阵:元素值为double类型,行列索引为int类型;支持dense和sparse矩阵。dense矩阵采用一个double数组,按照列主序保存数组;sparse矩阵采用CSC(Compressed sparse column)格式,以列主序保存矩阵中非零元素。Matrix -> (DenseMatrix, SparseMatrix)
  5. 分布式矩阵:采用long类型保存行列索引,元素值依然是double类型,分布式保存在一个或者多个RDD之中。选择正确的保存格式对分布式矩阵非常重要,因为转换分布式矩阵的格式很可能会牵涉到大量的shuffle IO操作,目前支持3种类型的分布式矩阵:RowMatrix, IndexedRowMatrix, CoordinateMatrix。最基本的类型RowMatrix,是一个以行为主的矩阵,每一行可以看成是一个特征向量,以向量的形式存储在本地。IndexedRowMatrix是特殊的RowMatrix,其还保存了每一行的索引,用于定位特定的行和执行join操作。CoordinateMatrix以坐标序列的形式保存数组中的元素。BlockMatrix是为分块矩阵设计的数据结构,矩阵被分割成一个个矩阵块,保存到本地。

MLlib数据统计

  1. 在RDD[Vector]上,Statistics类提供了基于列的统计函数colStats,colStats返回每一列的最大值,最小值,均值,方差,非零元素个数,以及所有元素数量
  2. 计算两个序列的相关性是一项很常用的操作,使用corr函数可以很容易的计算两个或者多个向量的相关系数,corr函数支持Pearson和Spearman相关系数。
  3. 在RDD[(K,V)],采用分层抽样函数sampleByKey,需指定每一个key抽样的比例
  4. 假设检验,支持皮尔逊卡方检验
  5. 随机数生成,支持均匀分布、标准正态分布、泊松分布
  6. kernel density estimation:允许在不知道被观察样本概率分布的情况下,对其经验概率分布进行可视化。通过评估给定的样本,估计随机变量的分布。在评估随机变量的分布时,假设随机变量的经验概率分布函数,可以表示为以所有采样点为中心的正态分布的均值。

© 著作权归作者所有

上一篇: spark配置
下一篇: Httpclient小结
jhonephone
粉丝 5
博文 19
码字总数 24506
作品 0
合肥
高级程序员
私信 提问
基于Spark的机器学习实践 (二) - 初识MLlib

1 MLlib概述 1.1 MLlib 介绍 ◆ 是基于Spark core的机器学习库,具有Spark的优点 ◆ 底层计算经过优化,比常规编码效率往往要高 ◆ 实现了多种机器学习算法,可以进行模型训练及预测 1.2 Spark ...

javaedge
2019/04/09
0
0
地铁译:Spark for python developers ---Spark与数据的机器学习

机器学习可以从数据中得到有用的见解. 目标是纵观Spark MLlib,采用合适的算法从数据集中生成见解。对于 Twitter的数据集, 采用非监督集群算法来区分与Apache
Spark相关的tweets . 初始输入...

abel_cao
2019/01/17
0
0
Spark的39个机器学习库-中文

//Apache Spark 本身// 1.MLlib >AMPLab Spark最初诞生于伯克利 AMPLab实验室,如今依然还是AMPLab所致力的项目,尽管这些不处于Apache Spark Foundation中,但是依然在你日常的github项目中...

MoksMo
2015/11/04
957
0
Spark 数据分析导论-笔记

Spark Core Spark Core 实现了Spark 的基本功能,包含任务调度、内存管理、错误恢复、与存储系统交互等模块。 Spark Core 中还包含了 对弹性分布式数据集(resilient distributed dataset,简...

Java搬砖工程师
2018/12/26
78
0
[雪峰磁针石博客]pyspark工具机器学习(自然语言处理和推荐系统)1数据演进

在早期员工将数据输入系统,数据点非常有限,只占用少数几个字段。然后是互联网,每个人都可以轻松获取信息。现在,用户可输入并生成自己的数据。随着互联网用户数量呈指数级增长,用户创造的...

书籍寻找
2019/01/28
0
0

没有更多内容

加载失败,请刷新页面

加载更多

dynamic-connectivity 动态连通性问题之 quick-union 算法

quick-union 的思想是:若对象 p 的 root_id 和对象 q 的 root_id 相等,则认为 p 和 q 连通。 若要将对象 p 和对象 q 连通(已知两对象未连通),则将 p 的 root_id 的值设为 q 的 root_id ...

Phpythoner_Alei
今天
40
0
OSChina 周六乱弹 —— 实在选不出来就唱国歌

Osc乱弹歌单(2020)请戳(这里) 【今日歌曲】 @花间小酌 :#今日歌曲推荐# 分享阿冗的单曲《你的答案》。--祝大家在2020年都找到自己答案。 《你的答案》- 阿冗 手机党少年们想听歌,请使劲...

小小编辑
今天
25
1
Maven打包可执行Jar包的方法

在使用Java开发中,会使用到将工程打包成可执行的jar包的情况,那么在maven中怎么将项目中的依赖包都添加到jar中呢。在pom.xml中添加一下插件: <build><plugins><plugin><ar...

CapJes
今天
13
0
使用vue 开发地图类系统(openlayers.js)的注意。

使用vue 开发地图类系统的注意。 1、使用地图应该创建的对象 少使用 vue 的data 和计算属性(comments)存数据或是vuex。 为什么要要注意这个问题呢? 答:这个就要了解到vue的实现原理 。原理...

DY-Tao
昨天
10
0
web移动端学习:高德地图demo(一)

在高德地图开发中申请开发者资格,然后在控制台中新建应用,获得KEY; 新建模板HTML文件; <!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>地图demo</title><scri......

dxiya
昨天
10
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部