• 人工智能底层自行实现篇3——逻辑回归(上)


    3. 逻辑回归

    1. 简介

    逻辑回归(Logistic Regression)是一种广泛应用于分类问题的统计方法,尤其是二分类问题。虽然它的名称中包含“回归”,但实际上逻辑回归是一个用于估计概率的分类模型。以下是关于逻辑回归的详细介绍,包括它的基本原理、数学模型、如何训练一个逻辑回归模型,以及它的优缺点。

    基本原理

    逻辑回归的核心思想是利用逻辑函数(Logistic Function),也称为Sigmoid函数,将线性回归模型的输出映射到(0,1)区间内,从而用来表示某个样本属于某一类别的概率。(也就是通过线性+非线性让模型具有更强的表示能力)

    数学表示

    逻辑回归模型的基本数学公式如下:

    P ( Y = 1 ∣ X ) = 1 1 + e − ( β 0 + β 1 X 1 + β 2 X 2 + . . . + β n X n ) P(Y=1|X) = \frac{1}{1 + e^{-(\beta_0 + \beta_1X_1 + \beta_2X_2 + ... + \beta_nX_n)}} P(Y=1∣X)=1+e(β0+β1X1+β2X2+...+βnXn)1

    其中:

    • P ( Y = 1 ∣ X ) P(Y=1|X) P(Y=1∣X) 表示给定自变量X时,因变量Y等于1的概率。
    • X 1 , X 2 , . . . , X n X_1, X_2, ..., X_n X1,X2,...,Xn 是模型的自变量(或称特征、输入)。
    • β 0 , β 1 , . . . , β n \beta_0, \beta_1, ..., \beta_n β0,β1,...,βn 是模型参数,其中 β 0 \beta_0 β0是截距项, β 1 , . . . , β n \beta_1, ..., \beta_n β1,...,βn是各自变量的系数。
    • e e e 是自然对数的底数。
    Sigmoid函数

    逻辑回归中使用的逻辑函数(或Sigmoid函数)的形式为:

    σ ( z ) = 1 1 + e − z \sigma(z) = \frac{1}{1 + e^{-z}} σ(z)=1+ez1

    其中, z = β 0 + β 1 X 1 + β 2 X 2 + . . . + β n X n z = \beta_0 + \beta_1X_1 + \beta_2X_2 + ... + \beta_nX_n z=β0+β1X1+β2X2+...+βnXn 是线性组合。Sigmoid函数将任何实数值 z z z映射到区间(0, 1)内,使其可以被解释为概率。

    解释
    • z z z的值很大时, e − z e^{-z} ez接近于0,因此 σ ( z ) \sigma(z) σ(z)接近于1,表示事件发生的概率很高。
    • z z z的值很小(负值很大)时, e − z e^{-z} ez变得很大,因此 σ ( z ) \sigma(z) σ(z)接近于0,表示事件发生的概率很低。
    • z = 0 z=0 z=0时, σ ( z ) = 0.5 \sigma(z) = 0.5 σ(z)=0.5,表示事件发生的概率为50%。
    用途

    逻辑回归模型可以用来预测给定输入X下,某个事件发生的概率。通过设定一个阈值(如0.5),可以将概率转换为二分类结果(例如,如果 P ( Y = 1 ∣ X ) > 0.5 P(Y=1|X)>0.5 P(Y=1∣X)>0.5,则预测Y=1;否则,预测Y=0)。

    逻辑回归的表示形式简单而强大,使其成为处理二分类问题的重要工具。

    2. 例子与底层的手动实现——公式推导

    为了更好的理解逻辑回归,让我们通过一个实际应用案例来详细介绍逻辑回归的使用方法,包括问题的定义、解决方法、以及底层的数学推导。我们将考虑一个医疗健康领域的案例:预测患者是否有糖尿病。

    2.1 问题背景

    应用案例背景

    假设我们有一个数据集,包含患者的多种生理指标(如年龄、性别、体重指数(BMI)、血糖水平等)以及他们是否被诊断为糖尿病(是或否)。我们的目标是建立一个逻辑回归模型,根据这些生理指标预测一个患者是否有糖尿病的概率。

    数据集表示

    假设我们的数据集包含以下特征:

    • X 1 X_1 X1: 年龄
    • X 2 X_2 X2: 性别(0表示女性,1表示男性)
    • X 3 X_3 X3: 体重指数(BMI)
    • X 4 X_4 X4: 血糖水平
    • Y Y Y: 是否有糖尿病(0表示没有,1表示有)
    逻辑回归模型

    我们将使用逻辑回归模型来预测 P ( Y = 1 ∣ X ) P(Y=1|X) P(Y=1∣X),即给定生理指标X时,患者有糖尿病的概率。模型的形式为:

    P ( Y = 1 ∣ X ) = 1 1 + e − ( β 0 + β 1 X 1 + β 2 X 2 + β 3 X 3 + β 4 X 4 ) P(Y=1|X) = \frac{1}{1 + e^{-(\beta_0 + \beta_1X_1 + \beta_2X_2 + \beta_3X_3 + \beta_4X_4)}} P(Y=1∣X)=1+e(β0+β1X1+β2X2+β3X3+β4X4)1

    模型训练(2.2节推导为什么最大化对数似然函数)

    为了训练模型,我们需要找到模型参数 β 0 , β 1 , β 2 , β 3 , β 4 \beta_0, \beta_1, \beta_2, \beta_3, \beta_4 β0,β1,β2,β3,β4的最优值。这通常通过最大化对数似然函数来完成。

    对数似然函数为

    L ( β ) = ∑ i = 1 n [ y i log ⁡ ( p i ) + ( 1 − y i ) log ⁡ ( 1 − p i ) ] L(\beta) = \sum_{i=1}^{n} [y_i \log(p_i) + (1 - y_i) \log(1 - p_i)] L(β)=i=1n[yilog(pi)+(1yi)log(1pi)]

    其中, y i y_i yi是第 i i i个样本的实际标签, p i p_i pi是模型预测的概率 P ( Y = 1 ∣ X i ) P(Y=1|X_i) P(Y=1∣Xi)

    2.2 为什么最大化对数似然函数就是模型参数的最优值

    什么是似然函数

    似然函数(Likelihood function)是统计学中的一个重要概念,用于**量化一个统计模型在给定一些样本数据下的参数估计的可能性。**简单地说,似然函数衡量的是,在已知某参数下,观察到当前数据样本的概率

    更具体地,假设有一个概率模型是由参数 θ \theta θ 决定的,以及一组观测数据 X X X,似然函数 L ( θ ∣ X ) L(\theta|X) L(θX) 表示的是在给定观测数据 X X X 的条件下,参数 θ \theta θ 的可能性。这个函数对参数 θ \theta θ 的不同值有不同的评估,通过找到使似然函数值最大化的 θ \theta θ​ 值,可以得到参数的最大似然估计(MLE,Maximum Likelihood Estimation)。

    用通俗易懂的方式解释最大似然估计

    想象一下,你是一个侦探,正在试图解决一个谜团:在一个房间里发现了一堆骰子,你的任务是找出这些骰子是怎么样的(类比我们寻找最优参数)。每个骰子可能有不同的面数,比如有的是六面的,有的是十二面的(类比两种类型的参数)。你要做的是,仅仅通过观察这些骰子的投掷结果,来猜测这些骰子最有可能是什么样的(根据已经出现的数据,去猜测最有可能的参数)。

    最大似然估计(MLE)就像是你在用一种特别的方法来猜测这些骰子。具体来说,你会这样思考:

    1. 假设一种情况:首先,你想象一下,如果这是一个六面骰子,那么投掷出每个数字的概率是多少。然后,你再想象如果这是一个十二面骰子,情况会怎样改变。

    2. 比较结果:接下来,你会看看实际上投掷出来的结果(已经出现的数据),比如多次投掷后大部分时间都投掷出了不超过6的数字。你会思考,这些结果在哪种假设下更有可能发生——是六面骰子的假设下,还是十二面骰子的假设下?

    3. 选择最可能的情况:最后,你会选择那个使得实际观察到的结果出现概率最大的假设。如果在假设这是一个六面骰子的情况下,观察到的结果出现的概率更高,那么你就会认为这些骰子很可能就是六面的。

    所以说最大似然估计就是这样一种方法,它帮助我们根据已有的数据,来猜测最有可能的规则(参数)情况是什么。在统计学中,我们用这种方法来估计一些未知的参数——比如在上面的例子中,骰子的面数。我们通过计算在不同参数下,已观察到的数据出现的概率,然后选择那个能使这个概率最大化的参数值

    似然函数和概率密度函数(PDF)或概率质量函数(PMF)在形式上可能相似,但它们的应用上有本质的区别:

    • 概率密度函数或概率质量函数描述了在给定参数的情况下,观测到数据的概率。
    • 似然函数则用于在已知观测数据的情况下,评估不同参数值的可能性。
      在实际应用中,似然函数是理解和应用统计推断的基础,特别是在参数估计和假设检验中扮演着核心角色。

    2.3 如何得到最大似然函数

    在逻辑回归中,我们预测的是二分类目标变量 y y y 的概率,其中 y ∈ { 0 , 1 } y \in \{0, 1\} y{0,1}。逻辑回归模型假设给定输入 X X X 的条件下 y y y 的概率 p p p 可以通过逻辑函数来模型化,即:

    p i = Pr ⁡ ( y i = 1 ∣ x i ) = 1 1 + e − β T x i p_i = \Pr(y_i = 1 \mid x_i) = \frac{1}{1 + e^{-\beta^T x_i}} pi=Pr(yi=1xi)=1+eβTxi1

    其中, β \beta β 是模型参数, x i x_i xi 是第 i i i 个观测的特征向量。

    二项分布的概率

    每个观测 i i i 的目标变量 y i y_i yi 被认为是一个伯努利试验的结果,其概率为 p i p_i pi。因此,给定参数 β \beta β 和特征 x i x_i xi 的条件下 y i y_i yi 的概率可以写为:

    Pr ⁡ ( y i ∣ x i ; β ) = p i y i ( 1 − p i ) 1 − y i \Pr(y_i \mid x_i; \beta) = p_i^{y_i} (1 - p_i)^{1 - y_i} Pr(yixi;β)=piyi(1pi)1yi

    这表示如果 y i = 1 y_i = 1 yi=1,概率是 p i p_i pi,如果 y i = 0 y_i = 0 yi=0,概率是 1 − p i 1 - p_i 1pi

    似然函数的构造

    逻辑回归中的似然函数是所有观测数据在给定参数 β \beta β 下的联合概率,即所有 y i y_i yi 给定 x i x_i xi β \beta β 的概率的乘积:

    L ( β ) = ∏ i = 1 n Pr ⁡ ( y i ∣ x i ; β ) L(\beta) = \prod_{i=1}^{n} \Pr(y_i \mid x_i; \beta) L(β)=i=1nPr(yixi;β)
    = ∏ i = 1 n [ p i y i ( 1 − p i ) 1 − y i ] = \prod_{i=1}^{n} [p_i^{y_i} (1 - p_i)^{1 - y_i}] =i=1n[piyi(1pi)1yi]

    对数似然函数

    对似然函数取对数是为了简化乘法运算,因为对数函数可以将乘积转换为求和,从而便于求解和优化:

    log ⁡ L ( β ) = ∑ i = 1 n log ⁡ [ p i y i ( 1 − p i ) 1 − y i ] \log L(\beta) = \sum_{i=1}^{n} \log [p_i^{y_i} (1 - p_i)^{1 - y_i}] logL(β)=i=1nlog[piyi(1pi)1yi]
    = ∑ i = 1 n [ y i log ⁡ ( p i ) + ( 1 − y i ) log ⁡ ( 1 − p i ) ] = \sum_{i=1}^{n} [y_i \log(p_i) + (1 - y_i) \log(1 - p_i)] =i=1n[yilog(pi)+(1yi)log(1pi)]

    这就是逻辑回归中常用的对数似然函数 L ( β ) L(\beta) L(β) 的形式。它是最大化 L ( β ) L(\beta) L(β) 以找到最佳参数 β \beta β 的基础。

    3. 代码实现——见下回分解

  • 相关阅读:
    SQL教程之每个分析工程师都需要知道的 5 个 SQL 函数
    创建一个普通的vue项目
    Nacos中AP和CP 切换
    【新知实验室 - TRTC 实践】音视频互动 Demo、即时通信 IM 服务搭建
    Linux 救援模式
    发现区块链世界的新大门——AppBag.io DApp导航网站全面解析
    Python-图像拼接神器-stitching
    Python图像处理【14】基于非线性滤波器的图像去噪
    PDF 文件与其他文档格式相比有哪些优势?
    简单博客网页
  • 原文地址:https://blog.csdn.net/m0_60388871/article/details/138049299