【机器学习】课程笔记05_逻辑回归(Logistic Regression)

分类(Classification)

  • 线性回归: 解决分类问题,假设函数的输出值可能远大于1或远小于0,这是不合适的。
  • 逻辑回归: 虽然叫回归,但是分类算法,适用于标签 y y y离散的情况。

假设陈述(Hypothesis Representation)

  • 逻辑回归(Sigmoid function/logistic function): 该模型的输出变量范围始终在0和1之间。

h θ ( x ) = g ( θ T X ) g ( z ) = 1 1 + e − z h_\theta(x)=g(\theta^TX)\\ g(z)=\cfrac{1}{1+e^{-z}} hθ(x)=g(θTX)g(z)=1+ez1

  • g ( z ) g(z) g(z)的函数图像为:

  • h θ ( x ) h_\theta(x) hθ(x)的作用是: 对于给定的输入变量,根据选择的参数计算输出变量为1的可能性(estimated probablity)。

h θ ( x ) = P ( y = 1 ∣ x ; θ ) P ( y = 1 ∣ x ; θ ) + P ( y = 0 ∣ x ; θ ) = 1 h_\theta(x)=P(y=1|x;\theta)\\ P(y=1|x;\theta) + P(y=0|x;\theta)=1 hθ(x)=P(y=1x;θ)P(y=1x;θ)+P(y=0x;θ)=1

决策边界(Decision Boundary)

  • 决策边界:

    • 是假设函数的一个属性,取决于函数的参数,而不是数据集。
    • 将基础向量空间划分为 y = 1 y=1 y=1 y = 0 y=0 y=0两个集合。(即图中当 h θ ( x ) = 0.5 h_\theta(x)=0.5 hθ(x)=0.5时的那条线)
  • 例:

    决策边界: x 1 + x 2 = 3 x_1+x_2 = 3 x1+x2=3

    决策边界: x 1 2 + x 2 2 = 1 x_1^2+x_2^2=1 x12+x22=1

  • 随着阶数增加,我们可以用非常复杂的模型来适应非常复杂形状的决策边界。

代价函数(Cost Function)

  • 训练集(Training Set): { ( x ( 1 ) , y ( 1 ) ) , ( x ( 2 ) , y ( 2 ) ) , ⋯   , ( x ( m ) , y ( m ) ) } \lbrace(x^{(1)},y^{(1)}),(x^{(2)},y^{(2)}),\cdots,(x^{(m)},y^{(m)})\rbrace {(x(1),y(1)),(x(2),y(2)),,(x(m),y(m))}

  • m个训练样本(m examples): x ∈ [ x 0 x 1 ⋯ x n ] x 0 = 1 , y ∈ { 0 , 1 } x\in\begin{bmatrix}x_0\\x_1\\\cdots\\x_n \end{bmatrix} \quad x_0=1,y\in\lbrace0,1\rbrace xx0x1xnx0=1,y{0,1}

  • 假设函数(Hypothesis): h θ ( x ) = 1 1 + e − θ T x h_\theta(x)=\cfrac{1}{1+e^{-\theta^Tx}} hθ(x)=1+eθTx1

    • 对于该函数,如果使用线性回归的代价函数 ∑ ( h ( x ) − y ) 2 \sum(h(x)-y)^2 (h(x)y)2,将得到一个非凸函数,这样就不能使用梯度下降的方法求解全局最优解,所以需要另一个为凸函数的代价函数。

  • 单个样本代价函数(Cost Function):
    C o s t ( h θ ( x ) , y ) = { − l o g ( h θ ( x ) ) , i f   y = 1 − l o g ( 1 − h θ ( x ) ) , i f   y = 0 Cost(h_\theta(x),y)=\begin{cases}-log(h_\theta(x)), &if\ y=1\\-log(1-h_\theta(x)), &if\ y=0\end{cases} Cost(hθ(x),y)={log(hθ(x)),log(1hθ(x)),if y=1if y=0

    • 当实际 y = 1 y=1 y=1 h θ ( x ) = 1 h_\theta(x)=1 hθ(x)=1 时,误差为0,当 y = 1 y=1 y=1 h θ ( x ) ≠ 1 h_\theta(x) \neq 1 hθ(x)=1 时,误差随着 h θ ( x ) h_\theta(x) hθ(x) 的变小而加速变大;
    • 当实际 y = 0 y=0 y=0 h θ ( x ) = 0 h_\theta(x)=0 hθ(x)=0 时,误差为0,当 y = 0 y=0 y=0 h θ ( x ) ≠ 0 h_\theta(x) \neq 0 hθ(x)=0 时,误差随着 h θ ( x ) h_\theta(x) hθ(x) 的变大而加速变大;

简化代价函数与梯度下降(Simplified Cost Function and Gradient Descent)

  • 合并后的单个样本代价函数: C o s t ( h θ ( x ) , y ) = − y   l o g ( h θ ( x ) ) − ( 1 − y )   l o g ( 1 − h θ ( x ) ) Cost(h_\theta(x),y)=-y\ log(h_\theta(x))-(1-y)\ log(1-h_\theta(x)) Cost(hθ(x),y)=y log(hθ(x))(1y) log(1hθ(x))

  • 逻辑回归代价函数:

J ( θ ) = 1 m ∑ i = 1 m C o s t ( h θ ( x ( i ) ) , y ( i ) ) = − 1 m ∑ i = 1 m [ y ( i ) l o g h θ ( x ( i ) ) + ( 1 − y ( i ) ) l o g ( 1 − h θ ( x ( i ) ) ) ] \begin{aligned} J(\theta)&=\cfrac{1}{m}\displaystyle \sum^{m}_{i=1}Cost(h_\theta(x^{(i)}),y^{(i)}) \\ &=- \cfrac{1}{m}\displaystyle \sum^{m}_{i=1}[y^{(i)}logh_\theta(x^{(i)})+(1-y^{(i)})log(1-h_\theta(x^{(i)}))]\\ \end{aligned} J(θ)=m1i=1mCost(hθ(x(i)),y(i))=m1i=1m[y(i)loghθ(x(i))+(1y(i))log(1hθ(x(i)))]

  • 目的: 找出让 J ( θ ) J(\theta) J(θ) 最小的 θ \theta θ 值。

  • 梯度下降法:

    • 该式子与线性回归时的式子一模一样,但假设函数 h θ ( x ) h_\theta(x) hθ(x)的含义发生了变化,所以是两个完全不同的东西。
    • 提倡使用向量化的方法实现,这样可以把所有的n个参数同时更新。
    • 特征缩放同样适用于逻辑回归,可以使梯度下降收敛得更快。
  • 求偏导过程:

高级优化(Advanced Optimization)

  • 其他高级算法:
    • 共轭梯度法BFGS(变尺度法)
    • 共轭梯度法L-BFGS(限制变尺度法)
  • 优点:
    • 无需手动选择学习率 α \alpha α,算法有智能的内部循环线性搜索算法(line search),可以自动尝试不同的学习率,并自动选择一个好的。

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

  • 方法:

    • 将多元分类转化为多个二元分类问题,每一类(正向类)和剩余的其他类(负向类)看作一个二元分类。
    • 得到一系列模型: h θ ( i ) = P ( y = i ∣ x ; θ ) h^{(i)}_\theta=P(y=i|x;\theta) hθ(i)=P(y=ix;θ),其中 i = ( 1 , 2 , 3 , ⋯   , k ) i=(1,2,3,\cdots,k) i=(1,2,3,,k)

    • 将所有分类机运行一遍,对每个输入变量选择最高可能性的输出变量: max ⁡ i , h θ ( i ) ( x ) \max\limits_i,h_\theta^{(i)}(x) imax,hθ(i)(x)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

雀栎

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值