组稀疏(Group Sparsity)是一种正则化策略
,用于在高维数据的特征选择中识别和利用特征之间的结构信息
。
在处理数据时,组稀疏假设数据特征不是独立的,而是按照一定结构组织成组
,每个组内的特征要么一起被选中,要么一起被排除。
这种策略特别适用于数据中存在自然的特征群组的情况,例如图像中的像素块、基因表达数据中的基因簇等。
组稀疏通常结合L2范数(欧氏范数)
在组内
部使用,而L1范数在组之间使用
。
具体来说,在组稀疏的正则化项中,首先对每组内的特征计算L2范数,再对这些L2范数求和
,最后得到L1范数
,也就是L2,1范数。这种组合的正则化形式可以促进特征选择
,使模型倾向于选择完整的特征组而非单一特征。
组稀疏模型引入到子空间学习中
,使其达到特征选择的目的,同时确保了因子矩阵的稀疏性
组稀疏的公式
假设我们有一个特征矩阵 ,其中( m )是特征数量
,( k )是组的数量
。对于矩阵( U ),每行 代表一组特征,( j = 1, 2, …, k )。组稀疏的L2,1范数正则化
项可以表示为:
其中, 是第( j )组特征的L2范数。
举例说明
假设我们有以下的特征矩阵( U ):
特征矩阵( U )包含三组特征
,每组由一行向量表示。现在我们要计算这个矩阵的组稀疏L2,1范数正则化项。
对于第一组特征(第一行):
对于第二组特征(第二行):
对于第三组特征(第三行):
组稀疏L21范数正则化项为:
接下来,让我们计算具体的数值。
import numpy as np
# 计算每一组特征的L2范数
l2_norm_group1 = np.linalg.norm(np.array([1, 0.5, 0]))
l2_norm_group2 = np.linalg.norm(np.array([2, 0, 3]))
l2_norm_group3 = np.linalg.norm(np.array([0, 1, 4]))
# 组稀疏L21范数正则化项
group_sparsity = l2_norm_group1 + l2_norm_group2 + l2_norm_group3
l2_norm_group1, l2_norm_group2, l2_norm_group3, group_sparsity
(1.118033988749895, 3.605551275463989, 4.123105625617661, 8.846690889831546)