参考

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 拟合相关推荐

  1. 用matlab参数法拟合,MATLAB|曲线拟合基本介绍

    曲线拟合工具箱cftool基本介绍 Tips mathworks官网的和help文件 https://cn.mathworks.com/help/curvefit/fit-comparison-in- ...

  2. matlab拟合曲线用什么,【Matlab】matlab如何使用拟合工具?matlab如何拟合曲线?matlab拟合工具cftool如何使用?...

    网上教程有好有坏,我自己总结了一个笔记 目录 1.打开方式 2. 打开界面 3.输入数据 4.选择拟合方式 5.选择拟合时需要几阶? 6.查看拟合效果 7.绘图显示 8.保存拟合数据 9.如何使用拟合 ...

  3. MATLAB与最小二乘法拟合数据

    1.前言:学习并记录的原因 最小二乘法是一种数学优化技术,它通过最小化误差的平方和寻找数据的最佳函数匹配. 最小平方差法在误差估计.不确定度.系统辨识及预测.预报等数据处理诸多学科领域得到广泛应用的数 ...

  4. matlab已知飞机下轮廓线,数学建模matlab插值及拟合.ppt

    数学建模matlab插值及拟合 2013数学建模培训 插值与拟合 插值与拟合属数值分析中函数逼近内容.在数学建模竞赛中,插值与拟合是一种常用的数据分析手段,被公认为建模中的十大算法之一. 本节首先通过 ...

  5. matlab三次拟合多项式,matlab三次多项式拟合

    暂无评价|0人阅读|0次下载|举报文档 DSC曲线的三次样条拟合与Matlab实现_能源/化工_工程科技_专业资料.DSC曲线拟合与Matlab实现第... 人阅读|次下载 曲线拟合的最小二乘法mat ...

  6. matlab三次多样式对函数拟合,Matlab regress函数拟合多个变量分析

    声明 本文系本人原创,转载请注明出处. 简介 拟合曲线,在matlab中有polyfit函数,有cftool工具,对于多项式,指数,对数都有很好的拟合,但是对于多个参数的拟合,比如x1,x2--用什么 ...

  7. matlab 椭圆方程拟合,matlab中如何插值拟合求椭圆方程

    [g_fitting.rar] 使用正交多项式完成数据拟合.程序对读入的gps采样点完成曲线拟合. (2007-08-01, matlab, 1KB, 26次) [曲面拟合.rar] 这是利用matl ...

  8. 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 ...

  9. MATLAB 线性回归多项式拟合+预测区间、置信区间的绘制

    MATLAB 线性回归多项式拟合+预测区间.置信区间的绘制 一.前言 二.多项式拟合polyfit 1.语法 2.示例 三.区间绘制 四.整体源码 五.思考 六.参考博客 一.前言 现有一组数据:x. ...

  10. 用Matlab求二次多项式,matlab二次多项式拟合

    用matlab做散点的二次曲线拟合_数学_自然科学_专业资料.例 对下面一组数据作二次多项式拟合 xi 0.1 0.2 0.4 0.5 0.6 0.7 0.8 0.9 1 yi 1.978 ..... ...

最新文章

  1. oracle本地连接地址,关于Oracle本地连接出现与监听有关的问题的解决方法探讨,oracle本地连接...
  2. catkin_make后输出:No module named ‘catkin_pkg‘
  3. python将sklearn的RocCurveDisplay结果与PrecisionRecallDisplay结果合成为一个图
  4. 点击文本框搜索,出现在下拉列表中
  5. 各种没有由来的问题,干!
  6. 多客户端异步通讯框架
  7. 图解cacti简单使用
  8. UC上云 为网络大型游戏保驾护航
  9. 【算法分析与设计】所有结点对的最短路径算法
  10. JS 常用函数二(改变HTML样式)
  11. 实现100倍加速!谷歌开源超强张量计算库TensorNetwork
  12. PANIC: Could not open: AVD
  13. 基于Bootstrap的后台通用模板
  14. google code的使用方法
  15. 中国雅虎邮箱将寿终正寝 8月19日停止服务
  16. 服务器引导盘装系统怎么选择u盘,小编教你怎么设置u盘为启动盘
  17. 10、持续集成流水线实践:流水线建设从Jenkins部署开始
  18. 数据可视化之美—BI
  19. 计算机睡眠打印机不可用设置,win7系统打印机属性显示不可用的解决方法
  20. 人脸识别最低像素_深入浅出人脸识别技术

热门文章

  1. 集合例题3.:现在有一个map集合如下:Map<Integer,String> map = new HashMap<Integer, String>();map.put(1, “张三丰“);map.
  2. PLC可编程控制器实验
  3. java手机游戏主角技能上剑魂,DNF高手来回答
  4. html实心圆圈,html5使用canvas画空心圆与实心圆
  5. 粗虚线和细虚线_高速虚线两侧是粗虚线 高速公路虚线两边加斜线什么意思?...
  6. stata陈强:计量经济学及stata应用_陈强 第四章 一元线性回归
  7. html 灯箱效果样式,jQuery灯箱效果插件-Swipebox
  8. Tensorflow之softmax应用实例
  9. 讲讲亿级PV的负载均衡架构!
  10. android之DEX文件格式