Mllib數據類型(密集向量和稀疏向量)


1.局部向量

Mllib支持2種局部向量類型:密集向量(dense)和稀疏向量(sparse)。

密集向量由double類型的數組支持,而稀疏向量則由兩個平行數組支持。

example:

向量(5.2,0.0,5.5)

密集向量表示:[5.2,0.0,5.5]

稀疏向量表示:(3,[0,2],[5.2,5.5])    # 3是向量(5.2,0.0,5.5)的長度,除去0值外,其他兩個值的索引和值分別構成了數組[0,2]和數組[5.2,5.5]。

Vector是所有局部向量的基類,Dense-Vector和SparseVector都是Vector的具體實現。

import org.apache.spark.mllib.linalg.{Vector, Vectors}
// 創建一個dense vector (5.2, 0.0, 5.5).
val dv: Vector = Vectors.dense(5.2, 0.0, 5.5)
// 創建一個sparse vector (5.2, 0.0, 5.5)並且指定它的索引和值
val sv1: Vector = Vectors.sparse(3, Array(0, 2), Array(5.2, 5.5))
// 創建一個sparse vector (5.2, 0.0, 5.5)並且指定它的索引和值,通過指定非0的值,位置0是5.2,位置2是5.5
val sv2: Vector = Vectors.sparse(3, Seq((0, 5.2), (2, 5.5)))

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM