Spark mlib的本地向量
Spark mlib的本地向量有两种:
DenseVctor :稠密向量 其创建方式 Vector.dense(数据)
SparseVector :稀疏向量 其创建方式有两种:
方法一:Vector.sparse(向量长度,索引数组,与索引数组所对应的数值数组)
方法二:Vector.sparse(向量长度,(索引,数值),(索引,数值),(索引,数值),...(索引,数值))
示例:
比如向量(1,0,3,4)的创建有三种方法:
稠密向量:直接Vectors.dense(1,0,3,4)
稀疏向量:
方法一:Vector.sparse(4,(0,2,3),(1,3,4))
(0,2,3) 表示该向量的第0个,第2个,第3个位置,(1,3,4) 表示(0,2,3)位置对应的数值分别为1,3,4
方法二:Vector.sparse(4,(0,1),(2,3),(3,4))
(0,1)就是(索引,数值)的形式。位置0的数值为1, 位置2的数值为3,位置3的数值为4。
所有本地向量都以org.apache.spark.mllib.linalg.Vector为基类,DenseVector和SparseVector分别是它的两个实现类,故推荐使用Vectors工具类下定义的工厂方法来创建本地向 量,请看如下实例(假设在Spark-shell中运行,下同):
scala>import org.apache.spark.mllib.linalg.{Vector, Vectors}
import org.apache.spark.mllib.linalg.{Vector, Vectors} // 创建一个稠密本地向量
scala> val dv: Vector = Vectors.dense(2.0, 0.0, 8.0)
dv: org.apache.spark.mllib.linalg.Vector = [2.0,0.0,8.0]
// 创建一个稀疏本地向量
// 方法第二个参数数组指定了非零元素的索引,而第三个参数数组则给定了非零元素值
scala> val sv1: Vector = Vectors.sparse(, Array(, ), Array(2.0, 8.0))
sv1: org.apache.spark.mllib.linalg.Vector = (,[,],[2.0,8.0])
// 另一种创建稀疏本地向量的方法
// 方法的第二个参数是一个序列,其中每个元素都是一个非零值的元组:(index,elem)
scala> val sv2: Vector = Vectors.sparse(, Seq((, 2.0), (, 8.0)))
sv2: org.apache.spark.mllib.linalg.Vector = (,[,],[2.0,8.0])
这里需要注意的是,Scala会默认引入scala.collection.immutable.Vector,我们要显式地引入org.apache.spark.mllib.linalg.Vector来使用MLlib提供的向量类型。
Spark mlib的本地向量的更多相关文章
- spark 稠密向量和稀疏向量
Spark mlib的本地向量有两种: DenseVctor :稠密向量 其创建方式 Vector.dense(数据) SparseVector :稀疏向量 其创建方式有两种: 方法一 ...
- Spark Mllib里的本地向量集(密集型数据集和稀疏型数据集概念、构成)(图文详解)
不多说,直接上干货! Local vector : 本地向量集 由两类构成:稀疏型数据集(spares)和密集型数据集(dense) (1).密集型数据集 例如一个向量数据(9,5,2,7),可以设 ...
- Spark MLib 数据类型
1. MLlib Apache Spark's scalable machine learning library, with APIs in Java, Scala and Python. 2. ...
- Spark MLib:梯度下降算法实现
声明:本文参考< 大数据:Spark mlib(三) GradientDescent梯度下降算法之Spark实现> 1. 什么是梯度下降? 梯度下降法(英语:Gradient descen ...
- Spark Mllib里的向量标签概念、构成(图文详解)
不多说,直接上干货! Labeled point: 向量标签 向量标签用于对Spark Mllib中机器学习算法的不同值做标记. 例如分类问题中,可以将不同的数据集分成若干份,以整数0.1.2,... ...
- Spark MLib完整基础入门教程
Spark MLib 在Spark下进行机器学习,必然无法离开其提供的MLlib框架,所以接下来我们将以本框架为基础进行实际的讲解.首先我们需要了解其中最基本的结构类型,即转换器.估计器.评估器和流水 ...
- Spark MLib 基本统计汇总 2
4. 假设检验 基础回顾: 假设检验,用于判断一个结果是否在统计上是显著的.这个结果是否有机会发生. 显著性检验 原假设与备择假设 常把一个要检验的假设记作 H0,称为原假设(或零假设) (null ...
- Spark MLib 基本统计汇总 1
1. 概括统计 summary statistics MLlib支持RDD[Vector]列式的概括统计,它通过调用 Statistics 的 colStats方法实现. colStats返回一个 ...
- 009 搭建Spark的maven本地windows开发环境以及测试
在看完下面的细节之后,就会发现,spark的开发,只需要hdfs加上带有scala的IDEA环境即可. 当run运行程序时,很快就可以运行结束. 为了可以看4040界面,需要将程序加上暂定程序,然后 ...
随机推荐
- 第28章 LTDC—液晶显示中英文
本章参考资料:<STM32F76xxx参考手册>.<STM32F7xx规格书>.库帮助文档<STM32F779xx_User_Manual.chm>. 关于开发板配 ...
- redux-saga框架使用详解及Demo教程
redux-saga框架使用详解及Demo教程 前面我们讲解过redux框架和dva框架的基本使用,因为dva框架中effects模块设计到了redux-saga中的知识点,可能有的同学们会用dva框 ...
- 模板——最小生成树kruskal算法+并查集数据结构
并查集:找祖先并更新,注意路径压缩,不然会时间复杂度巨大导致出错/超时 合并:(我的祖先是的你的祖先的父亲) 找父亲:(初始化祖先是自己的,自己就是祖先) 查询:(我们是不是同一祖先) 路径压缩:(每 ...
- sql 优化的几种方法
.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. .应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而 ...
- Flask第三方组件之flask_session
flask默认提供了session, 但是存在以下问题: ① session数据存在客户端, 不安全 ② 大小有限制 ③ 增加了客户端的压力 所以才产生了很多第三方的session机制, 我使用的是f ...
- vmware 虚拟机设置 redhat 桥接模式
1.设置 vmware 网络模式 2.设置 linux 网络模式
- Mac进度条卡在100%
- Leecode刷题之旅-C语言/python-121买卖股票的最佳时机
/* * @lc app=leetcode.cn id=121 lang=c * * [121] 买卖股票的最佳时机 * * https://leetcode-cn.com/problems/best ...
- C语言学习记录_2019.02.04
逻辑性变量的定义符:bool,在C语言中只有true和false: 定义方式:bool t = true; 逻辑运算符: !:逻辑非 &&:逻辑与 ||:逻辑或 表达区间的错误形式:4 ...
- python3.5 安装twisted
https://blog.csdn.net/caimouse/article/details/77647952 下载地址:http://www.lfd.uci.edu/~gohlke/pythonli ...