什么是稀疏向量(向量的稀疏表示)

探讨数据预处理中类别型特征的编码方法,如序号编码、独热编码和二进制编码,重点介绍独热编码及其在面对大量类别时如何利用向量的稀疏表示节省空间。

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

对数据进行预处理时,一般需要对类别型特征进行编码:

  1. 序号编码
  2. 独热编码
  3. 二进制编码

其中独热编码用的是最多的。但是当类别数十分巨大时,独热编码是一个非常稀疏的向量,只有一个值不为0,其他值均为0。可以使用向量的稀疏表示来大大的节省空间,并且目前大多数的算法都接受稀疏向量形式的输入。

举个例子:
v = [ 0 , 0 , 0 , 0 , 1 , 0 , 3 , 0 , 0 , 0 ] v = [0,0,0,0,1,0,3,0,0,0] v=[0,0,0,0,1,0,3,0,0,0]
对于向量 v v v,其稀疏表示为
( 10 , [ 4 , 6 ] , [ 1 , 3 ] ) (10, [4, 6], [1,3]) (10,[4,6],[1,3])
10代表 v v v的长度, [ 4 , 6 ] [4, 6] [4,6]表示非零元素的下标, [ 1 , 3 ] [1, 3] [1,3]表示非零元素的值。

### 稀疏向量稀疏度定义 稀疏向量是指大部分元素为零或接近零的向量。对于这样的向量,其稀疏度可以通过多种方式衡量。最常见的方式之一是基于非零元素的比例来定义稀疏度。 具体来说,如果一个向量 \( \mathbf{v} \) 的长度为 \( N \),其中含有 \( M \) 个非零元素,则该向量稀疏度可以被定义为其非零元素所占比例的补集: \[ \text{Sparsity}(\mathbf{v}) = 1 - \frac{M}{N} \] 这意味着当向量中几乎所有的元素都是零时,稀疏度趋近于1;而当几乎所有元素都非零时,稀疏度则接近0[^1]。 在实际应用中,特别是在信息检索领域,稀疏向量常用于表示文档的关键字频率分布或其他形式的特征计数。由于自然语言数据的高度冗余性和重复性,大多数情况下,只有少数几个词会在某个特定文档中频繁出现,因此用稀疏向量来描述这些特性是非常合适的[^2]。 此外,在处理大规模数学规划问题时,利用稀疏结构能够显著减少存储需求并加快计算效率。例如在一个具有大量变量和约束条件的问题里,尽管总的可能组合数目巨大,但实际上有效的交互项却相对较少,这就形成了天然的稀疏模式[^3]。 ```python import numpy as np def calculate_sparsity(vector): """Calculate the sparsity of a given vector.""" non_zero_elements = np.count_nonzero(vector) total_elements = len(vector) return 1 - (non_zero_elements / total_elements) # Example usage: vector_example = [0, 0, 3, 0, 5, 0, 0, 7] sparsity_value = calculate_sparsity(vector_example) print(f"The sparsity of the example vector is {sparsity_value:.2f}") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值