我应该在着名的Fisher Iris数据集的matlab中使用“mdscale”函数进行多维缩放。
我不明白为什么有时它会起作用,有时却不行。这就是我的工作:
clear all;
load('fisheriris'); %it return a dataset in the variable "meas"
distM = pdist(meas); %creating the distance matrix of the dataset
newPoints = mdscale(distM, 2, 'criterion', 'stress')
错误是:
配置中的点数位于同一位置。尝试不同的开始 点,或使用不同的标准。
如果我使用其他标准,如“sstress”或“metricsstress”,它似乎有效。
怎么解释?
答案 0 :(得分:0)
这取决于实施。
基于矩阵求逆的实现应该是确定性的,但是可以根据数据的大小来扩展O(n ^ 3);虹膜数据可以负担得起。
基于概率地找到矩阵的特征向量(其扩展O(n ^ 2)IIRC)的实现被随机初始化,因此每次都会产生不同的结果。
但你确定这是一个错误,而不只是一个警告吗?
虹膜数据集特别容易出现此类问题,因为它的分辨率较低。数值仅以0.1的分辨率测量,因此您的值很少。