问题标签 [multi-dimensional-scaling]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 在 python 中对聚集的分类数据执行多维缩放 (MDS)
我目前正在对来自 Kaggle 的银行营销数据集的分类属性进行聚类。我用 kmodes 创建了三个集群:
输出:cluster_df
现在我想将集群的每一行可视化为投影或点,以便获得某种图像:
我很难做到这一点。我没有得到分类数据的欧几里得距离,对吧?这是没有意义的。那么是否有可能创建这种所需的可视化?
c - C中int数组的动态数组
如何在 main 外部声明一个 int 数组数组,然后在知道要构建的数组数组的长度(如果已知一维)后在 main 内部构建。
例如,如果数组应该是array[numberofargs][2]
,其中维度2
是已知的,但numberofargs
在 main 执行之前不知道。
multi-dimensional-scaling - 多维尺度图的x或y是什么意思?
我知道多维缩放做了什么,但是如果数据像虹膜,而不是两个城市的距离,那么 MSD 图是什么意思?像 x 还是 y?
python - 尝试在 python 中进行多维缩放时出错
我正在尝试按照以下帖子(多维缩放)中指定的方法从距离矩阵中获取 0 和 1 之间的 2D 坐标:
python - 如何基于gram-matrix实现从python中的距离矩阵中查找点的坐标?
但是,当尝试实现它时,我得到一个错误,我很难找到这个错误的根源。这就是我正在做的事情:
这是距离矩阵(如您所见,最大距离为 1,因此所有点都可以在 0 和 1 之间):
这是我进行多维缩放的地方:
我这样做是为了使所有点都在 0 和 1 之间:
一旦我有了一组应该满足距离矩阵的点,我就从这些点计算距离矩阵,看看它是否等于原始矩阵:
如你所见,如果我们将这个数组与文章开头的原始距离矩阵进行比较,矩阵的前项没有误差,但随着接近结尾,误差越来越大。如果距离矩阵比我在这个例子中使用的大,那么错误就会变得很大。
我不知道错误的根源是在计算 P 的函数中,还是函数“compute_dist_matrix”是问题所在。
你能找出错误的根源吗?或者,有没有更简单的方法来计算所有这些?也许某些库中的某些函数已经执行了这种转换。
c++ - 将二维数组转换为一维的问题如何将顶点矩阵转换为 xy 值矩阵
我想把一个像这样的二维数组[ [x, y], [a, b], [z, e] ]
变成[x, y, a, b, z, e]
我已经尝试过使用索引和 for 循环的多种东西,但它们中的大多数都不起作用,而做的那个非常错误和粗略我该怎么做我 c++ 我是初学者,我正在尝试学习矩阵
scikit-learn - 如何降低多维缩放 (MDS) 分析的压力分数?
我有一个预先计算的距离矩阵,我已经通过 Sklearn 的 MDS 算法运行过。需要所有数据。矩阵已按比例缩放 (0-1)。我希望将分析转换为绘图,以便最大 n_components = 3。
我尝试修改几个参数(n_components、random_state、n_init),但是,我无法将压力 - 1(归一化)值降低到 0.25 以下,这被认为是“不良”拟合。
当我将 n_components 增加到非常高(n_components = 100)时,压力分数下降到 0.01。我是否可以采用这 100 个维度并使用 PCA 减少它们?
关于如何提高合身性的任何建议?我应该尝试不同的工具吗?
这是代码:
#预先计算的距离矩阵
df = pd.read_excel('./FTM_fingerprint_FULL_dissimilarity_matrix_MORGAN_1024_2.xlsx', index_col = 0, header = 0)
#多维缩放
mds1 = MDS(random_state = 1, dissimilarity = 'precomputed', n_init=16, n_components=3, eps=1e-9)
X_transform = mds1.fit_transform(df)
打印(X_transform)
#标准化压力分数
压力 = mds1.stress_
打印(压力)
谢谢
python - 关于 fit_transform 的 sklearn MDS 'init' 参数的困惑
我正在尝试实现本文中的算法,这需要使用 MDS。更具体地说,它直接指定了 Shepard-Kruskal 算法的用法,并引用了 Kruskal 关于非度量 MDS 的论文。这当然似乎暗示了非度量 MDS 的使用。
我的大部分困惑源于“距离”和“相异”这两个术语的看似不一致的用法,它们通常实际上暗示着同一件事。我的理解是,我的全维点之间的距离实际上X
是MDS.fit_transform()
. 但是,in 的init
论点fit.transform()
在其用法上并不明确。更具体地说,它声明它是起始配置(这当然是有道理的),但它定义了(n_samples,)
对我来说没有意义的维度。我确实进一步查看了源代码本身,发现smacof()
( smacof ),MDS 实际上将数据传递给的函数,指定了输入维度init
作为(n_samples,n_components)。这可以解释为什么到目前为止,当我将 2D 数组交给它时,我的实现并没有中断。
假设我已经正确完成了所有准备工作,那么我在“Structuring Autoencoders”论文中实现算法的方式如下,
我是否错误地实施了sklearn MDS()
?我是否正确理解了算法?
克鲁斯卡尔的论文:
“非度量多维标度:一种数值方法”Kruskal, J. Psychometrika, 29 (1964)”
“通过优化非度量假设的拟合优度来进行多维缩放”Kruskal, J. Psychometrika, 29, (1964)”
r - NMDS 分析的应力图的 r 平方为 1 意味着什么?
我正在做一个非度量多维尺度分析。分析结果产生了两个收敛的解决方案,并且输出看起来都不错,但是当我制作压力图来检查数据时,我得到的 r 平方为 1,这是我以前从未见过的,并且在这意味着什么的文献。应力图将不包含在最终手稿中,否则输出和 ordiplot 看起来不错。有没有人遇到过这种情况或知道这可能意味着什么?我将在下面包含代码和后续图。
r - NMDS geoveg 和 ggplot 绘图
我在使用 NMDS 时遇到了一些问题。我把我正在使用的代码放在这里。这段代码只给了我一条直线,而不是我应该看到我的曲线。我再次尝试了一位同事的数据,该数据实际上已经完成了所有工作。当我尝试使用她的数据时,我得到了一个类似的图,如果我继续分析,我不会得到她为 NMDS 得到的最终图。
可能是什么问题呢?
谢谢,