2017-01-26 8 views
1

線形回帰を適用する前に、主成分分析を使用してノイズを減らしたいと考えています。線形回帰でPCAを使用する

私は私のモデルを訓練することができ、このデータでは1000のサンプルと200個の機能

import numpy as np 
from sklearn.linear_model import LinearRegression 
from sklearn.decomposition import PCA 

X = np.random.rand(1000,200) 
y = np.random.rand(1000,1) 

を持っている:私は

PCA

pca = PCA(n_components=8) 
pca.fit(X) 
PCA(copy=True, iterated_power='auto', n_components=3, random_state=None, 
    svd_solver='auto', tol=0.0, whiten=False) 
principal_components = pca.components_ 

model.fit(principal_components,y) 
を適用した後に同じことをしようとした場合

model.fit(X,y) 

しかし、このエラーが表示されます:

ある
pca = PCA(n_components=8) 
X_pca = pca.fit_transform(X) 

model.fit(X_pca,y) 

、あなたは同時にフィットPCA XへとX_pca命名(1000年、8)の配列に変換し:

+0

ノイズリダクションにはPCAが必要ですか?ノイズは一般的に分散を増加させ、PCAベースの次元削減はノイズの少ないデータを落とす可能性があります。 –

答えて

5

ValueError: Found input variables with inconsistent numbers of samples: [8, 1000] 
はこれを試してみてください。これは、pca.componentsの代わりに使用する必要があります。

+0

ありがとうございます、pca.components_とは何ですか? –

+0

ドキュメントの「特徴空間における主軸」は、データの最大分散の方向を表しています。私は通常、元の次元性を新しい次元に関連付けるプロファイルと考えています。 – jtitusj