《老饼讲解机器学习》https://www.bbbdata.com/text/46
目录
先说结论:
只要变量处理好了,逻辑回归基本不会出现过拟合。在生产中我们入模变量基本都是质量较好的变量,因此过拟合基本不会发生。
一.逻辑回归过拟合来源分析
(一)过拟合回顾
过拟合是指模型对y的拟合能力过强,导致模型参数过于追求数据上的拟合,而产生违背真实规则的结果。
我们一般会通过 合理抑制模型的拟合能力和避免违背真实结果两个方面,去避免模型过拟合。
1.拟合能力来源于
(1)单个变量对y的塑造能力,
(2)变量个数
2.违背真实结果的解(解空间中剔除不合理部分):
y对x的变化率过大(一般体现在系数过大)带来两方面:
(1)放大输入误差:因为x不总是采集准确的,如果y对x过于敏感,则x小小的误差都会被放到极大。
(2)由于y对x变化过大,数据点之间会产生峰(谷)状规则,即整个拟合结果非常跌宕不稳定。
(二)逻辑回归过拟合来源分析
针对逻辑回归,我们分析如下:
(1)单变量塑造能力:逻辑回归单个变量对y就是是S形函数,拟合能力很有限,这个不会产生过拟合。
(2)变量个数:变量个数是逻辑回归过拟合的主要来源。
(3)系数过大:由于逻辑回归是S型函数,不会造成数据点间的峰(谷)形态。因此,仅会造成误差放在问题。
二.逻辑回归过拟合解决方案
经分析,要解决的问题主要是控制变量个数和避免系数过大。
(一)控制变量个数
1.业务手段,把逻辑不成立的变量去除。
2.数据处理手段,把数据转换成与y成线性关系的变量。
3.建模手段:采用逐步回归。
逐步回归流程:
1.历遍所有变量,把拟合结果最好的变量作为第一轮选择变量。
2.在第一轮选择变量的基础上,添加第二个变量,历遍剩余变量,添加哪个变量能令拟合结果最好,就将其作为第二轮选择变量。
3.在第二轮的基础上,添加第三个变量......
......
直到变量不再对拟合结果带来明显贡献时,就不再添加变量。
(二)控制系数过大
控制系数过大,一般可以采用正则化,添加L1或L2项。
我们知道 ,加入正则项,实际是在“小化权重”与准确率间取平衡点,也即是会牺牲求解的准确率。
因此,我们一开始并不加入正则项,而是训练好模型后,如果各个变量的w有极大值,且与业务逻辑不符合时,再添加正则化重新训练,
PASS:sklearn默认会加入L2正则项,我们需要在参数中关闭它。
附件:系数过大放大误差例子说明
例如:
(1)
(2)
在 x1和x2是一样的情况下,结果是一样的。
但是,由于我们收集数据时,可能会发生一点误差。例如收集x1时,偏差了0.1,则最后(1)式会导致 带来10000的误差,而(2)式只带来0.1的误差。
也即是,当参数很大时,会过份放大误差。
相关文章