1

我應該在着名的Fisher Iris數據集的matlab中使用「mdscale」函數進行多維縮放。虹膜數據集上的多維縮放(MDS)

我不明白爲什麼它有時會有效,有時不會。這是我做的:

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

這取決於實施。

一個基於矩陣求逆的實現應該是確定性的,但是將O(n^3)與您的數據的大小進行比較;這在虹膜數據上是可承受的。

基於概率發現矩陣的特徵向量(其縮放O(n^2)IIRC)的實現是隨機初始化的,因此每次都會產生不同的結果。

但你確定這是一個錯誤,而不僅僅是一個警告?

虹膜數據集特別容易出現此類問題,因爲它具有較低的分辨率。數值僅以0.1的分辨率進行測量,因此您的數值很少。