第330行: |
第330行: |
| 该方法的基本思路是将P中的所有行向量<math>P_{i}</math>视为维数为N的数据向量,然后首先对这些行向量进行PCA降维,其次将其聚类为r个簇,其中r是根据奇异值频谱的阈值<math>\epsilon</math>选取的。有了聚类,我们就可以根据所有静止流都是保守流的原则,对原始TPM进行还原。 | | 该方法的基本思路是将P中的所有行向量<math>P_{i}</math>视为维数为N的数据向量,然后首先对这些行向量进行PCA降维,其次将其聚类为r个簇,其中r是根据奇异值频谱的阈值<math>\epsilon</math>选取的。有了聚类,我们就可以根据所有静止流都是保守流的原则,对原始TPM进行还原。 |
| | | |
− | 1) 对P进行SVD分解(假设P是不可归约的,且具有周期性性,从而存在静态分布): | + | 1) 对P进行SVD分解(假设P是不可归约的,且具有周期性,从而存在静态分布): |
| | | |
| <math>P=U\cdot \Sigma \cdot V^{T},</math> | | <math>P=U\cdot \Sigma \cdot V^{T},</math> |
第350行: |
第350行: |
| </math>特征向量构成; | | </math>特征向量构成; |
| | | |
− | 4) 通过 K-means 算法将\tilde{P}中的所有行向量聚类为r组,得到投影矩阵<math>\Phi</math>,其定义为:<math> | + | 4) 通过 K-means 算法将\tilde{P}中的所有行向量聚类为r组,得到投影矩阵<math>\Phi</math>,其定义为: |
| + | |
| + | <math> |
| \Phi_{ij} =\begin{cases} | | \Phi_{ij} =\begin{cases} |
| 1, & \text{如果}\tilde{P_{i}}\text{属于第r组}\\ | | 1, & \text{如果}\tilde{P_{i}}\text{属于第r组}\\ |
| 0, & \text{其他情况} | | 0, & \text{其他情况} |
| \end{cases}</math> | | \end{cases}</math> |
| + | |
| 对<math>\forall i,j \in [1,N]</math>都成立。 | | 对<math>\forall i,j \in [1,N]</math>都成立。 |
| | | |
| 5) 利用<math> | | 5) 利用<math> |
| \Phi</math>和P得到新的TPM。 | | \Phi</math>和P得到新的TPM。 |
| + | |
| 为了说明如何获得简化的TPM,首先定义一个矩阵,称为静态流矩阵,如下所示: | | 为了说明如何获得简化的TPM,首先定义一个矩阵,称为静态流矩阵,如下所示: |
| + | |
| <math>F_{ij} \equiv \mu_i \cdot P_{ij}, \, \forall i,j \in [1, N], | | <math>F_{ij} \equiv \mu_i \cdot P_{ij}, \, \forall i,j \in [1, N], |
| </math> | | </math> |
− | 其中,<math>\miu</math>是P的静态分布,满足<math>P\cdot\miu=\miu</math>。 | + | |
| + | 其中,<math>\miu</math>是P的静态分布,满足<math>P\cdot\mu=\mu</math>。 |
| + | |
| 其次,我们将根据 <math>\Phi</math>和<math>F</math>推导出缩减流矩阵: | | 其次,我们将根据 <math>\Phi</math>和<math>F</math>推导出缩减流矩阵: |
| + | |
| <math>F' = \Phi^T \cdot F \cdot \Phi, | | <math>F' = \Phi^T \cdot F \cdot \Phi, |
| </math> | | </math> |
| + | |
| 其中,F'是还原静态流量矩阵。最后,粗粒化后的TPM可直接通过以下公式得出: | | 其中,F'是还原静态流量矩阵。最后,粗粒化后的TPM可直接通过以下公式得出: |
| <math>P'_i = F'_i / \sum_{j=1}^{N} (F'_i)_j, \, \forall i \in [1, N]. | | <math>P'_i = F'_i / \sum_{j=1}^{N} (F'_i)_j, \, \forall i \in [1, N]. |