逻辑斯蒂回归_逻辑斯蒂回归详细解析 | 统计学习方法学习笔记 | 数据分析 | 机器学习...

02ee5f9fffaa3b2c1cf46f832f8d58c1.png

本文包括:

  1. 重要概念
  2. 逻辑斯蒂回归和线性回归
  3. 二项逻辑斯谛回归模型
  4. 逻辑斯蒂回顾与几率
  5. 模型参数估计
  6. 多项逻辑斯谛回归
  7. 其它有关数据分析,机器学习的文章及社群

1.重要概念:

在正式介绍逻辑斯蒂回归模型之前,需要先对一些基本概念有所了解,如果明白这些概念可以直接跳过。

分布函数和密度函数:对于一个连续型随机变量,密度函数是指该变量在其可取值范围内为一个特定值的概率,分布函数即在一个特定值和小于该特定值的范围内出现的概率,可以理解为密度函数的面积比率。

用逻辑斯蒂分布举例来说(下图),在密度函数中,可以看到在x=0时出现峰值,即x取0的概率最大,从0开始往无穷小和无穷大都在递减。再看分布函数,可以看到当x=0时,密度函数取值为0.5,对照密度函数,在小于等于0的部分,面积是总面积的一半。

aa9d1b30e63f0ccaa2b8785021ba35a6.png

似然函数:在统计学中,概率描述了已知参数时的随机变量的输出结果,似然则用来描述已知随机变量输出结果时,未知参数的可能取值。那么似然函数就是用来求得未知参数的估计值所使用的函数。

极大似然估计:通过最大化似然函数求得未知参数的估计值。这里讲一下为什么是极大而非其它的方法求参数的估计值。

在机器学习中,我们有大量的记录构成训练集,需要根据训练集进行学习获得模型,根据具体的问题,我们可以将一个特定的模型套用在这个具体问题中。现在,我们有了一个含有未知参数的模型,以及大量训练集记录。

根据模型,我们可以假设Y=1的概率为P,Y=0的概率为1-P(这里的P包含了模型中的未知参数)。假设训练集中有10个记录,3个为1,7个为0,那么得到这个最终结果的概率为P^3*(1-P)^7。

现在重点来了,既然现实情况中已经出现了3个1和7个0的情况,那么我们的模型应该让这种情况出现的概率最大,因为毕竟这个结果已经出现了。

也就是说,我们应当最大化P^3*(1-P)^7,以此推得P中所包含的未知参数的估计值,并最终得到我们想要的模型。


2.逻辑斯蒂回归和线性回归:

在线性回归(感知机)中,我们知道一个分离超平面w·x将特征空间分成两个部分,实例在不同的子空间中则被分为相对应的类。但是线性回归的一个问题在于,我们不知道一个新输入的实例,它属于一个类的概率是多少。

换句话说,新输入实例在特征空间中的位置可能与分离超平面距离非常近,也有可能非常远,如果距离较远,那么它更有可能被分成它所在一侧对应的类,但是如果与超平面的距离非常近,说明它被分成另一类的可能性也很大,比如被分成A的可能性为51%,而分成B类的可能性为49%,此时线性回归会将其分为A类,而忽略了49%分成B类的可能性,也就是说,线性回归仅给出结论,未给出概率。

于是,为了得到这一概率,我们引入了Sigmoid函数:

Sigmoid函数能够将线性回归产生的值(-∞,+∞)转换到(0,1)区间内,而概率的取值也在(0,1)内,这样,就可以显示一个实例被分为一个类的概率是多少了。


3.二项逻辑斯谛回归模型:

首先来看逻辑斯蒂函数的一般形式,其分布具有以下分布函数和密度函数:

式中,μ为位置参数,γ>0为形状参数。

aa9d1b30e63f0ccaa2b8785021ba35a6.png

分布函数以(μ,1/2)为中心对称,满足:

形状参数γ的值越小,分布函数曲线在中心附近增长得越快。

现在,我们让μ取0,γ取1,即得到我们在逻辑斯蒂回归中使用的函数:

采用上式,我们将线性回归产生的值代入到sigmoid函数之中,可得:

二项逻辑斯谛回归模型是一种分类模型,由条件概率分布P(Y|X)表示。这里,随机变量x取值为实数,随机变量Y取值为1或0。

这样,我们就将范围为实数的线性回归产生的值转变为逻辑斯蒂回归中仅在(0,1)范围之内。

逻辑斯谛回归仅对二分类的问题有效,我们可以比较P(Y=1|x)和P(Y=0|x)两个条件概率值的大小,将实例x分到概率较大的那一类,同时也能得知分成两种类别的可能性是多少。


4.逻辑斯蒂回归与几率:

一个事件的几率是指该事件发生的概率与该事件不发生的概率的比值。如果事件发生的概率是p,那么该事件的几率是

,该事件的对数几率或logit函数是:

我们将逻辑斯蒂回归的P代入,可得:

通过上式我们知道,通过几率的概念对线性函数进行转换,可以得到逻辑斯蒂回归公式。

一个直观的理解是,对于上式,分子是y=1的概率,而分母是y≠1的概率,显然wx+b越大,y=1的概率越大,也就是实例点x在y=1的一侧距离分离超平面越远,则y=1的概率越大。


5.模型参数估计:

设:

似然函数为:

为了计算方便,我们对似然函数取对数,得到对数似然函数:

以上公式的第二个等式使用了上一节谈到的几率。注意,这里的式子中w和xi都是进行扩展后的w和xi,即权值向量中最后一项为b,xi最后一项为1。

现在根据极大似然估计法,对L(w)求导:

接下来通常采用的方法是梯度下降法及拟牛顿法来求得w的估计值,待后续更新。


6.多项逻辑斯谛回归:

逻辑斯蒂回归需要将线性回归通过sigmoid函数进行转换,但这种方法仅对二分类的问题有效,如果碰到多分类的问题逻辑斯蒂回归就失效了。

于是,对于多分类的问题,我们使用softmax函数代替sigmoid函数,可以将softmax函数看做sigmoid函数的推广。

Softmax函数:

Softmax函数计算新输入实例被分为每一个类的概率,并选择概率最大的对应的类作为新输入实例的类。

多项逻辑斯蒂回归:


github:

如果觉得对您有帮助,还烦请点击下面的链接,帮忙github点个star~谢谢~

Zhouxiaonnan/machine-learning-notesandcode

所有笔记目录:包括《统计学习方法》中各个模型的理论和python复现部分,以及数据分析Mysql查询优化。

舟晓南:所有笔记目录 | 数据分析 | 机器学习 | 深度学习等

如何转行数据分析师:

舟晓南:如何转行和学习数据分析 | 工科生三个月成功转行数据分析心得浅谈

舟晓南:求职数据分析师岗位,简历应该如何写?|工科生三个月成功转行数据分析心得浅谈

欢迎关注专栏:

学习笔记:数据分析,机器学习,深度学习​zhuanlan.zhihu.com
2eb0c434662f09a9adbda491b9675ec9.png

数据分析,机器学习学习社群正式启动~

需要学习资料,想要加入社群均可私信~

在这里会分享各种数据分析相关资源,技能学习技巧和经验等等~

详情私信,一起进步吧!

写于成都 2020-9-10

第一次修改 2020-9-26

第二次修改 2020-11-5

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/346329.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql 数据传输 定时,MySQL数据库定时备份的实现方法

1. 创建shell脚本2. 给shell脚本添加执行权限3. 给脚本添加定时任务crontab文件的说明:用户创建的crontab文件中,每一行都代表一项定时任务,每行的每个字段代表一项设置,它的格式每行共分为六个字段,前五段是时间设定字…

python 生意_本周互联网关注(2015515):劳动人民的生意经、python好还是go好

我很喜欢写这种类型的文章,写的也轻松,大家看的也多。性价比高。那么现在继续。一、所谓光辉岁月,不是波澜壮阔的时候,而是无人问津时,你对梦想的坚持。| 陈欧很多人刚开始创业时激情无比高涨,干着干着开始…

mysql空洞数据,Mysql 表空间和 数据页空洞

一、表空间1、表空间: innodb 引擎存储的最高层; 存放所有的数据2、独立表空间:Mysql 版本5.6 后默认开启的单表单空间(1)Innodb 默认存储引擎页的大小为 16K ;默认表空间 大小为96k(2)独立表空间 开启方式 innodb_file_per_table…

junit 5测试异常处理_在JUnit中处理异常的3种方式。 选择哪一个?

junit 5测试异常处理在JUnit中,有3种流行的方式来处理测试代码中的异常: 试捕习语 使用JUnit规则 带注解 我们应该使用哪一个?何时使用? 试捕习语 这个习语是最受欢迎的习语之一,因为它已在JUnit 3中使用。 Test…

python网站数据写入mysql_python网络爬虫抓取动态网页并将数据存入数据库MySQL

简述以下的代码是使用python实现的网络爬虫,抓取动态网页 http://hb.qq.com/baoliao/ 。此网页中的最新、精华下面的内容是由JavaScript动态生成的。审查网页元素与网页源码是不同。以上是网页源码以上是审查网页元素所以此处不能简单的使用正则表达式来获取内容。以…

交通流预测 | Matlab基于KNN-BiLSTM的交通流预测(对比SVR、LSTM、GRU、KNN-LSTM)

目录 预测效果基本介绍程序设计参考资料 预测效果 基本介绍 交通流预测 | Matlab基于KNN-BiLSTM的交通流预测(对比SVR、LSTM、GRU、KNN-LSTM) 程序设计 完整程序和数据获取方式:私信博主回复Matlab基于KNN-BiLSTM的交通流预测(对…

JMetro“ Metro”选项卡,Java的TreeView和ContextMenu(JavaFX)

我刚刚发布了JMetro的新更新,将版本升级到3.3.0。 在此更新中,您将找到: 新的TreeView Fluent设计系统(Metro)启发风格; 新的Tabs和TabPane FDS启发风格; 新的上下文菜单采用深色FDS启发的样…

蒙特卡罗计算积分matlab,matlab下二重积分的蒙特卡洛算法

%%monte_carlo_ff.m%被积函数(二重)function ffmonte_carlo_ff(x,y)ffx*y^2;%函数定义处end%%monte_carlo.m%蒙特卡洛计算二重积分function resultmonte_carlo(a,b,c,d,n,m)%先y后x积分,a是x积分下限,b是x积分上限,c是y积分下限,d…

数据挖掘原理与算法_技术分享|大数据挖掘算法之FPGrowth算法

程一舰数据技术处我们常说我们生活在信息时代,实际上,我们更多的还是生活在数据时代。因为从过去到现在累积了大量的数据,对数据的挖掘和分析也仅是从最近几年大数据和人工智能技术的发展而兴起。我们对现有数据价值的利用还远低于数据本身拥…

centos 程序 mysql数据库文件位置,CentOS 更改MySQL数据库目录位置

引言:由于MySQL的数据库太大,默认安装的/var盘已经再也无法容纳新增加的数据,没有办法,只能想办法转移数据的目录。下面我简单整理一下这几天把MySQL从/var/lib/mysql目录下面转移到/home/mysql_data/mysql下面具体操作1、首先我们…

neo4j数据浏览器_Neo4j:在Neo4j浏览器的帮助下探索新数据集

neo4j数据浏览器在查看新的Neo4j数据库时,我发现遇到的一件困难就是确定其中包含的数据的结构。 我习惯于关系数据库,在该数据库中您可以轻松获取表列表和外键,以便您将它们相互连接。 传统上,使用Neo4j时很难做到这一点&#x…

mfc中怎么集成文件_怎么把几个pdf合并并打印在一份文件中?

a为什么我们要把pdf文件合并呢?当然我们要知道什么是pdf文件才能进行更多的操作,Pdf是我们许多人都会用到的一种存储文件的格式,它的内容基本是以图像的形式表现,所以我们在播放和打印的时候可以不用担心出现格式错乱的问题。PDF格…

php中日期选择代码,实现JS日期时间选择器

这次给大家带来实现JS日期时间选择器,实现JS日期时间选择器的注意事项有哪些,下面就是实战案例,一起来看一下。flatpickr 是一个轻量级、注重精益、由 UX 驱动和可扩展的 JavaScript 日期时间选择器。下载 演示 GitHubflatpickr 不依赖于任何…

Jib –为Spring Boot应用程序构建docker映像

使用Jib为示例Spring Boot应用程序创建docker映像是如此容易,这让我感到惊喜。 让我首先将Jib与以前使用的方法进行对比。 我正在使用bmuschko出色的gradle-docker插件创建docker映像。 如果可以访问docker守护程序以及基于dockerfile或直接Dockerfile的gradle ds…

python中正则表达式是什么意思_python – 正则表达式中[^.] *的含义是什么?

我试图从以下文本中获得482.75&#xff1a;< span id “yfs_l84_aapl”> 482.75< / span>我使用的正则表达式是&#xff1a;regex ’< span id “yfs_l84 _ [^.] *”>(.&#xff1f;)< / span>‘它起作用了.但是我不明白的是为什么[^.] *可以在这里匹配…

php steam 第三方登录,Steam第三方登录

Steam第三方登录Laravel PHP7.3前端登录界面if(isset($steamprofile))window.οnlοadfunction(){var steamprofile {!!$steamprofile!!};var steamid {{$steamid}};if(steamid){$.post(/ajax/SocilaAuthLogin,{data:{userdata:steamprofile,type:steamLogin},},function(dat…

setitimer 创建两个定时器_UE4 Timer(定时器)相关源码分析

前言文章属于旧有文章搬运, 之前在csdn上面2019.11.6修改Timer是定时器, 用途:延时执行事件周期性执行事件参考官方文档Using TimersTimer可以...Timer能...Timer...... 编不下去了, 自己百度谷歌吧(手动狗头)TimerManagerTimer的管理类是FTimerManager, 是一个全局的Timer管理…

is array php,PHP 源码 — is_array 函数源码分析

php 中的 is_arrayphp 中的 is_array&#xff0c;它的签名是 is_array ( mixed $var ) : bool实现的源码在\ext\standard\type.c中可以找到PHP_FUNCTION(is_array)所处的位置&#xff0c;大概位于 273 行。在 PHP 中&#xff0c;这个系列的函数&#xff0c;是由很多个&#xff…

apache mahout_使用Apache Mahout创建在线推荐系统

apache mahout最近&#xff0c; 我们一直在为Yap.TV实施推荐系统&#xff1a;您可以在安装应用程序并转到“ Just for you”标签后才能看到它的运行情况。 我们以Apache Mahout为基础进行建议。 Mahout是一个“可扩展的机器学习库”&#xff0c;包含使用协作过滤算法的基于用户…

activitimq集群搭建_activitmq+keepalived+nfs 非zk的高可用集群构建

nfs192.168.10.32maast192.168.10.4savel192.168.10.31应对这个需求既要高可用又要消息延迟,只能使用变态方式实现nfs部署#yum install nfs-utils rpcbind#vim /etc/exports/data/activemq 192.168.10.31(rw,sync,no_root_squash,no_all_squash)/data/activemq 192.168.10.4(rw…