2017-02-03 5 views
0

データの縮小版を入手するには、MatlabでSVDを使用する必要があります。 私は、関数svds(X,k)がSVDを実行し、最初のk個の固有値と固有ベクトルを返すことを読んだ。ドキュメントには、データを正規化する必要があるかどうかは記載されていません。 正規化とは、平均値の減算と標準偏差による除算の両方を意味します。SVDを適用する前にデータセンタリングを実行する必要がありますか?

私がPCAを実装したとき、私はこのようにして正規化していました。しかし、matlab関数pca()を使用するときは、暗黙的に正規化を実行するcov()を使用して共分散行列を計算するので、この関数が必要ないことはわかっています。

ですから、質問はです。私は、SVDによってn次元データをk次元データに縮小するのに有効な投影行列が必要です。列車データのデータ正規化(したがって、新たに予測される新しいデータへの正規化)を実行する必要がありますか? ありがとう

答えて

1

本当にあなたのデータで何をしたいかによって異なります。センタリングとスケーリングは、スケーリングに関係なく、データの変動の形状を表す主成分を得るために役立ちます。主成分自体をさらに使用したい場合、特に視覚化したい場合は、主に必要になると思います。スコアリングが正規化されるため、分類の際に役立ちますので、分類の際に役立ちます。しかし、アプリケーションによっては、アプリケーションによっては、エネルギーが廃棄してはならない有用な情報も含まれているため、一般的な答えはありません。

あなたが必要とするのは、SVDでn-dimデータをk-dimデータに縮小するのに便利な投影行列です。この場合、何かを調整する必要はありません。

[U,~] = svd(TrainingData); 
RecudedData = U(:,k)'*TestData; 

ジョブを実行します。 svdsは、TrainingDataが(両方のディメンションで)巨大なので、svdが遅すぎるように考慮する価値があります(1次元で巨大な場合は、svdをグラムマトリックスに適用するだけです)。

+0

基本的に私はスパースベクトルを持っています。私は、訓練セットからいくつかの投影行列を「学習」して、訓練データとテストデータの両方を縮小することに使用したいと考えています。これらの投影されたベクトルは、SVM分類器(もちろん列車とテストのために)に供給されなければならない。 あなたが言ったことによると、私は列車を引く必要はなく、列車ベクトルの平均をテストすることができます。私は? – user2614596

+0

あなたが分類器にそれらを与えるならば、私は通常、縮尺そのものが関連する機能ではないが、これは私たちが何も知らないあなたのデータに依存します。これにより、SVMの安定化に役立つ機能からのスケーリングの影響が取り除かれます。この側面をよく説明しているbremen_mattの回答を参照してください。 – Florian

+0

svds()を使用することによって、Uの次元は、トレーニングデータの数をk!テストデータを1行n列のベクトルから1行n列のベクトルに変換しないので何か問題があります – user2614596

1

答えは「はい」です。通常、正規化を実行する必要があります。その理由は、フィーチャは非常に異なるスケーリングを持つ可能性があります。フィーチャの一意性を考慮する場合、スケーリングを考慮する必要はありません。

と仮定我々は分散1と2の特徴のxとyの両方を持っているが、xが1、yの平均値を有する場合には、その後、サンプルの行列が

n = 500; % samples 
x = 1 + randn(n,1); 
y = 1000 + randn(n,1); 
svd([x,y]) 

しかし、次のようになります1000の平均を持っていますこの問題は、yのスケール(正規化なし)がxの小さな変化を本質的に洗い流すことである。具体的には、[x、y]の特異値を調べれば、xはyの線形因子であると言えるでしょう(特異値の1つが他よりもずっと小さいので)。しかし、実際には、xは独立して生成されているため、そうではないことがわかります。

実際には、平均値を削除すると、信号内に「実際の」データしか表示されないことがよくあります。非常に最後に、あなたは私たちが今、誰かがあなたにこれらの数字を与えた場合、あなたは順序で

z = 1000001.54, 1000001.2, 1000001.4,... 

を見て、ちょうど思うかもしれない、「その信号があるいくつかの機能

z = 1e6 + sin(t) 

を持っているイメージができました退屈な、それは基本的にちょうど1e6プラスいくつかのラウンドオフ... "です。しかし、我々が平均を取り除くと、実際には何かの信号が見えます...本当に面白い、具体的なものです。長い話が短いので、あなたは常に手段とスケールを削除する必要があります。

関連する問題