• 2. 特征工程之特征选择


    1. 特征工程之特征预处理

    2. 特征工程之特征选择

    1. 前言

    当数据预处理完成后,我们需要选择有意义的特征输入机器学习的算法和模型进行训练。

    2. 特征选择的方法

    通常来说,从两个方面考虑来选择特征:

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

    特征选择方法有很多,一般分为三类:

    1. 过滤法(Filter)比较简单,它按照特征的发散性或者相关性指标对各个特征进行评分,设定评分阈值或者待选择阈值的个数,选择合适特征。上面我们提到的方差筛选就是过滤法的一种。
    2. 包装法(Wrapper),根据目标函数,通常是预测效果评分,每次选择部分特征,或者排除部分特征。
    3. 集成法(Embedded),它先使用某些机器学习的算法和模型进行训练,得到各个特征的权值系数,根据权值系数从大到小来选择特征。

    2.1 Filter

    2.1.1 方差选择法

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

    2.1.2 相关系数法

    使用相关系数法,先要计算各个特征对目标值的相关系数以及相关系数的P值。用feature_selection库的SelectKBest类结合相关系数来选择特征

    2.1.3 卡方检验

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

    [{chi}^2=sumfrac{(A-E)^2}{E} ]

    2.1.4 互信息法

    经典的互信息也是评价定性自变量对定性因变量的相关性的。

    [I(X,Y)=∫_X∫_YP(X,Y)logfrac{P(X,Y)}{P(X)P(Y)} ]

    2.2 Wrapper

    2.2.1 递归特征消除法

    递归消除特征法使用一个基模型来进行多轮训练,每轮训练后,消除若干权值系数的特征,再基于新的特征集进行下一轮训练。

    2.3 Embedded

    2.3.1 基于惩罚项的特征选择法

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

    2.3.2 基于树模型的特征选择法

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

    3. 总结

    特征选择是在通过各种维度(例如上文提到的方差维度、互信息维度、递归特征等)去衡量所有特征,然后在各个维度下,对评分差的一些特征加上专家人员的判断,来决定是否应该删除。通过一层层的筛选,最后剩下的特征在某些方面可能会对模型有特征作用。

  • 相关阅读:
    [GSEAPY] 在Python里进行基因集富集分析
    scRNAseq R包公共单细胞数据获取
    pybedtools:在Python中使用BEDTools
    pybedtools 提取序列
    将博客搬至CSDN
    【转】SELECT INTO 和 INSERT INTO SELECT 两种表复制语句
    sql长日期数据以短日期格式显示【转】
    [转]YouTube架构学习体会
    [转]让Nginx 支持 ASP ASP.NET配置方法
    [转]LINQ查询总结
  • 原文地址:https://www.cnblogs.com/huangyc/p/9967758.html
Copyright © 2020-2023  润新知