
机器学习中,经常讨论到的一个话题就是泛化能力,泛化能力的强弱决定了模型的好坏,而影响泛化能力的则是模型的拟合问题。
1
- 什么是拟合问题 -
在很早的时候,我们就接触过拟合这个概念,在数学当中拟合就是把平面上一系列的点,用一条光滑的曲线连接起来。
因为这条曲线有无数种可能,从而有各种拟合方法,拟合的曲线一般可以用函数表示,根据这个函数的不同有不同的拟合名字。

在机器学习当中,拟合是衡量机器学习模型对类似数据的概括程度与其训练结果的标准。
每个机器学习算法都有一组基本参数,可以对其进行更改以提高其准确性。
在拟合过程中,对目标变量的数据进行算法运算,并生成机器学习模型。
然后,将结果与目标变量的实际观察值进行比较,确定其准确性。
接下来,你可以重复的调整算法,达到最佳的拟合状态,以实现能够解决实际的业务问题的目的。
2
- 为什么拟合很重要-
拟合是机器学习的精髓。
如果你的模型不能正确地拟合你的数据,那么它产生的结果将不够准确,无法用于实际决策。
正确拟合的模型具有超参数,捕获已知变量和目标变量之间的复杂关系,使其能够找到相关的见解或进行准确的预测。
3
- 欠拟合 -
对于训练好的模型,若在训练集表现差,在测试集表现同样会很差,这可能是欠拟合导致。
欠拟合是指模型拟合程度不高,数据距离拟合曲线较远,或指模型没有很好地捕捉到数据特征,不能够很好地拟合数据。
机器学习的目的并不是为了对训练集做出正确的预测,而是对没有在训练集中出现的数据进行正确的预测。
但是对训练集之外的数据预测的前提是,模型在训练集上的表现很好,基本可以满足大部分数据的预测,这样才会被用在训练集之外的数据。
而当模型对训练集预测的结果准确率很低时,说明模型的学习能力很弱,无法学习到数据中的一定“规律”,这样模型就处于欠拟合状态。
欠拟合的解决方法比较容易,常用的方法有:
·原数据的特征向量太少、增加样本特征,也可以加入特征组合。
·避免使用线性模型,例如决策树,SVM,深度学习等模型。
·增加模型的复杂度,减少正则化系数。
欠拟合的问题解决起来比较简单,较为困难的并且是大部分机器学习都会遇到的则是过拟合问题。
4
- 过拟合-
过拟合是指为了得到一致假设而使假设变得过度严格。
避免过拟合是分类器设计中的一个核心任务。
通常采用增大数据量和测试样本集的方法对分类器性能进行评价。
从下面这张图中可以直观感受到过拟合与欠拟合的区别。

模型在训练集上表现很好,而预测除训练集以外的数据时,表现却不尽人意,这种问题十有八九便是模型过拟合。
意味着模型不仅学习了数据中的一定“规律”,还将各类噪声、波动也学习了进去,相应的处理方法则比欠拟合复杂了许多:
·增加样本量,对数据清洗过后在进行训练,避免学入噪声
·如果数据中存在正负样本,尽可能保证正负样本的占比均匀或者训练集覆盖所有的数据类型
·选择相对简单的模型,补充特征不要太多,模型参数不要太复杂
·验证模型时尽量采用交叉检验的验证方法
·正则化方法,有L1正则化和L2正则化,原则就是让得到的模型复杂度趋于最小
·深度学习中还可以采用dropout,batch normalization, early stop等方法
·模型融合/集成学习方法也是很好的防止过拟合方法
往期推荐

更多文章请关注《万象专栏》
转载请注明出处:https://www.wanxiangsucai.com/read/cv15113

