光滑化:构建低阶多项式模型
来源:互联网 发布:mac怎么导入铃声 编辑:程序博客网 时间:2024/04/29 05:27
高阶多项式能够完美的拟合所提供的数据,但如我们们上一章,其摆动的倾向过大,超过实测点的函数图像变化幅度过大,这点一直令人所诟病。因此,需要寻找一种方式来减少多项式模型的摆动,或者称为光滑化多项式模型。
关于光滑化,一个通用的技术是选取一个低阶多项式,而不管数据点的个数。由于数据点的个数大于多项式的阶数,这就导致了我们建立的多项式不会如高阶多项式般,完全的拟合所有数据点。我们使用低阶多项式的目的是降低高阶多项式摆动的倾向,以及它对数据微小变化的敏感性。所以能够实现数据光滑化。
进行光滑化的过程意味着我们要选取一个低阶多项式,这就带来了两个问题。
- 如何确定多项式的阶
- 应用哪个准则对最佳拟合多项式系数进行确定
均差
我们先来对二次多项式进行探究。二次多项式有一个特性,它的二阶导数是常数,三阶导数则为零。我们先回忆下导数的定义
在
类似的,如果一阶导数也是个函数,我们可以重复这个过程来估计二阶导数,也就是说,能通过计算一阶导数的相继估计值间的差分来近似估计二阶导数。
举个简单的例子,我们知道曲线
我们计算
我们在前面的计算中仅仅计算了
上表考虑了三个数据点和一阶和二阶导数的估计,对应的估计分别称为一阶和二阶均差。在实践中构造均差表是非常容易的,只需要在当前的阶相继估计值间取差分,然后再除以发生这一变化的区间的长度即可。
构建均差表的提示
对于均差表,我们在构建的时候需要注意几点。
首先,
其次,我们还需要注意,构建均差表的时候,必须灵敏的感觉数据中间出现的误差和不规则变化,一处的误差,不仅仅会影响到这一列,还会层层递进,自行扩大,在整个表中传播,我们考虑下面的一个差分表
我们可以发现,
这些误差在之后的计算中,会被逐渐的放大到一个难以接受的状态。所以在构建均差表时要额外注意表中可能出现的误差,尽力将其排除。
再探车辆停止距离
这个问题我们之前已经探讨过了,但是现在我们应用光滑化的低阶多项式模型来拟合数据。我们的目的是预测车辆的停止距离,以此作为速率的一个函数。现在我们决定抛弃之前所建立的模型,仅有下表给出的数据。
对于这个模型,我们并不清楚该用几阶的多项式来构造,所以我们现行构造一个均差表。(此处省略)。从均差表中我们可以看出,在计算三阶均差时便出现了负号,如前面的讨论。负数说明了数据中存在着测量误差或低阶多项式不能追踪的变化。所以我们在此便可以认为,一个二阶多项式能够用于拟合这个模型。但我们这里的判断仅仅是定性的,更高阶的多项式能够更加完美的拟合这个模型,但是同时也带来个更加不稳定的摆动性,对数据误差的敏感性和模型的复杂性。
我们构建的模型的二阶多项式为下式:
我们现在的问题是确定
极小化的必要条件是该方程的导数为0,产生了下列方程
这里方程的求解是极其困难的,所以我们直接运用python对其进行求解,并作图代码如下
x = np.arange(20, 85, 5)y = [42, 56, 73.5, 91.5, 116, 142.5, 173, 209.5, 248, 292.5, 343, 401, 464]p = np.polyfit(x, y, 2)p1 = np.poly1d(p)fig = plt.figure()plt.scatter(x, y, c='r')fig.show()
我们得到的该二次项的函数为
可以看出,这个模型所预测的值有正有负,相比于前一个模型,拟合的程度大大的提高了。
- 光滑化:构建低阶多项式模型
- ngram模型的光滑处理
- PCL点云光滑化
- 多项式混合模型
- 初探高阶多项式模型
- ngram模型中文语料实验step by step(3)-ngram模型的光滑处理
- 模型树------构建模型树
- 大发光火电话的回复光滑风格化
- Android之achartengine简单示例(折线的光滑化)
- 光滑着色
- 光滑函数
- 多项式事件模型(multinomial event model)
- 朴素贝叶斯多项式模型个人笔记
- 文档生成模型:多元贝努利vs多项式
- 多项式回归模型(Office Prices)
- 广义线性模型.多项式分布.softmax
- 朴素贝叶斯.Laplace平滑.多项式事件模型
- 朴素贝叶斯,Laplace平滑,多项式事件模型
- Selenium-java-XML启动用例类-简单1
- Selenium-java-Log4j环境搭建和
- android小白最近学习的界面的一些总结
- Selenium-java-获取当前时间
- javaweb的mvc模式下json传输数据出现乱码(\u033d,\u033c)
- 光滑化:构建低阶多项式模型
- Selenium-java-js操作日历
- web项目引用html5 video标签实现视频播放的坑
- linux禁止对某个端口的访问
- Centos-ip配置详解
- Spark+Kafka的Direct方式将偏移量发送到Zookeeper的实现
- greendao的简单使用
- HDU 4081 Qin Shi Huang's National Road System【次小生成树】【模板题】
- Windows打印体系结构之打印驱动框架