我是否需要单独将PCA设置为训练和测试数据

时间:2019-03-07 13:29:56

标签: python machine-learning scikit-learn pca

我正在考虑使用PCA(TruncatedSVD)来减少稀疏矩阵的维数。

我将数据拆分为训练并进行了测试拆分。

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% etc...

现在,在连接PCA应用的Bow Vector之前,是否必须在实际数据集(即其他列)上应用PCA?

0 个答案:

没有答案