当前位置: 首页 > news >正文

自助餐团购网站建设长沙软件开发培训机构

自助餐团购网站建设,长沙软件开发培训机构,网图素材库,网站响应式首页模板关于回归和拟合,从它们的求解过程以及结果来看,两者似乎没有太大差别,事实也的确如此。从本质上说,回归属于数理统计问题,研究解释变量与响应变量之间的关系以及相关性等问题。而拟合是把平面的一系列点,用…

关于回归和拟合,从它们的求解过程以及结果来看,两者似乎没有太大差别,事实也的确如此。从本质上说,回归属于数理统计问题,研究解释变量与响应变量之间的关系以及相关性等问题。而拟合是把平面的一系列点,用一条光滑曲线连接起来,并且让更多的点在曲线上或曲线附近。更确切的说,拟合是回归用到的一种数学方法,而拟合与回归的应用场合不同。

拟合常用的方法有最小二乘法梯度下降法高斯牛顿(即迭代最小二乘)列-马算法。其中最最常用的就是最小二乘法。并且拟合可以分为线性拟合与非线性拟合,非线性拟合比较常用的是多项式拟合。根据自变量的个数,拟合也可以分为曲线拟合与曲面拟合等。

回归大多数采用最小二乘法。回归可以分为一元线性回归、一元非线性回归、多元线性回归、多元非线性回归等。

1、最小二乘法


无论是在高等数学、线性代数,还是数理统计,我们都可以看到最小二乘法的身影。只不过每一部分侧重点不同,最终是殊途同归的。但是建议用矩阵的方法来做,这样很便于理解,计算起来也很方便。

最小二乘法的基本思路是:确定函数f(x),使得各个点x1,x2..xn处的函数值偏差f(x1)-y1、f(x2)-y2...f(xn)-yn的平方和或绝对值和最小。如果是一元线性拟合(回归),我们可以设方程为f(x)=kx+b。

这时我们求得函数值偏差平方和为f=\sum [y_i -(kx_i+b)]^2。为了求它的最小值,利用高数的方法,就可以使M分别对k和b的偏导为0,最终求解得方程组:

公式1\frac{\mathrm{d}f }{\mathrm{d} k} = -2\sum (y_i - kx_i-b)x_i = -2(\sum y_ix_i-k\sum x_{i}^{2}-b\sum x_i) = 0

公式2 :\frac{\mathrm{d}f }{\mathrm{d} b} = -2\sum (y_i - kx_i-b) = -2(\sum y_i-k\sum x_{i}-b\sum ) = -2(\sum y_i-k\sum x_{i}-Nb ) = 0

由式2括号内为0,则有b的表达式

公式3 b = \frac{\sum y_i}{N} - k \frac{\sum x_i}{N } = \overline{y} - k\overline{x}

将式(3)代入到式(2)中得到式(4)

公式4 \sum y_ix_i - k\sum x_{i}^{2} - (\overline{y} - k\overline{x})\sum x_i = 0

整理式(4)我们可以得到k的表达式

公式5 k = \frac{\sum y_ix_i - \overline{y}\sum x_i}{\sum x_{i}^{2}-\overline{x}\sum x_i} = \frac{\sum y_ix_i - N\overline{x}\overline{y}}{\sum x_{i}^{2}-N\overline{x}^2}

如果用线性代数的角度来看其实矩阵表达更加简洁,我们最终需要寻找最佳的k和b :

公式6 \left\{\begin{matrix} y_1 = kx_1+b & & & & \\ y_2 = kx_2+b & & & & \\ . & & & & \\ . & & & & \\ y_N = kx_N+b & & & & \end{matrix}\right.

写成矩阵的形式:

公式7 \begin{bmatrix} y_1\\ y_2\\ .\\ .\\ y_N\\ \end{bmatrix} = \begin{bmatrix} x_1 & 1 \\ x_2&1 \\ .&. \\ . &.\\ x_N & 1\\ \end{bmatrix}\begin{bmatrix} k\\ b\\ \end{bmatrix}

令 Y =\begin{bmatrix} y_1\\ y_2\\ .\\ .\\ y_N\\ \end{bmatrix}K=\begin{bmatrix} k\\ b\\ \end{bmatrix}X=\begin{bmatrix} x_1 & 1 \\ x_2&1 \\ .&. \\ . &.\\ x_N & 1\\ \end{bmatrix}

我们可以写成矩阵形式:

公式8 Y= KX

我们要解K,这时候X如果是方阵那么自然的就可以左右两边同时乘X的逆,但是如果X不是方阵(行数大于列数),我们可以左右同乘以X的转置,转换为方阵再取逆(当然能取逆的前提是行列式不能为0),具体如下,求得的逆叫做伪逆:

公式9 Y= KX  =>  X^TY = X^TXK=> (X^TX)^{-1}X^TY = (X^TX)^{-1}X^TXK 

所以解得K的值:

公式10 K = (X^TX)^{-1}X^TY

2、matlab实现

现在有这么一组数据 

xy
0.11.7805
0.32.2285
0.42.3941
0.753.2226
0.93.5697

我们利用matlab进行绘制散点图查看一下

x=[0.1;0.3;0.4;0.75;0.9]; 
y=[1.7805;2.2285;2.3941;3.2226;3.5697];
plot(x,y,'o')
xlim([0,1]);
ylim([1.6,3.7]);
hold on;

可以看出满足很好的线性关系,下面我们用上述最小二乘法的思想求一下拟合直线的k 和b :

方法1:代数方法计算

N=length(x);
k=(sum(y.*x)-N*mean(y)*mean(x))/(sum(x.^2)-N*mean(x)^2);
b=mean(y)-k*mean(x);
x_line=linspace(0,1,101);
y_line=k*x_line+b;
plot(x_line,y_line,'Color','r','LineWidth',1)

 

查看k和b的值:

k=2.2411
b=1.5409

 方法2:矩阵计算

N=length(x);
X=[x,ones(N,1)];
Y=y;
K=inv(X'*X)*X'*Y;
k=K(1);
b=K(2);
x_line=linspace(0,1,101);
y_line=k*x_line+b;
plot(x_line,y_line,'Color','r','LineWidth',1)

查看k和b的值:

k=2.2411
b=1.5409

至此,我们可以看到两种方法的结果是一样的。

http://www.yayakq.cn/news/208174/

相关文章:

  • 简约风格的网站公司管理培训课程大全
  • 汕头网络推广seo方案哈尔滨网站优化排名
  • php网站开发参考文献环球资源网成立时间
  • 斗鱼企业网站建设的目的做网站过程
  • 北京做网站周云帆wordpress阿里云rds
  • 如何自己做购物网站公众号平台官网入口
  • 怎么做婚庆网站平台做网站需要的服务器
  • 外贸有哪些网站北京软件开发学校
  • 自己开发网站怎么开发网络规划设计师通常几月考
  • 建设部网站招标投标文件网页技术与网站开发分析报告
  • 网站更新文章首页不显示泰安建材网站建设电话
  • 大连网站平台研发用心做的网站
  • 无锡网站建设mkdns办公空间设计平面图
  • 网站开发 定制 多少 钱南宁企业网站
  • 备案期间怎么访问网站网页设计实训总结三百字
  • 做视频图片博客网站有哪些免费个人主页网站
  • 律师怎样做网站房产中介公司网站源码
  • 网站维护什么情况免费建网站入驻
  • 网站空间租用哪个好wordpress管理员怎么进入后台
  • 织梦技术网站模版成都有啥好玩的地方
  • 网站有几个后台10个不愁销路的小型加工厂
  • 天煜科技网站建设昆明网站seo服务
  • 电脑记事本做复杂网站wordpress.3.5
  • a8新媒体的案例宁波如何做抖音seo搜索优化
  • 多个招聘网站格式不一致如何做招聘记录ui设计的工作流程
  • 网站友链是什么情况电子商务网站建设规划方案论文
  • 有教做素食的网站吗wordpress媒体库图片路径
  • 什么网站做美式软装设计东营科技职业学院招生信息网官网
  • 如何建设外贸网站wordpress绿色版
  • 网站建设贵阳wordpress搭建学校网站