我希望比较几种技术在降维过程中保持的距离。我读过一些关于这里和这里这里类似主题的论文。
例如,我想用欧氏距离来测量PCA降维过程中保持的距离。然而,我的困惑之处是X和Y在
我知道如何计算给定两个向量/矩阵的d\left(X, Y\right),但我不理解PCA的上下文。让我解释一下。
设W_{d \times k}为k前导特征向量的矩阵,X_{d\times n}为原始数据,Z_{k\times n}为X到约简子空间的投影。
回到计算d\left(X, Y\right)。我猜想,主成分分析的X对应于X,Y对应于Z。但是,既然X和Y有不同的维度,这是如何工作的呢?我必须对这里的事情置若罔闻。
此外,我也不担心欧氏距离度量不是衡量PCA距离保持的好选择(除非它们是不相容的)。这只是探索而已。
编辑:例如,如果我有
假设我选择保留k = 2主组件,然后将它们投影到
发布于 2019-04-23 08:38:24
混乱
混淆点可能是使用变量n来表示欧几里得距离的维数,后来又用它来表示点数。欧几里得距离最好写成
在原来的空间里,
在缩小的空间里。其中\boldsymbol{z}_a=(z_a^1,\cdots,z_a^k)是点\boldsymbol{x}_a=(x_a^1,\cdots,x_a^d)的W变换。编辑:在您的表示法中,Z[:, a]是X[:, a]的转换。
定义了一种变换W的距离保持测度,将原空间中两点的距离与约化空间中相同两点的距离进行比较。
因此,可以将比较所有\binom{n}{2}成对距离的度量定义为:
对于常数k,较小的DP(W)意味着W更好地保存距离。
请注意,在此基础上可以定义各种距离保护措施。例如,
发布于 2020-03-23 09:21:47
我认为有一种比较远距离保留的更简单的方法:
1)如果您的原始数据很大,让我们假设从那里随机的N=10,000点。
2)对所有降维算法进行拟合,并对新采样的数据进行变换。
3)获取原始采样数据中各点之间的欧氏距离,然后在步骤2中获得其他新生成的转换数据格式。例如:
dist_orig = np.square(euclidean_distances(X_sampled, X_sampled)).flatten()
dist_pca = np.square(euclidean_distances(pca, pca)).flatten()
dist_tsne = np.square(euclidean_distances(tsne, tsne)).flatten()
dist_umap = np.square(euclidean_distances(umap, umap)).flatten()4)运行spearman或其他相关度量,将原始采样欧氏空间与每一个约简空间进行比较。例如:
coef_pca, p_pca = spearmanr(dist_orig, dist_pca)
coef_tsne, p_tsne = spearmanr(dist_orig, dist_tsne)
coef_umap, p_umap = spearmanr(dist_orig, dist_umap)5)看哪种方法具有最高的相关系数,从而保持了原始空间中各点之间的最佳距离。
https://datascience.stackexchange.com/questions/49661
复制相似问题