runge phenomenon(龙格现象)和过拟合
龙格现象
龙格现象是指这么一种现象:给定一些样本点,对其进行多项式拟合时,多项式次数越高,反而和真实的函数差距越大。
实验
我们的真实函数以y=11+25x2y=\frac{1}{1+25x^2}y=1+25x21为例,挖取其中的一些点,使用numpy进行不同次数的多项式拟合,查看最终的函数与真实函数的拟合情况。
我们先看看这个真实函数的样子。
x=np.linspace(-2,2,10000)
y=1/(1+25*x*x)
plt.figure(figsize=(20,8),dpi=80)
plt.plot(x,y)
plt.show()
我们在这个真实函数上选取的一些点如下。
testx=np.linspace(-2,2,7)
testy=1/(1+25*testx*testx)
plt.figure(figsize=(20,8),dpi=80)
plt.scatter(testx,testy)
plt.show()
我们对这些点进行拟合。
degree=[3,5,7]
f=[]
for i in range(3):model=np.polyfit(testx,testy,degree[i])f.append(np.poly1d(model))print(f[i])
然后可视化
colors=["r","g","orange"]
plt.figure(figsize=(20,8),dpi=80)
xs=np.linspace(-2.3,2.3,1000)
for i in range(3):plt.plot(xs,f[i](xs),color=colors[i],label=degree[i])
plt.scatter(testx,testy,label="o")
plt.plot(x,y,color="b",label="function")
plt.legend()
plt.show()
从上面我们已经看到,7次多项式在区间[-2,2]之外,已经完全偏离了真实函数,5次多项式次之,3次多项式保留得最好。
我们将区间拉长到[-10,10],验证一下3个拟合函数和真实函数的相近情况。
我们发现最高次已经完全偏离了。我们继续将区间拉长至[-100,100]。
我们的发现还是同样的,最高次多项式也是与真实函数严重背离。(注意到:纵坐标的量级变成了1∗e111*e^{11}1∗e11。)
理解总结
龙格现象说明了一件事:拟合由真实分布产生的点,得到的多项式函数并不是次数越高就和真实函数越接近。相反,本例中次数越高,结果偏离越大。我们需要做一些先验工作,了解真实函数的曲线走向,再对症下药。即在不熟悉曲线运动趋势的前提下,不要轻易使用高次多项式。
现实意义:即使给了100个点,按理(待定系数法)可以求解最高次为100的多项式,但是不要轻易使用这个。
这和机器学习中的过拟合是吻合的。
补充:我们可以考虑如下做法:
- 将样本点按区间(或者某种方式)分段,然后在各个区间应用低次的多项式拟合,合适的话也可以考虑高次。
- chebyshev节点代替等距节点。
runge phenomenon(龙格现象)和过拟合相关推荐
- 什么是龙格现象(Runge phenomenon)?如何避免龙格现象?
在<计算方法>和<计算机图形学基础>中讲到插值(线性插值.抛物线插值.高次lagrang插值)的拟合度,在三种自由曲线的图形中,是上升趋势,我们总以为次数越高精度越高,实际上, ...
- 什么是欠拟合现象_欠拟合和过拟合是什么?解决方法总结
欠拟合与过拟合 欠拟合是指模型在训练集.验证集和测试集上均表现不佳的情况: 过拟合是指模型在训练集上表现很好,到了验证和测试阶段就大不如意了,即模型的泛化能力很差. 欠拟合和过拟合一直是机器学习训练中 ...
- matlab 龙格现象,利用MATLAB分析数值积分中的龙格(Runge)现象(1)
实验目的: 观察Lagrange插值及数值积分中的龙格(Runge)现象.了解数值不稳定现象. 实验题目:(1)对于函数f(x)=1/(1+x^2),-4<=x<=4进行Lagrange插 ...
- 插值多项式的龙格现象的介绍与模拟
在文章拉格朗日插值多项式的原理介绍及其应用中,笔者介绍了如何使用拉格朗日插值多项式来拟合任意数据点集. 事实上,插值多项式会更倾向于某些形状.德国数学家卡尔·龙格Carl Runge发现,插值 ...
- 【第4期-智能驾驶汽车系列术语概念解析】第5节:龙格现象
目录 前言 一.龙格现象 二.如何避免龙格现象? 前言 数据拟合是指已知有限个数据点,求逼近这些数据点近似函数,因此该函数可以不经过已知数据点,只要求该函数在这些点上的总偏差最小.基于多项式曲线的路径 ...
- 龙格现象及分段线性插值
龙格现象及分段线性插值 python画图代码 import numpy as np import matplotlib.pyplot as pltdef Lagrange(arr_x, arr_y, ...
- 拉格朗日插值验证龙格现象python
拉格朗日(Lagrange)插值原理 拉格朗日(Lagrange)插值公式的基本思想是把的构造问题转化为 n+1 个插值基函数 .很多人可能觉得样本数据越多,得到的插值数据会越精确,这样想法是不正确的 ...
- lagrange 插值实现和龙格现象
lagrange 插值实现 import numpy as np #数值运算 import sympy import matplotlib.pyplot as pltclass LagrangeInt ...
- matlab探究龙格现象
在数值分析领域中,龙格现象是在一组等间插值点上使用具有高次多项式的多项式插值时出现的区间边缘处的振荡问题. 它是由卡尔·龙格(Runge)在探索使用多项式插值逼近某些函数时的错误行为时发现的.这一发现 ...
- 深度学习中的欠拟合和过拟合简介
通常情况下,当我们训练机器学习模型时,我们可以使用某个训练集,在训练集上计算一些被称为训练误差(training error)的度量误差,目标是降低训练误差.机器学习和优化不同的地方在于,我们也希望泛 ...
最新文章
- 一篇文章了解生物特征识别六大技术
- leetcode006 zig_zig_print
- Python 包安装和 postgresql 的一些问题
- Arm官宣V9架构,用AI和安全对抗英特尔,最快今年年底用上
- CentOS 7 安装方式汇总
- ETL异构数据源Datax_数据准备_03
- 我的世界服务器拔刀修复,我的世界拔刀剑怎么修复
- Python入门--集合的创建,set(),{}
- iOS开发网络篇—发送GET和POST请求(使用NSURLSession)
- php基础知识(2),PHP基础知识2
- 贴片式元器件焊接方法
- 使用java对pdf文档进行分解和合成
- 泰康和百度智能云为何相互需要?
- 文件搜索工具(简单版)
- 微软全息眼镜Hololens开发者版发货 售19000元
- win10去快捷方式箭头
- 淘宝/天猫按图搜索商品API接口,以图搜商品API接口,图片搜索API接口
- 香农采样定理和奈奎斯特采样定理
- 阿里云STS临时令牌操作OSS云存储
- 密码学之基本概念(01)