特征工程(Feature Engineering):将数据转换为能更好表示潜在问题的特征,从而提高机器学习性能
主要包括以下几个内容;
一、数据理解
目的:探索数据,了解数据,在EDA阶段完成
1、定性数据:描述性质
a)定类:按名称分类-血型,城市
b)定序:有序分类-成绩(A B C)
2、定量数据:描述数量
a)定距:可以加减-温度,日期
b)定比:可以乘除-价格,重量
注意:定距和定比有时无太大区分,例如温度可以算温差,也可以算温度之间的倍数
数据层->描述层->解读层->结论层
二、数据清洗(最重要)
目的:提高数据质量,降低算法用错误数据建模的风险
1、特征变换:模型无法处理或不适合处理
a)定性变量编码:Label Encoder;Onehot Encoder;Distribution Encoder
b)标准化和归一化:z-score标准化(标准正态分布),min-max归一化
2、缺失值处理:增加不确定性,可能会导致不可靠输出
a)不处理:少量样本缺失
b)删除:大量样本缺失0
c)补全:(同类)均值/中位数/众数补全;高纬映射(One-hot);模型预测(最近邻补全);矩阵补全(R-SVD)
3、异常值处理:减少脏数据
a)简单统计:describe()描述统计,散点图
b)3****法则(正态分布)/箱型图删除/截断
c)利用模型进行离群点检测:聚类,k近邻,One Class SVM,lsolation Forest
4、其他:删除无效列、更改dtypes、删除列中字符串、时间类型转换
三、特征构造
目的:增强数据表达,添加先验知识
1、统计量特征:计数、求和、比例、标准差
2、时间特征:绝度时间、相对数据、节假日、双休日
3、地理信息:分桶
4、非线性变换:取log/平方/根号
5、数据分桶:等频/等距分桶、Best-KS分桶、卡方分桶
6、特征组合/特征交叉
四、特征选择
目的:平衡预测能力和计算复杂度;降低噪声,增强模型预测性能
1、过滤式(Filter):先用特征选择方法对初始特征进行过滤,再训练学习器,特征选择过程与后续学习器无关
Reilef、方差选择、相关系数、卡方检验、互信息法
2、包裹式(Wrapper): 直接把最终要使用学习器的性能作为衡量特征子集的评价准则,其目的在于为给定学习器选择最有利于其性能的特征子集
Las Vegas Wrapper(LVM)
3、嵌入式(Embedding):结合过滤式和包裹式方法,将特征选择与学习器训练过程融为一体、两者在优化过程中完成,即学习器训练过程中自动进行了特征选择
lR+L1或决策树
五、类别不平衡
缺点:少类别提供信息太少,没有学会如何判断少数类
1、扩充数据集
2、尝试其他评价指标:AUC
3、调整值
4、重采样:过采样、欠采样
5、合成样本:SMOTE
6、选择其他模型:决策树等
7、加权少类别的样本错分代价
8、将大类分解成多个小类 将小类视为异常点,用异常值检测建模