• 特征选择(1)


    特征选择(2)

    1.选择合适的特征

      特征集合有时会很大,在尝试降维之前,有必要用特征工程的方法选择较为重要的特征集合。

      最简单的方法就是方差筛选。方差越大的特征,认为特征越重要。方差较小,比如小于1,认为特征可能对算法没什么作用。最极端的,特征方差为0,即所有的样本在该特征的取值都是一样的,那么它对模型训练没有任何作用,可以直接舍弃。在实际应用中,我们指定一个方差阈值,当方差小于这个阈值的特征会被我们筛掉。sklearn中的VarianceThreshold可以方便完成这个工作。

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

      第一类过滤法比较简单,它按照特征的发散性或者相关性指标对各个特征进行评分,设定评分阈值或者待选择阈值的个数,选择合适的特征。上面提到的方差筛选就是过滤法的一种

      第二类是包装法,根据目标函数,通常是预测效果评分,每次选择特征部分特征,或者排除部分特征。

      第三类嵌入法稍微复杂一点,它先使用机器学习算法和模型进行训练,得到各个特征的权值系数,根据权值系数从大到小来选择特征。类似过滤法,但是它是通过机器学习训练来确定特征的优劣,而不是直接从特征的一些统计学指标来确定特征的优劣。

    1.1过滤法选择特征

      第一个方差筛选。

      第二个可以使用相关系数。这个主要用于输出连续值的监督学习算法中,我们分别计算所有训练集中各个特征与输出值之间的相关系数,设定一个阈值,选择相关系数较大的部分特征。

      第三个假设检验。

      比如卡方检验。卡方检验可以检验某个特征分布和输出值分布之间的相关性。个人觉得它比粗暴的方差法好用。在sklearn中,可以使用chi2类来做卡方检验得到所有特征的卡方值与显著性水平P临界值,我们可以给定卡方值阈值,选择卡方值较大的部分特征。

      除了卡方检验,我们还可以使用F检验和t检验,它们都是使用假设检验的方法,只是使用的统计分布不是卡方分布,而是F分布t分布而已。在sklearn中,有F检验的函数f_classiff_regression,分别在分类和回归特征选择时使用。

      第四个是互信息。即从信息熵的角度分析各个特征和输出值之间的关系评分。互信息越大,说明该特征与输出值之间的相关性越大,月需要保留。在sklearn中,可以使用 mutual_info_classif(分类)和 mutual_info_regression(回归)来计算各个输入特征和输出值之间的互信息。

      以上就是过滤法的主要方法,个人经验,在没什么思路的时候,可以优先使用卡方检验和互信息来做特征选择

    1.2包装法选择特征

      包装法解决思路没有过滤法这么直接,它会选择一个目标函数来一步步的筛选特征。

      最常用的包装法是递归消除特征法(recursive feature elimination,简称RFE)。递归消除特征法使用一个机器学习模型来进行多轮训练,每轮训练后,消除若干权值系数的对应的特征,再基于新的特征级进行下一轮训练。在sklearn中,可以使用RFE函数来选择特征。

      

    1.3嵌入法选择特征

    2.寻找高级特征

    来自:刘建平

    来自:https://www.cnblogs.com/stevenlk/p/6543628.html

  • 相关阅读:
    jsp mysql 实现客户端简单分页查询
    jsp mysql 实现客户端简单数据的修改和删除
    jsp 简单把数据库数据,展示在网页
    XML当做数据库,完成增删查
    xml的增删查 dom的增改查 复杂注释
    修改目录下所有文件时间
    打开调试模式
    强化学习笔记4:无模型预测 model-free prediction
    强化学习笔记6:值函数估计Value function Approximation
    Declarative Pipeline语法介绍
  • 原文地址:https://www.cnblogs.com/keye/p/14680813.html
Copyright © 2020-2023  润新知