P(D|θ)

文章目录

    • 一、前言
    • 二、逻辑回归的由来
    • 三、到底什么是逻辑回归
      • (1). 先对逻辑回归有个大概感觉
      • (2).逻辑回归与线性回归的区别
      • (3).sigmoid函数
      • (4)目标函数:似然函数
      • (4)问题转化(让问题简单起来)
      • (5)逻辑回归的目标函数,代价函数,损失函数
      • (6)为什么这么问题转化 
        (7)使用梯度下降来计算求解
        • 1. 什么是交叉熵损失函数
        • 2. 梯度下降
        • 3. 计算公式
    • 四、逻辑回归优缺点
    • 五、参考文献 

    一、前言

    逻辑回归,看似容易,学习起来真的是挺复杂,涉及的东西挺多。越是学习越觉得盲区越多。遂,先懂是什么,接着联系实践,至于更深层理论,以后慢慢学习。

    二、逻辑回归的由来

    逻辑回归是由19世纪末到20世纪初的数学家皮尔斯(Charles Sanders Peirce)和逻辑学家沃德(John Ward)提出的。最初,逻辑回归被用于预测二元事件(即成功或失败,真或假等)。它使用线性回归模型来建立一个分类器,并将输出映射到概率值(也称为“sigmoid函数”)。逻辑回归算法可以通过对数据进行拟合,找到一组最优参数,从而得到一个能够准确分类新数据的模型。
    随着时间的推移,逻辑回归在诸如医学、金融、社会科学等领域中得到了广泛应用。

    三、到底什么是逻辑回归

    (1). 先对逻辑回归有个大概感觉

    1. 逻辑回归的本质是利用数学模型对数据进行建模,从而实现分类任务。具体来说,逻辑回归通过构建一个线性模型,并将输出映射到概率值,来对输入数据进行分类。
    2. 在训练阶段,逻辑回归使用交叉熵损失函数来衡量模型预测结果与真实结果之间的差异,并利用梯度下降等优化算法调整模型参数,使得损失函数最小化。最终,我们可以得到一个能够准确分类新数据的逻辑回归模型。
    3. 逻辑回归的本质不仅是一个分类器,同时也是一种推断方法。它的特点在于能够输出概率值,可以用于判断类别之间的相对可能性,还可以通过改变输出阈值来调整分类结果的灵敏度。

    (2).逻辑回归与线性回归的区别

    逻辑回归和线性回归都是常见的机器学习算法,但是它们的应用场景、模型假设、损失函数等方面存在很大区别。

    1. 线性回归是用于建立输入特征和连续目标变量之间的关系模型。它假设输入特征与目标变量之间存在线性关系,并使用最小二乘法等方法来尽可能地拟合数据点。而逻辑回归是用于建立输入特征和离散目标变量之间的关系模型。它假设输入特征与目标变量之间存在一种非线性的关系,我们需要通过对数据进行拟合,找到最优的参数来构建一个分类器
    2. 两者的模型假设也不同。线性回归认为目标变量的误差服从正态分布,即在给定输入特征时,目标变量服从均值为 θ T x \theta^Tx θTx正态分布;而逻辑回归假设目标变量服从伯努利分布,即当输入特征为 x 时,目标变量为10的概率分别为 h θ ( x ) 
    3. 它们的损失函数也不同。线性回归通常使用平方损失函数衡量预测结果与真实值之间的差距;而逻辑回归通常使用交叉熵损失函数来衡量模型预测结果与真实结果之间的差异。

    (3).sigmoid函数

    为什么要说下这个函数:

    1. sigmoid函数是逻辑回归算法的核心之一,它将线性预测输出映射到概率值。具体来说,sigmoid函数可以将任何实数映射到区间(0, 1)内的一个概率值,
      其公式为: h θ ( x ) = 1 1 + e − θ T x
    2. 在逻辑回归中,我们使用sigmoid函数将线性预测转换为概率值,并将这些概率值作为目标变量为1的概率估计。例如,当sigmoid函数的输出值为0.8时,代表模型预测输入 x 属于第一类别的概率为0.8,属于第二类别的概率为0.2。
    3. 在模型训练过程中,我们通过最大化似然函数或最小化交叉熵损失函数来学习逻辑回归模型参数,从而得到一个能够准确分类新数据的模型。sigmoid函数的使用使得模型能够输出概率值,同时也保证了输出结果的可导性,方便利用梯度下降等优化算法进行模型训练。

    因此:学习逻辑回归之前,绕不开这个函数。

    在这里插入图片描述
    通过代码实现就是:

    import numpy as np
    import matplotlib.pyplot as plt
    def sigmoid(z):
        return 1. / (1. + np.exp(-z))
    
    #画出sigmoid函数图像
    x = np.linspace(-10,10,100)
    y = sigmoid(x)
    plt.plot(x,y)
    plt.title("sigmoid函数图像")
    plt.show()

    在这里插入图片描述

    参数说明:z是一个矩阵,θ是参数列向量(要求解的),x是样本列向量(给定的数据集)。θ^T表示θ的转置。g(z)函数实现了任意实数到[0,1]的映射,这样我们的数据集([x0,x1,…,xn]),不管是大于1或者小于0,都可以映射到[0,1]区间进行分类。hθ(x)给出了输出为1的概率。比如当hθ(x)=0.7,那么说明有70%的概率输出为1。输出为0的概率是输出为1的补集,也就是30%。

    (4)目标函数:似然函数

    在(3)里面有介绍到:sigmoid函数是一种常用的激活函数,它将任何实数映射到区间(0, 1)内的一个概率值。sigmoid函数的运算结果就是这个概率值

    具体来说,sigmoid函数的公式为: h ( x ) = 1 1 + e − x 。当输入 x 为任意实数时,sigmoid函数会将其转换为一个介于0和1之间的概率值,表示在当前条件下事件发生的可能性大小。例如,当sigmoid函数的输入值为5时,其输出值为0.9933,代表事件发生的概率相对较大。而当sigmoid函数的输入值为-5时,其输出值为0.0067,代表事件发生的概率相对较小

    而且

    (5)逻辑回归的目标函数,代价函数,损失函数

    四、逻辑回归优缺点

    逻辑回归是一种经典的分类算法,其优缺点如下:

    优点

    1. 简单易懂:逻辑回归是一种简单且易于理解的算法,不需要复杂的数学知识,在实际应用中得到了广泛的应用。

    2. 计算效率高:逻辑回归模型的训练和预测速度都很快,适合处理大规模数据。

    3. 可解释性强:逻辑回归模型能够给出每个特征的权重,可以解释变量之间的关系。

    4. 适用范围广:逻辑回归可以处理二分类问题,也可以通过一些技巧将其扩展到多分类问题上。

    5. 鲁棒性好:逻辑回归对异常值的鲁棒性较好,不会对模型产生很大影响。

    缺点

    1. 假设线性可分:逻辑回归假设样本数据是线性可分的,即可以通过一条直线或超平面进行分类。如果数据集非线性可分,则逻辑回归表现会比较差。

    2. 容易欠拟合:当特征之间相关性较强或特征数量很多时,逻辑回归容易出现欠拟合问题。

    3. 不能很好地处理大量特征:当特征数量非常大时,逻辑回归需要更多的计算资源和训练时间。

    4. 对缺失值敏感:如果数据集存在缺失值或异常值,会影响逻辑回归模型的性能。

    总结

    这个学习起来还是挺复杂的,先有个大概认知,明天敲一敲代码,梳理下里面逻辑

    五、参考文献

    [1].https://blog.csdn.net/iqdutao/article/details/109478633
    [2].https://blog.csdn.net/iqdutao/article/details/107174240
    [3].https://blog.csdn.net/lgb_love/article/details/80592147
    [4].https://blog.csdn.net/c406495762/article/details/77723333
    [5].https://zhuanlan.zhihu.com/p/128102048
    [6].https://zhuanlan.zhihu.com/p/74874291