数据预处理
常用的有四种:数据清洗、数据集成、数据变换、数据归约
1、数据清洗
分箱:就是分组
聚类:检测并且去除孤立点,找出并清除那些落在簇之外的值,这些孤立点被视为噪声
计算机和人工检查结合:计算机检测可疑数据,然后对他们进行人工判断
缺失值处理:对缺失值进行删除或者插补
2、数据变换
分为两类:平滑和规范化。
简单理解:平滑,去除数据中的噪声;规范化,将数据按比例缩放,使这些数据落入一个较小的特定的区间之内。
平滑的方法:
- 按均值平滑
- 按边界值平滑
- 按中值平滑
- 按log平滑
规范化的方法:
- 最小-最大规范化
- Z-score规范化
- 小数定标规范化
- 特征二值化
3、数据归约
数据归约,简单来理解就是指尽可能保持数据原始分布的前提下,精简数据量。
分为三类:特征归约、样本归约、特征值归约
特征工程
老话说的好:“特征做不好,参数调到老!”
1、Filter
过滤法,按照发散性或者相关性对各个特征进行评分,设定阈值或者待选择阈值的个数,选择特征
特征是否发散:简单理解为数据的差异
如果一个特征不发散,例如方差接近于0,也就是说样本在这个特征上基本没有差异,这个特征对于样本的区分并没有什么用。
特征与目标的相关性
与目标特征相关性高的特征,应当优先选择。
方差选择法
先要计算各个特征的方差,然后根据阈值,选择方差大于阈值的特征
删除重复行数据
使用相关系数法,计算各个特征对目标值的相关系数以及相关系数的P值
卡方检验
检验定性自变量对定性因变量的相关性
互信息法
经典的互信息用来评价定性自变量对定性因变量的相关性。
2、Wrapper
包装法,根据目标函数,每次选择若干特征,或者排除若干特征
基于惩罚项的特征选择
除了筛选出特征外,同时也进行了降维,如增加L1惩罚项或者L2惩罚项
基于树模型的特征选择
如使用GBDT进行特征选择
升维
除了常见的降维处理,更多的时候由于提供的有效维度不足,需要增加特征。
常见的升维方法
1、 求取已有特征的mean、median、max、min、std
2、 增加哑变量
PCA降维
升维在O2O预测比赛中的作用
可增加如下特征:
是否满减、总销售额、使用优惠券的销售额、商家距离最大值、商家距离中位数、商家距离均值、商家优惠券转化率、用户距离最小值、用户距离最大值、用户距离中位数、用户是否使用过优惠券购买、使用优惠券购买次数、收到优惠券数量、平均使用间隔日期、最小使用日期、最大使用日期、当月是否收到同样优惠券、当月优惠券总数、是否周末、周几领取的优惠券等。
3、Embedded
嵌入法,先使用某些机器学习的算法和模型进行训练,得到各个特征的权值系数,根据系数从大到小选择特征。类似于Filter方法,但是是通过训练来确定特征的优劣。
建模
规则
规则可以看做是简易版的模型,是通过自己对数据的理解,以及业务背景,选择合适的方法得到预测结果
例子:各期均值加权预测未来均值
常用模型:
线性回归
决策树
随机森林
GBDT
XGBOOST
LightGBM
调参
在建模时,会涉及到很多参数的调节,参数的选取直接影响到模型的好坏,通过调节参数的数值,来实现对模型的调优。
模型融合
最常用:多模型加权融合
前一个模型的输出作为下一个模型的输入
学术界不承认模型融合的结果
工业界比较看重效果,不会在意是否是模型融合