特征选择是否有助于提高机器学习的性能?

机器算法验证 特征选择 助推
2022-03-27 02:31:31

特征选择是否有助于提高机器学习的性能?

例如,假设我有一个 n>>p 数据集,在拟合 XGBoost 模型之前选择重要变量是否有帮助?

1个回答

您不应该有任何您认为显然不会影响因变量的变量,即只有大量变量,您有一个关于影响因变量的假设;您不希望您的模型从作为自变量空间的一部分没有逻辑意义但与其他变量具有虚假相关性的变量中学习噪声。但除了那些明显的排除之外,关键是,你怎么知道哪些特征/变量是重要的,哪些不重要?您可能认为某个变量并不重要,但是当您实际拟合模型时,它可能会比您想象的具有更多的辨别力!

在基于树的集成方法(例如 XGBoost)中,每个变量都被评估为潜在的分裂变量,这使得它们对不重要/不相关的变量具有鲁棒性,因为这些无法区分事件/非事件的变量不会被选为分裂变量因此在 var 重要性图上也将非常低。但是,这里需要注意的是,如果您有两个(或更多)高度相关的变量,您对这些变量的重要性可能并不表示它们的实际重要性(尽管这不会影响您的模型的预测性能)。因此,您可以保留所有功能并运行一些迭代以查看它们的重要性/不重要程度,并且始终位于 var imp 图表底部的那些可以从后续运行中排除以提高计算性能。