监督分类空白处也被分类了_监督学习(2)|本质是分类的“逻辑回归”

ae09ea727c26a8b795acba6a21713c46.png
  1. 引言

机器学习,绕不开预测问题,预测绕不开回归和分类。本篇介绍最常用的二分类算法:逻辑回归(Logistics Regression),当然随着算法的发展,它也可用于多分类问题。每一个算法都是许许多多数学家的努力铸就,理论篇希望自己可以尽量将算法发展过程叙述的平滑一些,可以即保留理论基础,又让读者感觉舒服。下面,就让我们一起来领教一下这处理问题的伟大逻辑。


2. 回归到分类的过渡

逻辑回归,顾名思义,分为两部分:逻辑和回归。

首先让我们回忆一下上一篇线性回归的内容。

我们希望透过样本得到数据背后的本质映射关系

。为了简洁,我们假设这种关系是线性的
。然后催生了线性回归算法的配套理论。

但是,考虑这样一个问题,当因变量不是连续变量,而是分类变量,比如大或者小,黑或者白时,线性回归模型又应该如何应用?数学的魅力在于将现象数字化,或者称为模型化。所以处理这个问题的第一步,我们需要用数学来表示大或者小,黑或者白。

考虑类别之间相对的关系,我们可以用概率来表示这个问题,例如大的概率大于小的概率,我们将预测为大。那么我们知道线性回归的因变量的数值位于

之间。如果我们再定义一个映射关系,将
之间的数值映射成概率值,即
之间,就可以解决线性回归到分类问题的过渡。

3. 什么是逻辑

下面我们介绍几个可以完成上述映射的函数,

c9b29c7a75edd2d6369c2001b6c8eade.png
sigmod

公式(1)称为逻辑函数(或者称为Sigmoid、S型函数),其将

之间的数值映射到
之间,也是逻辑回归中使用的映射形式,即线性回归接逻辑函数映射得逻辑回归模型;

b6cb50d5909b95e604f37839482981c7.png
arctan

6315228ffda8c532b8021558c27b13a4.png
tanh

公式(2)和公式(3)分别是反正切函数和双曲正切函数,它们分别将

之间的数值映射到
之间,只需做简单的平移和伸缩变换,即可映射至
之间。

实际应用中,在求解问题时,需要应用映射函数的梯度信息,逻辑函数梯度较为容易计算,公式(4)给出它们的梯度公式 。

在逻辑回归的实际应用中,通常情况下,我们应用逻辑函数的映射形式,但是具体哪种函数的形式更好,需要进一步考证。


4. 理想的最优模型

4.1 概率预测

我们成功的将线性回归过渡到逻辑回归的分类形式,总结一下现阶段的成果,我们构造了从自变量映射到因变量概率的函数关系,具体形式如公式(5)。

为了清晰描述二分类问题,我们不妨将两个类别分别标记为1和0,一般情况下,当

时,预测结果为1;当
时,预测结果为0,如式(6) 所示,即
为预测为类别1的概率,
为预测为类别0的概率。

4.2 损失函数

此时,亟待解决就是求解逻辑回归模型中参数

,使其最贴近样本数据,还记得线性回归我们应用最小二乘法,定义的损失函数是预测值与真实值之间的误差平方和,同样的,我们仍沿用这个原理,可以得到误差函数
如公式(7)所示:

遗憾的是,公式(7)形式的损失函数并不是凸函数,优化过程中存在困难。

所以数学家们考虑定义了一种新的损失函数来处理分类问题,损失函数需要满足的条件是可以衡量模型与真实数据之间的拟合程度,或者称之为距离。

为了清晰描述二分类问题,我们将两个类别分别标记为1和0,对于已经标记为1的数据,我们希望模型给出1的概率越大越好,反之,对于已经标记为0的数据,我们希望模型给出1的概率越小越好,那么基于这个原理,给出交叉熵损失函数,如公式(8):

观察公式(8)中交叉熵损失函数,当

时,求和号第一项生效,该值越大模型效果越好;当
时,求和号第二项生效,同样该值越大模型效果越好。在前面加上一个负号,我们通过求解交叉熵损失函数的最小值即可求得最优的参数

关于交叉熵损失函数,其由来可由两个方面说明:

一是信息论角度,熵用来衡量信息量的多少,有兴趣同学可以查看一下信息熵,相对熵,交叉熵的概念。解释大致含义与我上面的解释类似;

另一个方面是从似然函数的角度解释,对于上面定义的二分类问题,

取值为0和1,对于每一次取样,在参数
已知的情况下,其样本服从伯努利分布(二点分布、零一分布):

那么对于n个独立样本,其对数似然函数:

将对数似然函数取平均,加负号,与交叉熵损失函数形式一致,求似然函数最大化与求交叉熵损失函数最小化是等价的。求解过程一般使用梯度下降方法,当然基于梯度下降方法有许多进化算法,AdaGrad,RMSProp,Adam等。这里不详细介绍,后续再提炼一篇基于梯度下降的算法总结。

5. 多分类的扩展应用

对于逻辑回归,到这里我们已经将基本的框架搭好了。值得说明的一点是,线性回归中容易过拟合的问题,在逻辑回归中仍然存在,所以,有必要在损失函数上添加正则项,正则项的添加已经在线性回归中介绍,这里不再重复。

最后将二分类的逻辑回归扩展到多分类(N个类别),主要有两种方法:一种方法是One VS One,每个类别两两配对训练,共训练

个模型,最后结果由投票的方式给出;另一种方法One VS Rest,将每一类别与其他所有类别配成一对训练,共训练
个模型,最后结果由概率最大的类别胜出。

6.结束语

逻辑回归是线性回归分析的扩展,其通过逻辑函数将回归值映射为概率值,实现了对分类问题的处理。下一篇作者将介绍逻辑回归的好伙伴支持向量机,并详细介绍它们之间的区别与联系,有兴趣的可以继续关注噢。

上一篇:

监督学习(1)|一文搞懂线性回归,lasso回归,岭回归​zhuanlan.zhihu.com
6e7d58d4bfa481cb86cf289a51c05471.png

下一篇:

监督学习(3)|支持向量机​zhuanlan.zhihu.com
a63416090487b81d6656ad37104b62ac.png

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

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

相关文章

html网页制作图案,巧用CSS滤镜做图案文字-网页设计,HTML/CSS

请先看看以下演示中的图案文字。这可不是图片效果,而是用css滤镜中的chroma() 语句做成的文本文字,其中文本的内容和图案都可以自由设定。先介绍一下这个神奇的滤镜:chroma() 滤镜。语法: filter:chroma( color#cccccc) &#xff…

关于msbuild 编译.net 4.5新语法错误的解决方法

.net4.5以前msbuild 是在%windir%/Microsoft.NET/FrameworkXX/vXX目录下,如:C:\Windows\Microsoft.NET\Framework64\v4.0.30319,不过在使用4.5新语法后就无法编译通过,这时候就应该使用vs自带msbuild ,路径如下C:\Program Files (…

JavaOne 2015 –又一年,又向前迈进了一步

JavaOne 2015旧金山于10月25日至29日举行。 我很自豪地说这是我第九个人参加JavaOne,第七个人是演讲者,第四个人是Oracle员工,第三个人是内容委员会的成员,第二个人是项目负责人。 我认为对于JavaOne来说,这是又一个美…

html div父集子集,抛砖引玉css系列---根据父元素包含的子元素个数,实现不同的样式...

工作时遇到这样一个问题:根据某元素所包含的子元素个数,分别设置不同的样式,这个用js可以解决,不过个人认为用css解决可能更简单一点。这也正好加深了我对css选择器的理解和运用。demo如下:效果图如下完整代码如下:css…

rnn按时间展开_双向RNN的理解

我们在学习某种神经网络模型时,一定要把如下几点理解透了,才算真正理解了这种神经网络。网络的架构:包含那些层,每层的输入和输出,有那些模型参数是待优化的前向传播算法损失函数的定义后向传播算法什么情况下认为是发…

【转】Mac本地生成SSH Key 的方法

1. 查看秘钥是否存在 打开终端查看是否已经存在SSH密钥:cd ~/.ssh 如果没有密钥则不会有此文件夹,有则备份删除, 也可以直接删除, 2.生成新的秘钥, 命令如下 $ssh-keygen -t rsa -C "youremailexample.com" 你需要把邮件地址换成你自己的邮…

职称考试取消英语和计算机,强烈建议取消所谓的英语职称和计算机考试

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼强烈要求取消职称计算机英语考试职称计算机英语考试坑苦了广大相关受害者,其实质是某个别部门单位敛财的冠冕堂皇的项目。那些政策制定者美其名曰是通过考试激励大家的继续学习,掌握其技能,那么没…

树莓派退出python的代码_Python实现树莓派WiFi断线自动重连的实例代码

实现 WiFi 断线自动重连。原理是用 Python 监测网络是否断线,如果断线则重启网络服务。1.Python 代码 autowifi.py,放在 /home/pi 目录下:#!/usr/bin/pythonimportos, timewhileTrue:if192 not in os.popen(ifconfig | grep 192).read():print\n****** w…

类型信息

1、java主要有两种方式在运行时识别对象和类的信息:RTTI和“反射”机制。 2、类加载器系统实际上可以包含一条类加载器链,但是只有一个原生态加载器,它是JVM实现的一部分。原生态加载器加载的是所谓的可信类,包括Java API&#xf…

primefaces_懒惰的JSF Primefaces数据表分页–第1部分

primefaces今天,我们将使用带有视图范围的托管bean的惰性列表进行JSF数据表分页。 这些单词/表达是什么意思? 如今,有几个JSF框架可为数据表提供现成的分页,列排序器和其他功能。 今天,我们将使用Primefaces数据表。 …

linux下python开发环境搭建_linux下python开发环境之二——安装Eclipse+PyDev

Eclipse是由java开发的,所以要想让Eclipse跑起来就得安装jdk,在命令行里输入javac就能查看本机是否已经安装好了jdk了。1、安装jdk先从oracle官网上下载jdk,放到/usr/local/src/文件中,由于找不到linux的下载连接,所以…

台式计算机如何连接vif,关于计算机二级( VIF ) 县城有高手吗? 急寻

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼自考《管理系统中计算机应用》上机实践考试样卷2007年08月09日 13:29(本卷考试时间60分钟)注意事项:1、在考核盘的根目录下有XS.DBF、CJ.DBF、STD.DBF、LOAN.DBF、DISREC.SCX、TTT.PRG、KSH.PRG和KSHF.SCX文件&#xff…

Eclipse新建java类的时候,自动创建注释

为形成个人的java代码风格,我们在项目组中进行开发的时候,可以对自己的代码进行一些格式上面的设置,具体如下: 方法一:Eclipse中设置在创建新类时自动生成注释 windows–>preference Java–>Code Style–>Code Templates…

无论是否使用Spring Framework,为什么我们会失败?

在Twitter领域再次引起了一些反感 ,我看到了Sam Atkinson的博客帖子,题为“ 为什么我讨厌Spring” 。 这篇博客文章的撰写早于2014年,但是DZone后来才真正选择并发布了它。 实际上,在撰写本文时,Atkinson是一名开发人员…

endnote能自动翻译吗_自动挡和手自一体有啥区别?从外表能看出一辆车是哪种变速箱吗?...

汽车分自动挡和手动挡,手动挡就是一个手动变速箱,很好理解。但自动挡变速箱有很多种,前几日有人问了这么几个问题,没来得及回复,现在超时不能单独回复了,在此详细说一下,因为这是一个非常基础且…

html5平板电脑,Html5添加支持桌面、移动触摸手机和平板电脑的Lightbox插件教程

一、使用方法首先在标签之前或标签中引入jquery和swipebox js文件。在标签中引入swipebox.css文件。二、Html结构三、调用插件;( function( $ ) {$( .swipebox ).swipebox();} )( jQuery );四、高级配置(1)画廊(2)视频支持My Videos(3)动态调用画廊$( #gallery ).click( functi…

idea 内存溢出解决方法

在Run/Debug configuration 的 vm options里面输入 -server -XX:PermSize128M -XX:MaxPermSize256m 具体如下图: 转载于:https://www.cnblogs.com/Liang-Haishan216/p/7044028.html

网页设计html加音频,HTML5网页中如何嵌入音频,视频?

《HTML5的视频播放控制技术》 介绍了本文主要介绍在HTML5 中如何嵌入音频,视频?在HTML5 中如何嵌入音频?HTML5 支持 MP3、Wav 和 Ogg 格式的音频,代码示例:Your browser does’nt support audio embedding feature.HTM…

seo 伪原创_胡子哥谈seo优化:那些不被了解的伪原创技巧

各位小伙伴们好,我是没有胡子的胡子哥,玩转SEO多年的老互联网人。(胡子哥推出包上首页服务,无效退款,有技术就是敢承诺!)做SEO优化的人都知道,一个网站提升权重的过程中,文章的原创度占比是很高…

javafx2_JavaFX 2 GameTutorial第3部分

javafx2介绍 Ť他是与一个六个部分组成的系列的第3部分的JavaFX 2游戏教程。 如果您错过了第1部分和第2部分 ,我建议您在开始本教程之前仔细阅读它们。 回顾第2部分,我讨论了游戏循环的内部工作原理,其中我们使用动画(JavaFX Time…