特征工程:
对于结构化数据,可以考虑直接放到模型当中暴力学习,但没有万能的模型(或许以后会有,能够实现数据自动提取清洗,特征构建优化哈哈哈)比如本次天池的这此风险预测,构造一个地域欺诈率特征,直接使用LGB模型可达到0.7346的成绩,想进一步提升就要深入了解数据,进行特征工程。
学习内容:
提示:这里可以添加要学的内容
例如:
- 数据简单预处理:
a. 缺失值的填充
b. 时间格式处理
c. 对象类型特征转换到数值 - 异常值处理:
a. 基于3segama原则
b. 基于箱型图 - 数据分箱
a. 固定宽度分箱
b. 分位数分箱
离散数值型数据分箱
连续数值型数据分箱
c. 卡方分箱(选做作业) - 特征交互
a. 特征和特征之间组合
b. 特征和特征之间衍生
c. 其他特征衍生的尝试(选做作业) - 特征编码
a. one-hot编码
b. label-encode编码 - 特征选择
a. 1 Filter
b. 2 Wrapper (RFE)
c. 3 Embedded
重点突出:
缺失值的处理和类别的处理上一弹已有介绍
这里重点讲下数据异常值处理,特征编码和特征选择:
- 异常值处理:
a. 基于3segama原则:将数据的上下限限定在sigmoid内减小异常值的影响
b. 基于箱型图:可视化同理 - 特征编码
a. one-hot编码:适用于分类数量较少的特征
b. label-encode编码:对object类型如果不考虑大小值可以直接进行label-encode - 特征选择
a. 1 Filter
b. 2 Wrapper (RFE)
c. 3 Embedded
特征选择能够带来多少收益,这个问题我曾仔细思考过。由于对于结构化数据,我通常使用树模型,对于不重要的模型模型自然会不采用以至于feature_importance为0,此时删除这类特征是可以加快模型的训练的。但是当进行融模时没有必要保证训练使用的特征是一样的。不同特征之间也会存在特征不兼容的情况,此时使用模型进行模型时,不同模型的学习方式不一样,就跟容易达到提升集成的效果。对于这类比赛问题特征的选择可能要排在特征工程的后面。