之前炸猪排提出过这么一个问题:偏差和方差是越小越好吗?如果是的,我们该如何减小偏差和方差,如果不是,我们该把它们控制在一个怎样的范围内使得我们的模型是最好的呢?今天就来给大家唠唠How to manage Bias and Variance。
锦囊 1: 隐藏你的本能
许多人都有一种直觉,即使以忽视方差为代价,他们就是应该尽量减少偏差。 他们的想法是,偏差的存在就表明他们的模型和算法是错误的。 同时,他们承认,方差也不好,但方差高的模型至少可以平均预测,至少不是根本错误的。然而,这样的逻辑是错误的。 高方差和低偏差模型可以在某种长期的平均意义上做好预测。 然而,在实践中,建模者总是处理数据集的单个结果。 在这些情况下,长期平均数不是最紧密相关的,重要的是模型对于实际数据的表现情况,所以,偏差和方差是同等重要的,不应该过多地改善偏差忽视方差。
锦囊2: “装袋”和重新采样
套袋和其他重采样技术可以用来减少模型预测的差异。在装袋(Bootstrap Aggregating)中,使用随机选择和替换,创建原始数据集的许多复制品。然后使用每个衍生数据集来构建新模型,并将这些模型聚集成一个整体。为了进行预测,集合中的所有模型都“被平均”了。
一个充分利用装袋的强大的算法是“随机森林”。随机森林通过训练大量的决策树(Decision Tree),每个决策树都是基于对原始训练数据的不同采样。在随机森林中,完整模型的偏差相当于单个决策树(其本身具有高方差)的偏差。通过创建许多这样的树,实际上是一个“森林”,然后对它们进行平均,最终模型的方差可以比一棵树大大减少。在实践中,对森林规模的唯一限制就是计算时间,因为可以训练无限数量的树木,而不会增加偏差并且不断增加方差。
锦囊3:算法的渐近性质
关于预测算法的学术统计文章经常提出渐近一致性和渐近效率的思想。在实践中,这暗示着,随着训练样本规模向无穷大方向发展,模型的偏差将降至0(渐近一致性),并且您的模型的方差不会劣于您可能使用的任何其他潜在模型(渐近效率)。
这两个都是我们希望模型算法具有的属性。然而,我们并不是生活在一个无限大样本的世界中,所以渐近性通常实际使用的很少。当你有一百万个点时,一个可能没有偏差的算法,当你只有几百个数据点时,可能会有非常显着的偏差。更重要的是,对于小样本数据集,渐近一致和高效的算法实际上可能比既不是渐近一致也不是有效的算法性能更差。在处理真实的数据时,最好抛开算法的理论性质,而将注意力集中在给定场景中的实际精度上。
锦囊4:了解过拟合(overfitting)和欠拟合(under-fitting)
从根本上讲,处理偏差和方差实际上是在处理过度和不足的问题。 与模型复杂性相比,偏差减小且方差增加。 随着越来越多的参数被添加到模型中,模型的复杂性上升,并且差异成为我们的首要关注点,而偏差稳步下降。 例如,当更多的多项式项被添加到线性回归中时,模型的复杂性将会更高。换句话说,偏差具有响应于模型复杂度4的负一阶导数,而方差具有正斜率。
理解偏差和方差对理解预测模型的行为至关重要,但总的来说,应该真正关心的是整体误差,而不是具体的分解。 任何模型的最佳点是偏差增加相当于方差减少的复杂程度。数学公式如下:
如果我们的模型复杂性超过这个最佳点,我们实际上是过度拟合了我们的模型; 而如果我们的复杂性低于最佳位置,那么我们就不适合这个模型。 在实践中,找不到这个位置的分析方法。 相反,我们必须使用准确的预测误差度量,并探索不同级别的模型复杂度,然后选择最小化总体误差的复杂度级别。
炸猪排
领取专属 10元无门槛券
私享最新 技术干货