图解机器学习第二部分第三章——最小二乘学习法

在这里插入图片描述
加权最小二乘学习法公式推导:
在这里插入图片描述
在这里插入图片描述

n =50;%50 个节点
N=1000;%1000 个节点
x=linspace(-3,3,n)';%在 -3 到 3 上找 50 个节点
X=linspace(-3,3,N)';%在 -3 到 3 上找 1000 个节点
pix=pi*x;% π * x
y=sin(pix)./(pix)+0.1*x+0.05*randn(n,1)%通过函数f(x) 得到 y。
% 计算设计矩阵
p(:,1)=ones(n,1);
P(:,1)=ones(N,1);
for j=1:15
    p(:,2*j)=sin(j/2*x);
    p(:,2*j+1)=cos(j/2*x);
    P(:,2*j)=sin(j/2*X);
    P(:,2*j+1)=cos(j/2*X);
end


t=p\y; %这里原本公式应为 t=(p'*p)\p' *y 算是简化了计算。同时 p \ y 相当于矩阵 p 的逆 乘以 y。
F=P*t;
figure(1);
clf;
hold on;
axis([-2.8 2.8 -0.5 1.2]);% X 轴的范围是-2.8 ~ 2.8。Y 轴的范围是 -0.5 ~ 1.2
plot(X,F,'g-');
plot(x,y,'bo');


解释:

n 和 N 定义了节点的数量,分别是 501000。
x 和 X 使用 linspace 函数在 -33 之间均匀生成节点。
pix 是 pi 与 x 的乘积。
y 是通过将 sin(pix) 除以 pix 并加上一些噪声得到的目标函数的值。
p 和 P 是设计矩阵,其中 p 是基于 x 的设计矩阵,而 P 是基于 X 的设计矩阵。
for 循环用于构建设计矩阵,根据正弦和余弦函数的不同频率对 x 和 X 进行编码。
t 是通过最小二乘法求解得到的参数向量,使用反斜杠运算符 \ 表示求解线性方程组 p * t = y。
F 是使用参数向量 t 对输入 X 进行预测得到的函数值。
figure(1) 创建一个新的图形窗口。
clf 清空当前图形窗口。
hold on 命令用于保持图形窗口的当前图形,并在其上绘制新的图形。
axis 函数设置坐标轴的范围。
plot(X, F, 'g-') 绘制拟合曲线,颜色为绿色。
plot(x, y, 'bo') 绘制原始数据点,颜色为蓝色的圆点。
通过这段代码,最小二乘学习法被用于拟合一个函数,并将结果绘制在图形窗口中,以展示数据拟合效果。

实现结果:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值