mdscale
非従来型の多次元尺度構成法
構文
Y = mdscale(D,p)
[Y,stress] = mdscale(D,p)
[Y,stress,disparities] = mdscale(D,p)
[...] = mdscale(D,p,'Name
',value
)
説明
Y = mdscale(D,p)
は、n 行 n 列の非類似度行列 D
で非計量多次元尺度構成法を実行し、p
次元 (列) の n 点 (行) の設定 Y
を返します。Y
の点間のユークリッド距離は、D
の対応する非類似度の単調変換を近似します。既定の設定では、mdscale
は、クラスカルの正規化基準 stress1 を使います。
D
は、n 行 n 列の非スパース行列、または pdist
による出力のような、上三角形行列で指定できます。非類似の非スパース行列は実数対称行列で、対角が 0、それ以外では非負の要素をもたなければなりません。上三角行列の非類似度行列は、実数の非負の項目でなければなりません。mdscale
は、D
内の NaN
を欠陥値として扱い、それらの要素を無視します。Inf
は受け入れられません。
D
は、対角に 1、それ以外のすべての要素が 1 よりも小さい類似の非スパース行列として指定することもできます。mdscale
は、Y
に出力される点間距離が sqrt(1-D)
に近似されるように、類似度行列を非類似度行列に変換します。他の変換を使用するには、mdscale
の呼び出しの前に類似度行列を変換します。
[Y,stress] = mdscale(D,p)
は、最小化ストレス、つまり Y
で評価されるストレスを返します。
[Y,stress,disparities] = mdscale(D,p)
は、格差、すなわち非類似度 D
の単調変換を返します。
[...] = mdscale(D,p,'
は、Name
',value
)mdscale
の詳細を制御する 1 つ以上の名前と値のペアをオプションで指定します。Name
は一重引用符で囲んで指定します。使用可能なパラメーターは以下のとおりです。
Criterion
— 最小化のための適合度基準。これは、mdscale
が実行する非計量的、あるいは計量的な尺度のタイプも決定します。非計量多次元尺度構成法の選択肢は、以下のとおりです。'stress'
— stress1 としても知られる点間距離の二乗和により正規化されるストレス。これは既定の設定です。'sstress'
— 点間距離の 4 乗和により正規化される 2 乗ストレス。
計量多次元尺度構成法の選択肢は以下のとおりです。
'metricstress'
— 非類似度の二乗和により正規化されるストレス。'metricsstress'
— 非類似度の 4 乗和により正規化される 2 乗ストレス。'sammon'
— Sammon の非線形マッピング基準。非対角の非類似度は、厳密にはこの基準で正でなければなりません。'strain'
— 従来型の多次元尺度構成法で使われるものと同じ基準。
Weights
—非負の非類似度の重みを含むD
と同じサイズの行列またはベクトル。これらを使って、ストレスの計算および最小化においてD
の対応する要素の寄与に重みを付けることができます。0 の重みに対応するD
の要素は、事実上無視されます。メモ
重みを非スパース行列で指定した場合、
D
の対応する対角要素がストレス計算に入らないため、対角要素は無視され、影響がありません。Start
— Y に対する点の初期設定を選択するために使う手法。選択肢は以下のとおりです。'cmdscale'
— 従来型の多次元尺度構成法を使用します。これは既定の設定です。0 の重みがある場合、'cmdscale'
は無効です。'random'
— 無相関座標を使用して適切にスケーリングされた p 次元の正規分布から位置を無作為に選択します。初期位置の n 行
p
列の行列。ここで n は行列D
のサイズで、p
は出力行列Y
の列数です。この場合、p
について[]
で渡すことが可能で、mdscale
は、行列の 2 次元目からp
を推測します。配列の 3 次元目から'Replicates'
に対する値を暗示して、3 次元配列も与えることができます。
Replicates
— 新規の初期設定によるスケーリングの反復回数。既定の設定は1
です。Options
— 近似基準の最小化に使う反復アルゴリズムに対するオプション。statset
で作成されたオプション構造体で渡します。たとえば、以下のようにします。opts = statset(param1,val1,param2,val2, ...); [...] = mdscale(...,'Options',opts)
statset
パラメーターの選択肢は、以下のとおりです。'Display'
— 表示出力レベル。'off'
(既定)、'iter'
または'final'
を選択できます。'MaxIter'
— 許容される最大反復回数。既定の設定は200
です。'TolFun'
— ストレスの基準および勾配に対する終了許容誤差。既定の設定は1e-4
です。'TolX'
— 設定位置のステップ サイズに対する終了許容誤差。既定の設定は1e-4
です。
例
load cereal.mat X = [Calories Protein Fat Sodium Fiber ... Carbo Sugars Shelf Potass Vitamins]; % Take a subset from a single manufacturer. X = X(strcmp('K',cellstr(Mfg)),:); % Create a dissimilarity matrix. dissimilarities = pdist(X); % Use non-metric scaling to recreate the data in 2D, % and make a Shepard plot of the results. [Y,stress,disparities] = mdscale(dissimilarities,2); distances = pdist(Y); [dum,ord] = sortrows([disparities(:) dissimilarities(:)]); plot(dissimilarities,distances,'bo', ... dissimilarities(ord),disparities(ord),'r.-'); xlabel('Dissimilarities'); ylabel('Distances/Disparities') legend({'Distances' 'Disparities'},'Location','NW');
% Do metric scaling on the same dissimilarities. figure [Y,stress] = ... mdscale(dissimilarities,2,'criterion','metricsstress'); distances = pdist(Y); plot(dissimilarities,distances,'bo', ... [0 max(dissimilarities)],[0 max(dissimilarities)],'r.-'); xlabel('Dissimilarities'); ylabel('Distances')
バージョン履歴
R2006a より前に導入