7.1 逻辑回归算法的学习笔记

逻辑回归(Logistic Regression,LR)。在Kaggle竞赛的统计中,LR算法以63.5%的出产率,荣获各领域中“出场率最高的算法”这一殊荣。在实际场景中,逻辑回归同样应用广泛,大到国家各项经济政策的制定,小到计算广告CTR,都能看到LR算的身影。

除了应用广泛外,LR的建模过程还体现了数据建模中很重要的思想:对问题划分层次,并利用非线性变换和线性模型的组合,将未知的复杂问题分解为已知的简单问题。因此,我们可以说:理解好逻辑回归的细节,就掌握了数据建模的精髓。

1.什么是逻辑回归

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

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

  • 因变量 y i y_i yi和自变量 x i x_i xi之间呈线性相关。
  • 自变量 x i x_i xi与干扰项 ε i \varepsilon_i εi相互独立。
  • 没被线性模型捕捉到的随机因素 ε i \varepsilon_i εi服从正态分布。

从理论上来说,任何数据放在任何模型里都会得到相应的参数估计,进而通过模型对数据进行预测。但是这并不一定能保证模型效果,有时会得到“错且无用”的模型,因此建模的过程中需要不断提出假设和检验假设。

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

有些算法,表面上叫“XX回归”,背地里却是解决分类问题的。

其原理是将样本的特征和样本发生的概率联系起来,即,预测的是样本发生的概率是多少。由于概率是一个数,因此被叫做“逻辑回归”。

在线性回归算法的例子中,我们进行房价预测得到的结果值 y ^ = f ( x ) \hat y=f(x) y^=f(x),就是我们预测的房价,是一个数值。

但是我们在逻辑回归算法中,得到的预测值是一个概率,然后在概率的基础上多做一步操作,得到分类的结果。比如某银行使用逻辑回归做风控模型,先设置一个阈值0.5,如果得到它逾期的概率大于0.5,就不放款;否则就放款。对于“放款” or “不放款”来说,实际上是一个标准的分类问题。
p ^ = f ( x ) y ^ = { 0 , p ^ ≤ 0.5 1 , p ^ > 0.5 \hat p=f(x) \qquad \hat y=\begin{cases} 0, & \hat p \leq 0.5\\ 1, & \hat p> 0.5 \end{cases} p^=f(x)y^={0,1,p^0.5p^>0.5

通过这个小例子我们可以看到,在回归问题上再多做一步,就可以作为分类算法来使用了。逻辑回归只能解决二分类问题,如果是多分类问题,LR本身是不支持的。

对于线性回归来说,通过传递的自变量x来计算预测值: y ^ = f ( x ) \hat y=f(x) y^=f(x)。其中实际上就是参数与样本的矩阵相乘, y ^ = θ T ⋅ x b \hat y=\theta^T \cdot x_b y^=θTxb。那我们可不可以找到一组参数 θ \theta θ,与特征矩阵相乘,直接得到表示概率的结果呢?

单单从应用的角度来说,是可以的,但是并不好。这是因为线性回归得到值是没有限制的,值域从负无穷到正无穷的值。而对于概率来说,其值域为[0,1],是有限制的。如果直接使用线性回归得到的结果,使得最终拟合的结果可信程度较差。

那么下面我们就看一看,逻辑回归背后的数学原理。

2. LR算法数学推导

2.1 决策背后的博弈

逻辑回归使用什么样的方式来得到一个事件发生的概率值的呢?分类的背后又是什么呢?

以银行理财产品营销场景为例,对于银行来说,客户只有“买”和“不买”两种行为,但是这个行为实际上是客户在接到营销行为,如电话营销、短信营销之后,经过内心博弈产生的最终结果。

客户为什么会做出“买”或“不买”这样的被分类的行为?如果客户手里有一笔暂时不会动用的闲钱,且他希望能够通过投资行为获利,并且对盈利效果表示认可,则客户会考虑购买理财产品。但是反过来,如果客户没有钱,或者他有其他更好的投资渠道,或者厌恶投资风险,那么客户就不会购买。从经济学的角度来说,购买理财产品这一行为,既能给客户带来正效用,也能给客户带来负效用。当客户主观认为正效用大于负效用时,可就是购买行为带来的整体效用大于0时,客户就会购买,反之则不然。

2.2 博弈中的隐含变量

那么我们从数学角度出发,分析上述场景:假设有自变量集合 X = ( x 1 , x 2 , . . . , x k , 1 ) X=(x_1,x_2,...,x_k,1) X=(x1,x2,...,xk,1),这些参数表示这种特征,决定购买行为对客户的效用,包括正效用 y ∗ y^* y和负效用 y ∼ y^{\sim} y。我们将客户的购买行为记为y,其中y=1表示客户购买理财产品;y=0表示客户没有购买。于是可以得到下面的公式:
y ∗ = f ( X ) ,   y ∼ = g ( X ) ,   y = { 1 , y ∗ > y ∼ 0 , y ∗ ≤ y ∼ y^*=f(X),\ y^{\sim}=g(X),\ y=\begin{cases} 1, & y^* > y^{\sim}\\ 0, & y^* \leq y^{\sim} \end{cases} y=f(X), y=g(X), y={1,0,y>yyy

如果,我们假设正负效用函数与自变量特征参数成线性相关,则可以得出:$ y^{*}=X_{i} \varphi+\theta_{i}, \quad y^{\sim}=X_{i} \omega+\tau_{i} 。 其 中 。其中 \theta_{i},\tau_{i}$是相互独立的随机变量,且都服从正态分布。

在得到正负效用线性函数之后,就可以用正效用减去负效用的解是否大于0作为分类依据。令$ z=y^{*}- y^{\sim}, \gamma=\varphi-\omega, \epsilon=\theta-\tau , 则 可 以 得 到 : ,则可以得到: z=X\gamma+\epsilon$。如果我们将其转换为分类问题,则可以得到阶梯函数如下:
y = { 1 X γ + ϵ > 0 0 X γ + ϵ ≤ 0 y=\left\{\begin{array}{ll}1 & X \gamma+\epsilon>0 \\ 0 & X \gamma+\epsilon \leq 0\end{array}\right. y={10Xγ+ϵ>0Xγ+ϵ0

更进一步,我们将上面的函数转变为求概率,即客户购买理财产品的概率如下:
P ( y = 1 ) = P ( X γ + ϵ > 0 ) = P ( ϵ > − X γ ) = 1 − P ( ϵ ≤ − X γ ) = 1 − F ϵ ( − X γ ) P(y=1)=P(X \gamma+\epsilon>0)=P(\epsilon>-X \gamma)=1-P(\epsilon \leq-X \gamma)=1-F_{\epsilon}(-X \gamma) P(y=1)=P(Xγ+ϵ>0)=P(ϵ>Xγ)=1P(ϵXγ)=1Fϵ(Xγ)

其中, F ϵ F_{\epsilon} Fϵ是随机变量的累积分布函数, P ( y = 1 ) P(y=1) P(y=1)表示客户购买的比例。

这个模型在学术上被称作是probit回归(虽然是名字中有“回归”两个字,但是实际上解决的还是分类问题)。

在模型搭建的过程中,我们假设了客户内心博弈的正负效用变量: y ∗ , y ∼ y^*, y^{\sim} y,y,因此这类隐藏变量模型(latent variable model);而正负效用变量: y ∗ , y ∼ y^*, y^{\sim} y,y被称为隐藏变量(latent variable)。

由此可见,对于一个分类问题,由于“窗口效用”,我们只能看见客户的购买行为,但是在分类的背后,是隐藏变量之间的博弈,我们通过搭建隐藏变量的模型,来求出客户购买的概率。

2.3 sigmoid函数与逻辑回归

在上一节我们得到了probit回归在数学上是比较完美的,但是正态分布的累积分布函数 F ϵ F_{\epsilon} Fϵ,其表达形式很复杂,且没有解析表达式。因此直接在probit回归上做参数估计是比较困难的。但是好在我们可以对其做近似,让其在数学上更加简洁。

此时,神奇的数学家们发现:正态分布在线性变换下保持稳定,而逻辑分布可以很好地近似正态分布。因此可以使用标准逻辑分布的累积分布函数 σ ( t ) \sigma(t) σ(t)来替换正态分布的累积分布函数 F ϵ F_{\epsilon} Fϵ

标准逻辑分布的概率密度函数为$ f(x)=\frac{e{-x}}{\left(1+e{-x}\right)^{2}} $,对应的积累分布函数为:
σ ( t ) = 1 1 + e − t \sigma(t)=\frac{1}{1+e^{-t}} σ(t)=1+et1
在学术界被称为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)。

两种不同的效用函数(假定他们都满足线性回归模型的假设)相互竞争时,其中某一方最终胜出的概率分布在数学上可近似为sigmoid函数。通俗讲:sigmoid函数表述了某一方竞争胜出的概率。

将效用函数之差(同样是线性回归模型)带入sigmoid函数中,当t>0时,得到的结果是概率值p>0.5;当t<0时,得到的结果是p<0.5。因此,实际上我们得到是这样的公式:
p ^ = σ ( θ T ⋅ X b ) = 1 1 + e − θ T ⋅ X b y ^ = { 1 p ^ ≥ 0.5 0 p ^ ≤ 0.5 \hat{p}=\sigma\left(\theta^{T} \cdot X_{b}\right)=\frac{1}{1+e^{-\theta^{T} \cdot X_{b}}} \quad \hat{y}=\left\{\begin{array}{ll}1 & \hat{p} \geq 0.5 \\ 0 & \hat{p} \leq 0.5\end{array}\right. p^=σ(θTXb)=1+eθTXb1y^={10p^0.5p^0.5

至此,大名鼎鼎的逻辑回归模型(logit regression)如下,其中X表示客户特征, θ \theta θ表示模型参数:
P ( Y = 1 ) = 1 1 + e − θ T ⋅ X b P(Y=1)=\frac{1}{1+e^{-\theta^{T} \cdot X_{b}}} P(Y=1)=1+eθTXb1

总结

在本篇文章中,我们学习了逻辑回归的算法模型。

首先,逻辑回归是解决分类问题的,本质是求概率再分类。在分类结果的背后是隐藏变量的博弈,我们认为隐藏变量与特征是线性相关的,因此就可以对隐藏变量之差求概率(得到随机变量的累积分布函数),得到probit回归模型。为了使数学公式更为简单,使用sigmoid函数去近似,最终得到逻辑回归模型:
p ^ = σ ( θ T ⋅ X b ) = 1 1 + e − θ T ⋅ X b y ^ = { 1 p ^ ≥ 0.5 0 p ^ ≤ 0.5 \hat{p}=\sigma\left(\theta^{T} \cdot X_{b}\right)=\frac{1}{1+e^{-\theta^{T} \cdot X_{b}}} \quad \hat{y}=\left\{\begin{array}{ll}1 & \hat{p} \geq 0.5 \\ 0 & \hat{p} \leq 0.5\end{array}\right. p^=σ(θTXb)=1+eθTXb1y^={10p^0.5p^0.5

根据建模过程,我们已经得到了逻辑回归模型,下一步就是找到损失函数,去尽可能地拟合数据。

那么对于给定的样本数据集X,y,我们如何找到一组参数 θ \theta θ,使得用这样的方式,可以最大程度获得样本数据集X对应的分类输出y?

下一篇就介绍逻辑回归的损失函数。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值