阿白数模笔记之最小二乘法(Least square method)

2023-10-22 10:50

本文主要是介绍阿白数模笔记之最小二乘法(Least square method),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

简介

参数矩阵的解

MATLAB代码详解

①样本维度为1

 ②样本维度为2

③样本维度大于2

简介

        记录有m*n(m个样本,n个维度)的实测数据X,对应1*n的实际值Y,若要进行线性拟合,即找到1*n的参数矩阵\theta使得X\theta =Y

参数矩阵的解

       参数矩阵\theta满足 y_i=\theta_1 x_{i1}+\theta_2x_{i2}+...+\theta_{n}x_{in}。从数据角度思考:①补充常数项更加合理,线性拟合效果更好即参数矩阵为1*(n+1)型,方程满足y_i=\theta_0+\theta_1 x_{i1}+\theta_2x_{i2}+...+\theta_{n}x_{in}

将实测数据改为m*(n+1)型第一列全为1,仍然有矩阵方程X\theta =Y。②矩阵方程有解的充要条件是Y\epsilon span(X),即X的张子空间。实际应用中未必有解,因此寻求近似最优解,引入最小二乘法。

f(\theta )=(X\theta-Y )^T(X\theta-Y)=\theta^TX^TX\theta-\theta^TX^TY-Y^TX\theta+Y^TY,对\theta求偏导,得2X^TX\theta-2X^TY=0,解得\theta =(X^TX)^{-1}X^TY。(这里仍然有X^TX是否奇异的问题,奇异时即X样本变量之间存在近似线性相关关系(复共线性)有其他方法解决,作者之后的文章会涉及,此处以X^TX为非奇异矩阵)。

MATLAB代码详解

①样本维度为1

先判定Y与X线性相关性。

load('population.mat')
x=p(:,2);y=p(:,5);
co=corrcoef([x,y])
plot(x,y);
legend('raw data','location','northwest')
co =1.0000    0.99250.9925    1.0000

 计算参数矩阵并绘制图形

x1=[ones(size(x)),x];
theta=(x1'*x1)^(-1)*x1'*y
xdata=[min(x),max(x)];
ydata=xdata*theta(2)+theta(1);
hold on
plot(xdata,ydata)
legend('raw data','least square methon','location','northwest')theta =1.0e+03 *-2.73942.8302

检验:figure界面的工具一栏有基本拟合选项,选取线性拟合即可发现所得曲线与上面绘制的重合

 ②样本维度为2

不再赘述,直接上代码

 

 

x1=p(:,4);x2=p(:,5);y=p(:,2);
heatmap({'x1','x2','y'},{'x1','x2','y'},corrcoef([x1,x2,y]),'Title','相关系数矩阵');
colormap('jet');
plot3(x1,x2,y,'LineWidth',2);grid on
x=[ones(size(x1)),x1,x2];
theta=(x'*x)^(-1)*x'*y
yfit=theta(1)+theta(2)*x1+theta(3)*x2;
hold on
plot3(x1,x2,yfit,'LineWidth',2)
legend('raw data','least square methon')theta =3.35180.00000.0002

③样本维度大于2

从②发现theta(2),theta(3)都接近0,这并不是因为相关系数低,而是数量级的差距,通过数据归一化可以解决这一问题。

 

 

heatmap(corrcoef(p),'Title','相关系数矩阵');
colormap('jet')
figure
%归一化最小二乘
h1=mapminmax(p(:,2)',0,1)';
x10=ones(size(p,1),1);
X1=[x10,mapminmax(p(:,[1,3,4,5])',0,1)'];
theta1=(X1'*X1)^(-1)*X1'*h1;
plot(theta1(2:5),'bo-','LineWidth',1,'MarkerEdgeColor','k','MarkerFaceColor','b')
hold on
%非归一化最小二乘
h=p(:,2);
x20=ones(size(p,1),1);
X2=[x20,p(:,[1,3,4,5])];
theta2=(X2'*X2)^(-1)*X2'*h;
plot(theta2(2:5),'r*-','LineWidth',1,'MarkerEdgeColor','r','MarkerFaceColor','r')
title('参数矩阵')
legend('归一化最小二乘','非归一化最小二乘','Location','northwest');grid on
set(gca,'ytick',-0.3:0.1:0.7)

这篇关于阿白数模笔记之最小二乘法(Least square method)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/260948

相关文章

poj 1258 Agri-Net(最小生成树模板代码)

感觉用这题来当模板更适合。 题意就是给你邻接矩阵求最小生成树啦。~ prim代码:效率很高。172k...0ms。 #include<stdio.h>#include<algorithm>using namespace std;const int MaxN = 101;const int INF = 0x3f3f3f3f;int g[MaxN][MaxN];int n

poj 1287 Networking(prim or kruscal最小生成树)

题意给你点与点间距离,求最小生成树。 注意点是,两点之间可能有不同的路,输入的时候选择最小的,和之前有道最短路WA的题目类似。 prim代码: #include<stdio.h>const int MaxN = 51;const int INF = 0x3f3f3f3f;int g[MaxN][MaxN];int P;int prim(){bool vis[MaxN];

poj 2349 Arctic Network uva 10369(prim or kruscal最小生成树)

题目很麻烦,因为不熟悉最小生成树的算法调试了好久。 感觉网上的题目解释都没说得很清楚,不适合新手。自己写一个。 题意:给你点的坐标,然后两点间可以有两种方式来通信:第一种是卫星通信,第二种是无线电通信。 卫星通信:任何两个有卫星频道的点间都可以直接建立连接,与点间的距离无关; 无线电通信:两个点之间的距离不能超过D,无线电收发器的功率越大,D越大,越昂贵。 计算无线电收发器D

poj 1734 (floyd求最小环并打印路径)

题意: 求图中的一个最小环,并打印路径。 解析: ans 保存最小环长度。 一直wa,最后终于找到原因,inf开太大爆掉了。。。 虽然0x3f3f3f3f用memset好用,但是还是有局限性。 代码: #include <iostream>#include <cstdio>#include <cstdlib>#include <algorithm>#incl

hdu 1102 uva 10397(最小生成树prim)

hdu 1102: 题意: 给一个邻接矩阵,给一些村庄间已经修的路,问最小生成树。 解析: 把已经修的路的权值改为0,套个prim()。 注意prim 最外层循坏为n-1。 代码: #include <iostream>#include <cstdio>#include <cstdlib>#include <algorithm>#include <cstri

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

poj 2175 最小费用最大流TLE

题意: 一条街上有n个大楼,坐标为xi,yi,bi个人在里面工作。 然后防空洞的坐标为pj,qj,可以容纳cj个人。 从大楼i中的人到防空洞j去避难所需的时间为 abs(xi - pi) + (yi - qi) + 1。 现在设计了一个避难计划,指定从大楼i到防空洞j避难的人数 eij。 判断如果按照原计划进行,所有人避难所用的时间总和是不是最小的。 若是,输出“OPETIMAL",若

poj 2135 有流量限制的最小费用最大流

题意: 农场里有n块地,其中约翰的家在1号地,二n号地有个很大的仓库。 农场有M条道路(双向),道路i连接着ai号地和bi号地,长度为ci。 约翰希望按照从家里出发,经过若干块地后到达仓库,然后再返回家中的顺序带朋友参观。 如果要求往返不能经过同一条路两次,求参观路线总长度的最小值。 解析: 如果只考虑去或者回的情况,问题只不过是无向图中两点之间的最短路问题。 但是现在要去要回

poj 3422 有流量限制的最小费用流 反用求最大 + 拆点

题意: 给一个n*n(50 * 50) 的数字迷宫,从左上点开始走,走到右下点。 每次只能往右移一格,或者往下移一格。 每个格子,第一次到达时可以获得格子对应的数字作为奖励,再次到达则没有奖励。 问走k次这个迷宫,最大能获得多少奖励。 解析: 拆点,拿样例来说明: 3 2 1 2 3 0 2 1 1 4 2 3*3的数字迷宫,走两次最大能获得多少奖励。 将每个点拆成两个