【发布时间】:2018-12-20 09:14:19
【问题描述】:
试图理解 sklearn.decomposition.PCA API,这让我很难过。
我将数据(40 个特征 x 10 个样本)分为训练(39 个样本)和测试子集(1 个样本)。
我用我认为/猜测正在发生的事情评论了代码。
X_train, X_test = X_all[ix1], X_all[ix2]
# Instantiate PCA
pca = PCA(n_components=n_comps)
# train the model
X_train_reduced = pca.fit_transform(X_train)
# reduce X_test
X_test_reduced = pca.transform(X_test)
# invert X_test back to original number of components
X_test_inv = pca.inverse_transform(X_test) # <--- ERROR
....
[this would continue with checking errors bassed on n_comps]
指示行上的错误说明如下:
形状 (1,40) 和 (n_comps,40) 未对齐:40 (dim 1) != n_comps (dim 0)
编辑:
变量的维度:X_test = 1 x 40X_train = 9 x 40X_test_reduced = 9 x n_comps
这究竟应该怎么做?
【问题讨论】:
-
X_test是原始数据,您无法反转。你应该这样做pca.inverse_transform(X_test_reduced)
标签: python machine-learning scikit-learn data-science pca