山东大学机器学习(实验二解读)——逻辑回归和牛顿法

本文介绍了山东大学机器学习实验中关于逻辑回归和牛顿法的内容。在梯度下降法部分,实验展示了收敛次数、θ值及决策边界的计算,并给出了20分和80分学生不被录取的概率。而在牛顿法部分,同样讨论了θ值、L(θ)的减少、决策边界和不被录取概率。对比两种方法,发现牛顿法虽收敛速度快但计算复杂,而梯度下降法则计算简单但收敛较慢。
摘要由CSDN通过智能技术生成

1.梯度下降法

x = load('ex2x.dat');
y = load('ex2y.dat');
m = length(y);
xx = x;
mu = mean(x);
sigma = std(x);
x = (x - mean(x))./std(x); %数据标准化
x = [ones(m,1),x] ; xx = [ones(m,1),xx] ;
% find返回满足指定条件的行的索引
pos = find ( y == 1 ) ; neg = find ( y == 0 );
plot (xx( pos , 2 ),xx( pos , 3 ),'+'); 
hold on;
plot (xx( neg , 2 ),xx( neg , 3 ),'o');
xlabel('exam1 value');
ylabel('exam2 value');

MaxIter = 1500;
theta = zeros(size(x(1,:)))'; %初始化theta
e = 1e-6;
alpha = 0.08;
g = @(z) 1./(1+exp(-z)); %定义sigmoid函数
for i = 1:MaxIter
    z = x * theta;
    h = g(z); %逻辑回归模型
    L_theta(i,1) = -(1/m)*sum(y.*log(h)+(1-y).*log(1-h)); %极大对数似然函数
    delta_L = (1/m)*x'*(h-y); %计算梯度   
    %更新 L 和 theta
    if (i > 1) && (abs(L_theta(i,1) - L_theta(i-1,1)) <= e)
        break;
    end
    theta = theta - alpha*delta_L;
    store(i,:) = [theta',L_theta(i,1)];
end

%画出决策边界,因为数据是标准化后的,因此需要还原回去
x_axis = x(:,2)*sigma(1) + mu(1);
y_axis = (-theta(1,1).*x(:,1) - theta(2,1).*x(:,2))/theta(3,1);
y_axis = y_axis*sigma(2) + mu(2);
plot(x_axis, y_axis,'-');
figure;
plot(1:i-1,store,'-');
legend('\theta_0','\theta_1','\theta_2','L{(\theta)}');
xlabel('iter value');
ylabel('value');
  1. 假设 ϵ = 1 0 − 6 \epsilon = 10 ^ { - 6 } ϵ=106。实现收很慢敛需要多少次迭代?注意,梯度下降算法收敛速度,可能需要很长时间才能达到最小值。

答:610次

  1. 收敛后得到的 θ \theta θ值是多少?

θ 0 = −

  • 1
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值