一.缺失值处理
1.直接使用带有缺失值的数据
2.舍弃该特征
3.缺失值填充
-
均值插补
离散值
连续值 - 同类均值插补
-
建模预测
方法:将缺失的属性作为预测目标,通过建立模型来预测。
缺点:
这种方法的效果相对较好,但是该方法有个根本缺陷:
1)如果其他属性和属性 无关,则预测的结果无意义。
2)如果预测结果相当准确,则又说明属性 可以由其它属性计算得到, 于是属性 信息冗余,没有必要纳入数据集中。
一般的情况是介于两者之间。 -
高维映射
基本思想:将属性映射到高维空间中
离散:根据取值空间+空值零一编码
连续:先离散再编码
优缺点:高维映射是最精确的做法,它完全保留了所有的信息,也未增加任何额外的信息。比如广告的CTR预估模型,预处理时会把所有变量都这样处理,达到几亿维。
优点:完整保留了原始数据的全部信息。
缺点:计算量大大提升。而且只有在样本量非常大的时候效果才好,否则会因为过于稀疏,效果很差。 -
多重插补
多重插补(Multiple Imputation:MI)认为待插补的值是随机的,它的值来自于已观测到的值。具体实践上通常是估计出待插补的值,然后再加上不同的噪声,形成多组可选插补值。然后根据某种选择依据,选取最合适的插补值。
多重插补法的步骤:
1)通过变量之间的关系对缺失数据进行预测,利用蒙特卡洛方法生成多个完整的数据集。
2)在每个完整的数据集上进行训练,得到训练后的模型以及评价函数值。
对来自各个完整的数据集的结果,根据评价函数值进行选择,选择评价函数值最大的模型,其对应的插值就是最终的插补值。 - 压缩感知和矩阵补齐
二.特征编码
1.特征二元化
特征二元化的过程是将数值型的属性转换为布尔值的属性。通常用于假设属性取值为取值分布为伯努利分布的情形。特征二元化的算法比较简单。 对属性 指定一个阈值 。
如果样本在属性上的值大于等于 ,则二元化之后为 1 。
如果样本在属性 上的值小于 ,则二元化之后为 0 。
阈是一个超参数,其选取需要结合模型和具体的任务来选择。
2.one-hot
One-Hot Encoding 的优点:
1)能够处理非数值属性。
2)在一定程度上也扩充了特征。如性别是一个属性,经过独热码编码之后变成了是否男 和 是否女 两个属性。
3)编码后的属性是稀疏的,存在大量的零元分量。
3.离散化
- 分桶