2016-08-25 15 views
1

私は12x202の行列を持ちます(12のインスタンスには202個の特徴があります)。私は各12インスタンス間のマハラノビスの距離を計算したいが、列の数はインスタンス(行)の数よりも非常に大きいことはできないようだ。 (私が使用してMATLABでエラーを引き起こす12x11マトリックスが、11の以上の機能のための距離を計算することは問題がありませんでしたどちらかlinkage(X,'ward','mahalanobis');またはmahal(X,X);またはpdist2(X,X,'mahalanobis');マハラノビスの距離(mxn)とm << n

+0

あなたは([最小作業例]を作るでし役立つことを願ってい

function C = my_covariance(X) [n,m] = size(X); Xc = X -repmat(mean(X),n,1); C = Xc'* Xc/n; 

function MD = my_MahalanobisDistance(X, Y) [nX, mX] = size(X); [nY, mY] = size(Y); n = nX + nY; if(mX ~= mY) disp('Columns in X must be same as in Y') else xDiff = mean(X) - mean(Y); cX = my_covariance(X); cY = my_covariance(Y); pC = nX/n*cX + nY/n*cY; MD = sqrt(xDiff * inv(pC) * xDiff'); end 

と共分散のために:あなたはこれを使用することができますどのような場合には

http://stackoverflow.com/help/mcve)してください。 –

答えて

0

あなたがマハル機能についてmatlab documentationで見れば、それは言う:

XとYの列数は同じでなければなりませんが、異なる数の行数を持つことがあります。 Xは列より多くの行を持つ必要があります。

私は統計的にはあまりよくありませんが、なぜこの状態が重要なのかよくわかりませんが、効率的な理由から12の尺度が低すぎると思います。 。

あなたができる事はmahalabonisを自分で距離を計算することで、またmahalabanois距離のためのより良い計算がある与え例と同じドキュメントにformaulaを取得することは簡単です、そして:

マハラノビス距離は、二次距離とも呼ばれます。 2つのオブジェクトグループの分離を と測定します。マハラノビス距離はそれほどない同じのために、別のグループのためにある以下の

で与えられ、我々は手段を持つ2つのグループ があると仮定して。私はこれがあなた

関連する問題