欠拟合、过拟合
1.欠拟合、过拟合
下面通过图示,来形象的解释欠拟合、过拟合的概念:
(1)第一种模型过于简单,没有很好的扑捉到数据的特征。
(2)第二种模型就比较好,能够扑捉到数据的特征
(3)第三种模型过于复杂,降低泛化能力
形象的解释一下:你想讨好某个人,太不用心(很多事都没有关心到),肯定讨好不了,所以这时候要多下功夫啦,但是有时候太用心啦,他的喜好你都了如指掌,讨好成功。你根据自己讨好这个人的经验去讨好其他人,结果可能适得其反,因为你原先了解的这个人的喜好,并不适用其他人。
欠拟合:
首先欠拟合就是模型没有很好地捕捉到数据特征,不能够很好地拟合数据。
解决方法:
1)添加其他特征项,有时候我们模型出现欠拟合的时候是因为特征项不够导致的,可以添加其他特征项来很好地解决。例如,“组合”、“泛化”、“相关性”三类特征是特征添加的重要手段,无论在什么场景,都可以照葫芦画瓢,总会得到意想不到的效果。
2)添加多项式特征,这个在机器学习算法里面用的很普遍,例如将线性模型通过添加二次项或者三次项使模型泛化能力更强。例如上面的图片的例子。
3)减少正则化参数,正则化的目的是用来防止过拟合的,但是现在模型出现了欠拟合,则需要减少正则化参数。
过拟合
通俗一点地来说过拟合就是模型把数据学习的太彻底,以至于把噪声数据的特征也学习到了,这样就会导致在后期测试的时候不能够很好地识别数据,即不能正确的分类,模型泛化能力太差。
解决方法:
1)重新清洗数据,导致过拟合的一个原因也有可能是数据不纯导致的,如果出现了过拟合就需要我们重新清洗数据。
2)增大数据的训练量,还有一个原因就是我们用于训练的数据量太小导致的,训练数据占总数据的比例过小。
3)采用正则化方法。
4)采用dropout方法。这个方法在神经网络里面很常用。dropout方法是ImageNet中提出的一种方法,通俗一点讲就是dropout方法在训练的时候让神经元以一定的概率不工作。
注:很好的泛化能力(即,在训练集和测试集或者更大的数据集中都能很好的决策)
总结
欠拟合:就是训练集表现的不好,测试集表现的也不好。
过拟合:就是训练集表现的很好,但是测试集表现的不好。
逻辑回归分类中的过拟合和欠拟合
防止过拟合
(1)减少特征(比如某些特征就是噪声,对模型根本没有用)
(2)增加数据量(增大数据量,即样本点越多,去匹配更加复杂的模型)
(3)正则化(regularized)
正则化
正则化的代价函数:
L2正则化:
参数的平方求和乘以正则项系数λ(λ称为正则项系数)
对应岭回归
L1正则化:
参数的绝对值求和乘以正则项系数λ
对应Lasso回归
其中
称为L2正则化项
在所有参数平方和前乘以了一个参数λ,把它叫正则化系数或者惩罚系数。这个惩罚系数是调节模型好坏的关键参数,我们通过两个极端的情况说明它是如何调节模型复杂度的。
λ值为0:损失函数将与原来损失函数一样(即最小二乘估计形式,标准线性回归),说明对参数权重θ没有任何惩罚。
λ为无穷大:在惩罚系数λ无穷大的情况下,为保证整个结构风险函数最小化,只能通过最小化所有权重系数θ达到目的了,即通过λ的惩罚降低了参数的权重值,而在降低参数权重值的同时我们就实现了降低模型复杂度的效果。
在回归模型中用参数λ表示正则化强度, λ越大,正则化强度越强。
在逻辑回归里面用C表示正则化强度,C越小,正则化强度越强。