Lui*_*uez 3 python machine-learning pca scikit-learn
我想在应用线性回归之前使用主成分分析来减少一些噪声.
我有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)
Run Code Online (Sandbox Code Playgroud)
有了这些数据,我可以训练我的模型:
model.fit(X,y)
Run Code Online (Sandbox Code Playgroud)
但如果我在申请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)
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
ValueError: Found input variables with inconsistent numbers of samples: [8, 1000]
Run Code Online (Sandbox Code Playgroud)
试试这个:
pca = PCA(n_components=8)
X_pca = pca.fit_transform(X)
model.fit(X_pca,y)
Run Code Online (Sandbox Code Playgroud)
也就是说,您同时将PCA与X匹配并将其转换为名为X_pca的(1000,8)数组.这就是你应该使用的而不是pca.components_
| 归档时间: |
|
| 查看次数: |
6178 次 |
| 最近记录: |