MATLAB Smoothing Spline 拟合
参考
The Elements of Statistical Learning (chapter 5.4)
MATLAB - Smoothing Splines
MATLAB - fit
1. 基础
Smoothing Spline 可以用于离散数据的函数拟合。考虑下面的问题:在所有存在二阶连续导数的函数中寻找拟合函数f(x)f(x)f(x),可以使下面式子的值最小,RSSRSSRSS可以理解为惩罚系数。
RSS(f,λ)=∑i=1N{yi−f(xi)}2+λ∫{f′′(t)}dtRSS(f,\lambda)=\sum_{i=1}^{N}\{y_i-f(x_i)\}^2+\lambda \int\{f^{''}(t)\}dtRSS(f,λ)=i=1∑N{yi−f(xi)}2+λ∫{f′′(t)}dt
式中λ\lambdaλ是一个常数,称为平滑系数(smoothing parameter)。式子中的前一部分用来衡量拟合曲线与原数据的近似程度,后半部分称为曲率惩罚。λ\lambdaλ的选取原则可以参考下面两种极限情况。
- λ=0\lambda=0λ=0:fff可以是任意函数。
- λ=∞\lambda=∞λ=∞: 简单的最小二乘直线拟合,因为此时任意非零二阶导数产生的惩罚系数都是都是∞∞∞而不能被接受,要使RSS最小,f(x)=0f(x)=0f(x)=0。
这里我们可以思考二阶导数的含义,即函数在某一点斜率的变化率,二阶导数越大,函数曲线的走向就越曲折,因此当λ=0\lambda=0λ=0,拟合函数f(x)f(x)f(x)可以无限弯曲,经过所有样本点,使误差的平方和为0,从而使RSS最小。而当λ=∞\lambda=∞λ=∞,拟合函数f(x)f(x)f(x)无限平滑,以至于成为一条直线。我们总能在λ∈[0,∞)\lambda\in[0, \infty)λ∈[0,∞)中找到符合要求的拟合函数f(x)f(x)f(x)。
2. MATLAB 应用
MATLAB中所使用的Smoothing Splines代价函数与上面的定义非常类似。
p∑iwi(yi−s(xi))2+(1−p)∫(d2xdx2)2dxp\sum_{i}w_i(y_i-s(x_i))^2+(1-p)\int(\frac{d^2x}{dx^2})^2dxpi∑wi(yi−s(xi))2+(1−p)∫(dx2d2x)2dx
其中权重wiw_iwi如果没有定义,默认都是1。
ppp的定义域是0到1,即p∈[0,1]p\in[0,1]p∈[0,1]当ppp的取值越小,拟合结果越平滑,而当ppp的取值越大,拟合结果就越倾向于经过所有的点。具体原因已经在上文中解释,不再赘述。
2.1 拟合
p=0.01
x = [0.3; 0.4; 0.5; 0.6; 0.7; 0.8; 0.9; 1.0];
y = [0; 143; 298; 482; 762; 1290; 2880; 4016];f = fit(x, y, 'smoothingspline', 'SmoothingParam', 0.01);
plot(f, x, y);
p=1
x = [0.3; 0.4; 0.5; 0.6; 0.7; 0.8; 0.9; 1.0];
y = [0; 143; 298; 482; 762; 1290; 2880; 4016];f = fit(x, y, 'smoothingspline', 'SmoothingParam', 0.01);
plot(f, x, y);
2.2 函数调用
对拟合生成的函数 f ,跟正常函数一样输入参数即可。
x = [0.3; 0.4; 0.5; 0.6; 0.7; 0.8; 0.9; 1.0];
y = [0; 143; 298; 482; 762; 1290; 2880; 4016];f = fit(x, y, 'smoothingspline', 'SmoothingParam', 1);
f(0.6)
ans =482
函数返回结果与原数据一致(取决于拟合的程度)。
MATLAB Smoothing Spline 拟合相关推荐
- 用matlab参数法拟合,MATLAB|曲线拟合基本介绍
曲线拟合工具箱cftool基本介绍 Tips mathworks官网的和help文件 https://cn.mathworks.com/help/curvefit/fit-comparison-in- ...
- matlab拟合曲线用什么,【Matlab】matlab如何使用拟合工具?matlab如何拟合曲线?matlab拟合工具cftool如何使用?...
网上教程有好有坏,我自己总结了一个笔记 目录 1.打开方式 2. 打开界面 3.输入数据 4.选择拟合方式 5.选择拟合时需要几阶? 6.查看拟合效果 7.绘图显示 8.保存拟合数据 9.如何使用拟合 ...
- MATLAB与最小二乘法拟合数据
1.前言:学习并记录的原因 最小二乘法是一种数学优化技术,它通过最小化误差的平方和寻找数据的最佳函数匹配. 最小平方差法在误差估计.不确定度.系统辨识及预测.预报等数据处理诸多学科领域得到广泛应用的数 ...
- matlab已知飞机下轮廓线,数学建模matlab插值及拟合.ppt
数学建模matlab插值及拟合 2013数学建模培训 插值与拟合 插值与拟合属数值分析中函数逼近内容.在数学建模竞赛中,插值与拟合是一种常用的数据分析手段,被公认为建模中的十大算法之一. 本节首先通过 ...
- matlab三次拟合多项式,matlab三次多项式拟合
暂无评价|0人阅读|0次下载|举报文档 DSC曲线的三次样条拟合与Matlab实现_能源/化工_工程科技_专业资料.DSC曲线拟合与Matlab实现第... 人阅读|次下载 曲线拟合的最小二乘法mat ...
- matlab三次多样式对函数拟合,Matlab regress函数拟合多个变量分析
声明 本文系本人原创,转载请注明出处. 简介 拟合曲线,在matlab中有polyfit函数,有cftool工具,对于多项式,指数,对数都有很好的拟合,但是对于多个参数的拟合,比如x1,x2--用什么 ...
- matlab 椭圆方程拟合,matlab中如何插值拟合求椭圆方程
[g_fitting.rar] 使用正交多项式完成数据拟合.程序对读入的gps采样点完成曲线拟合. (2007-08-01, matlab, 1KB, 26次) [曲面拟合.rar] 这是利用matl ...
- matlab中多项式拟合如何给出r方,matlap拟合函数后r^2怎么求
matlab拟合函数 求助 尝试用二次多项式拟合: clearall; x=2:2:20; y=[0.31.232.416.267.958.529.049.179.299.37]; scatter(x ...
- MATLAB 线性回归多项式拟合+预测区间、置信区间的绘制
MATLAB 线性回归多项式拟合+预测区间.置信区间的绘制 一.前言 二.多项式拟合polyfit 1.语法 2.示例 三.区间绘制 四.整体源码 五.思考 六.参考博客 一.前言 现有一组数据:x. ...
- 用Matlab求二次多项式,matlab二次多项式拟合
用matlab做散点的二次曲线拟合_数学_自然科学_专业资料.例 对下面一组数据作二次多项式拟合 xi 0.1 0.2 0.4 0.5 0.6 0.7 0.8 0.9 1 yi 1.978 ..... ...
最新文章
- oracle本地连接地址,关于Oracle本地连接出现与监听有关的问题的解决方法探讨,oracle本地连接...
- catkin_make后输出:No module named ‘catkin_pkg‘
- python将sklearn的RocCurveDisplay结果与PrecisionRecallDisplay结果合成为一个图
- 点击文本框搜索,出现在下拉列表中
- 各种没有由来的问题,干!
- 多客户端异步通讯框架
- 图解cacti简单使用
- UC上云 为网络大型游戏保驾护航
- 【算法分析与设计】所有结点对的最短路径算法
- JS 常用函数二(改变HTML样式)
- 实现100倍加速!谷歌开源超强张量计算库TensorNetwork
- PANIC: Could not open: AVD
- 基于Bootstrap的后台通用模板
- google code的使用方法
- 中国雅虎邮箱将寿终正寝 8月19日停止服务
- 服务器引导盘装系统怎么选择u盘,小编教你怎么设置u盘为启动盘
- 10、持续集成流水线实践:流水线建设从Jenkins部署开始
- 数据可视化之美—BI
- 计算机睡眠打印机不可用设置,win7系统打印机属性显示不可用的解决方法
- 人脸识别最低像素_深入浅出人脸识别技术
热门文章
- 集合例题3.:现在有一个map集合如下:Map<Integer,String> map = new HashMap<Integer, String>();map.put(1, “张三丰“);map.
- PLC可编程控制器实验
- java手机游戏主角技能上剑魂,DNF高手来回答
- html实心圆圈,html5使用canvas画空心圆与实心圆
- 粗虚线和细虚线_高速虚线两侧是粗虚线 高速公路虚线两边加斜线什么意思?...
- stata陈强:计量经济学及stata应用_陈强 第四章 一元线性回归
- html 灯箱效果样式,jQuery灯箱效果插件-Swipebox
- Tensorflow之softmax应用实例
- 讲讲亿级PV的负载均衡架构!
- android之DEX文件格式