最小二乘法曲线拟合原理与实现
参考文章http://blog.csdn.net/jairuschan/article/details/7517773
最小二乘学习法是对模型的输出和训练集输出的平方误差为最小时的参数进行学习,式中之所以加上系数1/2,是为了约去对进行微分时得到的2。
“LS”是Least Squares的首字母。平方误差是残差的范数,因此最小二乘学习法有时也称为损失最小化学习法。
如果使用线性模型
的话,训练样本的平方差就能够表示为如下形式。
在这里,是训练输出的n维向量,是下式中定义的n*b阶矩阵,也称为设计矩阵
训练样本的平方差的参数向量的偏微分以
这样的形式给出。如果将其微分设置为0,最小二乘解就满足关系式
这个方程式的解使用设计矩阵的广义逆矩阵来进行计算,可以得出。
相对于只有方阵、非奇异矩阵才能定义逆矩阵,如果存在逆矩阵,可以使用如下公式计算。
广义逆矩阵则是矩形矩阵或奇异矩阵都可以定义,是对逆矩阵的推广。有逆矩阵的时候,广义逆矩阵可以用下式表示
接下来谈谈这个线性函数,在上式中,是基函数向量的第i个因子,是参数向量的第i个因子。另外,b是基函数的个数。
对与曲线的拟合,我们通常把基函数变为多项式的形式或者变为b=2m+1的三角多项式形式
对于基函数是多项式,设计矩阵是
matlab程序代码拟合如下所示
clear ;
%在[-3*pi,3*pi]生成50个数据点 sin(x)/x
n = 50 ;
x = linspace(-3,3,n)' ;
pix = pi * x ;
y = sin(pix) ./ (pix) + 0.1 * x + 0.05 * randn(n,1) ;%保存系数矩阵
p(:,1) = ones(n,1) ;
%默认15个参数
for j = 1 : 15p(:,j+1) = x .^ j ;
end%求出参数
t = p \ y ;%曲线拟合,生成100个数据点
N = 100 ;
X = linspace(-3,3,N)' ;
%生成y坐标
P(:,1) = ones(N,1) ;
for j = 1 : 15 P(:,j+1) = X .^ j ;
end
F = P * t ;%生成图像
hold on ;
axis([-2.8 2.8 -0.5 1.2]) ;
plot(X,F,'g-') ;
plot(x,y,'bo') ;
生成的图像如图所示
对于基函数是三角多项式,设计矩阵是
matlab程序代码拟合如下所示
clear ;
n = 50 ;
N = 100 ;
x = linspace(-3,3,n)' ;
X = linspace(-3,3,N)' ;
pix = pi * x ;
y = sin(pix) ./ (pix) + 0.1 * x + 0.05 * randn(n,1) ;p(:,1) = ones(n,1) ;
P(:,1) = ones(N,1) ;for j = 1 : 15p(:,2*j) = sin(j*x) ;p(:,2*j+1) = cos(j*x) ;P(:,2*j) = sin(j*X) ;P(:,2*j+1) = cos(j*X) ;
endt = p\y ;
F = P * t ;figure(1) ; clf ; hold on ; axis([-2.8 2.8 -0.5 1.2]) ;
plot(X,F,'g-') ;
plot(x,y,'bo') ;
生成的图像如图所示
最小二乘法曲线拟合原理与实现相关推荐
- 计算机hash函数开题报告,最小二乘法的原理和应用【开题报告+文献综述+毕业论文】.Doc...
PAGE PAGE 4 毕业论文开题报告 数学与应用数学 最小二乘法的原理和应用 选题的意义 最小二乘法在很多领域都的到了广泛的应用.在研究两个变量之间的关系时,可以用回归分析的方法进行分析.当确定了 ...
- 最小二乘法的原理及python实现
在看RVFL神经网络的时候,在权值更新求解时,从隐含层到输出层的权重,是根据最小二乘法的原理更新求解的. 最小二乘法Least Square Method: 假设有一系列数据值,D = {(x1,y2 ...
- matlab polyfit c语言,算法——纯C语言最小二乘法曲线拟合
算法--纯C语言最小二乘法曲线拟合 [复制链接] 写完,还没来得及写注释,已通过Matlab的polyfit验证(阶数高或者数据量太大会有double数据溢出的危险,低阶的都吻合),时间有点紧,程序注 ...
- 最小二乘法的原理与计算
https://www.cnblogs.com/xunziji/p/7366580.html 最小二乘法的应用例子 如果某个资产在买入后,第 2-100 天内的收益变化如下图所示: 这时,我想要获得 ...
- 多项式最小二乘法曲线拟合Python程序
#多项式最小二乘法曲线拟合 from numpy import * from numpy.linalg import * X = [1, 3, 4, 5, 6, 7, 8, 9, 10] Y = [2 ...
- 关系模式最小依赖集怎么求_偏最小二乘法的原理与实现
偏最小二乘法的原理与实现 近几年来,机器学习在各个领域都有不错的表现,在生物信息领域也有相关的应用.然而,在诸如基因组学.转录组学.蛋白组学以及代谢组学等高通量数据的一大特点是特征量多.样本数少. 以 ...
- c语言平曲线,算法——纯C语言最小二乘法曲线拟合
算法--纯C语言最小二乘法曲线拟合 写完,还没来得及写注释,已通过Matlab的polyfit验证(阶数高或者数据量太大会有double数据溢出的危险,低阶的都吻合),时间有点紧,程序注释,数学推导等 ...
- 最小二乘法的原理及推导
最小二乘法法原理及推导 说明:本文是在学习最小二乘法时在博文中转发的,将其转发是为了日后便于查看.更为清晰的过程 详见本文出处 [本文出处](https://blog.csdn.net/marsjoh ...
- 最小二乘法曲线拟合 java_最小二乘法拟合java实现源程序(转)
因为我所在的项目要用到最小二乘法拟合,所有我抽时间将C++实现的程序改为JAVA实现,现在贴出来,供大家参考使用. /** * 函数功能:最小二乘法曲线拟合 * @param x 实型一维数组,长度为 ...
最新文章
- 惊呆了,Spring中竟然有12种定义bean的方法
- Python继承外另一种重用方式——组合
- c语言多关卡推箱子程序,多关卡地图推箱子游戏
- 如何异步的处理restful服务(基础)
- 移动端去除横向滚动条
- hbase 单机连接hadoop_Hadoop、Hbase单机环境安装
- Spring mvc中@RequestMapping 6个基本用法小结
- [CUDA OpenCV]GPU加速的计算机视觉学习资源下载
- AOJ 1312 Where's Wally 题解《挑战程序设计竞赛》
- [C# 线程处理系列]专题四:线程同步
- 【IMX6ULL笔记】--内核底层驱动初步探究
- 一图学会配置微信云端店员监控收款回调
- 伦敦金行情走势k线图
- 再见2018 你好2019
- Shiro入门以及Shiro与web整合
- Lattice:1、MachXO系列CPLD器件专业名词(缩略语及器件介绍)
- 大数定理、正态分布、中心极限定理
- 守护云原生安全,青藤让浙江移动“心里更有底”
- 洛谷 P1610 鸿山洞的灯
- 三子棋(五子棋,多子棋)的实现:c语言