06 特征工程 - 特征选择
当做完特征转换后,实际上可能会存在很多的特征属性,比如:多项式扩展转换、文本数据转换等等,但是太多的特征属性的存在可能会导致模型构建效率降低,同时模型的效果有可能会变的不好,那么这个时候就需要从这些特征属性中选择出影响最大的特征属性作为最后构建模型的特征属性列表。
在选择模型的过程中,通常从两方面来选择特征:
1、特征是否发散:如果一个特征不发散,比如方差接近于0,也就是说这样的特征对于样本的区分没有什么作用。
2、特征与目标的相关性:如果与目标相关性比较高,应当优先选择。
特征选择的方法主要有以下三种:
1、Filter:过滤法,按照发散性或者相关性对各个特征进行评分,设定阈值或者待选择阈值的个数,从而选择特征;常用方法包括方差选择法、相关系数法、卡方检验、互信息法等。
2、Wrapper:包装法,根据目标函数(通常是预测效果评分),每次选择若干特征或者排除若干特征;常用方法主要是递归特征消除法。
举例: 根据x1、x2、x3特征分别训练一个模型S11~S13,测评分。对比评分,找到模型评分高的特征。若x3效果最好,下一轮用x3、x1 和 x3、x2训练模型S21~S22,测评分,若S22评分高,对比S22和S13,若S13比S22评分好,则停止迭代,最佳特征组合是x3。若S22评分大于S13,再比较 x2,x3 和 x1,x2,x3的评分。
3、Embedded:嵌入法,先使用某些机器学习的算法和模型。
方差选择法
方差选择法:先计算各个特征属性的方差值,然后根据阈值,获取方差大于阈值的特征。
threshold = 0 表示设置方差的阈值为0;
方差为0,几乎等于是选择了所有特征。因为一组特征,若干方差等于0表示数据完全相等,一般不太会有这种数据。
相关系数法
相关系数法:先计算各个特征属性对于目标值的相关系数以及阈值K,然后获取K个相关系数最大的特征属性。(备注:根据目标属性y的类别选择不同的方式)
卡方检验
卡方检验:检查定性自变量对定性因变量的相关性。
K方值越大,说明两个特征之间的关联性越大。
递归特征消除法
递归特征消除法:使用一个基模型来进行多轮训练,每轮训练后,消除若干权值系数的特征,再基于新的特征集进行下一轮训练。
举例: 根据x1、x2、x3特征分别训练一个模型S11~S13,测评分。对比评分,找到模型评分高的特征。若x3效果最好,下一轮用x3、x1 和 x3、x2训练模型S21~S22,测评分,若S22评分高,对比S22和S13,若S13比S22评分好,则停止迭代,最佳特征组合是x3。若S22评分大于S13,再比较 x2,x3 和 x1,x2,x3的评分。
基于惩罚项的特征选择法
在使用惩罚项的基模型,除了可以筛选出特征外,同时还可以进行降维操作。
基于树模型的特征选择法
树模型中GBDT在构建的过程会对特征属性进行权重的给定,所以GBDT也可以应用在基模型中进行特征选择。