特征选择的实践重要性
由ypyu创建,最终由small_q 被浏览 1511 用户
导语
特征选择在许多方面都是适用的:它是对抗维度灾难的最佳武器;它可以减少整体训练时间;它也可以有效防止过拟合现象,提高模型的泛化能力。
如果要对动物进行分类,你可以很快的发现许多相关的属性或特征对模型毫无益处。例如,绝大多数动物都恰好拥有1颗心脏,从机器学习的角度来看, 心脏个数这一特征就毫无用处。另一方面,一个动物是否有翅膀则可能是一个很好的预测因子。
此外,好的预测因子和无关的特征夹杂在一起会对结果模型结果产生负面影响。更不用说这些无关的数据还会增加训练耗时,或者产生过拟合现象了·。
特征选择
特征选择是一种缩小在预测建模过程中使用的特征或属性范围的过程。特征选择在许多方面都是适用的:它是对抗维度灾难的最佳武器;它可以减少整体训练时间;它也可以有效防止过拟合现象,提高模型的泛化能力。
我最近读到的数据科学家 鲁本斯·津巴尔(Rubens Zimbres)的观点很有说服力,他从实践的角度提到了特征选择的重要性: “在经过许多实验,使用了堆叠神经网络、并行神经网络、非对称配置、简单神经网络、多核学习、激活函数等等之后。我只有一个结论: 好的特征选择是最重要的。”
由于过去曾和鲁本斯·津巴尔有过一些专业领域的沟通,我找到了他让他给我详细的讲一讲。他说: “特征选择应该是数据科学家的主要关注点之一。基于相关性、偏度、信息增益等方法的正确的特征选择可以为模型提供很好的精度和泛化能力。
很多时候, 正确的特征选择可以让你开发出更简单更快速的机器学习模型。以下图(IRIS 数据集提供的支持向量机分类器)为例:左侧显示的是错误的变量,线性内核和径向基函数核都不能正确处理分类任务。而右侧选择了花瓣的宽度和长度作为特征,即使是线性内核也得到了相当好的准确率。正确的特征选择、良好的算法选择和超参数调优是建模成功的关键。(下图是基于Python绘制的)”
当强大的计算处理能力可能会使我们觉得特征选择不再那么重要的时候,一定要记住,这只是对于特征选择带来的众多好处中的一个—— 减少训练时间来说有意义。正如津巴尔提到的简单例子,特征选择是判断模型是否有效、有无泛化能力的关键所在。
相关阅读
- Discover Feature Engineering, How to Engineer Features and How to Get Good at It
- Feature selection
- Feature learning
- 使用sklearn进行数据挖掘
- 机器学习中,有哪些特征选择的工程方法?
\