我正在尝试在Matlab中使用多维缩放。目标是将相似性矩阵转换为散点图(以便使用k均值)。
我有以下测试集:
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是正确的选择。我也错过了说我想要三维结果的可能性(这将在以后阶段需要)。
答案 0 :(得分:0)
您的矩阵不对称,请检查索引(9,1)
和(1,9)
。要快速查找非对称索引,请使用[x,y]=find(~(D'==D))