1.多项式回归-matlab

实现多项式回归,李航《统计机器学习》关于偏导数的求解是错误的,使用正确的求导公式实现,并获得了期望的效果

%输入空间
X = [1;2;5;6;10];
a = size(X, 1);
b = size(X, 2);
%输出空间
Y = [1;10;2;9;1];
%假设空间以及模型选择
theta_1 = [0; 0];
theta_2 = [0; 0; 0; 0];
theta_3 = [0; 0; 0; 0; 0; 0];

%一。利用正规方程求解损失函数为平方损失函数的多项式回归
%1.选择假设空间theta_1
SNX = [X];
%添加X0默认为1,为了作为w0的输入
SNX = [ones(size(SNX, 1),1),SNX];
theta_1 = inv(transpose(SNX)*SNX)*transpose(SNX)*Y;
figure('NAME', '平方损失一阶');
plot(X,Y)
hold on
plot(X,SNX*theta_1)


%2.选择假设空间theta_2
SNX = [X, X.^2, X.^3];
%添加X0默认为1,为了作为w0的输入
SNX = [ones(size(SNX, 1),1),SNX];
theta_2 = inv(transpose(SNX)*SNX)*transpose(SNX)*Y;
figure('NAME', '平方损失三阶')
plot(X,Y)
hold on
plot(X,SNX*theta_2)


%3.选择假设空间theta_3
SNX = [X, X.^2, X.^3, X.^4, X.^5];
%添加X0默认为1,为了作为w0的输入
SNX = [ones(size(SNX, 1),1),SNX];
theta_3 = inv(transpose(SNX)*SNX)*transpose(SNX)*Y;
figure('NAME', '平方损失五阶')
plot(X,Y)
hold on
plot(X,SNX*theta_3)

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值