一个对猫分类的任务,理想的分类器(比如人)可能获得完美的性能。
假设,算法的性能如下:
- 训练集损失=1%
- 开发集损失=11%
算法出了什么问题?从前一节的定义知道,偏差为1%,方差为10%(=11%-1%),因此是高方差,分类器在训练集损失很小,但是在验证集上泛化性能很差,这又叫做过拟合。
考虑如下情况:
- 训练集损失=15%
- 开发集损失=16%
偏差为15%,方差为1%,分类器在不能很好的拟合训练集,但是在开发集上的错误率只比训练集高了一点,因此分类器是高偏差,但是低方差。我们认为算法欠拟合。
考虑下面情况:
- 训练集损失=15%
- 开发集损失=30%
偏差为15%,方差为15%,分类器是高偏差,高方差:在训练集上表现很差,所以是高偏差,在开发集上表现也很差,所以也是高方差。过拟合,欠拟合这样的术语很难应用在这样的分类器上,因为它同时具有过拟合和欠拟合。
最后,考虑下面的结果:
- 训练集损失=0.5%
- 开发集损失=1%
分类器同时具有低偏差和低方差,表现得很不错。恭喜你的分类器获得了很好的性能!