前言
在机器学习项目的数据集中,特征间的高相关、特征与标签的低相关或不相关、特征本身的信息量以及特征数量等因素都会对模型的效果产生影响,特征筛选的目的是保留对预测有贡献的特征,删除冗余或无用特征。特征选择方法分为三大类,分别为过滤法(Filter)、包裹法(Wrapper)、嵌入法(Embedding);本文仅研究过滤法,过滤法由可以分为两种,直接使用某个标准对每个特征分别打分,然后根据打分直接用阈值过滤特征;和衡量每个特征与响应变量之间的关系,再根据得分扔掉不好的特征。
本文基于实践流程的思路,分三个步骤对数据集进行筛选,其中每一步都基于前一步的结果进行。
第一步:根据特征自身统计特性筛选
是一个特征的初筛,目的是剔除信息量过小的特征。其中连续型特征通过方差来筛选,方差过小的特征过于平稳,对模型预测的贡献度微乎其微;类别型特征通过异众比率来筛选,剔除绝大多数值都属于同一类别的特征。表中阈值仅供参考。
数据类型 | 筛选方法 | 阈值 |
---|---|---|
连续性数据 | 方差 | 大于0.01 |
类别型数据 | 异众比率 | 大于0.05 |
第二步:根据特征与标签的相关性筛选
数据集中的特征都是为预测标签而存在,因此特征与标签的相关性就很重要,也可以作为特征筛选的一种方法。根据数据类型的不同,可以将特征与标签的相关性检验分为四种方法,见下表,其中阈值仅供参考:
数据一类型 | 数据二类型 | 计算方法 | 衡量指标 | 选择阈值 |
---|---|---|---|---|
连续型 | 连续型 | 皮尔森相关系数 | r | 大于|0.3| |
连续型 | 二分类 | 独立样本t检验 | p | 小于0.05 |
连续型 | 多分类 | 单因素方差分析 | p | 小于0.05 |
类别型 | 类别型 | 卡方检验 | p | 小于0.05 |
第二步:根据特征与标签的相关性筛选
1 分类数据VS分类数据:卡方检验
当我们要检验的变量都是分类变量时,我们可以用列联表结合卡方检验来分析分类变量间的相关性。列联表形如:
体重<=50kg | 体重>50kg | |
---|---|---|
年龄<=15 | 10 | 20 |
年龄>15 | 30 | 40 |
其中数值表示对应行列分类下的频数,如数值“10”代表年龄<=15且体重<=50kg的人数。
卡方检验的思想在于比较期望频数和实际频数的吻合程度,实际频数就是上边表格里的数字,而期望频数则是指行列变量相互独立的时候期望的频数。
接下来我们用上表演示一下如何生成期望频数: