我考虑对我的稀疏矩阵进行PCA(截断SVD)以减少维度数量。
我将数据分为训练集和测试集。
X_train , X_test, y_train, y_test = train_test_split(X, y, test_size=0.3)
我需要单独为X_train和X_test进行PCA吗?
pca = PCA()
X_train = pca.fit_transform(X_train)
X_test = pca.fit_transform(X_test)
或者我只需要适配训练数据,然后转换训练和测试数据。哪种方法更好?
pca.fit(X_train)
train = pca.transform(X_train)
test = pca.transform(X_test)
编辑:
我正在进行一个分类任务。我有一列叫做project_description
的数据集,对其应用了BoW(CountVectorizer)并将其转换为计数向量,然后在其上应用PCA来降低维度。
我的实际数据集还有其他列,例如price、place、date、share%等
现在,在连接应用了PCA的Bow向量之前,我是否需要对我的实际数据集(即其他列)应用PCA?
fit_transform
,然后对测试数据进行transform
。 - desertnaut