逻辑回归输出的值是真实的概率吗?

本文只在博客基础上,在三、指数分布族中有所改动。

逻辑回归作为被广泛使用的二分类模型,面试中自然是不可缺少的。但要深刻理解逻辑回归又不是那么容易的,比如说,逻辑回归输出的值是0到1之间的值,这个值是真实的概率吗?逻辑回归为什么要选择sigmoid函数的形式,而不是其他将数值映射到0到1之间的形式?本文试图给出一个尽可能简单明了的分析。

一、从一个例子开始


假设你在一家金融公司工作,老板交给你一个任务,建一个模型,用来预测一个借款人是否会违约,公司拥有一个借款人的特征数据,比如年龄。

将是否违约作为标签变量y,0表示没有违约,1表示违约。在给定特征x的情况下,我们假设 y 是一个服从伯努利分布的二值随机变量。注意,这是我们做的第一个假设哦!从某种意义上讲,模型准不准,首先要看假设合不合理。

我们的任务用数学语言描述就是,寻找一个模型,输入x后,可以告诉我们y所服从的随机分布的参数,知道参数后,就可以计算y的期望作为预测。

具体到违约预测,上面所说的随机分布就是指伯努利分布,该分布的参数就是Φ=P(y=1),同时也是该分布的期望。

请认真体会一下我们的思路:

  • 1、对每一个确定的x,y仍然是一个随机变量
  • 2、该随机变量服从某个随机分布
  • 3、努力求出这个随机分布的参数
  • 4、求出该随机分布的期望
  • 5、将期望作为预测值

二、从更高的层次看待伯努利分布

那么,如何根据x求出y所属的伯努利分布的参数Φ呢。

直接看,似乎没什么思路,我们需要换个角度。

伯努利分布实际上属于某一大类分布中的一种情况。这一大类分布就是指数分布族。
这就好比, x + 1=0是一个方程,但从更广泛的角度来看,它只是 ax + b = 0一次方程的一种具体情况而已。

从指数分布族的角度来分析,我们很容易构建起x与伯努利分布参数的联系。

三、指数分布族

为了符号统一,我们设x为features,y为outcome,θ为参数。
指一组分布函数,满足以下公式:

f ( y ∣ θ ) = h ( y ) e x p ( ( η ( θ ) T ( y ) − A ( θ ) ) , θ f(y|\theta)=h(y)exp((\eta(\theta) T(y)-A(\theta)),\theta f(yθ)=h(y)exp((η(θ)T(y)A(θ))θ为自然参数,T(y)为充分统计量,通常T(y)=y,A(θ)为正则化项。

也就是说,对于一类指数分布族,如果能确定h(y), T(y), A(θ),就可以确定一类分布。

Bernoulli distribution(伯努利分布)

又叫0-1分布和两点分布。

f Y ( y ) = p y ( 1 − p ) 1 − y , y ∈ { 0 , 1 } f_Y(y)=p^y(1-p)^{1-y},y \in\{0,1\} fY(y)=py(1p)1y,y{0,1}

n重伯努利分布,又叫二项分布(binomial distribution):

f ( k , n , p ) = P ( Y = k ) = ( k n ) p k ( 1 − p ) n − k f(k,n,p)=P(Y=k)=(^n_k)p^k(1-p)^{n-k} f(k,n,p)=P(Y=k)=(kn)pk(1p)nk

Bernoulli 到 exponential family 的推导:

设参数 ϕ = P ( y = 1 ) \phi=P(y=1) ϕ=P(y=1),(注意下面的;等价于 |,在这里是指先假定未知参数 ϕ \phi ϕ为确定值,强调的是关于y的概率也可以记为 P ( Y = y ; ϕ ) , P ( Y = y ∣ ϕ ) P(Y=y;\phi),P(Y=y|\phi) P(Y=y;ϕ),P(Y=yϕ)),所以
P ( y ; ϕ ) = ϕ y ( 1 − ϕ ) 1 − y = e x p ( l o g ( ϕ y ( 1 − ϕ ) 1 − y ) ) P(y;\phi)=\phi^y(1-\phi)^{1-y}=exp(log(\phi^y(1-\phi)^{1-y})) P(y;ϕ)=ϕy(1ϕ)1y=exp(log(ϕy(1ϕ)1y))
= e x p ( y l o g ϕ + ( 1 − y ) l o g ( 1 − ϕ ) ) =exp(ylog\phi+(1-y)log(1-\phi)) =exp(ylogϕ+(1y)log(1ϕ))

= e x p ( ( l o g ϕ 1 − ϕ ) y + l o g ( 1 − ϕ ) ) =exp((log\frac{\phi}{1-\phi})y+log(1-\phi)) =exp((log1ϕϕ)y+log(1ϕ))

带入到指数分布族公式,则 h ( y ) = 1 , T ( y ) = y , η ( θ ) = l o g ϕ 1 − ϕ , A ( θ ) = − l o g ( 1 − ϕ ) h(y)=1,T(y)=y,\eta(\theta)=log\frac{\phi}{1-\phi},A(\theta)=-log(1-\phi) h(y)=1,T(y)=y,η(θ)=log1ϕϕ,A(θ)=log(1ϕ)

logistic回归 为什么用Bernoulli和sigmoid

接着上面的公式,为了演示方便,我们暂记 η = η ( θ ) \eta=\eta(\theta) η=η(θ),所以

η = l o g ϕ 1 − ϕ \eta=log\frac{\phi}{1-\phi} η=log1ϕϕ

e x p ( η ) = ϕ 1 − ϕ exp(\eta)=\frac{\phi}{1-\phi} exp(η)=1ϕϕ

e x p ( η ) − ϕ e x p ( η ) = ϕ exp(\eta)-\phi exp(\eta)=\phi exp(η)ϕexp(η)=ϕ

e x p ( η ) = ( 1 + e x p ( η ) ) ϕ exp(\eta)=(1+exp(\eta))\phi exp(η)=(1+exp(η))ϕ

ϕ = e x p ( η ) 1 + e x p ( η ) = 1 1 + e x p ( − η ) \phi=\frac{exp(\eta)}{1+exp(\eta)}=\frac{1}{1+exp(-\eta)} ϕ=1+exp(η)exp(η)=1+exp(η)1,可见, ϕ \phi ϕ η \eta η 的关系是sigmoid函数。

A ( θ ) = − l o g ( 1 − 1 1 + e x p ( − η ) ) = − l o g ( 1 1 + e x p ( η ) ) = l o g ( 1 + e x p ( η ) ) A(\theta)=-log(1-\frac{1}{1+exp(-\eta)})=-log(\frac{1}{1+exp(\eta)})=log(1+exp(\eta)) A(θ)=log(11+exp(η)1)=log(1+exp(η)1)=log(1+exp(η))

接着,我们假设 η \eta η x x x满足线性关系,即 η ( θ ) = θ x \eta(\theta)=\theta x η(θ)=θx

ϕ = 1 1 + e x p ( − θ x ) \phi=\frac{1}{1+exp(-\theta x)} ϕ=1+exp(θx)1

A ( θ ) = l o g ( 1 + e x p ( θ x ) ) A(\theta)=log(1+exp(\theta x)) A(θ)=log(1+exp(θx))

因此,若假设1.y服从Bernoulli分布(只有分类问题0,1值,经常会选择该假设) 2. η \eta η x x x满足线性关系,则对该组数据的训练过程为:

  • 对一个x,根据 θx算出η

  • 根据η算出Φ

  • 因为Φ既是伯努利分布的唯一参数,也是该分布的期望,所以将Φ作为预测值。

  • 计算Φ与真实的标签y之间的误差loss。(通常用交叉熵)

  • 通过SGD来更新θ,降低loss。

显然这正是我们思考用logistic回归的思考过程。在单分类问题中,y只有0,1值,我们很容易想到Bernoulli分布,而使用伯努利分布,需要先将其概率密度函数转化为只有x的关于y的函数,也就是转化为指数分布族的形式,得出的式子就是Logistic回归。

四、总结

可见,逻辑回归模型之所以是sigmoid 的形式,源于我们假设y服从伯努利分布,伯努利分布又属于指数分布族,经过推导,将伯努利分布变成指数分布族的形式后。我们发现伯努利分布的唯一参数Φ与指数分布族中的参数η具有sigmoid函数关系,于是我们转而求η与x的关系,此时,我们又假设η与x具有线性关系。
至此,找到了我们要用的模型的样子,也就是逻辑回归。

回答文章开头的问题,逻辑回归输出的到底是不是概率呢?答案是如果你的情况满足本文所说的两个假设,那么你训练模型的过程,就确实是在对概率进行建模。

这两个假设并不是那么容易满足的。所以,很多情况下,我们得出的逻辑回归输出值,无法当作真实的概率,只能作为置信度来使用。

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