机器学习 – 如何处理机器学习问题与高维输入空间? - 代码日志

机器学习 – 如何处理机器学习问题与高维输入空间?

当我尝试应用一些ML算法(特别是更具体的SVM,特别是SVM)在一些高维输入时,我应该如何处理这个问题,我得到的结果不是很令人满意吗?

1,2或3维数据可以被显示,以及算法的结果,所以你可以看到发生了什么,并有一些想法如何解决问题。一旦数据超过3维,除了直观地播放参数之外,我不太确定如何攻击它?

你对数据做了什么?我的答案:没有。 SVM设计用于处理高维数据。我正在研究一个研究问题,现在涉及使用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,包含更多有用的提示。其中:

>在分类之前缩放功能。
>尝试获得均衡的课程。如果不可能,那么惩罚一个班比另一个班。查看更多关于SVM不平衡的参考文献。
>检查SVM参数。尝试许多组合来达到最好的组合。
>首先使用RBF内核。它几乎总是最好的(计算上)。
>几乎忘了…在测试之前,交叉验证!

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

http://stackoverflow.com/questions/2255833/how-to-approach-machine-learning-problems-with-high-dimensional-input-space

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:机器学习 – 如何处理机器学习问题与高维输入空间?