吴恩达的机器学习-RegularizedLinearRegression

本文通过MATLAB代码详细展示了正则化技术在多项式回归模型中的应用过程,包括模型训练、参数更新及预测效果对比。通过调整正则参数l,观察其对模型复杂度和过拟合的影响,最终实现对数据拟合效果的优化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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时如图所示

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值