拟合算法及Matlab求解——对数据寻求一个最简易的函数(曲线)
2022/1/20 22:13:32
本文主要是介绍拟合算法及Matlab求解——对数据寻求一个最简易的函数(曲线),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
与插值不同,在拟合问题中不需要曲线一定经过给定的点。拟合问题的目标是寻求一个函数(曲线),使得该曲线在某种准则下与所有的数据点最为接近,即曲线拟合的最好(最小化损失函数)。
目录
一、插值和拟合的区别
二、最小二乘法的解释及求解
三、如何评价拟合的好坏
四、“线性函数”的介绍
一、插值和拟合的区别
插值算法中,得到的多项式 f(x) 要经过所有样本点。但如果样本点太多,那么这个多项式次数过高,会造成龙格现象。
虽然我们可以选择分段的方法避免这种现象,但更多时候我们倾向于得到一个确定的曲线,尽管这条曲线不能经过每一个样本点,但只要保证误差足够小即可,这就是拟合的思想。(拟合的结果是得到一个确定的曲线)
举个例子
假设拟合曲线为 y = kx+b .此时拟合即求解:k 和 b 取何值时,样本点和拟合曲线最接近。
那怎么样定义“最接近”呢?最小二乘法!
二、最小二乘法的解释及求解
第一种定义:
第二种定义:
由于第一种定义有绝对值,不容易求导,因此计算比较复杂,所以我们往往使用第二种定义,这也正是最小二乘的思想。(为什么不用三次方?正负会相抵)
为什么不用四次方?(1)避免极端数据对拟合曲线的影响;(2)最小二乘法得到的结果和MLE极大似然估计一致。
求解最小二乘法
Matlab求解最小二乘
三、如何评价拟合的好坏
总体平方和:
误差平方和:
回归平方和:
可以证明得到:SST = SSE + SSR(要用到我们求导得到的两个等式)
则有拟合优度 R^2:
R^2 越接近1,说明误差平方和越接近0,说明拟合的越好。
(注:R^2只能用于拟合函数是线性函数时拟合结果的评价;线性函数和其他函数比较拟合的好坏,直接看SSE即可)
Matlab计算拟合优度:
四、“线性函数”的介绍
思考: y = a+bx^2 是线性函数吗?
是的,因为我们这里说的线性函数是指对参数为线性(线性于参数)
对于“线性”的解释有两种:
①对变量为线性
对线性的第一种并且也许是更“自然”的一种解释是,Y的条件期望值是 的线性函数。按照这种解释,诸如 E(Y|) = + 的回归系数,由于变量X以幂或指数2出现,就不是线性的。
②对参数为线性
对线性的第二种解释是,Y的期望 E(Y|) 是参数β的一个线性函数;它可以是或不是变量X的线性函数。对于这种解释,E(Y|) = + 就是一个线性(于参数)回归模型。为了看出这一点,让我们假设X的值为3,因此 E(Y|X=3) = β + 9 ,显然它是β1和β2的线性函数。
如何判断线性于参数的函数?
在函数中,参数仅以一次方出现,且不能乘以或除以其他任何的参数,并且不能出现参数的复合函数形式。
因此,y=a+x 、y=a+bcx、y=a(x-b)^2、y=asin(b+cx) 都不是线性函数,不能用R^2。
这篇关于拟合算法及Matlab求解——对数据寻求一个最简易的函数(曲线)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南