【吴恩达机器学习】逻辑回归 Logistic Regression

逻辑回归(Logistic Regression)

对于分类问题(Classification problem),也就是预测的变量 y y y 是一个离散值(比如 y = { 0 , 1 } y=\{0, 1\} y={0,1}),可以使用**逻辑回归(Logistic Regression)**来处理。逻辑回归的假设函数满足: 0 ≤ h θ ( x ) ≤ 1 0\le h_\theta (x)\le 1 0hθ(x)1


假设函数(Hypothesis Representation)

h θ ( x ) = g ( θ T x ) g ( z ) = 1 1 + e − z }    h θ ( x ) = 1 1 + e − θ T x \left. \begin{matrix} h_\theta(x)=g(\theta^Tx)\\ g(z)=\frac{1}{1+e^{-z}} \end{matrix} \right\} \; h_\theta(x)=\frac{1}{1+e^{-\theta^Tx}} hθ(x)=g(θTx)g(z)=1+ez1}hθ(x)=1+eθTx1

  • g ( z ) g(z) g(z) 称作 (sigmoid函数/logistic函数),它的值域在 ( 0 , 1 ) (0,1) (0,1) 范围内,所以假设函数的值域也在 ( 0 , 1 ) (0,1) (0,1) 之间。下面是 g ( z ) g(z) g(z)的函数图像:

在这里插入图片描述

  • 假设函数 h θ ( x ) h_\theta(x) hθ(x) 表示的是对于输入 x x x,它的真实值 y y y 1 1 1 的概率估计。也可以表示为: h θ ( x ) = P ( y = 1 ∣ x ; θ ) h_\theta(x)=P(y=1|x;\theta) hθ(x)=P(y=1x;θ)

  • P ( y = 0 ∣ x ; θ ) + P ( y = 1 ∣ x ; θ ) = 1 P ( y = 0 ∣ x ; θ ) = 1 − P ( y = 1 ∣ x ; θ ) P(y=0|x;\theta)+P(y=1|x;\theta)=1\\ P(y=0|x;\theta)=1-P(y=1|x;\theta) P(y=0x;θ)+P(y=1x;θ)=1P(y=0x;θ)=1P(y=1x;θ)

  • 决策边界(Decision Boundary):给假设函数一个边界,边界两边的值分别是 0 0 0 1 1 1,通过这种方式输出离散值。比如我们以 h θ ( x ) = 0.5 h_\theta(x)=0.5 hθ(x)=0.5为界,也就是以 θ T X = 0 \theta^TX=0 θTX=0为边界,大于 0 0 0的值为 1 1 1,小于 0 0 0的值为 0 0 0


代价函数(Cost Function)

如果简单的套用线性回归的代价函数: J ( θ ) = 1 m ∑ i = 1 m 1 2 ( h θ ( x ( i ) ) − y ( i ) ) 2 J(\theta)=\frac{1}{m}\sum_{i=1}^m\frac{1}{2}(h_\theta(x^{(i)})-y^{(i)})^2 J(θ)=m1i=1m21(hθ(x(i))y(i))2,会发现 J ( θ ) J(\theta ) J(θ)不是一个凸函数(Non-convex),也就没法进行梯度下降。

逻辑回归的代价函数:
J ( θ ) = 1 m ∑ i = 1 m Cost ( h θ ( x ( i ) ) , y ( i ) ) J(\theta)=\frac{1}{m}\sum_{i=1}^{m}\text{Cost}(h_\theta(x^{(i)}),y^{(i)}) J(θ)=m1i=1mCost(hθ(x(i)),y(i))

Cost ( h θ ( x ) , y ) = { − log ⁡ ( h θ ( x ) ) y = 1 − log ⁡ ( 1 − h θ ( x ) ) y = 0 \text{Cost}(h_\theta(x),y)= \begin{cases} -\log(h_\theta(x))&& y=1\\ -\log(1-h_\theta(x))&& y=0 \end{cases} Cost(hθ(x),y)={log(hθ(x))log(1hθ(x))y=1y=0

关于 c o s t cost cost的意义,画一张图就很好理解:

在这里插入图片描述

代价函数的式子也可以写成下面这个更加紧凑的形式:
J ( θ ) = − 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}^my^{(i)}\log h_\theta(x^{(i)})+(1-y^{(i)})\log(1-h_\theta(x^{(i)})] J(θ)=m1[i=1my(i)loghθ(x(i))+(1y(i))log(1hθ(x(i))]
在这里梯度下降的意义也是让 J ( θ ) J(\theta) J(θ)最小化,代入梯度下降的一般算法并求导可得下面的形式:
r e p e a t    u n t i l    c o n v e r g e n c e    { θ j : = θ j − α 1 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) ∗ x j ( i ) } \begin{aligned} & repeat\;until\;convergence\;\{\\ & \qquad \theta_j:=\theta_j-\alpha\frac{1}{m}\sum_{i=1}^{m}(h_\theta(x^{(i)})-y^{(i)})*x_j^{(i)} \\ & \}\\ \end{aligned} repeatuntilconvergence{θj:=θjαm1i=1m(hθ(x(i))y(i))xj(i)}
这个式子跟线性回归的基本一样,但是期内不得代价函数并不相同。

另外逻辑回归为了更好的效率,也要进行特征缩放


高级优化

对于给定参数 θ \theta θ,如果我们能够求出:

  • J ( θ ) J(\theta) J(θ)
  • ∂ ∂ θ j J ( θ ) \frac{\partial}{\partial \theta_j}J(\theta) θjJ(θ)

我们有一下几个算法:

  • 梯度下降(Gradient descent)

  • 共轭梯度法(Conjugate gradient)

  • 变尺度法(BFGS)

  • 限制变尺度法(L-BFGS)

后三个算法比梯度下降更加优秀,它们既不需要手动调整参数$\alpha $,运行速度也比梯度下降快。它们唯一的缺陷就是太难了。


多元分类:一对多(Multi-class classification: One-vs-all)

多元分类处理的问题对象是预测值存在多个的情况: y = 1 , 2 , 3 , 4 , . . . y={1,2,3,4,...} y=1,2,3,4,...

如果有 n n n 个可能值,我们只需要进行对应的 n n n 次的逻辑回归即可。假设函数 h θ ( i ) ( x ) h_\theta^{(i)}(x) hθ(i)(x) 表示对于输入 x x x ,预测 y = i y=i y=i 的概率,并从中选一个最大的 i i i 作为最后的预测值。也就是 max i h θ ( i ) ( x ) \text{max}_ih_\theta^{(i)}(x) maxihθ(i)(x)


参考资料

[1].吴恩达机器学习 第七章-Logistic 回归

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值