最小二乘法拟合注意的问题
来源:互联网 发布:ruby编程语言 pdf 编辑:程序博客网 时间:2024/05/16 14:06
最小二乘法拟合注意的问题
使用类似y=ax+b这样的函数做曲线拟合可以很方便通过最小二乘法转换为线性方程组,继而通过矩阵操作求解。
相关的教程可见:
http://mathworld.wolfram.com/LeastSquaresFitting.html
http://blog.csdn.net/yang6464158/article/details/24477547
对于类似y=aexp(bx)这样的函数用作曲线拟合,教科书往往会告诉你可以转换为log(y)=log(a)+bt,然后即转换成了上述线性的形式求解。
但我并不建议这样做,而是建议直接使用非线性最优化算法优化原始函数平方误差和的方式求解a 和b。
这主要是由于噪声的影响会导致两种方法有不一样的拟合结果。
例如这样一组数据:
X= [0 1 2 3 4 5 6 7 8 9 10 11 12 13 14];
Y=[ 0.4959 0.2616 0.1208 0.0553 0.0282 0.0151 0.0082 0.0053 0.0025 0.0024 0.0013 0.0009 0.0005 0.0002 0.0003];
Matlab中使用指数拟合的结果如下:
y= 0.4995*exp(-0.6916*x)
而通过取对数用线性拟合的结果如下:
Log(y)= -0.5462 *x + -1.161
y=0.3132*exp(-0.5462 *x)
可见两者差别非常之大
这主要是最小二乘法同等对待每个采样点的噪声,而且噪声往往跟函数值有关。直接采用最优化拟合时,每个点的噪声被同等对待,而取对数后,不同位置的噪声存在放大和缩小的效应,导致了这样的拟合误差。
图 1 直接最优化拟合
图 2取对数通过线性拟合
图 3线性拟合的最终拟合结果
- 最小二乘法拟合注意的问题
- 最小二乘法的线性拟合
- 圆的最小二乘法拟合
- 最小二乘法的多项式拟合代码
- 最小二乘法拟合
- 最小二乘法拟合
- 基于最小二乘法的平面拟合,背景去除
- 基于最小二乘法的C++二次抛物线拟合
- 最小二乘法的基本原理和多项式拟合
- 最小二乘法多项式拟合的Java实现
- 最小二乘法拟合方位角与径向速度的关系
- 最小二乘法直线拟合、圆拟合
- 李航《统计学习方法》多项式函数拟合问题--最小二乘法
- 最小二乘法拟合亚像素坐标时不准确问题查找
- 最小二乘法直线拟合
- 最小二乘法直线拟合
- 最小二乘法直线拟合
- 最小二乘法直线拟合
- VMware公布IT管理和安全云计算调查的主要研究结果
- 06-IO流(字符流-FileReader-读取方式一 1 2 07-IO流(字符流-两种读取方式 12
- [正则]改变URL中的参数值
- centos的软件安装方法rpm和yum
- 文件系统分区的概念
- 最小二乘法拟合注意的问题
- Apriori算法(关联算法)
- 测算Redis处理实际生产请求的QPS/TPS
- Linux网络编程一
- Java四种引用类型详解
- AS导包、封装依赖库流程
- PDO连接与操作数据库
- [知了堂学习笔记]_JS中的运算符
- 理解RESTful架构