PCA 是从原始数据集到一组正交特征的矩阵变换。应用于训练集的转换矩阵将被维护并在未来与您的测试数据一起使用,以便原始测试集特征将映射到与 PCA 转换的训练集相同的空间。
如果训练集有实例并且它们是个特征,则训练矩阵的大小为。PCA 变换矩阵的维度为,其中是保留的 PCA 特征的数量,即顶部特征值。因此,我们可以通过变换矩阵将单个实例这导致向量。nmn×mm×kk1×mm×k1×k
我有一些使用词袋矢量化的文本文件。训练集如下图左侧,测试集在右侧。每行是一个文本文件,列是字数。

如果我们绘制这个数据集的前 2 个特征,我们会得到

现在我们将拟合我们的 PCA 转换矩阵,并将此转换应用于训练集和测试集。
from sklearn.decomposition import PCA
pca = PCA(n_components=2, copy=True)
pca.fit(X_train)
train_PCA = pca.transform(X_train)
test_PCA = pca.transform(X_test)
这给出了以下情节。紫色和黄色点是训练集中的 2 个不同类别。然后浅蓝色点来自测试集。可以看到,经过 PCA 转换后的测试集中的点将与训练集并排排列。
