2017-12-19 13 views
0

私はサイズ[4096 x 180]の特徴ベクトルを持っています。ここで、180はサンプル数、4096は各サンプルの特徴ベクトル長です。次元削減のためのPCA MATLAB

PCAを使用してデータの次元を減らしたいと考えています。

MATLAB [V U]=pca(X)のpca関数を組み込み、X_rec= U(:, 1:n)*V(:, 1:n)'nのデータを再構築しました。減少の寸法を得るために、どのように

  1. :これは、今、私は3つの質問を持っているのx 180

    4096の行列を返しますか?

  2. nを200とすると、行列の次元が大きくなるにつれて誤差が生じ、サンプルのサイズよりも小さい次元を減らすことができないという前提が得られました。これは本当ですか?
  3. 適切な数の縮小された寸法を見つけるにはどうすればよいですか?

私は、詳細な分類のために縮小次元のフィーチャセットを使用する必要があります。

誰かがこのためのpcaコードのステップの説明で詳細なステップを提供できる場合は、私は感謝します。私は多くの場所を見ましたが、私の混乱は依然として続きます。

+0

私はフォーマットを大幅に改善しました。 – zx485

+0

@ zx485ありがとう – Nazzu

答えて

0

都市データの分析には、Matlab exampleを参照してください。ここ

は、いくつかの単純化されたコードである:ここ

load cities; 
[~, pca_scores, ~, ~, var_explained] = pca(ratings); 

pca_scoresvar_explained中の各成分のそれぞれの分散を有するPCA成分です。 pcaの実行後に明示的な乗算を行う必要はありません。 Matlabはコンポーネントを直接提供します。

あなたの場合、データX4096-by-180の行列です。つまり、4096個のサンプルと180のフィーチャがあるとします。あなたの目標は、pのフィーチャを持つように次元数を減らすことです。ここではp < 180です。 MATLABでは、あなたは、単に以下を実行することができ、

p = 100;  
[~, pca_scores, ~, ~, var_explained] = pca(X, 'NumComponents', p); 

pca_scores4096-by-p行列となり、var_explainedは長さpのベクトルになります。

  1. 減少の寸法を入手する方法:あなたの質問に答えるために

    上記の例では、pca_scoresが縮小ディメンションデータです。

  2. nを200とすると、行列の次元が大きくなり、サンプルサイズよりも次元を小さくすることができないという前提がありました。これは本当ですか? 縮小寸法が180未満である必要があるため、200を使用することはできません。
  3. 縮小寸法の正しい数を見つけるにはどうすればよいですか? var_explainedベクトルをチェックすることで、この決定を下すことができます。通常、機能の約99%の差異を保持します。この詳細についてはhereをご覧ください。
+0

私はこのサイトをチェックしましたが、私の問題に理解してそれを適用することができません、詳細な説明は理解されます – Nazzu

+0

@Nazzuもっと洞察力を提供するために私の答えを編集しました。希望が役立ちます。 – kedarps

関連する問題