机器学习之Overfitting和Underfitting

什么是overfitting和underfitting?
Overfitting是指模型在训练数据集上的表现比测试数据集上的表现好 。
Underfitting与overfitting相反 , 是指模型在测试数据集上的表现比训练数据集上的好 。
下图中横轴表示训练时间 , 纵轴表示error , 蓝色线条表示训练集 , 红色线条表示测试集 , 随着训练时间增加训练集上error逐渐降低 , 而测试集上一开始降低 , 到了一个点以后反而开始升高 , 这时模型开始overfitting 。 反过来就是underfitting 。
机器学习之Overfitting和Underfitting文章插图
无论overfitting还是underfitting , 都不是好的模型 , 都不能对真实世界的数据做出正确的预测 。
什么情况会导致overfitting和underfitting呢?
【机器学习之Overfitting和Underfitting】模型太过复杂往往会导致overfitting , 就如下面右图中显示的 , 模型过度拟合数据 , 导致模型太过复杂 , 不能真实反映实际情况 。
模型太过简单又会导致模型不能很好的学习数据结构 , 导致underfitting 。 如下面左图 。
中间的模型很好的反映了数据的真实走势 , 是一个好的模型 。
机器学习之Overfitting和Underfitting文章插图
避免overfitting的方法:

  • 通过简化模型 , 比如减少模型参数;
  • 增加训练数据集;
  • 减少训练数据噪音 , 比如去除outlier 。
避免underfitting的方法:
  • 选择更复杂的模型;
  • 筛选更好的数据特征来训练模型 。