1. 缺失值处理

适用条件:

  1. - 树模型对于缺失值敏感度较低,大部分模型可以直接处理缺失值
  2. - 涉及到距离度量的模型对缺失值敏感,如KNNSVM、线性函数
  3. - 神经网络鲁棒性强,不敏感,但是需要大量数据

连续值:使用所有样本的均值或中位数
离散值:使用众位数
或作为新值

2. 特殊的特征处理

适用条件:有些特征的默认取值比较特殊,一般需要做了处理后才能用于算法。比如时间,比如显示20180519,这样的值一般没办法直接适用,需要特殊变换。

1. 时间特征

  1. - 使用连续的时间差值法,计算出所有样本的时间到某一个未来时间之间的数值差距,从而将时间特征转化为连续值
  2. - 根据时间所在的年、月、日、星期几、小时数,将一个时间特征转化为若干个离散特征。(在分析具有明显时间趋势的问题较好用)
  3. - 权重法,根据时间的新旧得到一个权重值,如对商品,三个月前购买的设置较低权重值,最近的设置较高权重值

2. 地理特征

  1. - 处理成离散值:转化为多个离散特征,如城市名、曲线名、街道等
  2. - 处理成连续值:如经纬度

3. 连续特征的离散化处理

(这里的离散与分箱不同,会增加特征维度,类似one-hot)
好处:

  1. 1. 速度快:稀疏向量内积运算速度快(样本各维度都是01
  2. 1. 更鲁棒:如设置年龄>301,否则为0,存在样本年龄=300,不会对模型产生大的干扰;若某特征权重很大,则该特征的微小变化都会导致结果产生很大变化,离散化能缓解这个问题
  3. 1. 提升表达能力:逻辑回归属于广义线性模型,![](https://cdn.nlark.com/yuque/__latex/05c0476d2eb6d4d46c0be30e21c54243.svg#card=math&code=y%3Dw%2AA%0A&height=18&width=71)变为![](https://cdn.nlark.com/yuque/__latex/abebf744ebc4c06d491ef0217c1d2c08.svg#card=math&code=y%3Dw_1%2AA_1%2Bw_2%2AA_2%2Bw_3%2AA_&height=18&width=239)(单个特征使用one-hot变为多个特征),变为了分段的线性函数,引入了非线性,提升表达能力
  • 方法一,根据阈值进行分组
  • 方法二,利用决策树进行one-hot编码