特征选择的方法

Filter

Filter这类方法是选定一个指标来评估特征,根据指标值来对特征排序,去掉达不到足够分数的特征。这类方法只考虑特征和目标之间的关联,相对另两类特征选择方法Wrapper和Embedded计算开销最少。指标的选择对Filter方法至关重要,下面我们就看几种被大家通常使用的指标。

统计的视角:

相关系数(Correlation)。统计课本里都讲过的皮尔森相关系数是最常用的方法。需要注意的是当样本数很少或者特征的取值范围更广时,更容易得出绝对值更大的皮尔森系数,所以样本量不同或者取值范围不同的特征的之间相关系数不一定可以做比较。另外皮尔森相关系数只能衡量线性相关性,随机变量和不相关并不意味二者独立。当相关系数为0时我们知道的是线性分类器不能单利用这个特征的目前的形态做到将不同的类分开,但通过特征本身的变换、和其它特征组合使用或者与其它特征结合出新的特征却可能让它焕发出生机发挥出价值。
假设检验(Hypothesis Testing)。将特征和目标之间独立作为H0假设,选择检验方法计算统计量,然后根据统计量确定值做出统计推断。
信息论的视角:

互信息(Mutual Information):,函数表示信息(负熵),函数 表示概率。
信息增益(Information Gain):。
最小描述长度(Minimum Description Length)。

Wrapper

Wrapper方法和Filter不同,它不单看特征和目标直接的关联性,而是从添加这个特征后模型最终的表现来评估特征的好坏。Wrapper方法需要选定一种评估模型效果的指标,如Area Under the Curve (AUC)、Mean Absolute Error (MAE)、Mean Squared Error(MSE)。假设我们有个特征,除去空集外这个特征可以组成个集合,最暴力的方法是分别用个特征集合训练得到模型做评估,最后选择模型效果最好的集合。显而易见当很大时穷举法计算开销惊人。所以前向特征选择(Forward Feature Selection)和后向特征选择(Backward Feature Selection)这样的贪心策略更为大家平常所用。前向特征选择从空集开始,每次在现有特征集合的基础上添加一个让模型效果最好的特征。相反,后向特征选择一开始包括所有的候选特征,每次去掉一个让模型指标提升最多的特征。

离线评估结果是重要的参考指标,但在实际应用中,往往最终还是通过线上A/B Test实验来判断一个特征的效果。在实际应用中离线评估不错的特征在线上表现不一定就好,线上线下评估的一致性和影响因素是另一个可以值得研究的问题。

Embedded

Filter方法和Wrapper方法都是和分类算法本身的实现无关,可以与各种算法结合使用。而Embedded特征选择方法与算法本身紧密结合,在模型训练过程中完成特征的选择。例如:决策树算法每次都优先选择分类能力最强的特征;逻辑回归算法的优化目标函数在log likelihood的基础上加上对权重的L1或者L2等罚项后也会让信号弱的特征权重很小甚至为0。

一些优化算法天然就适合在每步判断一个维度特征的好坏,所以可以在学习器在设计时就同时融合了特征选择功能,在训练过程中自动尝试构造特征和选择特征。

小结

Filter、Wrapper、Embedded三种方法各有不同,但没有孰好孰坏之分,在我们的实际工作中会结合使用。Filter作为简单快速的特征检验方法,可以指导特征的预处理和特征的初选。Embedded特征选择是我们学习器本身所具备的能力。通过Wrapper来离线和在线评估是否增加一个特征。

原文:http://www.flickering.cn/ads/2014/08/%E8%BD%AC%E5%8C%96%E7%8E%87%E9%A2%84%E4%BC%B0-4%E7%89%B9%E5%BE%81%E9%80%89%E6%8B%A9%EF%BC%8D%E7%AE%80%E4%BB%8B/

你可能感兴趣的:(特征选择的方法)