最小二乘学习法是对模型的输出

linest函数拟合二元一次函数 excel拟合二次函数曲线_多项式

和训练集输出

linest函数拟合二元一次函数 excel拟合二次函数曲线_基函数_02

的平方误差

linest函数拟合二元一次函数 excel拟合二次函数曲线_逆矩阵_03

为最小时的参数

linest函数拟合二元一次函数 excel拟合二次函数曲线_机器学习_04

进行学习,式中之所以加上系数1/2,是为了约去对

linest函数拟合二元一次函数 excel拟合二次函数曲线_逆矩阵_05

进行微分时得到的2。

linest函数拟合二元一次函数 excel拟合二次函数曲线_linest函数拟合二元一次函数_06

“LS”是Least Squares的首字母。平方误差

linest函数拟合二元一次函数 excel拟合二次函数曲线_基函数_07

是残差

linest函数拟合二元一次函数 excel拟合二次函数曲线_机器学习_08


linest函数拟合二元一次函数 excel拟合二次函数曲线_逆矩阵_09

范数,因此最小二乘学习法有时也称为

linest函数拟合二元一次函数 excel拟合二次函数曲线_linest函数拟合二元一次函数_10

损失最小化学习法。

如果使用线性模型

linest函数拟合二元一次函数 excel拟合二次函数曲线_多项式_11

的话,训练样本的平方差

linest函数拟合二元一次函数 excel拟合二次函数曲线_逆矩阵_05

就能够表示为如下形式。

linest函数拟合二元一次函数 excel拟合二次函数曲线_机器学习_13

在这里,

linest函数拟合二元一次函数 excel拟合二次函数曲线_linest函数拟合二元一次函数_14

是训练输出的n维向量,

linest函数拟合二元一次函数 excel拟合二次函数曲线_机器学习_15

是下式中定义的n*b阶矩阵,也称为设计矩阵

linest函数拟合二元一次函数 excel拟合二次函数曲线_机器学习_16

训练样本的平方差

linest函数拟合二元一次函数 excel拟合二次函数曲线_逆矩阵_05

的参数向量

linest函数拟合二元一次函数 excel拟合二次函数曲线_机器学习_04

的偏微分

linest函数拟合二元一次函数 excel拟合二次函数曲线_基函数_19


linest函数拟合二元一次函数 excel拟合二次函数曲线_多项式_20

这样的形式给出。如果将其微分设置为0,最小二乘解就满足关系式

linest函数拟合二元一次函数 excel拟合二次函数曲线_机器学习_21

这个方程式的解

linest函数拟合二元一次函数 excel拟合二次函数曲线_linest函数拟合二元一次函数_22

使用设计矩阵

linest函数拟合二元一次函数 excel拟合二次函数曲线_机器学习_15

的广义逆矩阵

linest函数拟合二元一次函数 excel拟合二次函数曲线_机器学习_24

来进行计算,可以得出

linest函数拟合二元一次函数 excel拟合二次函数曲线_linest函数拟合二元一次函数_25

。相对于只有方阵、非奇异矩阵才能定义逆矩阵,如果存在逆矩阵,

linest函数拟合二元一次函数 excel拟合二次函数曲线_linest函数拟合二元一次函数_22

可以使用如下公式计算

linest函数拟合二元一次函数 excel拟合二次函数曲线_机器学习_27


广义逆矩阵则是矩形矩阵或奇异矩阵都可以定义,是对逆矩阵的推广。

linest函数拟合二元一次函数 excel拟合二次函数曲线_linest函数拟合二元一次函数_28

有逆矩阵的时候,广义逆矩阵

linest函数拟合二元一次函数 excel拟合二次函数曲线_机器学习_24

可以用下式表示

linest函数拟合二元一次函数 excel拟合二次函数曲线_基函数_30

接下来谈谈这个线性函数

linest函数拟合二元一次函数 excel拟合二次函数曲线_多项式_11

,在上式中,

linest函数拟合二元一次函数 excel拟合二次函数曲线_机器学习_32

是基函数向量

linest函数拟合二元一次函数 excel拟合二次函数曲线_逆矩阵_33

的第i个因子,

linest函数拟合二元一次函数 excel拟合二次函数曲线_逆矩阵_34

是参数向量

linest函数拟合二元一次函数 excel拟合二次函数曲线_机器学习_35

的第i个因子。另外,b是基函数的个数。对与曲线的拟合,我们通常把基函数变为多项式的形式

linest函数拟合二元一次函数 excel拟合二次函数曲线_机器学习_36

或者变为b=2m+1的三角多项式形式

linest函数拟合二元一次函数 excel拟合二次函数曲线_逆矩阵_37

对于基函数是多项式,设计矩阵

linest函数拟合二元一次函数 excel拟合二次函数曲线_机器学习_15


linest函数拟合二元一次函数 excel拟合二次函数曲线_linest函数拟合二元一次函数_39

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 : 15
    p(:,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') ;

生成的图像如图所示

linest函数拟合二元一次函数 excel拟合二次函数曲线_基函数_40

对于基函数是三角多项式,设计矩阵

linest函数拟合二元一次函数 excel拟合二次函数曲线_机器学习_15


linest函数拟合二元一次函数 excel拟合二次函数曲线_基函数_42

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 : 15
    p(:,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) ;
end

t = 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') ;

生成的图像如图所示

linest函数拟合二元一次函数 excel拟合二次函数曲线_多项式_43