机器学习 - Logistic 回归

(Logistic 回归实际上是处理分类问题的方法)

  • 动机

    在处理标签为二值的数据,即二分类任务时,如果使用基本的线性回归模型是无法准确预测的,应当以 “0”, “1”来作为模型的输出,从而判断数据的类别。所以 h ( x ) h(x) h(x) 的值域应当在 [ 0 , 1 ] [0,1] [0,1] 内,但是线性回归模型 h ( x ) = θ X T + b h(x)=θX^T+b h(x)=θXT+b 不满足此种情形。

    我们需要对函数进行变换。

  • Logistic 回归

    为了根据 h ( x ) h(x) h(x) 函数输出值进行类别判断,我们可以使用阶跃函数,例如:

    g ( h ( x ) ) = { 0 , h ( x ) &lt; 0.5 1 , h ( x ) ≥ 0.5 g(h(x))=\begin{cases} 0,h(x)&lt;0.5\\ 1,h(x)\geq0.5 \end{cases} g(h(x))={0,h(x)<0.51,h(x)0.5

    使用 g ( h ( x ) ) g(h(x)) g(h(x)) 作为模型的输出值作为预测结果。

    但是阶跃函数不满足单调可导性质,而后期优化需要求导,所以我们使用近似阶跃函数的替代函数,Sigmoid 函数:

    S i g m o i d ( z ) = 1 1 + e − z , 其 中 z = h ( x ) = θ X T + b Sigmoid(z)=\frac{1}{1+e^{-z}},其中 z=h(x)=θX^T+b Sigmoid(z)=1+ez1z=h(x)=θXT+b

    此时令 h ( x ) = 1 1 + e − ( θ X T + b ) , 导 数 为 h ′ ( x ) = h ( x ) ( 1 − h ( x ) ) h(x) = \frac{1}{1+e^{-(θX^T+b)}},导数为 h&#x27;(x)=h(x)(1-h(x)) h(x)=1+e(θXT+b)1h(x)=h(x)(1h(x))

    则此时的 h ( x ) h(x) h(x) 为模型的判别函数。

  • 优化

    在优化模型,即最小化损失函数时,因为 h ( x ) h(x) h(x) 值域为 [ 0 , 1 ] [0,1] [0,1] ,所以我们可以把其函数值视为分类时的概率 θ θ θ

    y01
    p1-θθ

    p ( y = 1 ∣ x ; θ ) = θ = h ( x ) p(y=1|x;θ) = θ=h(x) p(y=1x;θ)=θ=h(x)
    p ( y = 0 ∣ x ; θ ) = 1 − θ = 1 − h ( x ) p(y=0|x;θ) = 1-θ=1-h(x) p(y=0x;θ)=1θ=1h(x)

    p ( y ∣ x ; θ ) = [ h ( x ) ] y [ 1 − h ( x ) ] 1 − y p(y|x;θ)=[h(x)]^y[1-h(x)]^{1-y} p(yx;θ)=[h(x)]y[1h(x)]1y ,并以此作为损失函数。


    优化过程

    1. 写出似然函数
      假设全独立,

      l ( θ ) = ∏ i = 1 n p ( y i ∣ x i ; θ ) = ∏ i = 1 n [ h ( x ) ] y [ 1 − h ( x ) ] 1 − y l(θ)=\prod_{i=1}^{n}p(y_i|x_i;θ)=\prod_{i=1}^{n}[h(x)]^y[1-h(x)]^{1-y} l(θ)=i=1np(yixi;θ)=i=1n[h(x)]y[1h(x)]1y

    2. 取对数似然

      l ( θ ) = ∑ i = 1 n y l o g ( h ( x ) ) + ( 1 − y ) l o g ( 1 − h ( x ) ) l(θ)=\sum_{i=1}^{n} ylog(h(x))+(1-y)log(1-h(x)) l(θ)=i=1nylog(h(x))+(1y)log(1h(x))

    3. θ θ θ 求偏导

      已知 h ( x ) = S i g m o i d ( x ) h(x)=Sigmoid(x) h(x)=Sigmoid(x),对函数中各 θ θ θ 求偏导:

      ∂ L ( θ ) ∂ θ j = ∑ i = 1 n [ y i − h ( x i ) ] x i j \frac{\partial L(θ)}{\partial θ_j}=\sum_{i=1}^{n}[y_i-h(x_i)]x_i^j θjL(θ)=i=1n[yih(xi)]xij

    4. 梯度下降算法更新 θ θ θ

      θ j : = θ j + α ∂ L ( θ ) ∂ θ j = α ∑ i = 1 n [ y i − h ( x i ) ] x i j θ_j:=θ_j+α\frac{\partial L(θ)}{\partial θ_j}=α\sum_{i=1}^{n}[y_i-h(x_i)]x_i^j θj:=θj+αθjL(θ)=αi=1n[yih(xi)]xij

  • 线性表示的角度(Logistic 分布、概率)来看

    z = θ X T z=θX^T z=θXT

    p ( Y = 1 ∣ X ) = e z 1 + e z p(Y=1|X)=\frac{e^z}{1+e^z} p(Y=1X)=1+ezez
    p ( Y = 0 ∣ X ) = 1 1 + e z p(Y=0|X)=\frac{1}{1+e^z} p(Y=0X)=1+ez1

    ∙ \bullet 一个事件的几率: o p p s = p 1 − p opps=\frac{p}{1-p} opps=1pp,对数几率: l o g p 1 − p log\frac{p}{1-p} log1pp

    ∙ \bullet 对于 Logistic 回归而言, l o g p ( Y = 1 ∣ X ) 1 − p ( Y = 1 ∣ X ) = z = θ X T log\frac{p(Y=1|X)}{1-p(Y=1|X)}=z=θX^T log1p(Y=1X)p(Y=1X)=z=θXT

    即输出 Y = 1 Y=1 Y=1 的对数几率是关于输入 X 的线性函数。
    z 越大,概率越接近 1;
    z 越小,概率越接近 0.

  • 凸优化的角度来看

    若用平方损失代入 Sigmoid 函数,会发现是非凸的。所以可以使用概率角度的极大似然估计进行计算。

    1. 写出似然函数,取对数似然 → 凸函数;
    2. 加“负号”,变为代价函数,转为求最小;
    3. 使用梯度下降。
  • 多分类

    假设有 3 个类别。

    1. one vs. one

      两两一组进行二分类,每两类得一条分类决策边界,共得到 6 个概率,取最大。
      多分类

      C1 为区分 蓝色三角 与 红色矩形 的决策边界,可获得某样本所属类别的两个概率 P ( 蓝 色 三 角 ∣ C 1 ) P(蓝色三角 | C1) P(C1) P ( 红 色 矩 形 ∣ C 1 ) P(红色矩形 | C1) P(C1) ;

      C2 为区分 蓝色三角 与 绿色圆圈 的决策边界,可获得某样本所属类别的两个概率 P ( 蓝 色 三 角 ∣ C 2 ) P(蓝色三角|C2) P(C2) P ( 绿 色 圆 圈 ∣ C 2 ) P(绿色圆圈|C2) P(绿C2)

      C3 为区分 红色矩形 与 绿色圆圈 的决策边界,可获得某样本所属类别的两个概率 P ( 红 色 矩 形 ∣ C 3 ) P(红色矩形|C3) P(C3) P ( 绿 色 圆 圈 ∣ C 3 ) P(绿色圆圈|C3) P(绿C3)

      使用优胜者策略,例如绿色比红色的概率大,则只需再比较绿色与蓝色即可。
      从以上 6 个概率中选出最大值,即可判定此样本所属类别。

    2. one vs. all / rest

      将其中一类视为新的类别 A,其他两类视为新类别 B,每一类得到一条属于自己得决策边界,可计算出属于 类别 A 得概率,而 1-P(A) 为属于类别 B 得概率,最终相当于得到 3 个概率,取最大。

      多分类

      C1 为区分 蓝色三角 与 其他形状 的决策边界,可获得某样本所属类别的两个概率 P ( 蓝 色 三 角 ∣ C 1 ) P(蓝色三角|C1) P(C1)
      P ( 其 他 形 状 ∣ C 1 ) = 1 − P ( 蓝 色 三 角 ∣ C 1 ) P(其他形状|C1) = 1 - P(蓝色三角|C1) P(C1)=1P(C1) );

      C2 为区分 绿色圆圈 与 其他形状 的决策边界,可获得某样本所属类别的两个概率 P ( 绿 色 圆 圈 ∣ C 2 ) P(绿色圆圈|C2) P(绿C2)
      P ( 其 他 形 状 ∣ C 2 ) = 1 − P ( 绿 色 圆 圈 ∣ C 2 ) P(其他形状|C2) = 1 - P(绿色圆圈|C2) P(C2)=1P(绿C2) );

      C3 为区分 红色矩形 与 其他形状 的决策边界,可获得某样本所属类别的两个概率 P ( 红 色 矩 形 ∣ C 3 ) P(红色矩形|C3) P(C3)
      P ( 其 他 形 状 ∣ C 3 ) = 1 − P ( 红 色 矩 形 ∣ C 3 ) P(其他形状|C3) = 1 - P(红色矩形|C3) P(C3)=1P(C3) );

      从以上 3 个概率 P ( 蓝 色 三 角 ∣ C 1 ) P(蓝色三角|C1) P(C1) P ( 绿 色 圆 圈 ∣ C 2 ) P(绿色圆圈|C2) P(绿C2) P ( 红 色 矩 形 ∣ C 3 ) P(红色矩形|C3) P(C3)中选出最大值,即可判定此样本所属类别。

  • 特点与应用

    1. 优点

      (1) 可以输出概率,而非只是 0/1 的判定;
      (2) 可解释性强,可控性高;
      (3) 训练速度相比其他模型较快,特征工程后效果也不错;
      (4) 因为结果可以是概率,所以可以做排序模型;
      (5) 向模型中添加特征比较容易;
      (6) 值得注意的是,梯度下降是初始值敏感的

    2. 应用

      (1) CTR预估
      (2) 推荐系统的 learning to rank
      (3) 多种分类场景
      (4) 多种系统的 baseline 版本

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值