线性回归(定义域(-∞,+∞),值域(-∞,+∞),即输入输出连续)
线性回归/最小平方误差理论
回归分析中,只包括一个自变量和一个因变量,且二者的关系可用一条直线近似表示,这种回归分析称为一元线性回归分析。如果回归分析中包括两个或两个以上的自变量,且因变量和自变量之间是线性关系,则称为多元线性回归分析。
最小二乘法:拟合曲线和数据的误差平方和最小。
实验数据: yi=f(xi) (i=0,1…m)
线性无关函数族: ψ = span{ψ0(x),ψ1(x),…ψn(x)}
一般可取线性无关函数族:= span{1,x,…xn}
拟合曲线:S(x) = a0ψ0(x)+a0ψ0(x)+…anψn(x) (n<m)
加权公式:
式中:k=0,1,…n. 如若没给权,默认权=1
在线性回归模型中,输出一般是连续的,例如: y=f(x)=ax+b
实质是利用最小二乘法求系数。
MATLAB之线性回归/最小平方误差
% 功能:采用最小二乘法实现最小平方误差(least squares error)/线性回归
% 编辑者:Heart_sea
% 日期:2019,4,28
clear;
clc;
close all;
% ================= import data ==========================================
x = [1,2,3,4,5]';%x坐标
y = [4,4.5,6,8,8.5]';%y坐标
w = [1 1 1 1 1]';% 权,可以理解为在对应的点上重复观测的次数
% ================= 调用 matlab 函数求系数(不加权) =======================
% coef=polyfit(x,y,m); x, y为已知数据点向量, 分别表示横,纵坐标,
% m表示拟合多项式的次数,结果返回m次拟合多项式系数,从高次到低次存放
n = 1; %n次拟合
coef = polyfit(x,y,n);
ybest = polyval(coef,x); %调用MATLAB函数
% a0=coef(1); a1=coef(2);
% ybest=a0*x+a1; % 由线性回归产生的一阶方程式
% ======================== 源方法求系数(加权后) ============================
% 一般可取线性无关函数族:= span{
1,x,…xn}
% 这里是线性回归,可取线性函数作拟合曲线,S = a0+a1*x
% 取fai0 = 1, fai1 = x
X0=zeros(n+1,n+1);
Y0=zeros(n+1,1);
%构造矩阵X0
for k0=1:n+1 % 换列
for n0=1:n+1 % 换行
X0(n0,k0)=sum(w.*x.^(k0+n0-2));
end
end
%构造列矩阵y0
for n0 = 1:n+1
Y0(n0,1) = sum(w.*y.*x.^(n0-1));
end
% 矩阵相除求系数
a = X0\Y0;
ybest_w = a(1);
%根据求得的系数初始化并构造多项式方程 ybest_w = a(1)+a(2).*x
for ind = 1:n
ybest_w = ybest_w+a(ind+1)*x.^(ind);
end
% =========== figure =====================================================
plot(x,ybest_w,x,ybest,x,y,'o')
legend('加权后','加权前','原数据')
title('Linear regression estimate')
grid;
损失函数/代价函数求导法求线性回归
% 功能:利用损失函数求导,实现Linear_regression_algorithm 功能
% 编辑者:Heart_sea
% 日期:2019,5,6
clear; % 清除工作区
clc; % 清除命令区
close all; % 清除figure
% ======================= preferences set =================================
X = [1,2,3,4,5]';%x坐标
y = [4,4.5,6,8,8.5]';%y坐标
onesx =