1. 缺失值处理
适用条件:
- 树模型对于缺失值敏感度较低,大部分模型可以直接处理缺失值
- 涉及到距离度量的模型对缺失值敏感,如KNN、SVM、线性函数
- 神经网络鲁棒性强,不敏感,但是需要大量数据
连续值:使用所有样本的均值或中位数
离散值:使用众位数
或作为新值
2. 特殊的特征处理
适用条件:有些特征的默认取值比较特殊,一般需要做了处理后才能用于算法。比如时间,比如显示20180519,这样的值一般没办法直接适用,需要特殊变换。
1. 时间特征
- 使用连续的时间差值法,计算出所有样本的时间到某一个未来时间之间的数值差距,从而将时间特征转化为连续值
- 根据时间所在的年、月、日、星期几、小时数,将一个时间特征转化为若干个离散特征。(在分析具有明显时间趋势的问题较好用)
- 权重法,根据时间的新旧得到一个权重值,如对商品,三个月前购买的设置较低权重值,最近的设置较高权重值
2. 地理特征
- 处理成离散值:转化为多个离散特征,如城市名、曲线名、街道等
- 处理成连续值:如经纬度
3. 连续特征的离散化处理
(这里的离散与分箱不同,会增加特征维度,类似one-hot)
好处:
1. 速度快:稀疏向量内积运算速度快(样本各维度都是0、1)
1. 更鲁棒:如设置年龄>30为1,否则为0,存在样本年龄=300,不会对模型产生大的干扰;若某特征权重很大,则该特征的微小变化都会导致结果产生很大变化,离散化能缓解这个问题
1. 提升表达能力:逻辑回归属于广义线性模型,变为(单个特征使用one-hot变为多个特征),变为了分段的线性函数,引入了非线性,提升表达能力
- 方法一,根据阈值进行分组
- 方法二,利用决策树进行one-hot编码