数据挖掘 特征工程 Datawhale 零基础入门数据挖掘-Task3 特征工程
Datawhale 零基础入门数据挖掘-Task3 特征工程
第一次使用jupyter notebook,浏览了几个网页和视频教程迅速上手了,这里强烈推荐一下。



3.1 特征工程目标
对于特征进行进一步分析,并对于数据进行处理
3.2 内容介绍
常见的特征工程包括:
1. 异常处理:
通过箱线图(或 3-Sigma)分析删除异常值;
BOX-COX 转换(处理有偏分布);
长尾截断;
2. 特征归一化/标准化:
标准化(转换为标准正态分布);
归一化(抓换到 [0,1] 区间);
针对幂律分布,可以采用公式:
3. 数据分桶:
等频分桶;
等距分桶;
Best-KS 分桶(类似利用基尼指数进行二分类);
卡方分桶;
4. 缺失值处理:
不处理(针对类似 XGBoost 等树模型);
删除(缺失数据太多);
插值补全,包括均值/中位数/众数/建模预测/多重插补/压缩感知补全/矩阵补全等;
分箱,缺失值一个箱;
5. 特征构造:
构造统计量特征,报告计数、求和、比例、标准差等;
时间特征,包括相对时间和绝对时间,节假日,双休日等;
地理信息,包括分箱,分布编码等方法;
非线性变换,包括 log/ 平方/ 根号等;
特征组合,特征交叉;
仁者见仁,智者见智。
6. 特征筛选
过滤式(filter):先对数据进行特征选择,然后在训练学习器,常见的方法有 Relief/方差选择发/相关系
数法/卡方检验法/互信息法;
包裹式(wrapper):直接把最终将要使用的学习器的性能作为特征子集的评价准则,常见方法有
LVM(Las Vegas Wrapper) ;
嵌入式(embedding):结合过滤式和包裹式,学习器训练过程中自动进行了特征选择,常见的有
lasso 回归;
7. 降维
PCA/ LDA/ ICA;
特征选择也是一种降维。
***导入简单查看并去除异常值(这里把异常值去除过程打包,以后可多次调用)


***进行特征构造阶段(先需要进行归一化,数据分桶,缺失值处理等工作)
注意代码段中对数据分桶原因的解释,(涉及数据库相关知识,需以后不断补充)另外参考一些资料后,有提到一些原因:
分区数据仍然很大,分桶是为了对分区数据进行更细颗粒的管理,并能快速查询。

然后删去一些不必要的数据,做归一化处理



***特征筛选



经验总结:
(学习资料版):
特征工程是比赛中最至关重要的的一块,特别的传统的比赛,大家的模型可能都差不多,调参带来的效果增幅是非常有限的,但特征工程的好坏往往会决定了最终的排名和成绩。
特征工程的主要目的还是在于将数据转换为能更好地表示潜在问题的特征,从而提高机器学习的性能。比如,异
常值处理是为了去除噪声,填补缺失值可以加入先验知识等。
特征构造也属于特征工程的一部分,其目的是为了增强数据的表达。
有些比赛的特征是匿名特征,这导致我们并不清楚特征相互直接的关联性,这时我们就只有单纯基于特征进行处
理,比如装箱,groupby,agg 等这样一些操作进行一些特征统计,此外还可以对特征进行进一步的 log,exp 等
变换,或者对多个特征进行四则运算(如上面我们算出的使用时长),多项式组合等然后进行筛选。由于特性的
匿名性其实限制了很多对于特征的处理,当然有些时候用 NN 去提取一些特征也会达到意想不到的良好效果。
对于知道特征含义(非匿名)的特征工程,特别是在工业类型比赛中,会基于信号处理,频域提取,丰度,偏度
等构建更为有实际意义的特征,这就是结合背景的特征构建,在推荐系统中也是这样的,各种类型点击率统计,
各时段统计,加用户属性的统计等等,这样一种特征构建往往要深入分析背后的业务逻辑或者说物理原理,从而
才能更好的找到 magic。
当然特征工程其实是和模型结合在一起的,这就是为什么要为 LR NN 做分桶和特征归一化的原因,而对于特征
的处理效果和特征重要性等往往要通过模型来验证。
总的来说,特征工程是一个入门简单,但想精通非常难的一件事。
自己体会:
有听说一些如何提取特征的方法,如信息增益,信息熵等,但这次也算对特征工程的大致流程有了较清晰的了解,但其中很多算法暂时接触不多,以后应该不断积累经验。
参考文章来源:
https://tianchi.aliyun.com/notebook-ai/detail?spm=5176.12586969.1002.9.1cd866c2OAnTsl&postId=95501
更多推荐
所有评论(0)