当前位置:   article > 正文

机器学习之特征工程-特征选择

特征选择

点击“阅读原文”直接打开【北京站 | GPU CUDA 进阶课程】报名链接


一个基本的数据挖掘场景如下:



数据挖掘.jpg


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


特征是否发散:如果一个特征不发散,例如方差接近于0,也就是说样本在这个特征上基本上没有差异,这个特征对于样本的区分并没有什么用。


特征与目标的相关性:这点比较显见,与目标相关性高的特征,应当优选选择。除方差法外,本文介绍的其他方法均从相关性考虑。


根据特征选择的形式又可以将特征选择方法分为3种:


  • Filter:过滤法,按照发散性或者相关性对各个特征进行评分,设定阈值或者待选择阈值的个数,选择特征。

  • Wrapper:包装法,根据目标函数(通常是预测效果评分),每次选择若干特征,或者排除若干特征。

  • Embedded:集成法,先使用某些机器学习的算法和模型进行训练,得到各个特征的权值系数,根据系数从大到小选择特征。类似于Filter方法,但是是通过训练来确定特征的优劣。


我们使用sklearn中的feature_selection库来进行特征选择。


Filter 1方差法


使用方差法,要先计算各个特征的方差,然后根据阈值,选择方差大于阈值的特征。使用feature_selection库的VarianceThreshold类来选择特征的代码如下:


from sklearn.datasets import load_iris from sklearn.feature_selection import VarianceThreshold #方差选择法,返回值为特征选择后的数据 #参数threshold为方差的阈值 iris = load_iris() print(iris.data[0]) print(iris.target[0]) print(VarianceThreshold(threshold=3).fit_transform(iris.data)[0])


从结果看,只有第三个属性符合,结果如下:


声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小舞很执着/article/detail/945972
推荐阅读
相关标签
  

闽ICP备14008679号