逻辑回归 Logistic regression

逻辑回归 Logistic regression

参考文献
	https://zhuanlan.zhihu.com/p/74874291
  • 背景

    • Logistic Regression 虽然被称为回归,但其实际上是分类模型,并常用于二分类。
  • Logistic 分布

    • 一种连续型的概率分布
      F ( X ) = P ( X ≤ x ) = 1 1 + e − ( x − μ ) / γ (分布函数) F(X) = P(X \leq x)= \frac{1}{1+e^{-(x-\mu)/\gamma}} \tag{分布函数} F(X)=P(Xx)=1+e(xμ)/γ1(分布函数)

      f ( x ) = F ′ ( X ) = P ( X ≤ x ) = e − ( x − μ ) / γ γ ( 1 + e − ( x − μ ) / γ ) 2 (密度函数) f(x)=F'(X) = P(X \leq x)= \frac{e^{-(x-\mu)/\gamma}}{\gamma(1+e^{-(x-\mu)/\gamma})^2} \tag{密度函数} f(x)=F(X)=P(Xx)=γ(1+e(xμ)/γ)2e(xμ)/γ(密度函数)

      • μ μ μ 表示位置参数 γ > 0 γ>0 γ>0形状参数
    • 图像
      image-20221006122903490

      • Sigmoid 函数就是 Logistic 的分布函数在 μ = 0 , γ = 1 \mu=0,\gamma=1 μ=0,γ=1 的特殊形式。
    • code

      import math
      
      import matplotlib.pyplot as plt
      
      import numpy as np
      
      e = math.e
      mu = 0
      gamma = 1
      x = np.arange(-10, 10, 0.2)
      
      # y = 1/(1+pow(e, -(x-mu)/gamma))
      y = pow(e, -(x - mu) / gamma) / (gamma * pow(1 + pow(e, -(x - mu) / gamma), 2))
      plt.title("f(X)")
      plt.plot(x, y)
      
      plt.show()
      
      
  • Logistic 回归

    • 背景

      • Logistic 回归主要用于分类问题,我们以二分类为例,对于所给数据集假设存在这样的一条直线可以将数据完成线性可分。
    • 决策边界
      h w ( x ) = w 1 x 1 + w 2 x 2 + b = 0 h_w(x)=w_1x_1+w_2x_2+b=0 hw(x)=w1x1+w2x2+b=0

      • h w ( x ) > 0 h_w(x) > 0 hw(x)>0 判断 x x x 的类别为 1,反之判断为 0。
      • 这个过程其实是感知机。
      • Logistic 回归还需要加一层,
        • 它要找到分类概率 P ( y = 1 ) P(y=1) P(y=1) 与输入向量 x x x 的直接关系, P ( y = 1 ∣ x ) P(y=1|x) P(y=1∣x)
        • 然后通过比较概率值来判断类别。
    • 二分类问题

      • 数据集
        D = ( x i , y i ) , x ⊆ R n , y ∈ ( 0 , 1 ) , i = 1 , . . , N D=(x_i,y_i),\\ x\subseteq R^{n}, y \in (0,1),i=1,..,N D=(xi,yi),xRn,y(0,1),i=1,..,N

      • w T x + b w^Tx+b wTx+b 的取值是连续的,它不能拟合离散变量,

        • 可以考虑用它来拟合条件概率 p ( Y = 1 ∣ x ) p(Y=1|x) p(Y=1∣x) ,因为概率的取值也是连续的。

        • 但是对于 w ≠ 0 w≠0 w=0(若等于零向量则没有什么求解的价值),

        • w T x + b w^Tx+b wTx+b 取值为 R R R ,不符合概率取值为 0 到 1,因此考虑采用广义线性模型

          • 最理想的是单位阶跃函数,但是这个阶跃函数不可微
            P ( y = 1 ∣ x ) = { 0 , z < 0 0.5 , z = 0 1 , z > 0 z = w T x + b P(y=1|x)=\left\{ \begin{aligned} 0 & , & z < 0 \\ 0.5 & , & z = 0 \\ 1 & , & z > 0 \end{aligned} \right.\\ z=w^Tx+b P(y=1∣x)= 00.51,,,z<0z=0z>0z=wTx+b

            • P ( y = 1 ∣ x ) P(y=1|x) P(y=1∣x) 为结点 x x x 为1的概率。
          • 对数几率函数是一个常用的替代函数:
            y = 1 1 + e − ( w T + b ) l n y 1 − y = w T + b (对数几率函数) y=\frac{1}{1+e^{-(w^T+b)}}\\ ln\frac{y}{1-y}=w^T+b \tag{对数几率函数} y=1+e(wT+b)1ln1yy=wT+b(对数几率函数)

            • y y y x x x 的标签为1的概率, 1 − y 1-y 1y x x x 的标签为0的概率,二者比值为几率

            • y y y 视为类后验概率估计,重写公式有:
              l n P ( y = 1 ∣ x ) 1 − P ( y = 1 ∣ x ) = w T + b ln\frac{P(y=1|x)}{1-P(y=1|x)}=w^T+b ln1P(y=1∣x)P(y=1∣x)=wT+b

              P ( y = 1 ∣ x ) = w T x + b P(y=1|x)=w^Tx+b P(y=1∣x)=wTx+b

              • y y y x x x 的label
              • 输出 y = 1 y=1 y=1 的对数几率是由输入 x x x线性函数表示的模型,这就是逻辑回归模型
            • 使用对数几率的意义

              • Logistic 回归是使用线性回归模型的预测值
              • 逼近分类任务真实标记的对数几率
              • 优点
                • 直接对分类的概率建模,无需实现假设数据分布,从而避免了假设分布不准确带来的问题(区别于生成式模型);
                • 不仅可预测出类别,还能得到该预测的概率,这对一些利用概率辅助决策的任务很有用;
                • 对数几率函数是任意阶可导的凸函数,有许多数值优化算法都可以求出最优解。
      • 思路

        • 先拟合决策边界(不局限于线性,还可以是多项式),
          h w ( x ) = w 1 x 1 + w 2 x 2 + b = 0 h_w(x)=w_1x_1+w_2x_2+b=0 hw(x)=w1x1+w2x2+b=0

        • 再建立这个边界与分类的概率联系,从而得到了二分类情况下的概率。
          P ( y = 1 ∣ x ) = h w ( x ) P(y=1|x)=h_w(x) P(y=1∣x)=hw(x)

  • 求解模型参数

    • 方法

      • 在统计学中,常常使用极大似然估计法来求解,
        • 即找到一组参数,使得在这组参数下,我们的数据的似然度(概率)最大。
    • 似然函数和损失函数


      • P ( y = 1 ∣ x ) = p ( x ) P ( y = 0 ∣ x ) = 1 − p ( x ) P(y=1|x)= p(x)\\ P(y=0|x)= 1-p(x) P(y=1∣x)=p(x)P(y=0∣x)=1p(x)

        • p ( x ) p(x) p(x) 为结点 x x x 的标签为1的概率。
        • 1 − p ( x ) 1-p(x) 1p(x) 为结点 x x x 的标签为0的概率。
      • 似然函数
        L ( w ) = ∏ i = 0 n [ p ( x i ) ] y i   [ 1 − p ( x i ) ] 1 − y i L(w) = \prod_{i=0}^n[p(x_i)]^{y_i}~[1-p(x_i)]^{1-y_i} L(w)=i=0n[p(xi)]yi [1p(xi)]1yi

      • 对数似然函数
        L ( w ) = ∑ i = 0 n [ y i l n [ p ( x i ) ] + ( 1 − y i ) l n [ ( 1 − p ( x i ) ) ] = ∑ i = 0 n [ y i l n [ p ( x i ) 1 − p ( x i ) ] + l n [ ( 1 − p ( x i ) ) ] = ∑ i = 0 n [ y i ( w ⋅ x i ) − l n [ 1 + e w ⋅ x i ] ] L(w) = \sum_{i=0}^n \Big[y_iln[p(x_i)]+(1-y_i)ln[(1-p(x_i))\Big]\\ =\sum_{i=0}^n\Big[y_iln[\frac{p(x_i)}{1-p(x_i)}]+ln[(1-p(x_i))\Big]\\ =\sum_{i=0}^n\Big[y_i(w \cdot x_i )-ln[1+e^{w\cdot x_i}]\Big] L(w)=i=0n[yiln[p(xi)]+(1yi)ln[(1p(xi))]=i=0n[yiln[1p(xi)p(xi)]+ln[(1p(xi))]=i=0n[yi(wxi)ln[1+ewxi]]

        • w w w 为参数
      • 损失函数

        • 衡量的是模型预测错误的程度。如果取整个数据集上的平均对数似然损失,有:
          L ( w ) = − 1 n l n ( L ( w ) ) \mathcal{L}(w) = -\frac{1}{n}ln(L(w)) L(w)=n1ln(L(w))

          • 我们最大化似然函数最小化损失函数实际上是等价的。
      • 求解
        L ( w ) = − 1 n ∑ i = 0 n [ y i l n [ p ( x i ) ] + ( 1 − y i ) l n [ ( 1 − p ( x i ) ) ] \mathcal{L}(w) = -\frac{1}{n}\sum_{i=0}^n \Big[y_iln[p(x_i)]+(1-y_i)ln[(1-p(x_i))\Big]\\ L(w)=n1i=0n[yiln[p(xi)]+(1yi)ln[(1p(xi))]

        • 梯度下降

          • 梯度下降是通过 J ( w ) J(w) J(w) w w w 的一阶导数来找下降方向,

          • 并且以迭代的方式来更新参数,更新方式为
            g i = δ L ( w ) δ w i = ( p ( x i ) − y i ) x i w i k + 1 = w i k − α g i g_i = \frac{\delta\mathcal{L}(w)}{\delta w_i}=(p(x_i)-y_i)x_i\\ w^{k+1}_{i} = w^{k}_i - \alpha g_i gi=δwiδL(w)=(p(xi)yi)xiwik+1=wikαgi

            • k k k 为迭代次数
            • y y y 为标签
            • i i i 为参数序号
            • α \alpha α 为平衡参数
            • 更新参数后,可以通过比较 ∣ ∣ L ( w k + 1 ) − L ( w k ) ∣ ∣ ||\mathcal{L}(wk+1)−\mathcal{L}(wk)|| ∣∣L(wk+1)L(wk)∣∣ 小于阈值或者到达最大迭代次数来停止迭代。
        • 牛顿法

          • 在现有极小点估计值的附近对 f ( x ) f(x) f(x) 做二阶泰勒展开,进而找到极小点的下一个估计值.

          • 需要目标函数是二阶连续可微的。

          • 假设 w k w^k wk 为当前的极小值估计值,那么有:
            φ ( w ) = L ( w k ) + L ′ ( w k ) ( w − w k ) + 1 2 L ′ ′ ( w k ) ( w − w k ) 2 \varphi(w) = \mathcal{L}(w^k) + \mathcal{L}'(w^k)(w-w^k) + \frac{1}{2}\mathcal{L}''(w^k)(w-w^k)^2 φ(w)=L(wk)+L(wk)(wwk)+21L′′(wk)(wwk)2

            f ( x ) = f ( x 0 ) + f ′ ( x 0 ) 1 ! ( x − x 0 ) + f ′ ′ ( x 0 ) 2 ! ( x − x 0 ) 2 + . . . + o [ ( x − x o ) n ] f(x) = f(x_0)+\frac{f'(x_0)}{1!}(x-x_0)+\frac{f''(x_0)}{2!}(x-x_0)^2+...+o[(x-x_o)^n] f(x)=f(x0)+1!f(x0)(xx0)+2!f′′(x0)(xx0)2+...+o[(xxo)n]

            • φ ′ ( w ) = 0 \varphi'(w)=0 φ(w)=0
              0 = L ′ ( w k ) + L ′ ′ ( w k ) ( w − w k ) w = w k − L ′ ( w k ) L ′ ′ ( w k ) 0 = \mathcal{L}'(w^k) +\mathcal{L}''(w^k)(w-w^k)\\ w = w^k - \frac{\mathcal{L}'(w^k)}{\mathcal{L}''(w^k)} 0=L(wk)+L′′(wk)(wwk)w=wkL′′(wk)L(wk)

            • 令将 w w w 表示为 w k + 1 w^{k+1} wk+1
              w k + 1 = w k − L ′ ( w k ) L ′ ′ ( w k ) = w k − H k − 1 ⋅ g k w^{k+1} = w^k - \frac{\mathcal{L}'(w^k)}{\mathcal{L}''(w^k)}\\ = w^k-H^{-1}_k \cdot g_k wk+1=wkL′′(wk)L(wk)=wkHk1gk

            • H k − 1 H^{-1}_k Hk1 为海森矩阵,对应梯度下降法中的 α \alpha α
              H m n = δ 2 L ( w ) δ w m δ w n = h w ( x ( i ) ) ( 1 − p w ( x ( i ) ) ) x m ( i ) x n ( i ) H_{mn}=\frac{\delta^2\mathcal{L}(w)}{\delta w_m\delta w_n}=h_w(x^{(i)})(1-p_w(x^{(i)}))x^{(i)}_mx^{(i)}_n Hmn=δwmδwnδ2L(w)=hw(x(i))(1pw(x(i)))xm(i)xn(i)

              • h w ( x ( i ) ) h_w(x^{(i)}) hw(x(i)) 类似真正的标签
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: Logistic回归是一种逻辑回归方法。它是一种特殊的回归方法,用于对于分类问题中的因变量建立预测模型。这种方法基于学习一个由输入变量到二元输出变量的条件概率来构建预测模型,用于对一个新的样本进行分类。它对于分类问题中的因变量建立预测模型非常有效。 ### 回答2: 逻辑回归是一种用于解决二分类问题的监督学习算法。它是一种基于概率统计的分类模型,可以用于预测分类结果。逻辑回归的输出结果是一个0到1之间的概率,其含义是该样本属于某一类别的概率。 逻辑回归模型的基本假设是数据服从伯努利分布,也就是数据只有两种可能的取,被称为正类和负类。对于给定的训练数据集,逻辑回归模型的目标是最大化似然函数,即最大化样本属于正类(或负类)的概率。利用最大似然估计方法,我们可以求解出逻辑回归模型的参数。在实际应用中,我们通常使用梯度下降等优化算法来求解模型参数。 逻辑回归模型有多种变体,如L1正则化逻辑回归、L2正则化逻辑回归、多项式逻辑回归等。其中,L1正则化逻辑回归可以实现特征选择,可以削减一些不重要的特征,从而简化模型,提高计算速度和模型的泛化能力。 在机器学习领域,逻辑回归是一个常用的模型。它广泛应用于各种领域,如网络广告点击率预测、信用风险评估、医疗诊断等。逻辑回归模型简单易实现,具有较高的解释性,是一个较为理想的分类算法。 ### 回答3: 逻辑回归Logistic Regression)是一种经典的分类算法,在机器学习和统计学领域中得到广泛的应用。它旨在从已有的数据中构建一个能够预测类别的模型,输出结果为概率,可以用于二分类或多分类问题的解决。 逻辑回归的基本原理是利用一个特定的函数对输入特征进行线性组合,然后将结果输入到一个Sigmoid函数中进行映射,将结果压缩到0到1的范围内,表示输入属于某一类别的概率。这个Sigmoid函数可以被看作是一个阀门,控制着数据流向最终输出。它将具有很强预测能力的线性组合函数输出转化为概率输出的过程,将出现在中间层的结果映射到[0,1]范围内,以表达某个样本属于某个类别的概率。 在训练模型时,逻辑回归使用的是最大似然估计的方法来确定模型的参数。在分类训练数据时,需要对样本经过一系列的处理,例如特征提取、特征转换、数据归一化等步骤。训练数据可以通过梯度下降法、牛顿迭代法等优化方法来确定最佳参数。通过此训练过程,模型可以学习到输入特征与输出概率之间的映射关系。 逻辑回归的优点包括了功能简单、速度快、易于实现和修改等等。它是机器学习中最为基本的分类算法之一,在数据挖掘、信用评估、自然语言处理、广告推荐等领域都有广泛的应用。逻辑回归作为一个二分类算法,常被用于解决分类问题。然而,在实际业务中,如何选择不同的逻辑回归模型及参数,对算法的效果和优化有着重要的影响。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值