图的结构熵

本文探讨了图的结构熵的概念,包括一维、二维及高维情况下的计算方法。从连通无向等权重图开始,逐步扩展到带权重、有向图以及不连通图的结构熵计算。同时,介绍了结构信息的定义,并提到了结构化信息在图的随机性和规则性分析中的作用。

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

图的结构熵

What Is The Problem ?

衡量图的熵值有好多种方式,比如吉布斯熵、香农熵、冯·诺依曼熵等。

如果我们通过一个网络模型去优化得到一个图模型,那么这个图模型的熵可以这么算:
H S = − ∑ G ∈ S p ( G ) l o g p ( G ) H_S=-\sum_{G\in S}p(G)logp(G) HS=GSp(G)logp(G), 称为:网络模型的结构熵(Structural Entropy of Models of Networks)

其中: p ( G ) p(G) p(G) 是图 G G G (更准确地说,是指同构集合)的概率; S S S 是一个同构集合的集合,即 S S S 中的元素(是一个同构集合)都是同构 (isomorphic) 的,需要注意的是,一个空间中的所有同构集合构成空间的一个分划 (partition).

这样,不难理解 H s H_s Hs 的计算分为以下步骤:

  1. 去结构化: 定义 G G G 的概率分布,可以用度 (degree) 的概率分布,也可以用距离的概率分布等
  2. 香农信息: I = H ( p ) I=H(p) I=H(p)
  3. 图的信息:就是 I I I.

那么问题来了,这个衡量方式 (metric) 有很多问题:

  1. 去结构化:丢失了图的结构信息!
  2. 香农信息:从一个简单的数字 I I I 上,我们能够得到的信息是很有限的

如何解决呢?

At The Beginning

Graph

在解决问题前,我们先规定好一些假定。

  • 图是结构化的,但是有噪音
  • 图是演化(迭代优化)来的
  • 图的演化(迭代优化)由一些准则 (rules)控制
  • 图的演化(迭代优化)也会带有随机变动 (random variations)

Goals

我们要解决的目标是:

  • 如何表示图的演化(迭代优化)的随机性?
  • 图是由 rules 和 random variations 联合作用生成的,如何确切地提取由 rules 控制生成的部分?
  • 我们可以区分这两个部分吗?即分别由 rules 和 random variations 生成了两个部分。

Structural Entropy

原论文中的内容很多,很复杂,这里删繁就简,就其中的精华的主体的部分做一个简单的总结。

One-Dimensional

连通无向等权重

我们从一维开始。给定一个图,每个节点是一维的,共有 n n n 个节点。先讨论最简单的情况:连通无向等权重图:连通图 + 无向边 + 所有边等权重。

在图上进行一个随机游走(Random Walk),这就是一个马尔可夫链了。因为等权重,这个马尔可夫链的转移概率就是均分的。有一个定理是这样的:对于连通无向图来说,这个马尔可夫链必定存在一个稳定的分布。我们就假设到达这个稳定分布就好了,不考虑过渡分布。

这个稳定分布是什么呢?通过细致平稳条件很容易就能证明:

p i = d i 2 m , i = 1 , 2 , . . . , n p_{i}=\frac{d_{i}}{2 m}, i={1, 2, ..., n} pi=2mdi,i=1,2,...,n

自然地,可以想到用熵来表示这个结构信息。

H 1 ( G ) = H ( p ) = H ( d 1 2 m , … , d n 2 m ) = − ∑ i = 1 n d i 2 m ⋅ log ⁡ 2 d i 2 m . \begin{aligned} \mathcal{H}^{1}(G) &=H(\mathbf{p})=H\left(\frac{d_{1}}{2 m}, \ldots, \frac{d_{n}}{2 m}\right) \\ &=-\sum_{i=1}^{n} \frac{d_{i}}{2 m} \cdot \log _{2} \frac{d_{i}}{2 m} . \end{aligned} H1(G)=H(p)=H(2md1,,2mdn)=i=1n2mdilog22mdi.

i i i 是节点下标, m m m 是边的数量, d i d_i di 是节点的度。

这个公式也叫 位置熵 (positioning entropy).

连通无向带权重

接下来扩展到带权值的情况,其实很简单,只需要改变一下 d i d_i di m m m

对于节点 u u u : d u = ∑ v ∈ N ( u ) w ( ( u , v ) ) d_{u}=\sum_{v \in N(u)} w((u, v)) du=vN(u)w((u,v)) ,这里 w ( ⋅ , ⋅ ) w(·,·) w(,) 是边的权重, N ( u ) N(u) N(u) 是邻居。

对于总和 m m m : V o l ( G ) = ∑ v ∈ V d v Vol(G) = \sum_{v\in V}d_v Vol(G)=vVdv

这个时候的 p i p_i pi : p u = d u vol ⁡ ( G ) p_{u}=\frac{d_{u}}{\operatorname{vol}(G)} pu=vol(G)du

所以总的来说变化不大:

H 1 ( G ) = H ( p ) = H ( d 1 vol ⁡ ( G ) , … , d n vol ⁡ ( G ) ) = − ∑ i = 1 n d i vol ⁡ ( G ) log ⁡ 2 d i vol ⁡ ( G ) \begin{aligned} \mathcal{H}^{1}(G) &=H(\mathbf{p})=H\left(\frac{d_{1}}{\operatorname{vol}(G)}, \ldots, \frac{d_{n}}{\operatorname{vol}(G)}\right) \\ &=-\sum_{i=1}^{n} \frac{d_{i}}{\operatorname{vol}(G)} \log _{2} \frac{d_{i}}{\operatorname{vol}(G)} \end{aligned} H1(G)=H(p)=H(vol(G)d1,,

### 结构权法概述 结构权法是一种基于信息论的方法,用于衡量不同特征的重要性并分配权重。其核心思想来源于信息理论,即通过计算各特征的信息来反映该特征所携带的信息量大小。如果某个特征的变化范围较大,则说明它具有较高的不确定性,对应的值也较高;反之则较低。 #### 信息的定义 信息 \( H \) 的数学表达形式如下: \[ H(X) = -\sum_{i=1}^{n} p_i \log_2(p_i) \] 其中,\( X \) 表示随机变量,\( n \) 是可能取值的数量,而 \( p_i \) 则表示第 \( i \) 种状态的概率[^3]。 对于给定的数据集中的某一列(假设为连续型数值),可以通过以下方式将其离散化后再求解值: ```python import numpy as np from scipy.stats import entropy def calculate_entropy(data, bins=10): hist, _ = np.histogram(data, bins=bins, density=True) probabilities = hist / np.sum(hist) return entropy(probabilities, base=2) data_column = [1.5, 2.1, 3.7, ..., 9.8] # 假设这是某列数据 entropy_value = calculate_entropy(data_column) print(f"Entropy of the data column is {entropy_value}") ``` 上述代码实现了对单个特征列的值计算过程。这里需要注意的是,在实际应用中通常会先对原始数据做标准化或者归一化预处理操作以消除量纲影响[^4]。 #### 权重计算流程 一旦获得了各个维度上的之后,下一步就是依据这些值得到最终每维属性应该被赋予多大比例的关注程度——这便是所谓的“权重”。具体公式可以写成这样子的形式: \[ w_j = \frac{1 - h_j}{\sum_{k=1}^m (1-h_k)} \] 这里的 \( m \) 指代总共有多少条独立记录可供分析利用; 而 \( j,k \in \{1,...,d\}\), d 即代表输入空间里存在的全部维度数目. 此部分逻辑可以用下面这段伪码描述出来: ```python def compute_weights(entropies): adjusted_entropies = 1 - entropies total_adjusted = sum(adjusted_entropies) weights = [] for e in adjusted_entropies: weight = e / total_adjusted weights.append(weight) return weights entropies_of_features = [...] # 这是一个列表,存储着之前算出来的每个feature的 weights_for_features = compute_weights(entropies_of_features) ``` ### 应用场景讨论 尽管结构权法本身并不复杂,但它却能够在诸如金融风险评估、医疗诊断预测等多个领域发挥重要作用。尤其是在面对高维稀疏矩阵的时候,这种方法能够有效筛选掉那些贡献较小甚至完全冗余的部分,从而简化后续建模工作的同时提升整体性能表现[^5]。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值