吴恩达的机器学习-RegularizedLinearRegression

clc
clear all
close all

rate=0.002;
qp=zeros(3,3);
data = load('RegularizedData.txt');
plot(data(:,1),data(:,2),'*');
trainData = data(1:10, 1);  
Price= data(1:10, 2);  
trainData =[ones(size(trainData,1),1) trainData diag(trainData*trainData') diag(diag(trainData*trainData')*trainData') diag(diag(diag(trainData*trainData')*trainData')*trainData')]
q=[1;1;1;1;1];

h=(q'*trainData')';

for i=1:100000
    q=q-(rate/10)*((h-Price)'*trainData)';
    h=(q'*trainData')';
    df=((h-Price)'*trainData)';
    if abs(max(df))<0.00000001
        break;
    end
end
hold on
(q'*trainData')'-Price

x = linspace (0,1.1);    %区间用小括号表示
F=q(5)*x.^4+q(4)*x.^3+q(3)*x.^2+q(2)*x+q(1);

plot(x,F);

%%进行正则化后的
l=60;
q2=[1;1;1;1;1];

h=(q2'*trainData')';

for i=1:100000
    q2=q2-(rate/10)*((h-Price)'*trainData)';
    q2(2:5)=q2(2:5)*(1-rate*(l/10));
    h=(q2'*trainData')';
    df=((h-Price)'*trainData)';
    if abs(max(df))<0.00000001
        break;
    end
end
(q2'*trainData')'-Price

x = linspace (0,1.1);    %区间用小括号表示
F=q2(5)*x.^4+q2(4)*x.^3+q2(3)*x.^2+q2(2)*x+q2(1);

plot(x,F,'b');

当正则参数l取为100时的图像如蓝色曲线:1

1

当l等于0.1时如图所示

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值