1 特征工程
1.1 了解特征工程
数据挖掘“二八原则”
- 80%的精力 => 选取特征
- 20%的精力 => 模型融合等
基于数据分析与探索提取潜在有价值的特征
特征工程重要性
- 特征越好,模型的性能越出色
- 特征越好,构建的模型越简单
- 特征越好,模型的灵活性越强
1.2 特征提取与特征组合
在特征工程前面需要进行数据预处理
- 缺失值的填充
- 时间格式处理
- 对象类型特征转换到数值
- 异常值处理
- 基于3segama原则
- 基于箱型图
- 数据分箱
(1) 特征分箱的目的:从模型效果上来看,特征分箱主要是为了降低变量的复杂性,减少变量噪音对模型的影响,提高自变量和因变量的相关度。从而使模型更加稳定。
(2)数据分桶的对象:将连续变量离散化;将多状态的离散变量合并成少状态
(3)分箱的原因:数据的特征内的值跨度可能比较大,对有监督和无监督中如k-均值聚类它使用欧氏距离作为相似度函数来测量数据点之间的相似度。都会造成大吃小的影响,其中一种解决方法是对计数值进行区间量化即数据分桶也叫做数据分箱,然后使用量化后的结果。
(4)分箱的优点:
处理缺失值:当数据源可能存在缺失值,此时可以把null单独作为一个分箱。
处理异常值:当数据中存在离群点时,可以把其通过分箱离散化处理,从而提高变量的鲁棒性(抗干扰能力)。例如,age若出现200这种异常值,可分入“age > 60”这个分箱里,排除影响。
业务解释性:我们习惯于线性判断变量的作用,当x越来越大,y就越来越大。但实际x与y之间经常存在着非线性关系,此时可经过WOE变换。
(5)特别要注意一下分箱的基本原则:最小分箱占比不低于5%;箱内不能全部是好客户;连续箱单调
(6)分箱的手段:
- 固定宽度分箱
- 分位数分箱
a. 离散数值型数据分箱
b. 连续数值型数据分箱
- 卡方分箱
特征提取
离散型特征很重要:
- 可用于设计规则
- 易于模型拟合,xgboost、lightgbm、catboost等都以决策树为基模型
- 便于理解
- 便于做特征组合
- 在推荐系统等领域很常见
特征提取与特征组合
- 简单粗暴的特征组合方式
- 简单粗暴的进行加减乘除、log、exp等运输
- 易于生成大量特征,但会易出现过拟合问题,且不易于解释
- 建议的特征提取与组合方式
- 理解问题背景,开发想象力,并做数据分析与探索
- 以时间序列问题为例,常见的特征类别包括统计量(最大值,最小值,中位数,偏度,峰度等)、排序(各统计量在历史同期的排名)、分位数(各统计量在历史同期排名的分位数)等等,周期因子可视为特征组合
- 以推荐系统为例,常见的特征类别包括用户特征、商品特征、行为特征(按时段统计)等等,可对其中的离散型特征直接做组合
特征编码
1.3 特征处理“优胜劣汰” (特征选择)
1.劣汰:剔除几乎无关的特征,保留大量特征
2. 处理自变量间共线性:可通过特征组合处理,A与B存在共线性,保留A,构造A/B
- 优胜:挑选出良好特征,组成最优特征子集
- 特征重要性分析方法
- Mean Variance Test
- SHAP
- Permutation Importance
SHAP:
- 特征选择常用的方法
- 1 Filter
- 方差选择法
- 相关系数法(pearson 相关系数)
- 卡方检验
- 互信息法
- 2 Wrapper (RFE)
- 3 Embedded
Filter
方差选择法
- 方差选择法中,先要计算各个特征的方差,然后根据设定的阈值,选择方差大于阈值的特征
相关系数法
- Pearson 相关系数
皮尔森相关系数是一种最简单的,可以帮助理解特征和响应变量之间关系的方法,该方法衡量的是变量之间的线性相关性。
结果的取值区间为 [-1,1] , -1 表示完全的负相关, +1表示完全的正相关,0 表示没有线性相关。
卡方检验
- 经典的卡方检验是用于检验自变量对因变量的相关性。 假设自变量有N种取值,因变量有M种取值,考虑自变量等于i且因变量等于j的样本频数的观察值与期望的差距。 其统计量如下: χ2=∑(A−T)2T,其中A为实际值,T为理论值
- (注:卡方只能运用在正定矩阵上,否则会报错Input X must be non-negative)
互信息法
- 经典的互信息也是评价自变量对因变量的相关性的。 在feature_selection库的SelectKBest类结合最大信息系数法可以用于选择特征
Wrapper (Recursive feature elimination,RFE)
- 递归特征消除法 递归消除特征法使用一个基模型来进行多轮训练,每轮训练后,消除若干权值系数的特征,再基于新的特征集进行下一轮训练。
Embedded
- 基于惩罚项的特征选择法 使用带惩罚项的基模型,除了筛选出特征外,同时也进行了降维。
- 基于树模型的特征选择 树模型中GBDT也可用来作为基模型进行特征选择。