逻辑回归过拟合分析与解决方案

《老饼讲解机器学习》http://ml.bbbdata.com/teach#113


目录

一.逻辑回归过拟合来源分析

(一)过拟合回顾

(二)逻辑回归过拟合来源分析

二.逻辑回归过拟合解决方案

(一)控制变量个数

(二)控制系数过大

附件:系数过大放大误差例子说明


先说结论:

只要变量处理好了,逻辑回归基本不会出现过拟合。在生产中我们入模变量基本都是质量较好的变量,因此过拟合基本不会发生

一.逻辑回归过拟合来源分析

(一)过拟合回顾

过拟合是指模型对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) \text{y}=100000x_1-99999x_2  

   (2) \text{y} = x_1

在 x1和x2是一样的情况下,结果是一样的。

但是,由于我们收集数据时,可能会发生一点误差。例如收集x1时,偏差了0.1,则最后(1)式会导致 带来10000的误差,而(2)式只带来0.1的误差。
也即是,当参数很大时,会过份放大误差。

相关文章

《逻辑回归过拟合分析与解决方案》

《sklearn:一个简单的逻辑回归例子》

《sklearn提取逻辑回归模型系数》

《逻辑回归建模完整流程》

你可能感兴趣的:(#,逻辑回归,逻辑回归,机器学习,人工智能)