吴恩达老师机器学习课程笔记 06 逻辑回归

6 逻辑回归

6.1 分类问题

在分类问题中,要预测的变量 y y y是离散的值。

二分类问题

对于要预测的变量可能属于的两个类,将这两个类分别称为负类和正类,负类用0表示,正类用1表示。两个类哪个是正类或负类是任意的,但往往用负类表示没有某样东西,用正类表示有某样东西。

多分类问题

对于要预测的变量可能属于的多个类, y y y可以从 0 , 1 , 2 , 3... {0,1,2,3...} 0,1,2,3...中选择。

在后续讨论中先研究二分类问题。

逻辑回归算法

逻辑回归算法的特点是输出值永远介于0到1之间。
虽然逻辑回归算法的名字中出现了“回归”,但逻辑回归算法是一种分类算法,它适用于标签为离散0或1的情况。

总结

二分类问题就是要预测的变量可能属于的两个类,多分类问题就是要预测的变量可能属于的多个类,从 0 , 1 , 2 , 3... {0,1,2,3...} 0,1,2,3...中选择。

逻辑回归算法是输出值永远介于0到1之间的分类算法。

6.2 假设函数

sigmoid函数(logistics函数)

g ( z ) = 1 1 + e − z g(z)=\frac{1}{1+e^{-z}} g(z)=1+ez1被称为sigmoid函数或logistics函数,逻辑回归的名字就是来源于此。

逻辑回归模型

线性回归中,假设函数的形式为: h θ ( x ) = θ T x h_{\theta}(x)=\theta^Tx hθ(x)=θTx,而在逻辑回归的假设函数的形式为: h θ ( x ) = g ( θ T x ) = 1 1 + e − θ T x h_{\theta}(x)=g(\theta^Tx)=\frac{1}{1+e^{-\theta^Tx}} hθ(x)=g(θTx)=1+eθTx1

模型解释

假设函数 h θ ( x ) h_{\theta}(x) hθ(x)输出的意义是对于一个 x x x y = 1 y=1 y=1的概率估计,即 h θ ( x ) = P ( y = 1 ∣ x ; θ ) h_{\theta}(x)=P(y=1\mid x;\theta) hθ(x)=P(y=1x;θ)。同时 P ( y = 0 ∣ x ; θ ) = 1 − P ( y = 1 ∣ x ; θ ) P(y=0 \mid x ; \theta)=1-P(y=1 \mid x ; \theta) P(y=0x;θ)=1P(y=1x;θ)

总结

逻辑回归的假设函数的形式为: h θ ( x ) = g ( θ T x ) = 1 1 + e − θ T x h_{\theta}(x)=g(\theta^Tx)=\frac{1}{1+e^{-\theta^Tx}} hθ(x)=g(θTx)=1+eθTx1

函数 h θ ( x ) h_{\theta}(x) hθ(x)输出的意义是 y = 1 y=1 y=1的概率。

6.3 决策边界

根据假设函数输出值的含义,因此要想预测 y y y的值是0还是1,可以令当 h θ ( x ) ≥ 0.5 h_{\theta}(x)\ge0.5 hθ(x)0.5时,预测 y = 1 y=1 y=1,当 h θ ( x ) < 0.5 h_{\theta}(x)<0.5 hθ(x)<0.5时,预测 y = 0 y=0 y=0

而根据sigmoid函数曲线图可以看出, z = 0 z=0 z=0 g ( z ) = 0.5 g(z)=0.5 g(z)=0.5 z > 0 z>0 z>0 g ( z ) > 0.5 g(z)>0.5 g(z)>0.5 z < 0 z<0 z<0 g ( z ) < 0.5 g(z)<0.5 g(z)<0.5

又因为 z = θ T x z=\theta^{T}x z=θTx,所以 θ T x ≥ 0 \theta^{T} x\ge0 θTx0时,预测 y = 1 y=1 y=1 θ T x < 0 \theta^{T} x<0 θTx<0时,预测 y = 0 y=0 y=0

θ T x = 0 \theta^{T}x=0 θTx=0的这条线将平面(空间)分为了两个部分,其中一部分预测 y = 1 y=1 y=1,另一部分预测 y = 0 y=0 y=0,这条线就是决策边界。

需要说明的是决策边界不是训练集的属性,而是假设函数本身及其参数的属性。不是用训练集来定义决策边界,而是用训练集来拟合参数。

总结

θ T x = 0 \theta^{T}x=0 θTx=0的这条线就是决策边界。

6.4 代价函数

代价函数

如果在逻辑回归中继续使用线性回归的代价函数,则会使得代价函数是参数 θ \theta θ的非凸函数。(因为 h ( x ) h(x) h(x)是非线性的sigmoid函数。)所以将梯度下降法用在这样的函数上,不能保证收敛到全局最小值。

重新定义逻辑回归的代价函数为: J ( θ ) = 1 m ∑ i = 1 m Cost ⁡ ( h θ ( x ( i ) ) , y ( i ) ) J(\theta)=\frac{1}{m} \sum_{i=1}^{m} \operatorname{Cost}\left(h_{\theta}\left(x^{(i)}\right), y^{(i)}\right) J(θ)=m1i=1mCost(hθ(x(i)),y(i)),其中
Cost ⁡ ( h θ ( x ) , y ) = { − log ⁡ ( h θ ( x ) )  if  y = 1 − log ⁡ ( 1 − h θ ( x ) )  if  y = 0 \operatorname{Cost}\left(h_{\theta}(x), y\right)=\left\{\begin{aligned} -\log \left(h_{\theta}(x)\right) & \text { if } y=1 \\ -\log \left(1-h_{\theta}(x)\right) & \text { if } y=0 \end{aligned}\right. Cost(hθ(x),y)={log(hθ(x))log(1hθ(x)) if y=1 if y=0
这样的代价函数是凸函数。

总结

为了使代价函数是凸函数,本节重新构造了逻辑回归的损失函数。

6.5 简化的代价函数和梯度下降

简化的代价函数

可以将代价函数的两个分表达式合并为: Cost ⁡ ( h θ ( x ) , y ) = − y × log ⁡ ( h θ ( x ) ) − ( 1 − y ) × log ⁡ ( 1 − h θ ( x ) ) \operatorname{Cost}\left(h_{\theta}(x), y\right)=-y \times \log \left(h_{\theta}(x)\right)-(1-y) \times \log \left(1-h_{\theta}(x)\right) Cost(hθ(x),y)=y×log(hθ(x))(1y)×log(1hθ(x))
J ( θ ) = 1 m ∑ i = 1 m Cost ⁡ ( h θ ( x ( i ) ) , y ( i ) ) = − 1 m ∑ i = 1 m [ y ( i ) log ⁡ ( h θ ( x ( i ) ) ) + ( 1 − y ( i ) ) log ⁡ ( 1 − h θ ( x ( i ) ) ) ] J(\theta)=\frac{1}{m} \sum_{i=1}^{m} \operatorname{Cost}\left(h_{\theta}\left(x^{(i)}\right), y^{(i)}\right)=-\frac{1}{m} \sum_{i=1}^{m}\left[y^{(i)} \log \left(h_{\theta}\left(x^{(i)}\right)\right)+\left(1-y^{(i)}\right) \log \left(1-h_{\theta}\left(x^{(i)}\right)\right)\right] J(θ)=m1i=1mCost(hθ(x(i)),y(i))=m1i=1m[y(i)log(hθ(x(i)))+(1y(i))log(1hθ(x(i)))]

梯度下降

对逻辑回归的代价函数使用梯度下降法每次的更新过程为: θ j : = θ j − α 1 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) x j ( i ) \theta_{j}:=\theta_{j}-\alpha \frac{1}{m} \sum_{i=1}^{m}\left(h_{\theta}\left(x^{(i)}\right)-y^{(i)}\right) x_{j}^{(i)} θj:=θjαm1i=1m(hθ(x(i))y(i))xj(i)

和线性回归类似,在对逻辑回归的代价函数使用梯度下降法时,采用特征缩放的方法,使得梯度下降收敛得更快。

总结

逻辑回归的代价函数为 J ( θ ) = 1 m ∑ i = 1 m Cost ⁡ ( h θ ( x ( i ) ) , y ( i ) ) = − 1 m ∑ i = 1 m [ y ( i ) log ⁡ ( h θ ( x ( i ) ) ) + ( 1 − y ( i ) ) log ⁡ ( 1 − h θ ( x ( i ) ) ) ] J(\theta)=\frac{1}{m} \sum_{i=1}^{m} \operatorname{Cost}\left(h_{\theta}\left(x^{(i)}\right), y^{(i)}\right)=-\frac{1}{m} \sum_{i=1}^{m}\left[y^{(i)} \log \left(h_{\theta}\left(x^{(i)}\right)\right)+\left(1-y^{(i)}\right) \log \left(1-h_{\theta}\left(x^{(i)}\right)\right)\right] J(θ)=m1i=1mCost(hθ(x(i)),y(i))=m1i=1m[y(i)log(hθ(x(i)))+(1y(i))log(1hθ(x(i)))],梯度下降法的更新过程为 θ j : = θ j − α 1 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) x j ( i ) \theta_{j}:=\theta_{j}-\alpha \frac{1}{m} \sum_{i=1}^{m}\left(h_{\theta}\left(x^{(i)}\right)-y^{(i)}\right) x_{j}^{(i)} θj:=θjαm1i=1m(hθ(x(i))y(i))xj(i)

6.6 高级优化

除了梯度下降法之外,还有一些优化代价函数的高级方法,如共轭梯度法BFGS(变尺度法)和L-BFGS(限制变尺度法)。

6.7 多类别分类:一对多

多分类问题

比如可能想要区分哪些天是晴天、多云、雨天、或者下雪天,这就是多分类问题。

一对多

已知如何利用逻辑回归的方法解决二分类问题,利用“一对多”的原理,可以将这种方法用于多分类的问题上,把多分类问题转化为若干个独立的二分类问题。

首先将多个类中的一个类标标记为正向类( 𝑦 = 1 𝑦=1 y=1),然后将其他所有类都标记为负向类,并使用逻辑回归的方法得到模型 h θ ( i ) ( x ) h_{\theta}^{(i)}(x) hθ(i)(x)。然后同理对其他所有类别进行相同的处理,可以得到一系列的模型。最后,当需要做预测时,将所有的分类器都运行一遍,然后对每一个输入变量, 都选择最高可能性的输出变量。

总结

可以用“一对多”的原理解决多分类问题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值