对率回归原理及实现(logistic regression)

项目地址:https://github.com/Daya-Jin/ML_for_learner/blob/master/linear_model/LogisticRegression.ipynb
原博客:https://daya-jin.github.io/2018/10/02/LogisticRegression/

模型概述

假定有一组数据XY,其中

X= \left[ \begin{matrix} x^{(1)} \\ x^{(2)} \\ \vdots \\ x^{(m)} \\ \end{matrix} \right]

X总共包含m条数据,而每条数据x^{(i)}又可表示为:

x^{(i)}= \left[ \begin{matrix} x^{i}_{0} & x^{i}_{1} & \cdots & x^{i}_{n} \end{matrix} \right]

Y是一组向量,具体展开为:

Y= \left[ \begin{matrix} y^{(1)} \\ y^{(2)} \\ \vdots \\ y^{(m)} \\ \end{matrix} \right]

假设二分类数据服从伯努利分布,特征条件概率服从高斯分布:

P(y=1)=\phi \\ P(y=0)=1-\phi \\ P(x|y=1)=\frac{1}{\sqrt{2\pi}\sigma}exp[-\frac{(x-\mu_{1})^{2}}{2\sigma^{2}}] \\ P(x|y=0)=\frac{1}{\sqrt{2\pi}\sigma}exp[-\frac{(x-\mu_{0})^{2}}{2\sigma^{2}}] \\

给定一个样本,模型的输出为:

\begin{aligned} P(y=1|x)&=\frac{P(y=1)P(x|y=1)}{P(y=0)P(x|y=0)+P(y=1)P(x|y=1)} \\ &=\frac{1}{1+\frac{P(y=0)P(x|y=0)}{P(y=1)P(x|y=1)}} \\ &=\frac{1}{1+\frac{1-\phi}{\phi}exp[-\frac{(x-\mu_{0})^{2}}{2\sigma^{2}}+\frac{(x-\mu_{1})^{2}}{2\sigma^{2}}]} \\ &=\frac{1}{1+\frac{1-\phi}{\phi}exp\frac{2(\mu_{0}-\mu_{1})x+\mu_{1}^{2}-\mu_{0}^{2}}{2\sigma^{2}}} \\ &=\frac{1}{1+exp(\frac{\mu_{0}-\mu_{1}}{\sigma^{2}}x+\frac{\mu_{1}^{2}-\mu_{0}^{2}}{2\sigma^{2}}+\ln(\frac{1-\phi}{\phi}))} \end{aligned}

-a=\frac{\mu_{0}-\mu_{1}}{\sigma^{2}}-b=\frac{\mu_{1}^{2}-\mu_{0}^{2}}{2\sigma^{2}}+\ln(\frac{1-\phi}{\phi}),得:

P(y=1|x)=\frac{1}{1+e^{-(ax+b)}}

引入几率(odds)概念:

\begin{aligned} odds&=\frac{P(y=1|x)}{P(y=0|x)} \\ &=\frac{P(y=1|x)}{1-P(y=1|x)} \\ &=e^{ax+b} \end{aligned}

两边同时取对数:

\begin{aligned} \ln(\frac{P(y=1|x)}{P(y=0|x)})&=ax+b \end{aligned}

由此引出Logistic Regression的概念,以线性回归去拟合一个对数几率(log-odds),其模型表达式为:

\begin{aligned} \hat{y}^{(i)} &= \sigma(\theta_{0}x^{(i)}_{0}+\theta_{1}x^{(i)}_{1}+...+\theta_{n}x^{(i)}_{n}) \\ &= \sigma(x^{(i)}\theta^{T}) \\ \end{aligned}

其中,\sigma(x)为:

\sigma(x)=\frac{1}{1+e^{-x}}

其图像为:

(不支持矢量图,请移步原博客查看)

Logistic Regression实质上是将线性回归扩展到了分类任务上,并支持概率输出,其表达式为:

\hat{y}=\frac{1}{1+e^{-(x\theta^{T})}}

为了简便,上式省略了样本标号i,下同。然后经过一系列变换:

\begin{aligned} & \hat{y}= \frac{1}{1+e^{-(x\theta^{T})}}= \frac{e^{x\theta^{T}}}{1+e^{x\theta^{T}}}\\ & \frac{1}{\hat{y}} = 1+\frac{1}{e^{x\theta^{T}}} \\ & \frac{1-\hat{y}}{\hat{y}} = \frac{1}{e^{x\theta^{T}}} \end{aligned}

得:

ln\frac{\hat{y}}{1-\hat{y}}=x^{(i)}\theta^{T}

注意,由于\sigma(x)函数的作用,Logistic Regression的输出其实是一个概率,输入数据为正样本的概率,即:

\begin{aligned} \hat{y}&=P(y=1|x;\theta) \\ 1-\hat{y}&=P(y=0|x;\theta) \\ \end{aligned}

那么,参数\theta关于X的似然函数为:

\begin{aligned} L(\theta|X) &= \prod_{i}P(y=0|x;\theta)\prod_{i}P(y=1|x;\theta) \\ &= \prod_{i}\hat{y}^{y}(1-\hat{y})^{1-y} \end{aligned}

其对数似然函数为:

\begin{aligned} lnL(\theta|X) &= \sum_{i}[yln(\hat{y})+(1-y)ln(1-\hat{y})] \\ &= \sum_{i}[yln\frac{\hat{y}}{1-\hat{y}}+ln(1-\hat{y})] \\ &= \sum_{i}[y*x\theta^{T}-ln(1+e^{x\theta^{T}})] \end{aligned}

我们需要最大化似然函数,那么等价的最小化损失函数为:

Loss(\theta)=\sum_{i}[-y*x\theta^{T}+ln(1+e^{x\theta^{T}})]

对于logistic regression,同样可以使用梯度下降法来优化参数\theta。注意sigmoid函数的导数:

\begin{aligned} \frac{\partial{\sigma(x)}}{\partial{x}}&=\frac{-1}{(1+e^{-x})^{2}}\cdot(-e^{-x}) \\ &=\frac{1}{1+e^{-x}}\cdot\frac{e^{-x}+1-1}{1+e^{-x}} \\ &=\frac{1}{1+e^{-x}}\cdot(1-\frac{1}{1+e^{-x}}) \\ &=\sigma(x)\cdot(1-\sigma(x)) \\ \end{aligned}

那么在标量形式下,易推得损失函数关于参数\theta​的梯度为:

\begin{aligned} \frac{\partial{L}}{\partial{\theta}}&=-\frac{y}{\hat{y}}{\cdot}\frac{\partial{\hat{y}}}{\partial{\theta}}+\frac{1-y}{1-\hat{y}}\cdot{\frac{\partial{\hat{y}}}{\partial\theta}} \\ &=-\frac{y}{\hat{y}}{\cdot}\hat{y}(1-\hat{y}){\cdot{x}}+\frac{1-y}{1-\hat{y}}{\cdot}\hat{y}(1-\hat{y}){\cdot}x \\ &=(\hat{y}-y)x \end{aligned}

注意到logistic regression的梯度形式与linear regression是一样的,唯一的区别就在于\hat{y}的不同。

决策边界

由于Logistic Regression的输出是一个p(\hat{y}=1)的概率,那么对于二分类任务,模型对某一样本做出判别的依据就是一个概率阈值。假如概率阈值为0.5,则当模型输出f(x)>0.5时判为正样本,而当模型输出f(x)<0.5时判为负样本,此时模型的决策边界是啥呢?

回顾一下\sigma(x)的图像,\sigma(x)恰好经过(0, 0.5)这个点,并且是单增函数,那么可以看出,模型的决策边界为:

x^{(i)}\theta^{T}=\sigma(0.5)

当然,决策边界会根据自定义阈值而改变;除此之外,logistic regression也可以设置为输出连续的概率值。

实现指导

完整代码

后记

logistic regression本质上还是属于linear model的一种,那么linear model所具有的优点,logistic regression也是有的;对于缺点也同样成立。

由于logistic regression背后的概率思想,如果训练样本存在样本平衡性问题,那么就会对该模型的表现有很大的影响。直观一点来说,logistic regression的决策边界会受到样本分布密度的推挤,其决策边界会比较偏近于少数类。

logistic regression还有一个被讨论的点就是关于高维稀疏特征的。

  1. 首先,logistic regression作为一个线性模型,将特征之间做组合形成新特征是增强线性模型对非线性数据拟合能力的必要手段之一;
  2. 另外,线性模型计算简单,在高维特征下的速度也是可以接受的;
  3. 线性模型的正则化是对各个特征的权重做惩罚,不会在某一特征上产生过拟合;
  4. 最后,对特征的离散化,会增强模型对于更细粒度特征的学习能力。

注意到由对数似然得到的logistic regression损失函数可以写成:

\begin{aligned} Loss&=-\sum_{i}[y\ln(\hat{y})+(1-y)\ln(1-\hat{y})] \\ &=\sum_{i}[y\ln\frac{1}{\hat{y}}+(1-y)\ln\frac{1}{1-\hat{y}}] \\ \end{aligned}

在信息论中,H(P,Q)=\sum\limits_{i}P(i)\log\frac{1}{Q(i)}称为交叉熵,其中P为真实分布,Q为非真实分布,交叉熵可用于衡量两个分布之间的差异性。不难发现,logistic regression的损失函数实际上就是一个交叉熵。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,802评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,109评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,683评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,458评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,452评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,505评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,901评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,550评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,763评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,556评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,629评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,330评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,898评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,897评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,140评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,807评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,339评论 2 342