从朴素贝叶斯的角度推导logistic模型

文章结构预览
1.朴素贝叶斯算法的理解
2.logistic模型简介
3.从朴素贝叶斯的角度解释为什么logistic模型的sigmoid函数可以表示概率
写在前面

啊啊啊,最近终于有一点时间来学点想学的东西了,开森!虽然还没开启研究僧生活,但是应导师要求,提前学习一点机器学习知识,于是最近在啃李航博士写的《统计学习方法》第二版(还得好好补一下数学啊!),顺便吐槽一下智能汽车这个专业,什么都要学,电器,机械,通信,计算机,控制,每个方向都要学他们的核心专业课,除了通信的信号与系统,我们学的简化版的感知信号处理,但是也被离散傅里叶,离散时间傅里叶,快速傅里叶等各种傅里叶折腾的够呛。反正现在是从运算放大器到tensorflow,从差速器到李亚普洛夫,从三心定理到傅里叶变换都在搞。跨度那是相当的大,如果每样都不钻进去学的话那就成了好读书不求甚解的仙人了,钻进去学的话也确实有够受的,如果再自学点单片机和尝试一下linux系统,那任务是相当的重了,最怕自己学到最后成了一个杂物柜,什么东西都装,但是成不了一个体系,希望一切的努力都会被善待吧,借CSDN的博客记录一下学习的心得与收获,在分享知识的同时也能与大家一起交流学到新知识,建立自己的工科体系。吐槽就到这里了,以上。
1.朴素贝叶斯算法的理解
在绝大多数机器学习算法中,朴素贝叶斯算法绝对算得上是个异类的存在,对于大多数的机器学习分类算法,比如决策树,KNN,逻辑回归,支持向量机等,他们都是判别方法,也就是直接学习出特征输出Y和特征X之间的关系,要么是决策函数Y=f(X),要么是条件分布P(Y|X)。但是朴素贝叶斯却是生成方法,也就是先根据数据集找到先验概率P(Y),然后找到每个特征值的P(X|Y),从而直接用P(X,Y)=P(Y)*P(X|Y)求出P(X,Y),然后用P(Y|X)=P(X,Y)/P(X)得出P(Y|X)。
什么是贝叶斯?和传统的频率学派不同,贝叶斯学派的思想可以概括为后验概率=先验概率×可能性函数,这样说太抽象了,先贴出大家喜闻乐见的贝叶斯公式:

P(A)就是我们的先验概率,根据历史经验或者数据集得到,A可以成是数据集的标签,如果是垃圾邮件类的问题的话就是A=有效邮件or垃圾邮件,也就是你要分的类别。P(B|A)/P(B)就是可能性函数,也可以当成一个调整因子,也就是说你相信先验概率的程度,当这个调整因子大于1,也是是说事件B的发生对A事件的发生起到了促进作用即P(A|B)>P(A),反之,当这个调整因子小于1,也是是说事件B的发生对A事件的发生起到了抑制作用即P(A|B)<P(A)。一般来说P(B|A)可以从数据集结合先验分布估计得到,而先验概率P(A)还有B的分布可以从数据集中得到,也可以从历史经验中得到或者取一些经典的分布比如正态分布或beat分布等,先验分布的选取是贝叶斯学派被频率派攻击的原因,你凭什么选择这样的先验分布,但是在很多实际应用中,贝叶斯理论很好用,比如垃圾邮件分类,文本分类。这里简单推导一下朴素贝叶斯的算法公式:
由全概率公式可得:

带入贝叶斯公式:

可得:

好了,以上这些步骤都是贝叶斯估计的内容,那么为什么要叫朴素贝叶斯估计呢,下面这一步即赋予了贝叶斯估计朴素之名,将:


带入贝叶斯公式,原式变为:

在具体应用中P(Yk|X)就等于P(Y=ck|X=x),P(Yk)=P(Y=ck)。我们需要假设每个特征值xj是独立的,是互不影响的,才能够使P(X1=x1,X2=x2…Xj=xj|Y=ck)=P(X1=x1|Y=ck)P(X2=x2|Y=ck)…P(Xj=xj|Y=ck)P(Y=ck)成立。这是一个妥协的假设,为了使计算方便,但是特征值很多时候都不是独立的,比如一个特征值是是否下雨,一个特征值是是否刮风,标签Y是是否出去玩,一般刮风都会伴随着下雨,二者不是独立的,如果这个假设成立,那么特征值的协方差矩阵必须是对角矩阵,这个概率还是比较低的。总结一下就是朴素贝叶斯算法就是假设特征值互相独立的贝叶斯算法。
在实际应用中,我们只需要知道先验概率P(Y=ck)和P(Xj=xj|Y=ck)便可以用:

进行朴素贝叶斯估计,选择使y最大的ck类作为所分的类别。朴素贝叶斯算法是一个典型的生成分类算法。
更加具体的朴素贝叶斯算法细节就不展开了,详细算法可以参见李航博士的《统计学习方法》第二版第四章。
2.logistic模型简介
logistic 回归又叫对数几率回归,适合数值型的二值型输出的拟合,它其实是一个分类模型,比如根据患者的医疗数据判断它是否能被治愈。
我们考虑1个输入的n维数据X=(x1,x2,x3…xn),我们对输入数据进行线性加权得到:

前面说到,logistic回归用于分类,假设得到的类别为0或者1,那么可以使用sigmoid函数处理输入,这个函数类似于阶跃函数但是又是连续型函数,看下这个函数长什么样:

sigmoid(x)表征输入数据x归属于1类的概率。
当x<0时,sigmoid(x)<0.5,可以说x归属于0类的概率比较大;
当x>0时,sigmoid(x)>0.5,可以说x归属于1类的概率比较大;
将g(x)作为sigmoid函数的输入可以得到:

这样就得到了输入数据x最终属于类别 1 的概率。
在logistic回归中,我们一般考虑使用交叉熵作为损失函数,因为采用均方差作为损失函数在梯度下降过程中,当sigmoid(x)趋近于0或1时梯度趋近于0,导致算法收敛极慢,也就是梯度消失问题。
对f(x)做一个简单的变换:

将f(x)作为类后验估计P(y=1|x)(注意注意!!!,这个条件是不加证明给出的,应该很多同学都困惑过,为什么经过一个sigmoid函数后就变成概率了,本文第三部分内容就是从朴素贝叶斯的角度对此条件加以证明。),上式可写为:

那么从而可以得到:

合并上式得到似然函数:

带入数据可得似然函数为:

m是这组数据集的样本数量。
然后我们的目标是求出使这一似然函数的值最大的参数估计,最大似然估计就是求出参数w0,w1,w2…wn,n代表特征值向量是n维的。使得上式取得最大值,需要用到梯度下降算法,连乘不好求梯度,取ln将连乘变为求和:

对上式取负号然后采用梯度下降法求最小值便可以得到参数向量,logistic回归模型就训练完毕了。
3.从朴素贝叶斯的角度解释为什么logistic模型的sigmoid函数可以表示概率
在推导之前,我们假设自己是贝叶斯学派的一员了啊,假设数据连续,且每一维x服从高斯分布,原谅我是个数学渣渣,只对经常用的模型熟悉,之前做卡尔曼滤波和拓展卡尔曼滤波算法时对高斯分布用的太多了,因为卡尔曼滤波黄金五公式推导的基础就是假设带噪声的信号服从高斯分布,这样说老祖卡尔曼也是贝叶斯学派的一员咯。扯远了,拉回来!好了,既然每一维特征值x满足高斯分布,那么假设:

Y服从伯努利分布,即0~1分布,则根据朴素贝叶斯得到:

分子分母同除以分子可得:

对分母后面一部分取ln可得:

其中:

化简可得:

由于假设Y满足伯努利分布,可令P(Y=1)=φ得到:

化简可得:

其中:


由此从朴素贝叶斯中推导出了logistic模型。以上!

从朴素贝叶斯的角度推导logistic模型相关推荐

  1. python机器学习-朴素贝叶斯(Naive Bayes)模型建立及评估(完整代码+实现效果)

    实现功能: python机器学习-朴素贝叶斯(Naive Bayes)模型建立及评估. 实现代码: # 导入需要的库 from warnings import simplefilter simplef ...

  2. 基于朴素贝叶斯和预训练Bert模型的中文句子情感分类实践

    基于朴素贝叶斯和预训练Bert模型的中文句子情感分类实践 1.任务介绍   本次实践选题为AI研习社2019年9月份举办的中文对话情感分析任务,并在原任务基础上进行了拓展.任务首先给定一中文语句数据集 ...

  3. 朴素贝叶斯算法的推导与实践

    1. 概述 在此前的文章中,我们介绍了用于分类的算法: k 近邻算法 决策树的构建算法 – ID3 与 C4.5 算法 但是,有时我们无法非常明确地得到分类,例如当数据量非常大时,计算每个样本与预测样 ...

  4. 朴素贝叶斯.Laplace平滑.多项式事件模型

    <Andrew Ng 机器学习笔记>这一系列文章文章是我再观看Andrew Ng的Stanford公开课之后自己整理的一些笔记,除了整理出课件中的主要知识点,另外还有一些自己对课件内容的理 ...

  5. 朴素贝叶斯的三个常用模型: 高斯、多项、伯努利的原理和解释

    在学习用朴素贝叶斯模型做文本分类的时候, 发现朴素贝叶斯是基于三个常用的模型, 高斯, 多项式, 和伯努利,所以查资料发现了一篇比较好的博客解释着三个模型的原理和区别. 所以转载一下: 原文出处:ht ...

  6. 朴素贝叶斯的三个常用模型:高斯(GaussianNB)、多项式(multinomial model)、伯努利(Bernoulli model)

    文本分类 在文本分类中,假设我们有一个文档d∈X,X是文档向量空间(document space),和一个固定的类集合C={c1,c2,-,cj},类别又称为标签.显然,文档向量空间是一个高维度空间. ...

  7. 朴素贝叶斯的三个常用模型:高斯、多项式、伯努利

    部分内容转自:https://blog.csdn.net/qq_27009517/article/details/80044431 0.朴素贝叶斯 朴素贝叶斯分类(NBC,Naive Bayes Cl ...

  8. 机器学习算法——朴素贝叶斯(贝努利模型和多项式模型实现分类)

    朴素贝叶斯算法 0.朴素贝叶斯是贝叶斯决策理论的一部分.之所以称之为"朴素",是因为整个形式化过程只做最原始.最简单的假设. 1.文本分类实例 2.朴素贝叶斯过滤垃圾邮件 3.使用 ...

  9. NB朴素贝叶斯理论推导与三种常见模型

    转自:http://www.tuicool.com/articles/zEJzIbR 朴素贝叶斯(Naive Bayes)是一种简单的分类算法,它的经典应用案例为人所熟知:文本分类(如垃圾邮件过滤). ...

最新文章

  1. Netty系列(三):说说NioEventLoop
  2. Ubuntu 18.04 卡死
  3. 如何让你瞬间拥有百万粉丝 前端F12的那些装X小技巧
  4. GNU/Linux下有多少是GNU的?
  5. 计算机学的打字是五笔,学会电脑五笔打字的方法
  6. Java之native函数
  7. 【翻译】Javac骇客指南
  8. liunx中文件夹不能删除怎么操作
  9. 生命以负熵为生:Web3行业2022年之怪现象
  10. nginx安装部署和配置管理
  11. spring mongodb内嵌文档查询
  12. ardupilot相机拍照控制
  13. BJFU_数据结构习题_241双栈的基本操作
  14. Swagger2快速入门
  15. Linux安装informatica报错ld-linux-x86-64.so.2+0x14d70
  16. 计算机文化基础008,山东省计算机文化基础选择题
  17. 计算机系职业梦想演讲,我的职业梦想演讲稿
  18. Android 8.0系统源码分析--Camera processCaptureResult结果回传源码分析
  19. 面试复习题--音视频
  20. 记录一次与autorun.inf病毒的较量

热门文章

  1. dw网页设计与制作html,终于发现网页设计与制作问题
  2. crmeb 多商户安装教程(一)
  3. 心はちょっと疲れた、誰も片隅に休んで……作者の宝物は
  4. 如何更新您的Nintendo Switch
  5. 佐治亚大学计算机工程本科课程,美国大学本科专业排名:计算机工程.docx
  6. kettle数据同步从EXCL文件读取数据入库
  7. 怎样改变照片大小?免费在线图片压缩方法
  8. 数据库实体间关联关系:一对一、一对多、多对多
  9. Mac中搜狗输入法在各应用中默认中英文状态
  10. spring Boot 2 基础篇 。内含 整合一个spring boot 的 小案例