Feature Engineering
- 特征工程,【kaggle feature-engineering】,【Github: feature-engineering-handbook】
特征工程是理论与实践的综合产物,我们会用到很多方法和程序,重点是怎么简单的帮我们实现我们的需求,blogs: sklearn 做特征工程; group by 写的很好
https://zh.sa1lib.org/ 可以找书 - 【知乎高赞回答:特征工程到底是什么?】
![](https://img2022.cnblogs.com/blog/2355125/202203/2355125-20220301231424815-2081380614.png)
特征工程包含很多东西,我们以反欺诈 LR模型的应用为例,特征工程包括:变量分箱、变量编码、变量选择、特征交叉等
参考链接:LONG-TAIL-BEAR-TECH;这个网站存放了很多案例,有兴趣的同学可以仔细看看其中的项目。
变量分箱
对于离散变量和连续变量的分箱方式是不同的,
基础知识可以参考:特征工程之变量分箱; 对于分享函数的一些理解可以查看 blogs: 风控code解读
变量编码
常见的编码包括:
- OneHot encoder
- Target encoding(对于类别特征编码,我们有时会使用Target Encoding,可以参考别再只会用Onehot了!Kaggle Master的上分神技;
- dict map
![](https://img2022.cnblogs.com/blog/2355125/202203/2355125-20220305213641068-1835689655.png)
OneHot Encoding 与 Dummies Encoding 之间有什么联系?
![](https://img2022.cnblogs.com/blog/2355125/202203/2355125-20220305214535671-1556298094.png)
Count encoding 编码挺有意思, Blog:特征工程 2. Categorical Encodings 讲了计数编码和 Target Encoding。
# !pip install category_encoders
# https://github.com/scikit-learn-contrib/category_encoders
from category_encoders import OrdinalEncoder
具体可以参考【blogs: sklearn中多种编码方式——category_encoders】,里面的code值得学习!
对于有序变量、无序变量,编码的方式对结果会不会产生影响?
对离散数据进行编码的code可以参考:离散数据编码
变量选择
遵循 奥卡姆剃刀原则,选取较少的变量,如何选择,根据哪些标准?
基本的方法code可以参考:特征工程之变量选择;这篇文章写的很好 特征工程系列:特征筛选的原理与实现,博主有个专栏在写特征工程。
交叉特征
特征交叉有哪些方法?常见的包括笛卡尔积,决策树模型,FM因子机特征交叉。特征交叉是一门技术活,应用范围很广泛,有成型的方法和范式,在推荐中应用挺多 模型特征交叉方向的发展及CAN模型介绍 , 另外推荐学习可以查看blogs: 推荐 学习
基本的方法code可以参考:特征工程之交叉特征
高阶特征
随机傅立叶特征,这个打比赛听说过,处理周期性特征似乎可以用,可以参考 Random Fourier Features