多变量线性回归 matlab

%multivariate_linear_regression

data=load('data.txt');
x=data(:,1:2);
y=data(:,3);
m=length(x(:,1));
x=[ones(m,1),x];
sigma=std(x);
mu=mean(x);
x(:,2)=(x(:,2)-mu(2))./sigma(2);
x(:,3)=(x(:,3)-mu(3))./sigma(3);
theta=zeros(size(x(1,:)))';
alpha=0.18;
j=zeros(50,1);%迭代次数
for num=1:50
    j(num)=(x*theta-y)'*(x*theta-y)/(m*2);
    theta=theta-((x*theta-y)'*x)'*alpha/m/2;
end
%代价函数绘制
subplot(2,1,1)
plot(0:49,j(1:50),'g-')
xlabel('number of interations')
ylabel('cost j')
%预测
subplot(2,1,2)
realx=[1,4.1,3.04];
tempx=realx;
realx(2)=(realx(2)-mu(2))./sigma(2);
realx(3)=(realx(3)-mu(3))./sigma(3);
pre_y=realx*theta
stem3(data(:,1),data(:,2),data(:,3),'fill','b-.*');
hold on
stem3(tempx(2),tempx(3),pre_y,'filled','r-')

  运行结果:

 

转载于:https://www.cnblogs.com/wander-clouds/p/8831563.html

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值