如何将相同的PCA应用于训练和测试集

问题描述 投票:1回答:1

我正在将PCA应用到我的火车组中,并希望使用SVM进行分类。如何自动在测试集中具有相同的功能? (与PCA之后的新列车相同)。

weka
1个回答
0
投票

在使用scikit-learn的python中,我们在训练数据集上拟合PCA和分类器,然后使用已经安装的pca和分类器转换测试数据集。这是一个例子:

from sklearn.decomposition import PCA
from sklearn.tree import DecisionTreeClassifier
from sklearn.datasets import load_iris

# load data
iris = load_iris()

# initiate PCA and classifier
pca = PCA()
classifier = DecisionTreeClassifier()

# transform / fit

X_transformed = pca.fit_transform(iris.data)
classifier.fit(X_transformed, iris.target)

# predict "new" data
# (I'm faking it here by using the original data)

newdata = iris.data

# transform new data using already fitted pca
# (don't re-fit the pca)
newdata_transformed = pca.transform(newdata)

# predict labels using the trained classifier

pred_labels = classifier.predict(newdata_transformed)

您应该使用weka应用相同的逻辑:对测试数据应用拟合的pca过滤器,然后对pca变换的测试集执行预测。您可以查看以下weka相关主题:Principal Component Analysis on Weka

© www.soinside.com 2019 - 2024. All rights reserved.