我正在考虑使用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?