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