【问题标题】:When to use PCA for dimensionality reduction?何时使用 PCA 进行降维?
【发布时间】:2020-10-27 09:28:23
【问题描述】:

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

  1. 为什么我会看到这样的结果?
  2. 可能是因为数据集小/不平衡?
  3. 什么时候应用 PCA 有用?当我们说“降维”时,原始集合中是否存在最小数量的特征(维数)?

感谢任何帮助。提前致谢!

【问题讨论】:

  • PCA 假设高斯分布输入,我根本不适用于分类数据
  • PCA 线性组合所有输入。这是到不同空间的映射(相同维度,除非您删除某些维度)。您可能会丢失或掩盖某些非线性相关性

标签: matlab computer-vision classification pca


【解决方案1】:

我想分享我的意见

我认为训练集 700 的意思是,你的数据是

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

  • 您尝试使用pca 将您的小数据减少到更小。那么svm 会学到什么?没有判别样本了吗?

  • 如果我是你,我会使用random-forest 分类器进行测试。随机森林甚至可能表现更好。

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

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

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

如果您想通过 python 示例进行详细说明。看看我的另一个answer

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-09-30
    • 2015-02-28
    • 1970-01-01
    • 2018-04-15
    • 2017-08-05
    • 2013-03-06
    • 2013-12-31
    • 2013-09-30
    相关资源
    最近更新 更多