【问题标题】:Multidimensional scaling matrix error多维缩放矩阵误差
【发布时间】:2014-03-04 01:23:33
【问题描述】:

我正在尝试在 Matlab 中使用多维缩放。目标是将相似度矩阵转换为散点图(以便使用 k-means)。

我有以下测试集:

London  Stockholm   Lisboa  Madrid  Paris   Amsterdam   Berlin  Prague  Rome    Dublin
0       569         667     530     141     140         357     396     570     190
569     0           1212    1043    617     446         325     423     787     648
667     1212        0       201     596     768         923     882     714     714
530     1043        201     0       431     608         740     690     516     622
141     617         596     431     0       177         340     337     436     320
140     446         768     608     177     0           218     272     519     302
357     325         923     740     340     218         0       114     472     514
396     423         882     690     337     272         114     0       364     573
569     787         714     516     436     519         472     364     0       755
190     648         714     622     320     302         514     573     755     0

我从 Modern Multidimensional Scaling (Borg & Groenen, 2005) 一书中获得了这个数据集。使用 PROXSCAL MDS 方法在 SPSS 中对其进行了测试,我得到了与书中所述相同的结果。

但我需要在 Matlab 中使用 MDS 以加快进程。网站上的教程:http://www.mathworks.nl/help/stats/multidimensional-scaling.html#briu08r-4 看起来和我上面使用的一样。当我按照上面显示的内容更改数据集并运行代码时,出现以下错误:“不是有效的相异或距离矩阵。”。

我不确定我做错了什么,以及经典 MDS 是否是正确的选择。我也错过了说我想要三个维度的结果的可能性(这将在稍后阶段需要)。

【问题讨论】:

    标签: matlab multi-dimensional-scaling


    【解决方案1】:

    您的矩阵不是对称的,请检查索引(9,1)(1,9)。要快速找到不对称索引,请使用[x,y]=find(~(D'==D))

    【讨论】:

    • 我觉得很愚蠢...从帮助文件中我发现我需要 mdscale 而不是 cmdscale 才能获得三个维度。感谢您的回答。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-09-18
    • 1970-01-01
    • 1970-01-01
    • 2021-02-18
    • 2013-05-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多