对于最近的Kaggle竞赛,我(手动)为我的训练集定义了10个其他功能,然后将其用于训练随机森林分类器。我决定在具有新功能的数据集上运行PCA,以查看它们之间的比较。我发现〜98%的方差由第一个分量(第一个特征向量)承载。然后,我多次训练分类器,一次添加一个功能,然后使用交叉验证和RMS误差比较分类的质量。我发现,每增加一个附加功能,分类都会有所改善,并且最终结果(包含所有10个新功能)远远优于(带有)两个功能的首次运行。
鉴于PCA声称〜98%的方差在我的数据集的第一部分中,为什么分类的质量有了很大的提高?
这对其他分类器是否成立?RF跨多个内核扩展,因此训练速度比(例如)SVM要快得多。
如果将数据集转换到“ PCA”空间,然后在转换后的空间上运行分类器,该怎么办?我的结果将如何变化?
2
在运行PCA之前,您是否对数据进行了规范化?如果我不得不猜测,我会认为您的功能之一比其他功能要大得多……
—
Marc Shivers
PCA功能会在执行计算时自动将所有内容标准化。
—
维沙尔
也许仅仅是我一个,但是您能否澄清以下几点:您的第一步是一次添加10个(原始)功能,还是直接使用PCA组件?如上所述,我知道这是第一种情况,您想知道是否可以直接使用PCA的结果。在这两种情况下,您是将PCA应用于所有变量(包括新功能)还是仅应用于后续变量?
—
chl 2012年
我将PCA应用于具有10个附加功能的原始矩阵。然后,我通过一次添加一个功能来训练分类器,这样我就可以衡量每个功能的添加所带来的增量改进。我的问题是,如果我将数据集(具有10个新功能)转换到PCA空间中,然后直接在PCA空间中的数据集上运行分类器
—
Vishal