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时的图像如蓝色曲线:吴恩达的机器学习-RegularizedLinearRegression

吴恩达的机器学习-RegularizedLinearRegression

当l等于0.1时如图所示

 

吴恩达的机器学习-RegularizedLinearRegression

 

相关文章: