gpt4 book ai didi

machine-learning - 如何处理高维输入空间的机器学习问题?

转载 作者:行者123 更新时间:2023-11-30 08:22:07 25 4
gpt4 key购买 nike

当我尝试对一些高维输入应用某种机器学习算法(更具体地说是分类,特别是 SVM)并且得到的结果不太令人满意时,我应该如何处理这种情况?

1、2 或 3 维数据以及算法结果都可以可视化,这样您就可以掌握正在发生的事情,并了解如何解决问题。一旦数据超过 3 维,除了直观地调整参数之外,我真的不知道如何攻击它?

最佳答案

您对数据做了什么??我的回答是:没什么。支持向量机设计是为了处理高维数据。我现在正在研究一个涉及使用 SVM 进行监督分类的研究问题。除了在互联网上查找资源外,我还自己对分类前降维的影响进行了实验。使用 PCA/LDA 预处理特征并没有显着提高 SVM 的分类精度。

对我来说,从 SVM 的工作方式来看,这是完全有道理的。令 x 为 m 维特征向量。设 y = Ax,其中 y 在 R^n 中,x 在 R^m 中(n < m),即 y 是 x 投影到较低维度的空间。如果类 Y1 和 Y2 在 R^n 中线性可分,则相应的类 X1 和 X2 在 R^m 中线性可分。因此,原始子空间“至少”应该与它们在较低维度上的投影一样可分离,即,理论上 PCA 应该没有帮助。

这里有一个关于在 SVM 之前使用 PCA 的讨论:link

可以做的是更改您的SVM参数。例如,使用 libsvm link ,参数 C 和 gamma 对于分类成功至关重要。 libsvm 常见问题解答,特别是此条目 link ,包含更多有用的提示。其中:

  1. 在分类之前缩放您的特征。
  2. 尝试获得平衡的类别。如果不可能,那么对一个类别的惩罚要多于另一个类别。查看更多有关 SVM 不平衡的引用。
  3. 检查 SVM 参数。尝试多种组合以获得最佳组合。
  4. 首先使用RBF内核。它几乎总是效果最好(从计算角度来说)。
  5. 差点忘了...在测试之前,交叉验证!

编辑:让我添加这个“数据点”。我最近使用 SVM 和 PCA 预处理在四个专有数据集上进行了另一项大规模实验。对于任何降维选择,PCA 都没有改善分类结果。具有简单对角缩放的原始数据(对于每个特征,减去平均值并除以标准差)表现更好。我不会做出任何广泛的结论——只是分享这个实验。也许对于不同的数据,PCA 可以提供帮助。

关于machine-learning - 如何处理高维输入空间的机器学习问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2255833/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com