我正在研究二进制分类问题。数据集非常大且高度不平衡。
数据维度也很高。现在我想通过对多数类进行欠采样来平衡数据,并且我还想通过应用 PCA 等来减少数据维数......
所以我的问题是应该首先应用哪一个:数据采样还是降维?也请给出支持你答案的论据。
提前致谢
我正在研究二进制分类问题。数据集非常大且高度不平衡。
数据维度也很高。现在我想通过对多数类进行欠采样来平衡数据,并且我还想通过应用 PCA 等来减少数据维数......
所以我的问题是应该首先应用哪一个:数据采样还是降维?也请给出支持你答案的论据。
提前致谢
首先进行降维:由于样本较大,您估计主成分的误差会更小(必须估计 PCA 中使用的 Corr/Cov 矩阵!)。
反过来,仅出于计算原因才有意义。
通常,您希望训练和验证数据集尽可能分开。理想情况下,只有在模型经过训练后才能获得验证集数据。如果您在将数据拆分为单独的集合之前执行降维,则您会打破训练和验证之间的这种隔离,并且在您的模型在现实生活中进行测试之前,您将无法确定降维过程是否过度拟合。
话虽如此,在某些情况下,训练、测试和验证集的有效分离是不可行的,并且使用了其他抽样技术,例如交叉验证、遗漏 k 等。在这些情况下,在采样之前降低维度可能是正确的方法。
魔鬼的拥护者:我可以想象主要成分会因抽样对象而异。我认为这个有效性问题将优先于理查德指出的精确性问题。
您应该结合执行采样和降维。最好的方法是对多数类进行欠采样,然后运行决策树。它是你能想象到的最好的变量选择器。多次执行此操作(每次另一个样本)。结果将是一系列候选预测变量。而且...是的:您的决策树的组合已经是一个很好的模型。在http://bit.ly/a2qDWJ了解为什么决策树是最好的数据挖掘算法