当前位置:   article > 正文

One PUNCH Man——LR逻辑回归_lr逻辑回归介绍

lr逻辑回归介绍

引言

LR算法可能不像随机森林、SVM、神经网络、GBDT等分类算法那么复杂那么高深的样子,可是绝对不能小看这个算法,因为它有几个优点是那几个算法无法达到的。
一是逻辑回归的算法已经比较成熟,预测较为准确;二是模型求出的系数易于理解,便于解释,不属于黑盒模型,尤其在银行业,80%的预测是使用逻辑回归;三是结果是概率值,可以做ranking model;四是训练快
当然它也有缺点,分类较多的都不是很适用;对于自变量的多重共线性比较敏感,所以需要利用因子分析或聚类分析来选择代表性的自变量;另外预测结果呈现S型,两端概率变化小(在上一节也说过),中间概率变化大比较敏感,导致很多区间的变量的变化对目标概率的影响没有区分度,无法确定阈值。下面我先具体介绍下这个模型。

LR介绍

首先要搞清楚当你的目标变量是分类变量时,才会考虑逻辑回归,并且主要用于两分类问题。举例来说医生希望通过肿瘤的大小x1、长度x2、种类x3等等特征来判断病人的这个肿瘤是恶性肿瘤还是良性肿瘤,这时目标变量y就是分类变量(0良性肿瘤,1恶性肿瘤)。显然我们希望像保留像线性回归一样可以通过一些列x与y之间的线性关系来进行预测,但是此时由于Y是分类变量,它的取值只能是0,1,或者0,1,2等等,不可能是负无穷到正无穷,这个问题怎么解决呢?
对于二分类问题,此时引入了一个sigmoid函数,这个函数的性质,非常好的满足了,x的输入可以是负无穷到正无穷,而输出y总是[0,1],并且当x=0时,y的值为0.5,以一种概率的形式表示. x=0的时候y=0.5 这是决策边界。当你要确定肿瘤是良性还是恶性时,其实我们是要找出能够分开这两类样本的边界,叫决策边界。

sigmoid函数:https://blog.csdn.net/No_Game_No_Life_/article/details/89511056


sigmoid函数 f ( x ) = 1 1 + e − x f(x)=\frac{1}{1+e^{-x}} f(x)=1+ex1
对于一个给定的x,可以通过确定的函数计算得出函数值 f ( x ) f(x) f(x),如果 f ( x ) f(x) f(x)=0.7,则说明,有70%的概率是恶性肿瘤。

不过上面的公式过于简单,因为决定性的因素 x i x_i xi可能不止一个,每个因素的权重 θ i \theta _i θi也不一定相同,可以把 x x x θ \theta θ理解成为参数向量。向量之间的乘积,我们用下面的公式表示:
h θ ( x ) = g ( θ 0 + θ 1 x 1 + θ 2 x 2 + . . . ) h_\theta (x)=g(\theta _0+\theta _1x_1+\theta _2 x_2+...) hθ(x)=g(θ0+θ1x1+θ2x2+...)
好了,原始的sigmoid函数就应该这样表示:
f ( x ) = 1 1 + e − h θ ( x ) f(x)=\frac{1}{1+e^{-h_\theta (x)}} f(x)=1+ehθ(x)1

与之前我们学习的线性回归(https://blog.csdn.net/No_Game_No_Life_/article/details/89512688 ) 相比,因为它引入了非线性映射,将线性回归值域映射到(0,1)之间,有助于直观的做出预测类型的判断:大于等于0.5表示阳性,小于0.5表示阴性。

决策边界

经过上面的讲解,我们应该对LR要做什么,有个一个大体上的把握。接下来,我们在深入一下,介绍一下决策边界(Decision Boundary的概念,这将会有助于我们能更好的理解LR的假设函数究竟是在计算什么。
我们知道sigmoid函数的图像,想象一下,在什么时候,我们能取到阳性的结果呢(函数值大于0.5)?
在这里插入图片描述
没错,就是上图的z的值大于0的时候,也就是说:
h θ ( x ) = g ( θ 0 + θ 1 x 1 + θ 2 x 2 + . . . ) h_\theta (x)=g(\theta _0+\theta _1x_1+\theta _2 x_2+...) hθ(x)=g(θ0+θ1x1+θ2x2+...)的函数值大于0的时候。
于是我们可以得到这样的关系式子:

在这里插入图片描述
下面我们再举一个例子,假设我们有许多样本,并在图中表示出来了,并且假设我们已经通过某种方法求出了LR模型的参数(如下图)。也就是假设我们知道了向量 θ T \theta ^T θT的值为 [ − 3 , 1 , 1 ] T [-3,1,1]^T [3,1,1]T
在这里插入图片描述
所以有:
在这里插入图片描述
其临界线也得出来了: x 1 + x 2 = 3 x_1+x_2=3 x1+x2=3
所以,这时,直线上方所有样本都是正样本y=1,直线下方所有样本都是负样本y=0。因此我们可以把这条直线成为决策边界。
同理,对于非线性可分的情况,我们只需要引入多项式特征就可以很好的去做分类预测,如下图:
在这里插入图片描述

θ T \theta ^T θT怎么解(gai,三声)

要求 θ T \theta ^T θT怎么解,可以理解为求参数的权值。我们这里先介绍一个概念代价函数(似然函数)。

代价函数和梯度下降

梯度下降是一个用于求解函数最小值的算法。在机器学习问题上,我们通常会得出模型的代价函数,用于评估模型与真实情况之间的差距。通常我们在确定模型时,会将代价函数取最小时的参数值作为我们模型的最终参数。而,在"找出使得代价函数取最小时的参数值"这一重要步骤的求解过程中,我们通常会见到梯度下降大法的身影。梯度下降法因其思想简单,易于实现,并且收敛效果也很不错的质地,使得它在机器学习领域混的那是相当好!

在这里插入图片描述
假设上面这个图是一个山脉的地理图,如果你站在红色区域部分(最高点),你要快速下山应该怎么办?应该每一步都朝着坡度最陡的地方迈过去局部最优解)。我们计算代价函数 J ( θ ) J(\theta) J(θ)也是这样的,寻找一个能让代价函数值下降最多的参数的组合。我们需要找到一个凸函数的 J ( θ ) J(\theta) J(θ),拥有一个局部最小值,从而求出全局最小值。

具体如何求解代价函数 J ( θ ) J(\theta) J(θ)呢。
在上一节的线性回归里,我们是这样表示一元一次方程的:
Y = a + b X Y=a+bX Y=a+bX
其平方误差为: ∑ i = 1 n ( a + b X i − Y ) 2 \sum_{i=1}^{n}(a+bX_i-Y)^2 i=1n(a+bXiY)2
我们上一节的任务就是找到a,b的值来使得这个误差最小,我们通过各种变换,求出了a,b的式子,是关于 X ‾ \overline X X Y ‾ \overline Y Y的。
这里我们定义一元一次的代价函数为:
J ( a , b ) = 1 2 n ∑ i = 1 n ( a + b X i − Y ) 2 J(a,b)=\frac{1}{2n}\sum_{i=1}^{n}(a+bX_i-Y)^2 J(a,b)=2n1i=1n(a+bXiY)2
为什么要加一个1/2呢?主要是为了方便求导,因为我们的目标是求一个最小的 J ( a , b ) J(a,b) J(a,b),用导数就对了。
对了,这里的 J ( a , b ) J(a,b) J(a,b)就是前面所说的 J ( θ ) J(\theta) J(θ)

梯度下降和代价函数,因为我是初学,就简单的理解到这里。

求解逻辑回归的代价函数

我们粗暴的将逻辑回归的假设函数 f ( x ) = 1 1 + e − h θ ( x ) f(x)=\frac{1}{1+e^{-h_\theta (x)}} f(x)=1+ehθ(x)1带入一元一次方程的代价函数中,我们得到的 J ( θ ) J(\theta) J(θ)是一个非凸函数,如下图:
在这里插入图片描述
这样的函数拥有多个局部极小值,这就会使得我们在使用梯度下降法求解函数最小值时,所得到的结果并非总是全局最小,而有更大的可能得到的是局部最小值。这样解释应该理解了吧。虽然前面的解释否定了我们猜想,但是也给我们指明了思路,那就是我们现在要做的就是为LR找到一个凸的代价函数! 在逻辑回归中,我们最常用的损失函数为对数损失函数,对数损失函数可以为LR提供一个凸的代价函数,有利于使用梯度下降对参数求解。为什么对数函数可以做到这点呢? 我们先看一下对数函数的图像:
在这里插入图片描述
对数函数的性质大家都有所了解,在(0,1)上,当 z = 1 z=1 z=1时, l o g z = 0 logz=0 logz=0;当 z − > 0 z->0 z>0时, l o g z − > ∞ logz->∞ logz>。这就可以和代价函数联系起来,因为在预测分类中,当算法正确预测的时候,其代价函数的值应该是0;当错误预测的时候,其代价可看作无穷大来惩罚我们的学习算法,使其不要轻易预测错误。所以这个函数很符合我们选择代价函数的要求。
因此,我们将其应用与LR中:
在这里插入图片描述
对于惩罚函数Cost的这两种情况:
在这里插入图片描述
当实际标签和预测结果相同时,即 y y y h θ ( x ) h_\theta(x) hθ(x)同时为1或0,此时代价最小为0; 当实际标签和预测标签恰好相反时,也就是恰好给出了错误的答案,此时惩罚最大为正无穷。现在应该可以感受到对数损失之于LR的好了。

为了可以更加方便的进行后面的参数估计求解,我们可以把Cost表示在一行:
在这里插入图片描述
这与我们之前给出的两行表示的形式是等价的。因此,我们的代价函数最终形式为:(1)
在这里插入图片描述
此时的损失函数变成了凸函数,Theta的求解,就是梯度下降法求最小值,此时加入的正则化项,是解决过拟合问题。(过拟合问题:如果我们的模型有非常多的特征,模型很复杂,模型对原始数据的拟合效果很好,但是丧失一般性,对新的待预测变量预测效果很差。)

接下来要做的就是使用梯度下降估计参数值或参数组合。
梯度下降算法我们之前介绍过了:(2)
在这里插入图片描述
通过求导,我们得到:
在这里插入图片描述
求解(1)(2)就可以得到。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/649177
推荐阅读
相关标签
  

闽ICP备14008679号