一、过拟合问题
定义:过拟合是指机器学习模型在训练数据上表现良好,但在新数据上表现不佳的问题。当模型过分地适应训练数据的特征和噪音时,就会出现过拟合。这样的模型会捕捉到训练数据中的细微特征和噪音,导致在新数据上表现不佳。
对于一组数据的拟合存在以下三种情况:
1.拟合不足(underfiting),没有经过数据集中主要的点,没有很好地反应点的趋势
2.拟合良好
3.过度拟合(overfiting),没有过滤掉细微特征和噪声,无法反应整体趋势
在分类问题中,我们使用sigmoid函数找决策边界时也会遇到类似的问题的问题:
underfiting一般是由于前期考虑不足导致变量太少,基本可以避免。而overfiting一般是因为我们没有足够的训练数据或者设置的特征因素过多导致的。
二、正则化引入(解决过拟合问题的思路)
我们希望通过一些手段用以减少模型中的影响因素,以此解决过拟合的问题。如下图中从左到右的变化。
我们以房价的模型为例,在早期选择因素(feature)时,我们使用了一个特征很多的函数作为模型,但是数据量可能不够多,这会导致我们的模型出现过拟合的情况。由此我们得到了两种解决过拟合的思路:
获取更多的数据:假如我们有更多的数据,我们仍然可以使用一个特征很多的函数进行拟合。但是在一般情况下我们可以获得的数据是有限的(比如:2023年的房屋销售量),所以这种思路具有一定局限性。
挑选出最小特征子集:我们希望在有限数据集下进行预测,所以我们需要从所以因素中挑选出最小的特征子集作为变量集。在实际问题中,有一些因素对于整体的预测结果影响不大(比如因素x对应系数w=1e-10的情况),所以我们可以通过在其中提炼一些主要的特征作为变量,这些特征变量组成的集合叫做最小特征子集。
如下图中,我们选取了房屋面积(size)、卧室数量(bedrooms)、房屋年龄(age)作为主要的因素构建模型来解决过拟合的问题。这种做法唯一的缺点是一些有用的因素可能被我们忽略。
正则化(限制参数大小):正则化通过向损失函数中添加一个惩罚项来对模型参数进行限制,从而降低模型的复杂度,防止模型在训练数据上过度拟合。
通过下图进行说明:正则化就是通过调整的大小来限制某些特征的影响,实现从左图到右图的转变。这种方法不会直接消除特征,而是降低特征的影响。正则化相比较于挑选出最小特征子集更加温和,保留了所有的特征变量,鼓励在过拟合问题中更多地使用。