我们可以从两个方面来分析:

理论层面

  1. 非线性。逻辑回归属于广义线性模型,表达能力受限;单变量离散化为N个后,每个变量有单独的权重,相当于为模型引入了非线性,能够提升模型表达能力,加大拟合;离散特征的增加和减少都很容易,易于模型的快速迭代;
  2. 速度快。稀疏向量内积乘法运算速度快,计算结果方便存储,容易扩展;
  3. 鲁棒性。离散化后的特征对异常数据有很强的鲁棒性:比如一个特征是这样表示的:年龄大于30的是1,否则为0。如果特征没有离散化,一个异常数据“年龄为300”会给模型造成很大的干扰;
  4. 方便交叉与特征组合:离散化后可以进行特征交叉,由M+N个变量变为M*N个变量,进一步引入非线性,提升表达能力;
  5. 稳定性:特征离散化之后,模型会更稳定,比如如果对用户的年龄离散化,20-30岁作为一个区间,不会因为一个用户年龄增长了一岁就会变成一个完全不同的人。当然处于区间分界点处的样本会刚好相反,所以怎么划分区间是一门学问;
  6. 简化模型。对特征进行离散化之后,起到了简化逻辑回归模型的作用,降低了模型产生过拟合的风险。

实际应用层面

在工业界,很少直接将连续值作为逻辑回归模型的特征输入,而是将连续特征离散化为一系列类似于0、1的热编码特征交给逻辑回归模型。

李沐曾经说过:模型是使用离散特征还是连续特征,其实是一个“海量离散特征 + 简单模型”同“少量连续特征 + 复杂模型”的权衡。既可以使用离散化特征和线性模型的组合,也可以使用连续特征和深度学习的组合。具体就看你的业务是折腾特征还是折腾模型比较容易实现而且能够达到很好的效果了。

但是,通常来说,前者容易,而且可以n个人一起并行去做,有成功经验;后者目前看很赞,能走多远还需拭目以待。