从零开始学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 条评论
登录 后参与评论

相关文章

来自专栏编程

从零开始学习Gradient Boosting算法

-欢迎 加入AI技术专家社群>> 一、主要目的 虽然大多数Kaggle竞赛获胜者使用各种模型的叠加/集合,但是一个特定的模式是大部分集合的部分是梯度提升(GBM...

2229
来自专栏算法channel

TensorFlow 指标列,嵌入列

一般地,机器学习、深度学习 feed 进来的数据要求为数值型。如果某列取值为字符型,需要做数值转换,今天就来总结下 TensorFlow 中的指标列和嵌入列。

1473
来自专栏CreateAMind

光流flownet2视频介绍及代码 及两篇中文文章

http://blog.csdn.net/hysteric314/article/details/50529804

2972
来自专栏SimpleAI

【DL碎片1】神经网络参数初始化的学问

从【DL笔记1】到【DL笔记N】,以及【DL碎片】系列,是我学习深度学习一路上的点点滴滴的记录,是从Coursera网课、各大博客、论文的学习以及自己的实践中总...

1294
来自专栏生信小驿站

R 梯度提升算法①

它是一种传统而重要的Boost算法,在学习时为每一个样本赋上一个权重,初始时各样本权重一样。在每一步训练后,增加错误学习样本的权重,这使得某些样本的重要性凸显出...

943
来自专栏机器之心

追根溯源!一图看尽深度学习架构谱系

34615
来自专栏Python数据科学

机器学习之神经网络基础

目前,深度学习(Deep Learning,简称DL)在算法领域可谓是大红大紫,现在不只是互联网、人工智能,生活中的各大领域都能反映出深度学习引领的巨大变革。要...

571
来自专栏云时之间

EM算法学习(三)

在前两篇文章中,我们已经大致的讲述了关于EM算法的一些基本理论和一些基本的性质,以及针对EM算法的缺点进行的优化改进的新型EM算法,研究之后大致就能够进行初步的...

33310
来自专栏机器学习算法与Python学习

一文让你入门CNN,附3份深度学习视频资源

CNN简介 文末附三份深度学习视频资源 后台回复关键词(20180310) 目录: 一些视频资源和文章 CNN简介 图像即四维张量? 卷积的定义 CNN如何工作...

3977
来自专栏人工智能

理解卷积

原文作者:Christopher Olah

72914

扫码关注云+社区