从零开始学Python26-Logistic回归

在《从零开始学Python【20】--线性回归(理论部分)》和《从零开始学Python【24】--岭回归及LASSO回归(理论部分)》我们已经详细介绍了线性回归及带惩罚项的岭回归、LASSO回归的理论知识,但这些线性回归一般用来解决类似房价、身高、GDP、学生成绩等连续数值的建模和预测。如果你的因变量并非是这些连续的数值型,而是类似于成功或失败、流失或不流失、涨或跌等二元问题,那就不能使用线性回归了。

所以,我们接着线性回归,再跟大家聊聊Logistic回归。它是一个非线性的回归模型,其最大的好处恰恰是可以解决二元类问题,目前在金融行业,基本都是使用Logistic回归来预判一个用户是否为好客户,因为它还弥补了其他黑盒模型(SVM、神经网络、随机森林等)不具解释性的缺点。接下来,我们先从理论的角度,好好剖析一下这个神奇而强大的回归模型。

对于Logistic回归来说,它的思想就是依赖已知的X变量,去构造Y变量(某个事件发生)的概率值,说白了就是一个条件概率:P=P(y=1X)。我们都知道,概率的范围是0~1,而且还是连续值,那接下来是不是就可以往线性回归这个思路去延伸了呢。那问题来了,如何根据X的值,去构造一个属于0~1之间的概率值呢?聪明的统计学家们,构造了一个Logit函数,其函数形式为:

如果把这个函数以图形的方式展示的话,将会是:

从图形上来看,确实y值是落在0~1之间的。假设线性回归写成如下表达式:

再将g(x)套入到Logit函数,再来看看某个事件发生的概率表达式:

OK,请睁大眼睛,接下来就要开始变魔术了,通过详细的推导就能将上面的非线性函数变成一个线性回归模型啦:

上面得到的exp(g(x)),一般称为事件的发生比,即某个事件发生概率与不发生概率的比值。如果将上式的两边取一下对数,那么不就演变成了一个线性回归模型了嘛:

问题又来了,只要能够通过X数据集,找到对应的beta系数,就能够计算出某个感兴趣事件发生的概率P,那这个beta系数该如何求解呢?对于聪明的统计学家兼数学家来说,他们构造了极大似然函数,作为一个搬运工的我来说,就简单说说这个似然函数是怎么实现beta系数求解的。

对于每一个观测样本(不妨有n个样本),某个事件发生的概率(y变量不妨用1表示)和不发生(y变量用0表示)的概率可以表示成:

其中概率pi就是关于beta系数的Logit函数。那么,将上面两种情况合起来,就是一个简单的二元分布,可以表示为:

二元分布是一种常用的离散型分布,接下来我们就可以应用这个二元分布构造似然函数。在Logistic回归中,一般会假设样本之间是相互独立的,那么 它们的联合分布就可以表示为各边缘分布的乘积。可以通过下面这个式子来表达这个似然函数:

要想求得beta系数,可以根据上面这个似然函数计算它的极大值,具体求解的推导步骤如下:

为了求解上式的极大值,我们可以对每一个beta进行偏导,并将求导结果设置为0,最后就可以得到n+1个方程组,再根据这么多的方程组求出每一个beta系数值。下面不妨对beta1求偏导作为演示:

为了能够让大家理解上面式子的进一步求解,我们再来回顾一下大学里学习的微分知识点

OK,有了上面的理论铺垫,你再看下面这个式子就一定很轻松了:

上面理论知识的推导过程是不是比较容易理解呢?小编特别希望各位看官能够推导一遍,这对数学知识的提升有一定的帮助,反过来,也会促进你理解模型的结果。

OK,关于Logistic回归模型的理论部分我们就分享到这里,下一期我们将针对该回归模型进行使用Python和R语言进行实战分析。如果你有任何问题,欢迎在公众号的留言区域表达你的疑问。同时,也欢迎各位朋友继续转发与分享文中的内容,让更多的人学习和进步。

关注“每天进步一点点2015”,与小编同进步!

本文来自企鹅号 - 每天进步一点点2015媒体

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏机器之心

资源 | 1460万个目标检测边界框:谷歌开源Open Images V4数据集

这些边界框大部分由专业的标注人员手工绘制,以确保准确性和一致性。数据集中的图像非常多样化,通常包含存在多个目标的复杂场景(平均每张图像 8.4 个)。此外,数据...

503
来自专栏ATYUN订阅号

【学术】Ferenc Huszár:剪枝神经网络两篇最新论文的解读

我想简要地介绍两篇关于修剪神经网络的论文: Learning Sparse Neural Networks through L0 Regularization...

3977
来自专栏数据科学与人工智能

【算法】集成学习

小编邀请您,先思考: 1 集成学习是什么? 2 如何用Python或者R实现集成学习? 1 集成学习是什么? 简单来说,集成学习是一种技术框架,其按照不同的思路...

3169
来自专栏机器之心

教程 | 概率编程:使用贝叶斯神经网络预测金融市场价格

2909
来自专栏AI研习社

开发者自述:我是如何理解决策树的

前言 最近学习了一段时间的决策树算法,但是感觉并没有达到自己预期的想法,所以这几天参考了一些决策树方面的资料,来将自己的学习的过程的笔记记录在这里,来加深理...

3384
来自专栏PPV课数据科学社区

谷歌最新机器学习术语表,A/B 测试 、混淆矩阵、决策边界……都在这里了!

日前,谷歌发布机器学习术语表,以下术语表中列出了一般的机器学习术语和 TensorFlow 专用术语的定义。 A A/B 测试 (A/B testing) 一种...

2806
来自专栏IT派

深度学习参数技巧

1:优化器 机器学习训练的目的在于更新参数,优化目标函数,常见优化器有SGD,Adagrad,Adadelta,Adam,Adamax,Nadam。 其中SGD...

3397
来自专栏李智的专栏

斯坦福CS231n - CNN for Visual Recognition(7)-lecture6梯度检查、参数更新

  梯度检查是非常重要的一个环节,就是将解析梯度和数值计算梯度进行比较。数值计算梯度时,使用中心化公式

932
来自专栏阅读笔记

CVPR 2018|Best paper: Taskonomy 学习笔记

Taskonomy通过量化不同视觉任务之间的关联、并利用这些关联最优化学习策略。(如果两视觉任务A,B之间具有关联性,那么我们在A中学习到的表达理应可以为解决任...

580
来自专栏机器学习算法全栈工程师

细粒度分类你懂吗?——fine-gained image classification

我们在路边看到萌犬可爱至极,然后却不知道这个是哪种狗;看见路边的一个野花却不知道叫什么名字,吃着一种瓜,却不知道是甜瓜还是香瓜傻傻分不清……

1033

扫码关注云+社区