Spark机器学习:稀疏和稠密向量

本文详细介绍了Spark机器学习库中向量的两种表示方式:稀疏向量和稠密向量。通过实例展示了如何使用Spark MLlib库创建和操作这两种向量,包括向量的初始化、访问和打印。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Spark机器学习:稀疏和稠密向量

稀疏和稠密向量

一个向量(1.0,0.0,3.0)它有2中表示的方法

密集:[1.0,0.0,3.0]    其和一般的数组无异

稀疏:(3,[0,2],[1.0,3.0])     其表示的含义(元素的个数,元素的序号,元素序号对应的值)   序号从0开始

           比如这里:元素个数为:3个、序号0:对应的值为1.0,需要2对应的值为3.0

下面是一个简单的例子

[java] view plain copy

  1. import org.apache.spark.mllib.linalg.Vectors  
  2.   
  3. object Test {  
  4.   def main(args: Array[String]) {  
  5.     val vd = Vectors.dense(2, 5, 8)  
  6.     println(vd(1))  
  7.     println(vd)  
  8.   
  9.     //向量个数,序号,value  
  10.     val vs = Vectors.sparse(4, Array(0, 1, 2, 3), Array(9, 3, 5, 7))  
  11.     println(vs(0)) //序号访问  
  12.     println(vs)  
  13.   
  14.     val vs2 = Vectors.sparse(4, Array(0, 2, 1, 3), Array(9, 3, 5, 7))  
  15.     println(vs2(2))  
  16.     println(vs2)  
  17.   }  
  18. }  

结果:

[plain] view plain copy

  1. 5.0  
  2. [2.0,5.0,8.0]  
  3. 9.0  
  4. (4,[0,1,2,3],[9.0,3.0,5.0,7.0])  
  5. 3.0  
  6. (4,[0,2,1,3],[9.0,3.0,5.0,7.0])  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值