训练样本的数量与训练数据的维度之间应该是什么关系?
例如,我的案例包含20000个具有16000个功能的训练样本。我正在考虑使用PCA获得一些维数减少的情况,但我不知道应该减少多少维度我的训练数据。这些之间有关系吗? 我正在使用支持向量机分类器,它有2个类和一个线性内核。
答案 0 :(得分:4)
SVM找到的解决方案会自动限制在样本跨越的空间内,因此使用PCA来摆脱零方差的维度不会改变解决方案。正如达米恩弗兰科斯所写,除此之外,你还有可能破坏相关信息。为避免这种情况,您有两种选择:
1)相信structural risk minimization不仅仅是一个有趣的理论概念,而且对您的应用程序做正确的事情,并且只是按原样使用数据。
2)使用feature selection算法找出哪些功能/组合实际上是提供信息的。但是,找到最佳的功能组合显然不适用于这么多功能,因此您可以通过单独的性能(在线性情况下:t-score)对功能进行排序,然后测试多少最佳功能你需要得到一个好结果。
Zaw Lin的评论当然是正确的,你总是可以在如此高维度的空间中分类,但同样当然也不应该对训练数据评估分类器的性能,例如使用cross-validation。
答案 1 :(得分:2)
这只是intrinsic dimensionality数据和VC-dimenionality的问题。但软管理论概念在实践中不会有太大帮助。
在实践中,使用正确的正则化线性SVM,您可能只需使用16k功能。
如果您想使用PCA,请查看scree plot以获得使用具有最高相应特征值的n
主成分保留的方差百分比。但是,如果标签和数据之间的关系是高度非线性的,那么基于PCA的特征提取将“破坏”信息。
另一种选择是使用其他L1正则化模型,例如LASSO。