机器学习算法中,我们主要目的是同时降低模型的偏差和方差;然而,真实情况是我们不能同时做到,只能折中。
回顾
误差来源:
bias:测试集中的很多点并没有表达出来,bias很大;
variance:选用的测试集数据与真实的数据分布不一致,导致variance大;
偏差:
描述了数据的表达能力,图一显示,弱分类器的表达能力弱,造成偏差较大,即欠拟合; 增加模型的复杂度,增加数据特征等;方差:描述了 泛化能力,图二显示了,强分类器的泛化能力弱,方差过大;即过拟合,降低模型复杂度,增加数据量等;
降低泛化误差
多个随机变量的均值比单一值的方差小;
有两种思路:bagging, boosting;
Bagging
重采样的方式,获得多个多个随机变量,然后求均值,可以获得更小的方差;
这是一种重采样方式,虽然不能使得期望=均值,但是可以弥补损失;
本质上:通过重采样,增加了对训练数据的扰动,降低方差;
例子:随机森林模型,是集成学习方法,多个独立的模型一起作用,求得最终的结果,每一个模型都是强分类器(variance较大),集成后可以降低方差;
另一方面,集成之后,增加了决策的能力,使得数据的表达能力增大了,这也就反过来降低了偏差;
Boosting
提升学习方法,多个弱分类器构成,每一个分类器的bias很大;通过不断的模型提升(复杂化),模型的表达能力增大,降低了bias误差;
另一方面,提升模型中,会增加误分类样本的权重,即对训练数据进行扰动,也减小了variance误差;