【第3周:逻辑回归】

逻辑回归

引入

  1. 为什么不用线性回归的方法来预测分类问题?

     其预测结果会超出0和1这个范围。
    
  2. 为什么不用线性回归的代价函数作为解决分类问题的代价函数?

     其得到的代价函数是一个非凸函数,有多个局部最优值。
    

假设函数及其梯度下降

在这里插入图片描述
除了梯度下降算法以外,还有一些常被用来令代价函数最小的算法,这些算法更加复杂和优越,而且通常不需要人工选择学习率,通常比梯度下降算法要更加快速。这些算法有:共轭梯度法,局部优化法(BFGS)和有限内存局部优化法(LBFGS) 。

多分类问题

模型简记为:
在这里插入图片描述在我们需要做预测时,我们将所有的分类机都运行一遍,然后对每一个输入变量,最后选择最高可能性的输出变量。

正则化

过拟合:过于强调拟合原始数据,而丢失了算法的本质:预测新数据。其过拟合模型预测结果具有高方差问题。

  1. 丢弃一些不能帮助我们正确预测的特征。可以是手工选择保留哪些特征,或者使用一些模型选择的算法来帮忙(例如 PCA)。
  2. 正则化。 保留所有的特征,但是减少参数的大小。

带正则化的线性回归

在这里插入图片描述
当λ过大,会得到只含有theta0的假设函数。

带正则化的逻辑回归

在这里插入图片描述

ex2部分核心代码

sigmoid函数

function g = sigmoid(z)
g = zeros(size(z));
g=1./(1+exp(-z));
end

判定输出0和1

function p = predict(theta, X)
m = size(X, 1); % Number of training examples   m=100
p = zeros(m, 1);
G=sigmoid(X*theta);
for i=1:m
   if G(i)<0.5
    p(i)=0;
   else
    p(i)=1;  
   end
end

逻辑回归代价函数

J=(-1/m)*(y'*log(sigmoid(X*theta))+(1-y)'*log(1-sigmoid(X*theta)));
grad=(1/m)*X'*(sigmoid(X*theta)-y);%%偏导

逻辑回归代价函数(带正则项)

theta1=[0;theta(2:end)];%%θ0不用正则化
J=(-1/m)*(y'*log(sigmoid(X*theta))+(1-y)'*log(1-sigmoid(X*theta)))+lambda/(2*m)*theta1'*theta1;
grad=(1/m)*X'*(sigmoid(X*theta)-y)+lambda/(m)*theta1;
  • 11
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值