图解机器学习第二部分第四章——带约束条件的最小二乘学习法

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.2*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
t1=p\y; %t=(p'*p)\p' *y 这里简化了计算
F1=P*t1;

%添加约束条件
t2=(p*diag([ones(1,11) zeros(1,20)]))\y;%将部分空间约束
F2 = P*t2;

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,F1,'g-');
plot(X,F2,'r--');
plot(x,y,'bo');

legend('Ls','Subspace-Constrained Ls');


解释:
1、定义了 n 和 N 分别为节点的数量,分别为 5010002、使用 linspace 函数在范围 -33 之间生成 n 个节点,存储在 x 中。
3、计算 x 的每个元素与 π 的乘积,存储在 pix 中。
4、使用函数 sin(pix) ./ (pix) 计算每个 pix 元素的 sin(pix)/pix 的值,并添加噪声项 0.1 * x + 0.2 * randn(n, 1),得到目标值 y。
5、创建设计矩阵 p 和 P,其中 p 用于拟合训练数据,而 P 用于生成预测结果。
6p(:, 1)P(:, 1) 均为全 1 的列向量。
7、使用循环为每个奇数列索引 2*j 和对应的偶数列索引 2*j+1 填充 p 和 P,分别使用 sin 和 cos 函数对 x 和 X 进行变换。
8、使用最小二乘法计算参数向量 t1,其中 p \ y 等价于 (p' * p) \ p' * y,但采用了简化计算的形式。
9、使用约束条件对参数向量进行计算,其中 diag([ones(1,11) zeros(1,20)]) 生成一个对角矩阵,该矩阵前 11 个对角元素为 1,后面 20 个对角元素为 0,将其与 p 相乘并进行最小二乘计算,得到参数向量 t2。
10、分别使用参数向量 t1 和 t2 对输入 X 进行预测,得到结果向量 F1 和 F2。
11、创建一个图形窗口,并命名为 "figure(1)"。
12、使用 clf 清空当前图形窗口。
13、使用 hold on 保持图形窗口的当前图形,允许在其上绘制新的图形。
14、使用 axis 函数设置坐标轴的范围。
15、使用 plot 函数绘制预测结果 F1 和 F2,颜色分别为绿色实线和红色虚线。
16、使用 plot 函数绘制原始数据点 x 和 y,颜色为蓝色的圆点。
17、使用 legend 函数添加图例,分别为 "Ls" 和 "Subspace-Constrained Ls",对应两种拟合方式。

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在人工智能研究中,状态空间是一种基于解空间的问题表示和求解方。该方通过在可能的解空间内寻找一个解来求解问题。状态空间以状态和算符为基础来表示和求解问题。在传统人工智能问题中,复杂的求解技术都离不开表示与搜索这两个方面的内容,其中状态空间表示是其中的一个重要概念。状态空间采用试探搜索方,在某个可能的解空间内寻找一个解来求解问题。图解人工智能第二学习笔记中可能会涉及到状态空间的概念和问题状态描述。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [人工智能及其应用——第二学习笔记(上)](https://blog.csdn.net/JallinRicher/article/details/122752897)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [《人工智能及其应用》课程笔记(二)第2章 知识表示方](https://blog.csdn.net/qq_46485137/article/details/122101559)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值