PCAを使用したトレーニングセットの次元を縮小しようとしています。 私は2つのアプローチに遭遇しました。ここPCAを使用した次元削減MATLAB
[V,U,eigen]=pca(train_x);
eigen_sum=0;
for lamda=1:length(eigen)
eigen_sum=eigen_sum+eigen(lamda,1);
if(eigen_sum/sum(eigen)>=0.90)
break;
end
end
train_x=train_x*V(:, 1:lamda);
、私は単に元のセットの90%を説明する主成分によって決定機能の低い量のトレーニングセットを再構成する固有値行列を使用します。私たちは、元の訓練の主成分表現としてトレーニングセットを取る、つまり
train_x=U(:,1:lamda);
:
私が見つけた別の方法がに変わり、最後の行を、保存、ほとんど同じですいくつかの機能lamdaを設定します。
どちらの方法も同様の結果を出すようですが(サンプルテストの誤差)、微妙な違いがあります。
私の質問は正しい方法ですか?
返信いただきありがとうございます。フォローアップ: 1)私はリッジ回帰を行うためにデータを使用します。 2)PCA段階の後、リッジ回帰および残りの部分の前にノーマライズします。 しかし、平均の存在は、正規化を行わなくても線形回帰に影響を与えるべきではありません。 – Drakhlur
はい、理論的には、ゼロ以外の平均データは線形回帰だけを相殺します。オリジナルのコンポーネントの手段は、 'train_x * V'コンポーネントの手段と同じではないということだけを考慮する必要があります。そして、あなたがそれを念頭に置いている限り、正規化の残りの部分はうまくいくはずです –