在用机器学习算法对数据进行拟合的过程当中,每每一开始得不到满意的结果,例如 AUC 值不够高,此时咱们就须要对模型进行调优,那么调优的方向是什么?有没有调优方法论可遵循?答案固然是有的,bias 和 variance 这两个指标就能起到指导调优的做用。html
咱们先来看一个例子,假设实验室收集了老鼠的体重和大小的数据,咱们能够创建一个模型,经过输入老鼠的大小来预测老鼠的体重,部分数据散点图以下。在训练以前,咱们仍是将数据拆分为两部分,红色的点为训练集,绿色的点表示测试集:算法
接着咱们用两个模型来拟合训练数据,第一个模型采用线性算法,以下:机器学习
能够看到,线性模型并不能很好的描绘真实数据,咱们通常使用 MSE (Mean Squared Error) 来量化这种拟合能力,即预测值和实际值之间的差值的平方的均值。post
接下来咱们训练第二个较复杂的模型,该模型的曲线以下:学习
第二个模型完美的贴合了训练数据,即用这个模型来预测训练数据,得到的预测值与实际值相等。测试
至此,咱们再给出 bias 的定义就不难理解了:cdn
Bias 指标衡量了在训练阶段,机器学习算法和真实数据之间的差别。htm
从上面的例子能够看出,模型二的 bias 远远低于模型一的 bias。blog
训练完模型后,咱们还须要使用测试集对模型进行评估,下图是模型一的评估结果,咱们用蓝色虚线来表示测试结果中,预测值和实际状况的差别(也可使用 MSE 来衡量):get
一样,模型二的评估结果以下:
和 Bias 相反的是,模型一的预测效果却远远好于模型二的,这说明模型二的预测能力并不稳定,咱们试着给 Variance 也下个定义:
Variance 表示在不一样测试集间,预测效果间的误差程度,误差程度越大,variance 越大,反之越小。
显然模型二的 variance 较大;而对于不一样测试集,模型一预测的准确性很是接近,咱们能够说模型一的 variance 较小。
下图摘自 Scott Fortmann-Roe's 的博客,它可以很好的描绘咱们在机器学习中的调优方向,其中左上角是最理想的模型,它是终极目标,若是实在作不到,你应该朝着左下角的 High Bias + Low Variance 努力。
上图中,右上角的状况又被称为过拟合 (Overfit),它表示你的模型在训练时的表现很是好,但在测试过程当中的表现又很是差,上文的模型二就是典型的过拟合状况。有过拟合确定就有欠拟合 (Underfit),它表示你的模型没法很好的刻画样本数据。同时,过拟合通常对应你使用了一个较复杂的模型,而欠拟合通常和简单模型相对应。不少时候,咱们说模型调优,实际上指的是:
在简单模型和复杂模型间寻求平衡。
如何作到呢?这里有一些经验方法:
参考:
Machine Learning Fundamentals: Bias and Variance
相关文章: