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