spark向量
1、本地向量
MLlib的本地向量主要分为两种,DenseVector和SparseVector,顾名思义,前者是用来保存稠密向量,后者是用来保存稀疏向量,其创建方式主要有一下三种(三种方式均创建了向量(1.0, 0.0, 2.0):
import org.apache.spark.mllib.linalg.{Vector, Vectors} //创建一个稠密向量
val dv : Vector = Vector.dense(1.0,0.0,3.0);
//创建一个稀疏向量(第一种方式)
val sv1: Vector = Vector.sparse(, Array(,), Array(1.0,3.0));
//创建一个稀疏向量(第二种方式)
val sv2 : Vector = Vector.sparse(, Seq((,1.0),(,3.0)))
对于稠密向量:很直观,你要创建什么,就加入什么,其函数声明为Vector.dense(values : Array[Double])
对于稀疏向量,当采用第一种方式时,3表示此向量的长度,第一个Array(0,2)表示的索引,第二个Array(1.0, 3.0)与前面的Array(0,2)是相互对应的,表示第0个位置的值为1.0,第2个位置的值为3
对于稀疏向量,当采用第二种方式时,3表示此向量的长度,后面的比较直观,Seq里面每一对都是(索引,值)的形式。
tips:由于scala中会默认包含scal.collection.immutalbe.Vector,所以当使用MLlib中的Vector时,需要显式的指明import路径
2、向量标签
向量标签和向量是一起的,简单来说,可以理解为一个向量对应的一个特殊值,这个值的具体内容可以由用户指定,比如你开发了一个算法A,这个算法对每个向量处理之后会得出一个特殊的标记值p,你就可以把p作为向量标签。同样的,更为直观的话,你可以把向量标签作为行索引,从而用多个本地向量构成一个矩阵(当然,MLlib中已经实现了多种矩阵)
其使用代码为:
import org.apache.spark.mllib.linag.Vectors
import org.apache.spark.mllib.regression.LabeledPoint val pos = LabeledPoint(1.0, Vectors.dense(1.0, 0.0, 3.0))
对于pos变量,第一个参数1.0的具体含义只有你自己知道咯,可以使行索引,可以使特殊值神马的
从文件中直接读入一个LabeledPoint
MLlib提供了一种快捷的方法,可以让用户直接从文件中读取LabeledPoint格式的数据。规定其输入文件的格式为:
label index1:value1 index2:value2.....
然后通过一下方式直接读入即可
val test : RDD[LabeledPoint] = MLUtils.loadLibSVMFile(sc, "path")
3、本地矩阵
既然是算数运算包,肯定少不了矩阵包,先上代码:
import org.apache.spark.mllib.linalg.{Matrix, Matrices}
val dm : Matrix = Matrices.dense(3,2, Array(1.0,3.0,5.0,2.0,4.0,6.0))
上面的代码段创建了一个稠密矩阵:
1.0 | 2.0 |
3.0 | 4.0 |
5.0 | 6.0 |
很明显,创建的时候是将原来的矩阵按照列变成一个一维矩阵之后再初始化的。 tips:注意,我们创建的是稠密矩阵,不幸的事,MLlib中并没有提供稀疏矩阵的实现,官方说在后续版本中会提供
。。。 。。。
spark向量的更多相关文章
- spark向量、矩阵类型
先来个普通的数组: scala> var arr=Array(1.0,2,3,4) arr: Array[Double] = Array(1.0, 2.0, 3.0, 4.0) 可以将它转换成一 ...
- Spark的mlib中的稠密向量和稀疏向量
spark mlib中2种局部向量:denseVector(稠密向量)和sparseVector(稀疏向量) denseVector向量的生成方法:Vector.dense() sparseVecto ...
- Spark机器学习中ml和mllib中矩阵、向量
1:Spark ML与Spark MLLIB区别? Spark MLlib是面向RDD数据抽象的编程工具类库,现在已经逐渐不再被Spark团队支持,逐渐转向Spark ML库,Spark ML是面向D ...
- Spark MLlib 之 Vector向量深入浅出
Spark MLlib里面提供了几种基本的数据类型,虽然大部分在调包的时候用不到,但是在自己写算法的时候,还是很需要了解的.MLlib支持单机版本的local vectors向量和martix矩阵,也 ...
- Spark mlib的本地向量
Spark mlib的本地向量有两种: DenseVctor :稠密向量 其创建方式 Vector.dense(数据) SparseVector :稀疏向量 其创建方式有两种: 方法一:Vector. ...
- spark 稠密向量和稀疏向量
Spark mlib的本地向量有两种: DenseVctor :稠密向量 其创建方式 Vector.dense(数据) SparseVector :稀疏向量 其创建方式有两种: 方法一 ...
- Spark Mllib里的向量标签概念、构成(图文详解)
不多说,直接上干货! Labeled point: 向量标签 向量标签用于对Spark Mllib中机器学习算法的不同值做标记. 例如分类问题中,可以将不同的数据集分成若干份,以整数0.1.2,... ...
- Spark Mllib里的本地向量集(密集型数据集和稀疏型数据集概念、构成)(图文详解)
不多说,直接上干货! Local vector : 本地向量集 由两类构成:稀疏型数据集(spares)和密集型数据集(dense) (1).密集型数据集 例如一个向量数据(9,5,2,7),可以设 ...
- Spark Mllib里如何建立向量标签(图文详解)
不多说,直接上干货! 注意: val pos = LabeledPoint(1, vd) val neg = LabeledPoint(2, vs) 除了这两种建立向量标签.还可以从数据库中获取固定格 ...
随机推荐
- 支持https请求以及https请求的抓包
iOS9推出的时候,苹果希望大家使用https协议,来提高数据传输之间的安全性.下面我就从最简单的代码介绍,如何在工程中设置,来支持https的请求. 一.证书准备篇 1.证书转换 在服务器人员,给你 ...
- Socket的使用
import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import jav ...
- python邮件发送接收
接收邮件 import poplib,pdb,email,re,time from email import header POP_ADDR = r'pop.126.com' USER = '' PA ...
- scrollerView 轮番图
scrollView 写在了一个 view 的里面,需要用的时候可以直接拿来用,很方便 // // TopScrollView.h // TabBar框架 // // Created by 叶炯 on ...
- CentOS(二)--初识linux的一些常用命令
linux命令是对Linux系统进行管理的命令.对于Linux系统来说,无论是中央处理器.内存.磁盘驱动器.键盘.鼠标,还是用户等都是文件,Linux系统管理的命令是它正常运行的核心,与之前的DOS命 ...
- 虚拟机中Ubuntu设置固定IP方法
--2013年7月29日20:39:16 场景:在搭建hadoop分布式系统的时候,每次重启节点,节点对应的ip发生变化,现在需要将每个节点绑固定的ip --原理: 设置节点用的网卡->绑定ip ...
- GIT免密码PUSH
摘自:dudu 备忘,感谢! 1. 在Windows中添加一个HOME环境变量,值为%USERPROFILE%,如下图: 2. 在“开始>运行”中打开%Home%,新建一个名为“_netrc”的 ...
- 在Android中动画移动一个View的位置,采用Scroller类实现Android动画之 View移动
在Android中动画移动一个View的位置,采用Scroller类实现 今天说最近自己遇到的一个问题,就是要用动画效果来移动一个VIew的位置. 这个具体的情况是,需要做一个SlidingMenu的 ...
- C# Windows Service服务的创建和调试
前言 关于Windows服务创建和调试的文章在网络上的很多文章里面都有,直接拿过来贴在这里也不过仅仅是个记录,不会让人加深印象.所以本着能够更深刻了解服务项目的创建和调试过程及方法的目的,有了这篇记录 ...
- 程序生成SiteMapPath文件
//创建站点地图 private void CreateSiteMap(DataSet ds) { XmlDeclaration declareation; declareation = xmlDoc ...