一、模型的偏差与方差
所描述的事情本质上就是过拟合
和欠拟合
。
- 偏差描述的是模型预测准不准,低偏差就是表示模型预测能力是不错的,就像图中的点都在靶心附近。
- 方差描述的是模型稳不稳定,就像图中高方差的那些点,它们很分散,说明射击的成绩不稳定,波动很大。
二、用学习曲线与验证曲线诊断模型
一般来说,影响模型效果有三个重要的因素:
- 数据量大小:训练样本数量越大,模型越不太容易出
现高方差(过拟合)(换句话说:训练样本量太少容
易导致过拟合) - 特征变量的多少:特征变量越多,模型越不太容易出
现高偏差(欠拟合)(换句话说:特征变量越少,越
容易导致欠拟合) - 算法:不同的算法在同样的训练数据集上得到的模型
是有差异的(没有免费午餐理论)
学习曲线:
绘制一条曲线,横轴是样本量大小,纵轴是训练集和测试集的误差(也可以用准确率),通过这条曲线,我们可以判断增加样本量是否对改善偏差和方差有帮助。这条曲线就叫做学习曲线(learning curve)
。
学习曲线有三种形态:
- 左上角图 :随着样本量增加,训练集和测试集的准
确率逐步收敛在一起,但是显著低于预期准确率。
这种情况就是高偏差(欠拟合)。 - 右上角图 :随着样本量增加,训练集和测试集准确
率都逐步向期望准确率靠近,但是两者之间还是
有gap。这种情况就是高方差。(过拟合) - 右下角图 :随着样本量增加,训练集和测试集准确
率逐步收敛在期望准确率附近,两者之间gap很小,
这种情况就是我想要的。
如果学习曲线显示高方差,我们可以通过增加样本量的方式来改进模型。如果学习曲线显示高偏差,那么增加样本量可能解决不了问题,只能考虑换一个算法或者增加更多的特征变量了。
三、模型交叉验证
首先用K折交叉验证来调参,调到一个很好的参数后,拿这个参数直接在训练集上训练最终的模型,然后再测试集上测试。
四、分类模型的评估方法
正确率
准确率
召回率
F1-score
收益表