MDS算法的基本思想是通过计算数据点之间的距离矩阵,并尝试在低维空间中重新构建数据点之间的距离矩阵。具体来说,MDS算法首先计算原始数据点之间的距离,然后通过优化算法在低维空间中找到合适的投影,使得在低维空间中的距离与原始距离最接近。
多维尺度分析MDS详解
数据降维-MDS
各种降维算法资源
SNE
(Stochastic Neighbor Embedding) 是一种降维算法,通过使用高维空间中数据点之间的相似性来在低维空间中表示数据。SNE算法基于两个关键思想:首先,相似的数据点在高维空间中应该保持相似的距离。其次,不相似的数据点在高维空间中应该保持不相似的距离。SNE通过最小化两个分布之间的KL散度来实现这些目标。Symmetric-SNE
是对SNE算法的改进,通过在SNE映射中使用对称的条件概率来解决了SNE算法的对称性问题。这可以确保所得到的低维表示不会受到原始数据点的顺序变化的影响。T-SNE
(t-Distributed Stochastic Neighbor Embedding) 是在SNE基础上发展而来的一种流行的降维算法。T-SNE使用t分布来替代SNE中的高斯分布,使得T-SNE能够更好地保留数据之间的局部结构。T-SNE通过优化KL散度来最小化高维和低维概率分布之间的差异。与SNE相比,T-SNE能够更好地处理非线性关系,并在可视化高维数据时提供更好的效果。计算高维空间中数据点之间的条件概率: P j ∣ i = exp ( − ∣ ∣ x i − x j ∣ ∣ 2 / 2 σ i 2 ) ∑ k ≠ l exp ( − ∣ ∣ x i − x k ∣ ∣ 2 / 2 σ i 2 ) P_{j|i} = \frac{{\exp(-||\mathbf{x}_i - \mathbf{x}_j||^2 / 2\sigma_i^2)}}{{\sum_{k \neq l}{\exp(-||\mathbf{x}_i - \mathbf{x}_k||^2 / 2\sigma_i^2)}}} Pj∣i=∑k=lexp(−∣∣xi−xk∣∣2/2σi2)exp(−∣∣xi−xj∣∣2/2σi2)
在低维空间中计算数据点之间的条件概率: Q j ∣ i = exp ( − ∣ ∣ y i − y j ∣ ∣ 2 ) ∑ k ≠ l exp ( − ∣ ∣ y i − y k ∣ ∣ 2 ) Q_{j|i} = \frac{{\exp(-||\mathbf{y}_i - \mathbf{y}_j||^2)}}{{\sum_{k \neq l}{\exp(-||\mathbf{y}_i - \mathbf{y}_k||^2)}}} Qj∣i=∑k=lexp(−∣∣yi−yk∣∣2)exp(−∣∣yi−yj∣∣2)
最小化KL散度: C o s t = K L ( P ∣ ∣ Q ) = ∑ i ∑ j P j ∣ i log P j ∣ i Q j ∣ i Cost = KL(P||Q) = \sum_i{\sum_j{P_{j|i} \log{\frac{{P_{j|i}}}{{Q_{j|i}}}}}} Cost=KL(P∣∣Q)=∑i∑jPj∣ilogQj∣iPj∣i
算法步骤:
对于高维空间中的每一点i,都有一个条件概率选取其他的每一点j作为其邻居。此条件分布基于高维空间中的成对距离。
要得到i和j之间的对称概率,我们可以将两个条件概率相加并除以总的点数(点不能选择自己)。 这样可以确保所有的成对概率之和为1,所以它们可以被视为概率。
如果 p j ∣ i p_{j|i} pj∣i 表示 i 选择 j 的条件概率,那么对称概率 p i j p_{ij} pij 可以计算为 p i j = ( p j ∣ i + p i ∣ j ) / 2 N p_{ij} = (p_{j|i} + p_{i|j}) / 2N pij=(pj∣i+pi∣j)/2N,其中N是总的点数。