接上一篇:天池-二手车价格预测-EDA
0.FE简介
特征工程(Feature Engineering,简称FE),是一个使用领域知识通过数据挖掘技术从原始数据中提取特征的过程。
1.主要工作
数据挖掘领域有一句很有名的话:数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限。由此可见,在给定数据的情况下,一个好的特征工程的重要性。
显然,针对不同类型的数据,不同的模型与算法,要采用与之相对应的特征工程方法,因而,在特征工程的最开始,要结合EDA和自身对数据的理解,将数据宏观地分为定性的类别变量和定量的数值变量,更进一步地,还可以将变量细化为时间变量、地点变量等,以便做更细化的特征抽取。
然后,就要结合所选模型有针对性地做相关特征工程。因为选用了以XGBoost、LightGBM为代表的树模型,以下将针对树模型的特征工程做详细分析。
第一,XGBoost、LightGBM等集成树模型对表格数据有着极强的处理能力,即便数据质量较低(数据大量缺失、噪音较多)的数据仍能很好地处理。需要注意的是,这两个模型都不需要补全缺失值,它们会将缺失值作为一类特征单独处理;
第二,共线性特征对它们性能没有太大影响,因为基于树模型的XGBoost、LightGBM是基于信息熵选取特征的,但是,如果有大量冗余的共线性特征,仍然有可能对模型的泛化性能造成影响;
第三,XGBoost、LightGBM模型的输入只能是数值型,需要提前对数据进行相应的类型转换,一般来说,不推荐采用One-hot编码,可以结合Label编码、平均编码等方法,减少稀疏特征的生成;
第四,通过组合特征的方法可以帮助XGBoost、LightGBM模型找到一些非线性的特征关系,但是,单纯的单调变换对树模型的性能提升基本没有(如回归模型经常采用的Log变换,注意,树模型不基于正态假设,不要求变量和目标的分布为正态分布),通常采用加减乘除以及FM算法等生成新特征;
第五,生成大量特征后还要对特征进行选择,三大方法(Filtering、Wrapping、Embedding)都能起到很好地作用,需要多尝试。
2.核心代码
- 待填坑
3.下一步工作
模型调参、模型融合