逻辑回归原理详解-附案例及源码(一)

一、什么是逻辑回归?

    逻辑回归属于有监督机器学习算法的一种,虽然名字中带有回归,但是属于分类算法(输出变量为连续变量的预测问题是回归问题,输出变量为有限个离散变量的预测问题成为分类问题),根据激活函数的不同,逻辑回归算法可用于二分类和多分类(二分类激活函数为sigmoid,多分类激活函数为softmax函数)。

二、逻辑回归激活函数

1、二分类sigmoid函数

    对于二分类问题,激活函数(也可称为映射函数)一般为sigmoid函数,其公式如下:
在这里插入图片描述
    为了更直观的了解函数,使用python对其进行绘图,代码:

import numpy as np
import matplotlib.pyplot as plt

def sigmoid(x):
    return 1/(1+np.exp(-x))

plt.title("sigmoid") #图形标题
plt.xlabel("z") # x轴名称
plt.ylabel("g(z)") # y轴名称
x = np.arange(-4., 4., 0.1)
y = sigmoid(x)

plt.grid(True)#网格
plt.plot(x, y)

    效果图如下:
在这里插入图片描述
    通过图形我们可以很快的看出,sigmoid函数的定义域为(−∞,+∞),值域为(0,1),且处处可导;当z<0时,g(z)<0.5; 当z=0时,g(z)=0.5; 当z>0时,g(z)>0.5。根据此特性,在实际应用中通常对于g(z)>0.5预测为正样本,g(z)<=0.5预测为负样本。
    对sigmoid函数进行求导,过程如下:

    可根据上述代码绘制sigmoid导数函数图像:
在这里插入图片描述

2、多分类softmax函数

    可参考https://blog.csdn.net/qq_41264055/article/details/124637021

三、损失函数

    什么是损失函数?损失函数是用来衡量构建模型预测值与真实值的差别程度,它是一个非负实值函数,损失函数值越小,表示模型鲁棒性更好,常见的损失函数包括:平方损失函数、log对数损失函数、交叉熵损失函数等,详细可见什么是损失函数
    逻辑回归损失函数来源于伯努利分布与似然函数,因此在进行详细讲解前,我们必须先了解几个数学相关概念:概率密度函数、似然函数、极大似然估计、伯努利分布、熵和交叉熵,接下来会逐一对他们进行讲解,最后将其串联起来。

四、逻辑回归相关数学概念

1、概率密度函数

    概率密度函数是概率论中最核心的概念之一,用于描述连续型随机变量所服从的概率分布。在机器学习中,我们经常对样本向量X的概率分布进行建模,往往是连续型随机变量。
    什么是随机变量,我们从随机事件说起:它定义为可能发生也可能不发生的事件,因此是否发生具有随机性,如抛硬币,可能是正面朝上,也可能是反面朝上;掷骰子,1至6点均有可能朝上,都具有随机性。如果给每个随机事件a发生的概率为p(a),则0=<p(a)<=1。对于一次实验中,所有可能的随机事件的概率和等于1,即:
在这里插入图片描述    这些随机事件不会同时发生,但是每实验一次,总有一个事件会发生。例如每抛一次硬币,不是正面朝上,就是反面朝上,不可能存在正反面同时朝上的情况(不考虑立着)。我们假设这些随机事件发生的概率是相等的,对于抛硬币实验来说,正面或反面朝上的概率均为1/2,对于掷骰子来说,1-6点中每一点朝上的概率均为1/6。
    对于抛硬币和掷骰子实验来说,随机事件所有可能出现的情况是有限的,抛硬币是2种,掷骰子存在6种可能,但是对于有无限种可能的随机事件我们该如何计算其发生的概率呢?考虑一个问题,对于一个边长为1的正方形,我们随机扔一个点落在右上方红色区域的概率是多少?

    由于红色部分的点是无限,我们无法像抛硬币或掷骰子一样将所有可能性列举出来,此时可以使用红色部分面积/正方形总面积=1/2表示点落在红色区域的概率。因此,对于一个存在无线可能情况的随机事件,我们可以通过使用长度或面积这样的积分值来表示。
    通过上面描述我们对随机事件应该有了清晰的认识,那么什么是随机变量呢?变量,指可以变化的量,可以取不同的值,随机变量可以看作是关联了概率值的变量,即变量取每一个值都有一个概率值,变量的取值来源于一个集合,这个集合可以是有限的,也可以是无线的。对于无线集合,可以是离散的,也可以是连续的。
    随机变量就是取值有多种可能并且取每个值都有一个概率的变量。它分为离散型和连续型两种,离散型随机变量的取值为有限个或者无限可列个(整数集是典型的无限可列),连续型随机变量的取值为无限不可列个(实数集是典型的无限不可列)。
离散型随机变量:
    随机变量的值为有限个或无限可列,以掷骰子为例,随机变量的取值为1至6,变量关联的概率值均为1/6,如下表所示:

随机变量取值集合对应概率值
11/6
21/6
31/6
41/6
51/6
61/6

连续型随机变量:
    随机变量的取值为无限不可列个,以上面点落在正方形区域的概率为例,由于正方形中包含的点是无限的,可能是(0.1,0.1),也可能是(0.01,0.05),那么每一个点落在正方形区域的概率为:1/无限=0,概率值为0,此时我们是假设了每个点落在正方形区域的概率是均匀分布的,当点落在每个区域的概率值有相对大小时,由此引入概率密度函数来描述此种情况。
    一个函数如果满足以下条,我们可以称之为概率密度函数:
在这里插入图片描述
    此公式中f(x)表示随机变量x对应的概率值,是一个非负数,f(x)在整个定义域(不管取值集合是有限还是无限)积分值为1,即所有取值可能性的和为1,与此前描述对应。
    分布函数是概率密度函数的变上限积分,它定义为:
在这里插入图片描述
    这个函数是一个增函数,并且最大值为1,分布函数是随机变量最重要的概率特征,分布函数可以完整地描述随机变量的统计规律,并且决定随机变量的一切其他概率特征。对于连续型随机变量取某个值的对应概率为0(单独说概率密度函数是没有意义的),但其取值落在某个区间的值不一定为0:
在这里插入图片描述
    最常见的连续型概率分布是正态分布(也叫高斯分布),它的概率密度函数为:
在这里插入图片描述
    其中μ和σ分别表示均值和方差,现实中很多数据都服从正态分布,如人类的身高、寿命等,取μ=0,σ=1、2、3,其概率密度图像如下所示:
在这里插入图片描述
    另一种常见的分布是均匀分布,如果随机变量x服从区间[a,b]内的均匀分布,则其概率密度函数为:
在这里插入图片描述
    详细描述可见:概率密度函数详解

2、似然函数

    似然函数官方定义:在数理统计学中,似然函数是一种关于统计模型中参数的函数,表示模型参数中的似然性,当给定输出x时,关于参数θ的似然函数L(θ|x)(在数值上)等于给定参数θ后变量X的概率:
在这里插入图片描述
在这里插入图片描述
    上述式子分别对应离散和连续型概率分布(注意左右等式中x和θ是一样的),右边式子其实就是我们之前说的概率密度函数(注意似然函数是参数的函数,当θ不是随机变量时,似然函数不是随机变量的函数,不具有密度函数。虽然与概率密度函数取值一样,但它本身不一定存在概率密度函数),我们拿抛硬币进行举例,硬币的性质可以用参数θ来表示,根据 θ的不同取值,我们进行抛硬币实验室时,可以得出不同结果,比如抛10次硬币,当硬币均匀时(对应一个θ值),我们得到5次正面朝上,5次反面朝上的结果,如果硬币不均匀(对应另一个θ值),那么我们可能得到7次正面朝上,3次反面朝上的结果。
    在统计学中,“似然性”和“概率”有明确的区分。概率用于在已知一些参数的情况下,预测接下来的观测所得到的结果,即通过已知参数θ,比如代表均匀的硬币,推测抛10次硬币,正面朝上的次数;而似然性则是用于在已知某些观测所得到的结果时,对有关事物的性质的参数进行估计,比如已知抛10次硬币,有5次正面朝上的结果,来推测代表硬币的性质参数θ,推测出硬币是均匀的。

3、极大似然估计

离散型随机变量的似然函数:
    假如离散型随机变量x的分布率为P (x∣θ),样本集D上有m个样本,则D上的似然函数为:
在这里插入图片描述
连续型随机变量的似然函数:
    假如连续型随机变量x的概率密度函数为f(x∣θ),样本集D上有m个样本,则D上的似然函数为:
在这里插入图片描述
    上述式子为什么是连乘,而不是相加或其他呢?举个例子,还是抛硬币实验,抛10次硬币,我们得到一个结果:7次正面朝上,3次反面朝上,此时我们需要构建一个似然函数来对这个结果进行刻画,怎么构造似然函数呢?首先,10次抛硬币实验之间都是独立的(n次独立实验的概率就是乘法原理,我们会倾向认为,现实已经发生的事件应该就对应于理论上概率最大的哪一个事件),假设对于θ而言,正面朝上的概率为p,反面朝上的概率为1-p,那么本次实验所有样本同时发生的概率为p7*(1-p)3,这就是参数θ下,此次抛硬币实验的似然函数:
                    L(θ|10次抛硬币样本)= p7*(1-p)3
    那么什么是极大似然?对于上述样本而言,这是一个已经发生的结果,他的概率是为1的,也就是说,当这个函数最值为1时,此时的θ是最能够描述整个样本的分布规律的,似然函数的意义就在于刻画参数θ与样本数据的匹配程度,所以我们对似然函数取最大值,最大程度去刻画已经发生的样本数据,这就是极大似然的意义。
    可对p7*(1-p)3取对数(对数不改变原有函数的单调性和极值位置,方便求解)求导,当导数为0时,取得极值,此时p=0.7。函数图像如下:
在这里插入图片描述

4、伯努利分布

    伯努利分布,又称为0-1分布或两点分布,伯努利试验说的是下面一种事件情况:在生活中,有一些事件的发生只有两种可能,发生或者不发生(或者叫成功或者失败),这些事件都可以被称为伯努利试验。其概率分布称为伯努利分布(两点分布、0-1分布),如果记成功概率为p,则失败概率为q=1-p,则其概率质量函数(描述离散型数据的概率分布叫做概率质量(mass)函数,描述连续型数据叫做概率密度(density)函数)为:
在这里插入图片描述

5、熵

    熵是信息论中最基本、最核心的一个概念,它衡量了一个概率分布的随机程度,或者说包含的信息量的大小。当一个事件发生的可能性越小,我们就说它包含的信息量越大。假设随机变量取值x时,对应的概率为p(x),h(x)描述随机变量取值的信息量大小,则h(x)与p(x)成反比即h(x)是p(x)的单调递减函数。信息量的定义为:
                                    h(x)=-logp(x)
    为什么要将信息量函数定义为对数函数呢?现在有两个独立的随机变量,他们取值分别为x,y,对应的概率为p(x),p(y),包含的信息量分别为h(x),h(y),它们的联合概率为:
                                    P(x,y)=p(x)p(y)
    包含的信息量之和为:
                                    h(x,y)=h(x)+h(y)
    现在要找到一个函数,既能够说明变量之间的独立性,又要符合信息量叠加原则,那么对数函数就出现了,因为:
                            h(x,y)=-log(p(x)p(y))=(-logp(x))+(-logp(y))
    上面我们考虑的是随机变量取某个值时包含的信息量,但是随机变量的取值存在多种可能,此时我们取随机变量各个取值的信息量均值即数据期望来表示随机变量包含的信息,这个信息的均值就是熵。上面我们说过,随机变量可分为离散型随机变量和连续性随机变量。
    对于离散型随机变量,熵定义为:
在这里插入图片描述
    对于连续型随机变量,熵定义为:
在这里插入图片描述
    通过构造拉格朗日乘子函数,并对其进行求偏导,可得出对于存在n种可能的随机变量熵的极值,当均匀分布是熵最大logn;当且仅当随机变量取某一值的概率为1,取其他值的概率为0时熵有极小值0。
    详细解答及证明:熵和交叉熵

6、交叉熵

    交叉熵和熵的定义类似,不同的是,熵只涉及一个随机变量的概率分布,而交叉熵涉及两个随机变量概率分布。
     对于离散型随机变量,交叉熵定义为:
在这里插入图片描述
    其中x为离散型随机变量,p(x)和q(x)是它的两个概率分布。交叉熵衡量了两个概率分布的差异。其值越大,两个概率分布相差越大;其值越小,则两个概率分布的差异越小。
    对于连续型随机变量,交叉熵定义为:
在这里插入图片描述
    如果两个概率分布完全相等,则交叉熵退化成熵,此时交叉熵有极小值。详细解答及证明:熵和交叉熵
    :本章主要对逻辑回归涉及的数学基础进行说明,下章将对逻辑回归中损失函数及具体迭代方式进行实例讲解。下一章链接:损失函数梯度下降实例讲解及其凹凸性证明

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值