Spark Mllib里的本地向量集(密集型数据集和稀疏型数据集概念、构成)(图文详解)
不多说,直接上干货!
Local vector : 本地向量集
由两类构成:稀疏型数据集(spares)和密集型数据集(dense)
(1)、密集型数据集
例如一个向量数据(9,5,2,7),可以设定为(9,5,2,7)进行存储,数据集被作为一个集合的形式整体存储。
(2)、稀疏型数据集
例如一个向量数据(9,5,2,7),可以按向量的大小存储为(4,Array(0,1,2,3),Array(9,5,2,7))
testVector.scala

package zhouls.bigdata.chapter4
import org.apache.spark.mllib.linalg.{Vector, Vectors}
object testVector {
/*
* 主函数
*/
def main(args: Array[String]) {
val vd: Vector = Vectors.dense(2, 0, 6) //建立密集向量
println(vd(2)) //打印密集向量第3个值
val vs: Vector = Vectors.sparse(4, Array(0,1,2,3), Array(9,5,2,7))//建立稀疏向量
println(vs(2)) //打印稀疏向量第3个值
}
}

有人会问,为什么会输出来为浮点型数了呢。
答:对于目前,Spark Mllib,仅支持整数与浮点型数。这是因为与其目的数值计算有关。

dense方法,不多赘述。
sparse方法,第一个参数4是代表输入数据的大小,一般要求大于等于输入的数据值。
第二个参数Array(0,1,2,3)是数据vs下标的数值
第三个参数Array(9,5,2,7)是输入的数据值,一般要求将其作为一个Array类型的数据进行输入
总结
Spark 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(3, Array(0,2), Array(1.0,3.0));
//创建一个稀疏向量(第二种方式)
val sv2 : Vector = Vector.sparse(3, Seq((0,1.0),(2,3.0)))

更多具体,见
Spark Mllib机器学习实战的第4章 Mllib基本数据类型和Mllib数理统计
Spark Mllib里的本地向量集(密集型数据集和稀疏型数据集概念、构成)(图文详解)的更多相关文章
- Spark Mllib里如何删除每一条数据中所有的双引号“”(图文详解)
不多说,直接上干货! 具体,见 Hadoop+Spark大数据巨量分析与机器学习整合开发实战的第13章 使用决策树二元分类算法来预测分类StumbleUpon数据集
- Hadoop集群搭建安装过程(三)(图文详解---尽情点击!!!)
Hadoop集群搭建安装过程(三)(图文详解---尽情点击!!!) 一.JDK的安装 安装位置都在同一位置(/usr/tools/jdk1.8.0_73) jdk的安装在克隆三台机器的时候可以提前安装 ...
- Hadoop集群搭建安装过程(二)(图文详解---尽情点击!!!)
Hadoop集群搭建安装过程(二)(配置SSH免密登录)(图文详解---尽情点击!!!) 一.配置ssh无密码访问 ®生成公钥密钥对 1.在每个节点上分别执行: ssh-keygen -t rsa(一 ...
- 全网最全的Windows下Anaconda2 / Anaconda3里正确下载安装OpenCV(离线方式和在线方式)(图文详解)
不多说,直接上干货! 说明: Anaconda2-5.0.0-Windows-x86_64.exe安装下来,默认的Python2.7 Anaconda3-4.2.0-Windows-x86_64.ex ...
- 全网最详细的Windows系统里Oracle 11g R2 Client(64bit)的下载与安装(图文详解)
不多说,直接上干货! 环境: windows10系统(64位) 最好先安装jre或jdk(此软件用来打开oracle自带的可视化操作界面,不装也没关系:可以安装plsql,或者直接用命令行操作) Or ...
- 全网最详细的CentOS7里如何安装MySQL(得改为替换安装MariaDB)(图文详解)
不多说,直接上干货! 直接yum install mysql的话会报错,原因在于yum安装库里没有直接可以用的安装包,此时需要用到MariaDB了,MariaDB是MySQL社区开发的分支,也是一个增 ...
- kafka_2.11-0.8.2.2.tgz的3节点集群的下载、安装和配置(图文详解)
kafka_2.10-0.8.1.1.tgz的1或3节点集群的下载.安装和配置(图文详细教程)绝对干货 一.安装前准备 1.1 示例机器 二. JDK7 安装 1.1 下载地址 下载地址: http: ...
- Spark Mllib里的本地矩阵概念、构成(图文详解)
不多说,直接上干货! Local matrix:本地矩阵 数组Array(1,2,3,4,5,6)被重组成一个新的2行3列的矩阵. testMatrix.scala package zhouls.bi ...
- Spark Mllib里如何建立向量标签(图文详解)
不多说,直接上干货! 注意: val pos = LabeledPoint(1, vd) val neg = LabeledPoint(2, vs) 除了这两种建立向量标签.还可以从数据库中获取固定格 ...
随机推荐
- android自定义控件(一) 官方文档的翻译
构建自定义组件 Android中,你的应用程序程序与View类组件有着一种固定的联系,例如按钮(Button).文本框(TextView),可编辑文本框(EditText),列表框(ListView) ...
- Android Studio的技巧
1.快速添加add unimplements methods: 右键generate 2.快速添加try-catch:左边就有一个小电灯,然后可以选. 3.格式化OPTION + CMD + L ( ...
- CodeForces - 613D:Kingdom and its Cities(虚树+DP)
Meanwhile, the kingdom of K is getting ready for the marriage of the King's daughter. However, in or ...
- 「51Nod1639」绑鞋带(概率
1639 绑鞋带 基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 收藏 关注 有n根鞋带混在一起,现在重复n次以下操作:随机抽出两个鞋带头,把它们绑在一起.可 ...
- va_list函数学习
当你的函数的参数个数不确定时,就可以使用上述宏进行动态处理,这无疑为你的程序增加了灵活性. va_list的使用方法: a) 首先在函数中定义一个具有va_list型的变量,这个变量是指向参数的指针 ...
- JIRA 破解文件研究(Win 7环境)
最近再次回来研究 Win 7 下的 JIRA,按网上的很多方法去尝试,竟然无法正常安装! 经过几次的弯路尝试,终究还是成功了. 嗯,有必要总结一下: 发觉网上的很多破解方法都太老!不管是什么原因,在6 ...
- day12Session案例 JSP
2 Session案例 用户登录场景 package gz.itcast; import java.io.IOException; import java.io.PrintWriter; import ...
- mui 关闭当前窗口
在提交表单的时候,我们都需要关闭表单.需要关闭当前打开的窗口. bit.alert('提交成功' + (result.category.needAudit ? ",请耐心等待管理员审核信息后 ...
- Python基础(四)——迭代器/对象,生成器
首先廖雪峰网站写的内容就我目前初步学习来说,已经相当详实,知识点平铺直叙让人易接受,所以以下内容均作为一种摘记记录以及补充. 1. 列表生成器 主要目的是创建 list .多看例子就能清楚: #列表生 ...
- window安装android打包环境
1.下载jdkhttp://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html下载:jdk-8u1 ...