机器学习基础之逻辑回归

机器学习基础之逻辑回归算法

本章学习重点:

逻辑回归:损失函数、梯度、决策边界
实践部分:代码实现以及sklearn逻辑回归

1. 什么是逻辑回归算法

逻辑回归(Logistic Regression,LR)。在Kaggle竞赛的统计中,LR算法以63.5%的出产率,荣获各领域中“出场率最高的算法”这一殊荣。在实际场景中,逻辑回归同样应用广泛,大到国家各项经济政策的制定,小到计算广告CTR,都能看到LR算的身影。
除了应用广泛外,LR的建模过程还体现了数据建模中很重要的思想:对问题划分层次,并利用非线性变换和线性模型的组合,将未知的复杂问题分解为已知的简单问题。因此,我们可以说:理解好逻辑回归的细节,就掌握了数据建模的精髓。

1.1 线性回归能解决分类问题吗

其实,线性回归是不能解决分类问题的。因为我们在使用线性回归模型时,我们实际上做了3个假设(实际上有更多的假设,这里只讨论最基本的三个):

  • 因变量和自变量之间呈线性相关。
  • 自变量与干扰项相互独立。
  • 没被线性模型捕捉到的随机因素服从正态分布。

1.2 用逻辑回归解决分类问题

其原理是将样本的特征和样本发生的概率联系起来,即,预测的是样本发生的概率是多少。由于概率是一个数,因此被叫做“逻辑回归。” 在线性回归的例子中,是进行房价的预测即一个数值,但是在逻辑回归算法中,得到的预测值是一个概率,然后在概率的基础上多做一个操作得到分类的结果。比如某银行使用逻辑回归做风控模型,先设置一个阈值0.5,如果得到它逾期的概率大于0.5,就不放款;否则就放款。对于“放款” or “不放款”来说,实际上是一个标准的分类问题。
在这里插入图片描述
通过这个小例子我们可以看到,在回归问题上再多做一步,就可以作为分类算法来使用了。逻辑回归只能解决二分类问题,如果是多分类问题,LR本身是不支持的。
那么线性回归能否直接表示概率结果呢?单单从应用的角度来说,是可以的,但是并不好。这是因为线性回归得到值是没有限制的,值域从负无穷到正无穷的值。而对于概率来说,其值域为[0,1],是有限制的。如果直接使用线性回归得到的结果,使得最终拟合的结果可信程度较差。

1.3 sigmoid函数与逻辑回归

sigmoid函数是在数据科学领域,特别是神经网络和深度学习领域中非常重要的函数!其图像如下图所示,呈S状,因此也被称为“S函数”。当t趋近于正无穷时, e − t e^{-t} et趋近于0, σ ( t ) \sigma(t) σ(t)则趋近于1;当t趋近于负无穷时, e − t e^{-t} et趋近于正无穷, σ ( t ) \sigma(t) σ(t)则趋近于0。因此该函数的值域为(0,1)。
机器学习基础之逻辑回归_第1张图片
两种不同的效用函数(假定他们都满足线性回归模型的假设)相互竞争时,其中某一方最终胜出的概率分布在数学上可近似为sigmoid函数。通俗讲:sigmoid函数表述了某一方竞争胜出的概率。
将效用函数之差(同样是线性回归模型)带入sigmoid函数中,当t>0时,得到的结果是概率值p>0.5;当t<0时,得到的结果是p<0.5。因此,实际上我们得到是这样的公式:
在这里插入图片描述
至此,大名鼎鼎的逻辑回归模型(logistic regression)如下,其中表示客户特征,表示模型参数:
在这里插入图片描述

1.4 总结

首先,逻辑回归是解决分类问题的,本质是求概率再分类。在分类结果的背后是隐藏变量的博弈,我们认为隐藏变量与特征是线性相关的,因此就可以对隐藏变量之差求概率(得到随机变量的累积分布函数),得到probit回归模型。为了使数学公式更为简单,使用sigmoid函数去近似,最终得到逻辑回归模型:
在这里插入图片描述
根据建模过程,我们已经得到了逻辑回归模型,下一步就是找到损失函数,去尽可能地拟合数据。
那么对于给定的样本数据集X,y,我们如何找到一组参数,使得用这样的方式,可以最大程度获得样本数据集X对应的分类输出y?

2.逻辑回归的本质及其损失函数的推导、求解

一句话总结逻辑回归:

逻辑回归假设数据服从伯努利分布,通过极大似然函数的方法,运用梯度下降来求解参数,来达到将数据二分类的目的。

2.1 逻辑回归的损失函数

由于已知 θ T . x b \theta^T.x_b θT.xb 是估计值,于是用估计值与真值的差来度量模型的好坏。使用MSE(差值的平方和再平均)作为损失函数。然后就可以通过导数求极值的方法,找到令损失函数最小的 θ \theta θ了。
那么在逻辑回归中,解决思路也大致类似。
逻辑回归和线性回归最大的区别就是:逻辑回归解决的是分类问题,得到的y要么是1,要么是0。而我们估计出来的p是概率,通过概率决定估计出来的p到底是1还是0。因此,也可以将损失函数分成两类:
如果给定样本的真实类别y=1,则估计出来的概率p越小,损失函数越大(估计错误)
如果给定样本的真实类别y=0,则估计出来的概率p越大,损失函数越大(估计错误)
那么将用什么样的函数表示这两种情况呢,可以使用如下函数:
机器学习基础之逻辑回归_第2张图片
以上是对于单个样本的误差值,那么求整个集合内的损失可以取平均值:
在这里插入图片描述
然后,我们将p替换成sigmoid函数,得到逻辑回归的损失函数如下:
在这里插入图片描述
这个损失函数是没有标准方程解的,因此在实际的优化中,我们往往直接使用梯度下降法来不断逼近最优解。

2.3 损失函数的梯度

对损失函数求导即如下式:
在这里插入图片描述
逻辑回归的损失函数经过梯度下降法对一个参数进行求导,得到结果如下:
在这里插入图片描述
机器学习基础之逻辑回归_第3张图片

参考文献:
逻辑回归算法是如何炼成的

你可能感兴趣的:(机器学习)