什么是过拟合
过拟合是一种不受欢迎的机器学习行为,当机器学习模型为训练数据提供准确的预测而不是新数据时,就会发生这种行为。当数据科学家使用机器学习模型进行预测时,他们首先在已知数据集上训练模型。然后,根据这些信息,该模型尝试预测新数据集的结果。过度拟合模型可能给出不准确的预测,并且无法对所有类型的新数据表现良好。
当模型无法泛化以及与训练数据集的拟合过于紧密时, 会发生过拟合。
通常由以下原因导致:
1 训练数据大小过小,并且未包含足够的数据样本,无法准确代表所有可能的输入数据值。
2 训练数据包含大量不相关的信息,称为噪声数据。
3 模型在单个数据样本集上训练的时间过长。
4 模型复杂程度较高,因此其可以学习训练数据中的噪声。
过拟合示例:
第一幅图为欠拟合(因为连训练集都无法很好的拟合) 第二幅图刚刚好 第三幅图为过拟合(因为它不具有泛化到新样本的能力)
为了防止过拟合,有三种常见的方法。
方法一:数据集扩增( 以上述过拟合 情形作为示例)。
1)可以收集更多的训练数据进行拟合 如下图所示:
2)复制原有数据并加上随机噪声
3)重采样
4)根据当前数据集估计数据分布参数,使用该分布产生更多的数据等。
方法二:选择最合适的特征集(特征选择)
方法三:利用正则化方法对目标函数和代价函数进行优化。
正则化概念: 正则化是为了降低模型的复杂度, 从而避免模型过分拟合训练数据(包括噪声和异常点), 尽可能的让算法缩小参数的值, 保留所有特征。
例: 正则化线性回归函数( Cost function for regularized linear regression)
其中lamda为正则化参数。
正则化逻辑回归函数( Cost function for regularized logistic regression)
接下来就是对梯度下降算法进行正则化
图片来源: 8.3 带有正则化的代价函数 Cost function with regularization_哔哩哔哩_bilibili