我正在使用 Matlab Classification Learner 应用程序在训练集(大小 = 700)上测试不同的分类器。我的响应变量是一个有 5 个可能值的分类标签。我有 7 个数字特征和 2 个分类特征。我发现 Cubic SVM 的准确率最高为 83%。但是,当我启用解释方差为 95% 的 PCA(准确度 = 40.5%)时,性能会大幅下降。我是一名学生,这是我第一次使用 PCA。
我想分享我的意见
我认为训练集 700 意味着,你的数据是 < 1k.
svm
的执行率为83%。即使 MNIST 数据集也被认为很小(60.000 训练 - 10.000 测试)。您的数据要小得多。
您尝试使用
pca
将小数据减少得更小。那么svm
会学到什么?没有留下任何可区分的样本吗?
如果我是你,我会使用
random-forest
分类器进行测试。随机森林甚至可能表现更好。
SMOTE
不会改善结果。如果您的数据由图像组成,那么您可以使用 ImageDataGenerator
来复制数据。虽然我不确定 matlab
是否包含 ImageDataGenerator
。从上面我们可以说每个像素都直接影响精度吗?
答案是否定的?上面的黑色像素对于准确性并不重要,因此要删除它们,我们使用
pca
。
如果你想要一个Python例子的详细解释。看看我的其他答案