dense向量和稀疏向量sparse

2022-03-18 22:09:43 字數 1044 閱讀 9770

import org.apache.spark.mllib.linalg.vectors

object test

}5.0

[2.0,5.0,8.0]

9.0(4,[0,1,2,3],[9.0,3.0,5.0,7.0])

3.0(4,[0,2,1,3],[9.0,3.0,5.0,7.0])

本地向量(local vector)儲存在單台機器上,索引採用0開始的整型表示,值採用double型別的值表示。spark mllib中支援兩種型別的矩陣,

分別是密度向量(dense vector)和稀疏向量(spasre vector),密度向量會儲存所有的值包括零值,而稀疏向量儲存的是索引位置及值,

不儲存零值,在資料量比較大時,稀疏向量才能體現它的優勢和價值。下面給出其應用示例:

spark 稠密向量和稀疏向量

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

Spark稀疏向量和稠密向量

旁邊的小伙一副生無可戀的表情 這是為什麼?我的 和之前寫的一樣,而且都是從官網copy的,結果怎麼是這樣子啊,我只是用向量彙編將多列轉為一列 val va new vectorassembler setinputcols array age sign province code lowest usa...

spark 密集向量和稀疏向量

1 概念 稀疏向量和密集向量都是向量的表示方法 密集向量和稀疏向量的區別 密集向量的值就是乙個普通的double陣列 而稀疏向量由兩個並列的 陣列indices和values組成 例如 向量 1.0,0.0,1.0,3.0 用密集格式表示為 1.0,0.0,1.0,3.0 用稀疏格式表示為 4,0,...

spark mllib 密集向量和稀疏向量

mllib支援區域性向量和矩陣儲存在單台伺服器,也支援儲存於乙個或者多個rdd的分布式矩陣 區域性向量和區域性矩陣是用作公共介面的最簡單的資料模型。基本的線性代數運算由breeze提供。在監督學習中使用的訓練示例在mllib中稱為 標記點 因此,向量和 矩陣,標記點是 spark mllib基本的資...