lasso 使用坐标下降算法实现(MATLAB)

本文通过使用正则化线性回归方法,对广告数据集进行特征标准化处理,并逐步调整正则化参数来观察其对残差平方和(RSS)的影响及回归系数的变化趋势。

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

clear
close all
data=csvread('E:\机器学习\Advertising.csv',1,1);
X=data(:,1:3);
X2=X(101:200,1:3);
X=X(1:100,:);
std1=std(X(:,1));
std2=std(X(:,2));
std3=std(X(:,3));
x1=(X(:,1)-mean(X(:,1)))/std1;
x2=(X(:,2)-mean(X(:,2)))/std2;
x3=(X(:,3)-mean(X(:,3)))/std3;
X1=[x1 x2 x3];
Y=data(:,4);
Y1=Y(1:100);
meanY=mean(Y1);
Y1=Y1-meanY;
Y2=Y(101:200);
BETA=[];
RSS_plot=[];
x1=(X2(:,1)-mean(X(:,1)))/std1;
    x2=(X2(:,2)-mean(X(:,2)))/std2;
    x3=(X2(:,3)-mean(X(:,3)))/std3;
    X2=[x1 x2 x3];
for lamda=0:0.002:3
    beta=inv(X1'*X1+lamda*eye(3))*X1'*Y1;
    BETA=[BETA beta];
    Y_hat=X2*beta;
    RSS=(Y2-meanY-Y_hat)'*(Y2-meanY-Y_hat)/99;
    RSS_plot=[RSS_plot RSS];
end
figure;
lamda=0:0.002:3;
plot(lamda,RSS_plot);
figure;
plot(lamda,BETA(1,:),lamda,BETA(2,:),lamda,BETA(3,:));
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值