1. LR与线性回归的区别与联系
区别:
- 经典线性模型的优化目标函数是最小二乘法,也就是基于均方误差函数的最小化;而LR是最大化似然函数,也是最小化交叉熵。
- 线性回归的输出是一个实值,而LR的输出是{0, 1};或者说,线性回归是解决回归问题,但LR是解决分类问题;
联系:
- LR的本质也是一个线性回归模型,只不过在模型外套了一层联系函数,使得线性回归的输出实值与分类问题的{0, 1}联系在了一起。
2. 为什么要对数据做归一化?
- 归一化可以加快梯度下降时的速度:
如上图中,x1, x2两个特征的区间非常大,形成的等高线非常尖(?),有可能顺着垂直等高线走,从而导致需要更多的迭代次数才能收敛。
而右图进行归一化后,对应的等高线显得很圆,梯度下降时可以较快收敛。
2. 归一化有可能提高精度
扩展:3种归一化方式:
- 线性归一化:利用最大值和最小值,适用于数值比较集中。但如果max和min不稳定,容易使结果不稳定,可以使用经验常量代替。
- 标准差标准化:处理后,数据符合标准正太分布;
- 非线性归一化:通过数学函数,将原始值进行映射,包括log、指数、正切等等,经常用在数据分化比较大的场景。
3. LR为什么要对特征进行离散化?
在工业界,很少直接将连续值作为LR的特征输入,而是将连续值离散化后为一系列0、1特征交给LR模型。这样做有以下几点好处:
- 离散特征的增加与减少都很容易,易于模型的快速迭代;
- 稀疏向量的内积乘法运算速度快,计算结果方便存储,容易扩展;(为什么计算结果方便存储,还容易扩展?)
- 离散化后的特征对异常数据具有很强的抗干扰性,比如规定年龄大于100的是0,否则为1,那出现一个年龄为500的异常数据,就不会对数据造成干扰。
- LR属于广义线性模型,表达能力受限(为什么受限?)。单变量离散化后为N个后,每个变量都具有各自的权重,相当于为模型引入了非线性,能够提升模型模型表达能力,加大拟合;
- 离散后可以进行特征交叉,有M+N个变为M*N个变量,进一步引入非线性,提升表达能力;
- 特征离散化后,模型会更稳定,比如如果对用户年龄离散化,20-30作为一个区间,不会因为一个用户年龄长了一岁就变成一个完全不同的人。当然处于区间相邻处的样本会刚好相反,所以怎么划分区间是门学问;
- 特征离散化以后,起到了简化了逻辑回归模型的作用,降低了模型过拟合的风险。
李沐曾经说过:模型是使用离散特征还是连续特征,其实是一个“海量离散特征+简单模型” 同 “少量连续特征+复杂模型”的权衡。既可以离散化用线性模型,也可以用连续特征加深度学习。就看是喜欢折腾特征还是折腾模型了。通常来说,前者容易,而且可以n个人一起并行做,有成功经验;后者目前看很赞,能走多远还须拭目以待。