目录
1.特征工程概述与采样
2.数据预处理
2.1 数值型数据
2.2 类别型数据
2.3 文本型
2.4 其他
2.5 时间型
2.6 统计特征
2.7 特征结合feature stacker
3 . 特征选择
3.1 Filter
3.2 Wrapper
3.3 Embedded
4 . 降维技术
4.1 PCA(Principal Component Analysis)
4.2 LDA
4.3 SVD(文本降维)
1.特征工程概述与采样
数据和特征决定了机器学习的上限,而模型和算法则是逼近这个上限。因此,特征工程就变得尤为重要了。特征工程的主要工作就是对特征的处理,包括数据的采集,数据预处理,特征选择,甚至降维技术等跟特征有关的工作。
注:以下样例数据部分采用官方文档提供的样本数据iris
1.1 采样
随机采样
简单易用。抽到每个样本的概率一样。
分层采样
它是保留类别比例的采样方式。先将样本数据集按照某种特征分为若干层次结构,然后在各层次结构中随机采样,组成一个样本。每一层内个体变化越小越好,层级间变化越大越好。
1.2 正负样本不平衡问题
正样本>>>负样本,且量很大
考虑下采样。即在正样本中按照一定比例抽取数据,抛弃部分数据。
正样本>>>负样本,但量不大
修改损失函数:每个样本都会对损失函数贡献一点努力,如果把负样本重复几次,数据就会更加关注负样本。
oversampling:在图像处理中,可以把图像旋转,就会变成另外一张完全不同的图像。
2.数据预处理
garbage in,garbage out.顾名思义就是数据质量越差,得到的结果也就越差,在一开始采集数据的时候就应该认真分析所选择的数据包含哪些维度的数据。
然后就是确定数据的存储格式,以及数据之间的连接。很多情况下,模型对数据正负样本比是敏感的,所以还要保证数据的正负样本数量相差无几。
2.1 数值型数据
通过特征提取,可以得到未经处理过的特征数据,但它的分布可能相差很大,比如月收入和年龄,这时就要把数据处理成同一个分布内,使得参数发挥更大的作用。
标准化
标准化的前提是特征数据服从正态分布,通过标准化把数据统一处理为标准正太分布。在sklearn的preprocessing中有专门的函数处理:
他的原理如下:
区间缩放法
区间缩放最常见的是利用两个最值缩放:
计算公式如下: