什么时候使用PCA进行降维?

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

我正在使用 Matlab Classification Learner 应用程序在训练集(大小 = 700)上测试不同的分类器。我的响应变量是一个有 5 个可能值的分类标签。我有 7 个数字特征和 2 个分类特征。我发现 Cubic SVM 的准确率最高为 83%。但是,当我启用解释方差为 95% 的 PCA(准确度 = 40.5%)时,性能会大幅下降。我是一名学生,这是我第一次使用 PCA。

  1. 为什么我会看到这样的结果?
  2. 会不会是因为数据集小/不平衡?
  3. 什么时候应用PCA有用?当我们说“降维”时,原始集合中是否存在最小数量的特征(维数)?
matlab computer-vision classification pca
1个回答
0
投票

我想分享我的意见

我认为训练集 700 意味着,你的数据是 < 1k.

  1. 我什至感到惊讶的是
    svm
    的执行率为83%。
  • 即使 MNIST 数据集也被认为很小(60.000 训练 - 10.000 测试)。您的数据要小得多。

  • 您尝试使用

    pca
    将小数据减少得更小。那么
    svm
    会学到什么?没有留下任何可区分的样本吗?

  • 如果我是你,我会使用

    random-forest
    分类器进行测试。随机森林甚至可能表现更好。

  1. 即使你平衡了数据,它也是小数据。
  • 我相信使用
    SMOTE
    不会改善结果。如果您的数据由图像组成,那么您可以使用
    ImageDataGenerator
    来复制数据。虽然我不确定
    matlab
    是否包含
    ImageDataGenerator
  1. 当您有大量样本时,您将使用 PCA。然而样本并不直接影响准确性,但它们是数据的组成部分。
  • 例如:让我们考虑手写数字分类数据。

从上面我们可以说每个像素都直接影响精度吗?

答案是否定的?上面的黑色像素对于准确性并不重要,因此要删除它们,我们使用

pca

如果你想要一个Python例子的详细解释。看看我的其他答案

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