怅然|不容忽视!机器学习中的特征选择初探【sklearn实战】
一、特征选择的重要性机器学习过程中 , 特征选择是非常重要的一步 。 可以说 , 选到了合适的特征 , 那么模型的训练就成功了一半 。
一方面 , 遗漏掉重要特征肯定是我们无法接受的 , 这会导致我们的模型拟合能力不足;另一方面冗余特征也可能会造成严重的后果 , 比如:
- 带来额外的计算量 , 导致训练时间过长;
- 模型过拟合 , 对新样本泛化能力不足;
- 模型可读性(解释性)差 。
二、特征选择的方法在现在的业界共识中 , 特征选择方法基本上可以归类为三种:过滤法、包裹法和嵌入法 。
1. 过滤法
过滤法最好理解 , 就是通过一定的统计测量方法对每个特征进行评分和排序 , 然后按照一定的标准过滤出最优的特征子集 。 过滤法不用考虑后续的学习器 , 因此计算性能比较好 。
2. 包裹法
包裹法的开销会大一些 , 效果一般也更好一些 , 因为这种方法是针对特定的模型量身定制的 。 使用包裹法时 , 要先确定准备采纳的学习器(模型) , 然后使用该学习器的性能指标作为特征子集的评价准则 。 也就是说 , 包裹法的目标就是为了给特定学习器选择最有利于其性能的特征子集 。
3. 嵌入法
嵌入法则更进一步 , 将特征选择和学习器(模型)训练的过程合二为一 , 在训练的过程中自动完成了特征选择 。
三、scikit-learn中的特征选择下边两张图罗列了scikit-learn中提供的一些特征选择的方法 , 我先来为大家简单介绍一下 。
- 方差阈值法隶属于过滤法 , 这种方法最为简单 , 但其效果并不是十分稳定、可靠 。 这种方法认为低方差的特征所蕴含的信息量较少 , 应该丢弃;而高方差的特征蕴含信息较多 , 应予以保留 。 但是在实践过程中 , 我们会经常遇到删除了低方差的特征 , 但是模型性能不升反降的情况 。 因此这种方法仅适用于作为一个探索性的选择;
- sklearn中提供了一系列用于单变量选择的方法 , 这些方法的原理是根据某些特定的统计指标来分别评测每一个特征 , 并根据得分、排序或者p-value来完成筛选 。 根据IV、AUC、相关系数等来进行特征选择的方法需要我们自己来实现 , sklearn中并没有现成的工具可用(不用担心 , 我会教大家的);
- sklearn中也提供了包裹式的特征选择方法 , 比如SelectFromModel、RFE(递归消除法)、RFECV(RFE的交叉验证版) , 它们都需要我们指定一个评估器(estimator , 比如LogisticRegression) , 然后针对这个评估器 , 它们会自动选择最佳的特征子集 。
- sklearn中也有嵌入式的特征选择方法 , 如RandomizedLasso、RandomizedLogisticRegression等 , 它们在模型训练的过程中会自动完成特征选择的过程 。
推荐阅读
- 狼|日本居民区摆出红眼机器“魔鬼狼”,为防熊出没
- 葡萄|到底要不要去葡萄皮?果酒机器:酿葡萄酒
- 美军|从发射车看美军高超声速导弹性能:性能不如DF17,但威胁不容忽视
- 哈工海渡|新一代智能办公机器人系统上线,数字白领“上岗”
- 机器之心旷视物流,一个AI独角兽的B面
- 人工智能领军企业达观数据推出新一代RPA智能办公机器人集群
- 当人工智能遇上服务机器人 机器人被赋予了人类的“灵魂”
- 中投顾问|2020-2024年中国协作机器人产业的分析
- 智能机器人和机器人对战乒乓球,你玩过吗?要不来试试?
- 海外网|为防熊出没,日本居民区摆出红眼机器“魔鬼狼”[图]
