我正在尝试在 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
我从《现代多维缩放》(Borg & Groenen,2005)一书中得到了这个数据集。使用 PROXSCAL MDS 方法在 SPSS 中对其进行了测试,我得到了与书中所述相同的结果。
但是我需要在 Matlab 中使用 MDS 来加快这个过程。网站上的教程:http://www.mathworks.nl/help/stats/multidimensional-scaling.html#briu08r-4 看起来与我上面使用的相同。当我将数据集更改为上面显示的内容并运行代码时,我收到以下错误:"不是有效的相异性或距离矩阵。
我不确定我做错了什么,以及经典MDS是否是正确的选择。我也错过了说我想要三维结果的可能性(这将在稍后阶段需要)。
你的矩阵不是对称的,请检查索引(9,1)
和(1,9)
。要快速查找非对称索引,请使用[x,y]=find(~(D'==D))