回归分析常量_【模型篇】逻辑回归(Logistic Regression)

回归分析常量_【模型篇】逻辑回归(Logistic Regression)_第1张图片

概述

逻辑回归是一个假设样本服从伯努利分布,利用极大似然估计和梯度下降求解的二分类模型,在分类、CTR预估领域有着广泛的应用。

公式推导

逻辑回归是用来解决分类问题用的,与线性回归不同的是,逻辑回归输出的不是具体的值,而是一个概率。除去了sigmoid函数的逻辑归回和线性回归几乎是一样的。

有人说逻辑回归不是回归,因为输出的不是回归值。也可理解为逻辑回归是先求回归函数,再将结果通过逻辑函数转化一下得到最终的结果。

基本步骤

  1. 构造hypothesis
  2. 构造损失函数
  3. 通过损失函数最小化求目标函数的各个参数

一 、构造hypothesis

逻辑回归的H可以看做是一个线性回归方程的结果经过一个sigmoid函数得到的结果,线性回归方程可以用如下的式子表示。

Sigmoid 函数如下,该函数又称为逻辑函数:

将式子(1)通过逻辑函数转化得到的概率即使我们的hypothesis,

函数

表示样本被预测为正例1的概率,我们很容易的得到样本被预测为正例和负例的概率如下;

上式可以合并为一个式子

二、构造损失函数

我们对预测结果的概率表示(式子(2)) 取似然函数,取似然函数就是将模型对样本的概率预测值累乘起来。得到如下的似然函数

由于该式比较麻烦涉及连乘法,所以我们对其去对数操作得到对数似然函数。

上述利用的是最大似然估计原理:极大似然估计就是就是利用已知的样本分布,找到最有可能(即最大概率)导致这种分布的参数值;或者说什么样的参数才能使我们观测到目前这组数据的概率最大。

当似然函数求得最大值时,模型能够最大可能的满足当前的样本,求最大值使用梯度向上法,我们可以对似然函数加个负号,通过求等价问题的最小值来求原问题的最大值,这样我们就可以使用极大似然估计法。

令:

这样我们就能得到损失函数的最终形式

即等价于

三、通过梯度下降法求参数

的更新式

我们下图为推倒式,面试推倒的时候可以不写下标(假设我们使用随机梯度下降法),这样可以使推导式更简洁。

求梯度:

回归分析常量_【模型篇】逻辑回归(Logistic Regression)_第2张图片

这里需要提一下的是,sigmoid函数有如下性质,在上述推倒的第三行中可以看到:

最终更新式:
为学习率

LR在确定了模型的形式后,通过最大似然估计法来实现最小散度从而求出模型参数。

为什么LR模型使用Sigmoid函数

首先要说明的是,Sigmoid不是被选择出来的,而是被推导出来后给它署名Sigmoid.

逻辑回归模型是一种广义线性模型,而逻辑回归满足伯努利分布,伯努利分布是指数分布族的一种,而指数族分布有如下的形式:

  • 是参数
  • 是充分统计量(充分统计量就是可以确定一个分布的统计量,比如平均值和方差这两个充分统计量可以确定一个正态分布),(一般情况下
  • ,是个归一化的常量,保证

伯努利分布形式如下:

根据伯努利分布的结果,逻辑回归的广义线性模型的形式可写为:

我们现在的目标就是求

的表达式:

写成如下的形式

让逻辑回归的表达式满足伯努利分布的指数分布族表达式,即(1)式子,即让:

那么:

  • (1)

从(1)式子可以推出

即Sigmoid函数的形式。

所以,LR是用Sigmoid 函数不是因为,LR选择了它当作越阶函数,而是根据线性模型和指数分布族的性质推导出了它。

为什么LR模型损失函数使用交叉熵不用均方差

LR的基本形式如下

假如一元逻辑回归, 那么预测值

其中

是sigmoid 函数

如果使用均方差作为损失函数

其中

是模型的预测值,
, 采用梯度下降的方法对
进行更新,那么就需要将损失函数对这两个参数进行求导:

可以看到

的更新速率与当前的预测值sigmoid函数的导数有关,sigmoid的图像如下

回归分析常量_【模型篇】逻辑回归(Logistic Regression)_第3张图片

所以,如果当前模型的输出接近0或者1时,

就会非常小,接近0,使得求得的梯度很小,损失函数收敛的很慢。

如果使用交叉熵作为损失函数

对于二分类问题,交叉熵的形式是由极大似然估计下概率的连乘然后求对数得到的:

对w求导得

可以看到,

的梯度是和当前的预测值与实际值的差有关的,没有受到sigmoid函数导数的影响,且真实值与预测值差别越大,梯度越大,更新的速度也就越快,这正是我们想要的。如果用的是均方差作为损失函数,求得的梯度受到simoid函数导数的影响.

逻辑回归与线性模型的关系

先说结论:是线性模型,但属于广义线性模型。下面说明普通线性模型和广义线性模型。

普通线性模型

普通线性模型有如下的表达式:

是未知参数,
是截距项

普通线性模型有如下特点:

  • 响应变量(
    )服从正态分布
  • 误差
    具有正态性, 与
    的变化无关
  • 具有非随机性,可测并不存在误差;
    虽然未知但不具有随机性
  • 预测量(特征)
    和对应的参数
    有对应关系,具有非随机性
  • 研究响应变量(
    )的期望,连接方式为恒等:

广义线性模型

  • 响应变量(
    )的分布从正态分布拓展到指数分布族:比如正态分布、泊松分布、二项分布、负二项分布、伽玛分布、逆高斯分布等(与上不同),这和
    不满足正态分布等价
  • 具有非随机性,可测并不存在误差;
    虽然未知但不具有随机性
  • 预测量
    和对应参数
    具有非随机性,
  • 研究响应变量(
    )的期望,不过连接方式可能多样

所以可知,逻辑回归是响应变量服从伯努利分布的广义线性模型

逻辑回归与线性回归的区别与联系

区别

  • 线性回归假设响应变量服从正态分布,逻辑回归假设响应变量服从伯努利分布
  • 线性回归优化的目标函数是均方差(最小二乘),而逻辑回归优化的是似然函数(交叉熵)
  • 线性归回要求自变量与因变量呈线性关系,而逻辑回归没有要求
  • 线性回归分析的是因变量自身与自变量的关系,而逻辑回归研究的是因变量取值的概率与自变量的概率
  • 逻辑回归处理的是分类问题,线性回归处理的是回归问题,这也导致了两个模型的取值范围不同:0-1和实数域
  • 参数估计上,都是用极大似然估计的方法估计参数(高斯分布导致了线性模型损失函数为均方差,伯努利分布导致逻辑回归损失函数为交叉熵)

联系

  • 两个都是线性模型,线性回归是普通线性模型,逻辑回归是广义线性模型
  • 表达形式上,逻辑回归是线性回归套上了一个Sigmoid函数

LR中特征相关的问题

为什么特征离散化

下面答案有些不是LR进行离散化特有的原因,而是离散化本身比较general的原因

  1. 离散特征可以one-hot, 而稀疏向量内积运算速度快,结果易存储
  2. 离散后数据鲁棒性强,不会因为数据发生一点小的变动而表现出完全不同的性质,使模型更稳定
  3. 离散后可以进行特征交叉,引入非线性特征
  4. 增强模型的表达能力,离散化后,原来的一个特征变成N个特征,加大了模型的拟合能力
  5. 特征离散后相当于简化了特征,一定程度上减轻了过拟合

共线特征对于LR模型的影响

LR模型中特征的共线性不会影响模型的最优解,但是会影响系数的稳定性。比如现在两个特征

,分别表示米和厘米,这两个长度高度共线性。

,也可以表示为

的系数发生的质的翻转,但是表达能力没有变。

所以LR模型中特征的共线性不会影响模型的最优解,但是会使得系数不稳定,从而解释性变差。

如果是出现重复特征,比如某个特征重复了100次,那么相当于把原来唯一的特征分成了一百份,这一百个特征效果和原来单个特征的效果相同。

为什么要删除共线性特征

  • 提高模型的可解释性
  • 提高模型的训练速度

特征权重的绝对值可以用来衡量特征的重要性吗

不一定,首先特征可能没有归一化,系数收到量级的影响,(1m=1cm * 100)

其次,特征间可能存在共线性,导致特征系数不稳定,可解释性差。

你可能感兴趣的:(回归分析常量,模型损失函数变化曲线图,运用高斯核模型进行最小二乘回归)