一、模型的偏差与方差

模型预测python 模型预测检验_模型预测python


所描述的事情本质上就是过拟合欠拟合

  • 偏差描述的是模型预测准不准,低偏差就是表示模型预测能力是不错的,就像图中的点都在靶心附近。
  • 方差描述的是模型稳不稳定,就像图中高方差的那些点,它们很分散,说明射击的成绩不稳定,波动很大。

模型预测python 模型预测检验_方差_02

二、用学习曲线与验证曲线诊断模型

一般来说,影响模型效果有三个重要的因素:

  • 数据量大小:训练样本数量越大,模型越不太容易出
    现高方差(过拟合)(换句话说:训练样本量太少容
    易导致过拟合)
  • 特征变量的多少:特征变量越多,模型越不太容易出
    现高偏差(欠拟合)(换句话说:特征变量越少,越
    容易导致欠拟合)
  • 算法:不同的算法在同样的训练数据集上得到的模型
    是有差异的(没有免费午餐理论)

学习曲线

绘制一条曲线,横轴是样本量大小,纵轴是训练集和测试集的误差(也可以用准确率),通过这条曲线,我们可以判断增加样本量是否对改善偏差和方差有帮助。这条曲线就叫做学习曲线(learning curve)

模型预测python 模型预测检验_模型评估_03

学习曲线有三种形态:

  • 左上角图 :随着样本量增加,训练集和测试集的准
    确率逐步收敛在一起,但是显著低于预期准确率。
    这种情况就是高偏差(欠拟合)。
  • 右上角图 :随着样本量增加,训练集和测试集准确
    率都逐步向期望准确率靠近,但是两者之间还是
    有gap。这种情况就是高方差。(过拟合)
  • 右下角图 :随着样本量增加,训练集和测试集准确
    率逐步收敛在期望准确率附近,两者之间gap很小,
    这种情况就是我想要的。

如果学习曲线显示高方差,我们可以通过增加样本量的方式来改进模型。如果学习曲线显示高偏差,那么增加样本量可能解决不了问题,只能考虑换一个算法或者增加更多的特征变量了。

三、模型交叉验证

首先用K折交叉验证来调参,调到一个很好的参数后,拿这个参数直接在训练集上训练最终的模型,然后再测试集上测试。

四、分类模型的评估方法

正确率
准确率
召回率
F1-score

收益表