0x00 前言
逻辑回归(Logistic Regression,LR)。在Kaggle竞赛的统计中,LR算法以63.5%的出产率,荣获各领域中“出场率最高的算法”这一殊荣。在实际场景中,逻辑回归同样应用广泛,大到国家各项经济政策的制定,小到计算广告CTR,都能看到LR算的身影。
除了应用广泛外,LR的建模过程还体现了数据建模中很重要的思想: 对问题划分层次,并利用非线性变换和线性模型的组合,将未知的复杂问题分解为已知的简单问题 。因此,我们可以说:理解好逻辑回归的细节,就掌握了数据建模的精髓。
其实,线性回归是不能解决分类问题的。因为我们在使用线性回归模型时,我们实际上做了3个假设(实际上有更多的假设,这里只讨论最基本的三个):
从理论上来说,任何数据放在任何模型里都会得到相应的参数估计,进而通过模型对数据进行预测。但是这并不一定能保证模型效果,有时会得到“错且无用”的模型,因此建模的过程中需要不断提出假设和检验假设。
有些算法,表面上叫“XX回归”,背地里却是解决分类问题的。
其原理是将 样本的特征 和 样本发生的概率 联系起来,即, 预测的是样本发生的概率是多少。由于概率是一个数,因此被叫做“逻辑回归”。
在线性回归算法的例子中,我们进行房价预测得到的结果值,就是我们预测的房价,是一个数值。
但是我们在逻辑回归算法中,得到的预测值是一个概率,然后在概率的基础上多做一步操作,得到分类的结果。比如某银行使用逻辑回归做风控模型,先设置一个阈值0.5,如果得到它逾期的概率大于0.5,就不放款;否则就放款。对于“放款” or “不放款”来说,实际上是一个标准的分类问题。
通过这个小例子我们可以看到, 在回归问题上再多做一步,就可以作为分类算法来使用了。逻辑回归只能解决二分类问题,如果是多分类问题,LR本身是不支持的。
对于线性回归来说,通过传递的自变量x来计算预测值:。其中实际上就是参数与样本的矩阵相乘,。那我们可不可以找到一组参数,与特征矩阵相乘,直接得到表示概率的结果呢?
单单从应用的角度来说,是可以的,但是并不好。这是因为 线性回归得到值是没有限制的,值域从负无穷到正无穷的值。而对于概率来说,其值域为[0,1],是有限制的。如果直接使用线性回归得到的结果,使得最终拟合的结果可信程度较差。
那么下面我们就看一看,逻辑回归背后的数学原理。
逻辑回归使用什么样的方式来得到一个事件发生的概率值的呢?分类的背后又是什么呢?
以银行理财产品营销场景为例,对于银行来说,客户只有“买”和“不买”两种行为,但是这个行为实际上是客户在接到营销行为,如电话营销、短信营销之后,经过内心博弈产生的最终结果。
客户为什么会做出“买”或“不买”这样的被分类的行为?如果客户手里有一笔暂时不会动用的闲钱,且他希望能够通过投资行为获利,并且对盈利效果表示认可,则客户会考虑购买理财产品。但是反过来,如果客户没有钱,或者他有其他更好的投资渠道,或者厌恶投资风险,那么客户就不会购买。从经济学的角度来说,购买理财产品这一行为,既能给客户带来正效用,也能给客户带来负效用。 当客户主观认为正效用大于负效用时,可就是购买行为带来的整体效用大于0时,客户就会购买,反之则不然 。
那么我们从数学角度出发,分析上述场景:假设有自变量集合,这些参数表示这种特征,决定购买行为对客户的效用,包括正效用和负效用。我们将客户的购买行为记为y,其中y=1表示客户购买理财产品;y=0表示客户没有购买。于是可以得到下面的公式:
如果,我们 假设正负效用函数与自变量特征参数成线性相关 ,则根据可以得出:。其中是相互独立的随机变量,且都服从正态分布。
在得到正负效用线性函数之后,就可以 用正效用减去负效用的解是否大于0作为分类依据 。令,则可以得到:。如果我们将其转换为分类问题,则可以得到阶梯函数如下:
其中, 是随机变量的累积分布函数 ,表示客户购买的比例。
这个模型在学术上被称作是 probit回归 (虽然是名字中有“回归”两个字,但是实际上解决的还是分类问题)。
在模型搭建的过程中,我们假设了客户内心博弈的正负效用变量:,因此这类隐藏变量模型(latent variable model);而正负效用变量:被称为隐藏变量(latent variable)。
由此可见, 对于一个分类问题,由于“窗口效用”,我们只能看见客户的购买行为,但是在分类的背后,是隐藏变量之间的博弈,我们通过搭建隐藏变量的模型,来求出客户购买的概率 。
在上一节我们得到了probit回归在数学上是比较完美的,但是正态分布的累积分布函数,其表达形式很复杂(复杂到懒得把公式写出来),且没有解析表达式。因此直接在probit回归上做参数估计是比较困难的。但是好在我们可以对其做近似,让其在数学上更加简洁。
标准逻辑分布的概率密度函数为,对应的积累分布函数为:
在学术界被称为sigmoid函数,是在数据科学领域,特别是神经网络和深度学习领域中非常重要的函数!。其图像如下图所示,呈S状,因此也被称为“S函数”。当t趋近于正无穷时,趋近于0,则趋近于1;当t趋近于负无穷时,趋近于正无穷,则趋近于0。因此该函数的值域为(0,1)。
两种不同的效用函数(假定他们都满足线性回归模型的假设)相互竞争时,其中某一方最终胜出的概率分布在数学上可近似为sigmoid函数。通俗讲:sigmoid函数表述了某一方竞争胜出的概率。
将效用函数之差(同样是线性回归模型)带入sigmoid函数中,当t>0时,得到的结果是概率值p>0.5;当t<0时,得到的结果是p<0.5。因此,实际上我们得到是这样的公式:
在本篇文章中,我们学习了逻辑回归的算法模型。
首先,逻辑回归是解决分类问题的,本质是求概率再分类。在分类结果的背后是隐藏变量的博弈,我们认为隐藏变量与特征是线性相关的,因此就可以对隐藏变量之差求概率(得到随机变量的累积分布函数),得到probit回归模型。为了使数学公式更为简单,使用sigmoid函数去近似,最终得到逻辑回归模型:
根据建模过程,我们已经得到了逻辑回归模型,下一步就是找到损失函数,去尽可能地拟合数据。
那么对于给定的样本数据集X,y,我们如何找到一组参数,使得用这样的方式,可以最大程度获得样本数据集X对应的分类输出y?