Ridge Regression的MATLAB实现

xiaoxiao2021-02-28  35

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,:));
转载请注明原文地址: https://www.6miu.com/read-2629137.html

最新回复(0)