前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >7,特征的选择

7,特征的选择

作者头像
lyhue1991
发布2020-07-17 17:37:34
9230
发布2020-07-17 17:37:34
举报
文章被收录于专栏:Python与算法之美

一,特征工程

有这么一句话在业界广泛流传:数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已。根据特征使用方案,有计划地获取、处理和监控数据和特征的工作称之为特征工程,目的是最大限度地从原始数据中提取特征以供算法和模型使用

特征工程包括特征的提取,特征的预处理,特征的选择和特征的监控等内容。

本文我们聚焦如何使用sklearn中的feature_selection库来进行特征选择。即如何从多个特征中选择出若干有效的特征。

二,特征选择概述

当数据预处理完成后,我们需要选择有意义的特征输入机器学习的算法和模型进行训练。通常来说,从两个方面考虑来选择特征:

  • 特征是否发散:如果一个特征不发散,例如方差接近于0,也就是说样本在这个特征上基本上没有差异,这个特征对于样本的区分并没有什么用。
  • 特征与目标的相关性:这点比较显见,与目标相关性高的特征,应当优选选择。除方差法外,本文介绍的其他方法均从相关性考虑。

常见的特征选择方法有以下两种:

  • Filter:过滤法,按照发散性或者相关性对各个特征进行评分,设定阈值或者待选择阈值的个数,选择特征。
  • Embedded:嵌入法,先使用某些机器学习的算法和模型进行训练,得到各个特征的权值系数,根据系数从大到小选择特征。类似于Filter方法,但是是通过训练来确定特征的优劣。

三,Filter过滤法

1,方差选择法

使用方差选择法,先要计算各个特征的方差,然后根据阈值,选择方差大于阈值的特征。

2,相关系数法

使用相关系数法,先要计算各个特征对目标值的相关系数。

用feature_selection库的SelectKBest类结合相关系数来选择特征的代码如下:

3,卡方检验

经典的卡方检验是检验定性自变量对定性因变量的相关性。假设自变量有N种取值,因变量有M种取值,考虑自变量等于i且因变量等于j的样本频数的观察值与期望的差距,构建统计量:

这个统计量的含义简而言之就是自变量对因变量的相关性。用feature_selection库的SelectKBest类结合卡方检验来选择特征的代码如下:

4,互信息法

经典的互信息也是评价定性自变量对定性因变量的相关性的。相关系数,卡方检验,互信息法选择特征的结果常常是类似的。

四,Embedded嵌入法

1,基于惩罚项的特征选择法

使用带惩罚项的基模型,除了筛选出特征外,同时也进行了降维。使用feature_selection库的SelectFromModel类结合带L1惩罚项的逻辑回归模型,来选择特征的代码如下:

2,基于树模型的特征选择法

树模型中GBDT也可用来作为基模型进行特征选择,使用feature_selection库的SelectFromModel类结合GBDT模型,来选择特征的代码如下:

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-07-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 算法美食屋 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 4,互信息法
  • 1,基于惩罚项的特征选择法
  • 2,基于树模型的特征选择法
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档