机器学习(8)欠拟合和过拟合

liftword4个月前 (01-11)技术文章28

欠拟合(Underfitting),过拟合(Overfitting)

欠拟合是指特征数选取过少,没法很好的描述数据。

过拟合是指特征数选取过多,同样也没法很好的描述数据。

我们以猜明星为例子:

  1. 他有2个耳朵。这就是欠拟合,你猜不出他是谁!
  2. 他长得像牛头梗。这个就是刚好拟合,你大概已经能猜出他是谁了。
  3. 他长得像王宝强。这个就是过拟合,特征太具体也就太泛了,你仍然猜不出他是谁。

回归到数学,我们来举一个数学的例子,假设我们要拟合的是-x2,用左边60%的数据来训练。

如下是欠拟合的例子,使用1次多项式(线性)来拟合训练数据。


如下是刚好拟合的例子,使用的是2次多项式来拟合训练数据。


如下是过拟合的例子,使用的是11次多项式来拟合数据。

那么,我们如何来防止过拟合呢?

最朴素的思路,我们要让模型在所有数据上都效果不错。

机器学习中我们常用的方式是给代价函数增加正则项,或者叫惩罚因子,常用的是L2范数(后面再说说范式),简单理解就是参数的平方和,参数越多,惩罚也就越厉害,这个相当于增加了一个先验项。

最优化 = 代价函数(误差项) + 正则项(惩罚因子)

彩蛋:是不是跟贝叶斯一个原理!!!

下图是最简单的增加了平方和的惩罚项对应的表达式拟合误差,可以看到最佳拟合的是二次多项式。


当然,也有另外一种比较实在的方法,比较训练组和测试组的误差项的值,选择最小的那一个就行。

本文中使用到的技术

  • 多项式拟合:numpy.ployfit,numpy.ploy1d
  • 绘图:matplotlib.pyplot
  • 均方差:sklearn.metrics.mean_squared_error
  • 范数:numpy.linalg.norm


(如果对你有启发,请【在看】支持,谢谢!)

相关文章

人工智能同样也会读死书----“过拟合”

上一篇:《“嵌入”在大语言模型中是解决把句子转换成向量表示的技术》序言:我们常常会说某某人只会“读死书”,题目稍微变一点就不会做了。这其实是我们人类学习中很常见的现象。可是你知道吗?人工智能其实更容易...

用拟合来简化规范公式

简化计算时,拟合是一个好帮手。规范公式拟合的例子《GB 50009-2012:建筑结构荷载规范》第8.4.6条。脉动风荷载水平方向相关系数:脉动风荷载竖直方向相关系数:相比规范公式,拟合公式更容易看出...

数据分析-对数回归分析Python

昨天开始回归系列的第一篇,是最简单的一元线性回归。除了线形关系,还有各种非线性关系,比如指数关系、对数关系、多项式关系,这些都要使用对相应的数据变换后才能进行分析。今天就从对数分析开始,来进行演示说明...

如何使用Python实现简单的线性回归

前言线性回归是一种常见的机器学习算法,用于预测一个连续型的输出变量。它基于线性关系来建立一个输入变量和输出变量之间的关系模型。在这篇文章中,我们将介绍如何使用Python实现简单的线性回归模型。安装相...