ドキュメンテーション センター

  • 評価版
  • 製品アップデート

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

cmdscale

古典的多次元尺度構成法

構文

Y = cmdscale(D)
[Y,e] = cmdscale(D)

説明

Y = cmdscale(D) は、nn 列の距離行列 D を取り、np 列の配布行列 Y を返します。Y の行は p 次元空間の n 個の点の座標で、p < n の場合もあります。D がユークリッド距離の場合、点間の距離は D で与えられます。p は最小空間の次元で、この最小空間に点間距離が D で与えられる n 個の点を組み込むことができます。

[Y,e] = cmdscale(D)Y*Y' の固定値も返します。D がユークリッドの場合、e の最初の p 個の要素は正で、残りはゼロです。e の最初の k 個の要素が残りの (n-k) よりさらに大きい場合、Y の最初の k 個の列を、その点間距離が D の近似になる k 次元の点として扱うことができます。これによって可視化のために有効に次元を減らすことができ、たとえば、k = 2 になります。

D はユークリッド距離行列である必要はありません。これがユークリッドではない、またはより一般的な非類似度行列の場合は、e の要素には負になるものもあり、cmdscalep を正の固有値の数として選択します。この場合、p へ低減する、または次元数を減少させることは、e の負の要素の絶対値が小さい場合に限り、D の合理的な近似になります。

D は、完全非類似度行列として、または pdist で出力されるような上三角ベクトル形式で指定することができます。完全非類似度行列は、実数、対称で、対角成分がゼロで、その他の要素がすべて正値でなければなりません。上三角形式の非類似度行列の要素は、実数で、正値でなけれなりません。D を対角成分が 1、その他の成分が 1 より小さい要素の完全類似度行列として指定することもできます。cmdscaleY に返される点間の距離が sqrt(1 次元) に等しいかまたは近くなるように、類似度行列を非類似度行列に変換します。別の変換を使用する場合は、cmdscale の呼び出しの前に類似度を変換しなければなりません。

3 次元空間に近い 4 次元空間の点をいくつか生成し、それらを距離だけのデータに低減します。

X = [normrnd(0,1,10,3) normrnd(0,.1,10,1)];
D = pdist(X,'euclidean');

点間距離で配置を検索します。

[Y,e] = cmdscale(D);

% Four, but fourth one small
dim = sum(e > eps^(3/4))

% Poor reconstruction
maxerr2 = max(abs(pdist(X)-pdist(Y(:,1:2)))) 

% Good reconstruction
maxerr3 = max(abs(pdist(X)-pdist(Y(:,1:3)))) 

% Exact reconstruction
maxerr4 = max(abs(pdist(X)-pdist(Y)))

% D is now non-Euclidean
D = pdist(X,'cityblock');
[Y,e] = cmdscale(D);

% One is large negative
min(e)

% Poor reconstruction
maxerr = max(abs(pdist(X)-pdist(Y)))

参照

[1] Seber, G. A. F. Multivariate Observations. Hoboken, NJ: John Wiley & Sons, Inc., 1984.

参考

| |

この情報は役に立ちましたか?