因为毕业论文是和贝叶斯理论相关的内容,今天恰巧看到一篇朴素贝叶斯分类算法的文章,写的非常通俗易懂,再结合另外一篇CNN的文章,在这里梳理一下,来帮助自己的理解。

朴素贝叶斯算法是基于朴素贝叶斯定理的一种算法。

在统计学中,贝叶斯的公式如下:

对于分类任务而言,我们都知道,一个分类器需要拿到某些事物的特征之后对其进行判断然后给出分类结果。其实,人类就是个高级分类器,比如,我们可以通过看妈妈的表情来判断出她今天开心还是不开心,于是妈妈的表情就是我们需要以此作为判断依据的特征——(眉头紧锁、嘟着嘴、眼睛放光、嘴角上扬等等),而开心和不开心就是最终的分类结果。

分类的数学定义就是:已知集合。现需要确定一个映射规则使得任意一个有且仅有一个使得

其中C叫做类别集合,其中每一个元素是一个类别,而I叫做项集合(特征集合),其中每一个元素是一个待分类项,f叫做分类器。分类算法的任务就是构造分类器f

那么根据上面的例子,不难看出,C中有两个类别(开心,不开心),I中有(:眉头紧锁、嘟着嘴,:眼睛放光、嘴角上扬)这两种待分类项。当然,在实际应用中,一个类别的输出是需要非常多特征来支撑的。

那么,贝叶斯是如何进行分类的呢?

首先看下贝叶斯分类算法的数学表达式

其实就是贝叶斯公式,只是这样无法看出该公式与分类之间的关系,实际上,在做分类时,做了如下的转换:

B代表类别,A代表特征(是一个集合),所以只要我们求出每个类别的P(类别|特征),再对比一下大小,就可以根据已有的特征得出我们想要的分类结果了。

我们就用原文中特征提取‘X’和‘O’的图举例说明吧

在分类的过程中,我们希望无论图像做何种变化(反转、扭曲、旋转,缩小放大等),都可以准确的提取到代表其类别的特征。通过CNN卷积核在图像上滑动来提取图像中的特征是一个非常有效的方法。

卷积是如何做到的呢?我们都知道图像是由千万个像素块组成的,对于灰白图像,每个像素块的值为0、1、-1 ,对于彩色图像而言,像素块值得范围是0-256,且是3通道得。这里得图像只有黑白两个色块, 假设1代表白色、-1代表黑色。

假定给cnn一张这样得X图,于是它可以通过左上角得卷积核对图像进行卷积操作,即从左到右、从上到下依次滑动, 滑动一次做一次卷积操作。    每个卷积核它都可以提取图中得一个特征,得到得结果即为特征图(feature map)。

可以看到,利用这种卷积核,最后得到的特征矩阵其中的值,越接近为1表示对应位置和卷积核代表的特征越接近,越是接近-1,表示对应位置和卷积核代表的反向特征越匹配,而值接近0的表示对应位置没有任何匹配或者说没有什么关联。

但是,我们为什么就要选这样的卷积核?好像有点刻意?实际上,卷积核中的参数起初并不是这样的,而是随机初始化,这里利用了反向传播算法,大白话就是,我先试探性的去猜测一些值,然后真实值给我的反馈是,我预测高了,那我就返回去将参数值调低一点,猜低了就调高点。所以就是通过这种以误差为指导去自适应地调整卷积核的值,来最小化模型预测值和真实值之间差异的目的。

回过头来,我们再说说P(类别|特征)是如何计算的,对于上面的例子,给定一张X图,假设它只提取到了特征1、特征2、特征3,当它输入贝叶斯分类器时,要判断它是不是X,也就是计算P(X|特征1、特征2、特征3)和P(O|特征1、特征2、特征3)谁的概率大。
          在训练阶段,对于X的图像,当卷积核在图像滑动时,会提取到很多特征,如下所示:

所以假定在图片训练阶段,特征与分类结果的关系是:

特征1 特征2 特征3 特征4 特征5 ... X/O
  X
  O
  O
  X
  X
  O
  X
...            

其中,分母P(特征1、特征2、特征3)=P(特征1)*P(特征2)*P(特征3),由于朴素贝叶斯法对条件概率分布做了条件独立性的假设即每个特征都是相互独立的,故计算可以这样拆解

于是P(特征1)=5/7;P(特征2)=4/7;P(特征3)=3/7。

分子:P(特征1、特征2、特征3|X)P(X)=P(特征1|X)*P(特征2|X)*P(特征3|X)*P(X)                  所以,P(特征1|X)=3/4;P(特征2|X)=3/4;P(特征3|X)=2/4=1/2;P(X)=4/7。

P(X|特征1、特征2、特征3)=[(3/4)*(3/4)*(1/2)*(4/7)]/[(5/7)*(4/7)*(3/7)]

同理可得P(O|特征1、特征2、特征3)=[(2/3)*(1/3)*(1/3)*(3/7)]/[(5/7)*(4/7)*(3/7)]

明显P(X|特征1、特征2、特征3)>P(O|特征1、特征2、特征3)

结论:拥有特征1、特征2、特征3的这张图片,它是X图!

朴素贝叶斯分类的优缺点

优点:

(1) 算法逻辑简单,易于实现

(2)分类过程中时空开销小

缺点:

理论上,朴素贝叶斯模型与其他分类方法相比具有最小的误差率。但是实际上并非总是如此,这是因为朴素贝叶斯模型假设属性之间相互独立,这个假设在实际应用中往往是不成立的,在属性个数比较多或者属性之间相关性较大时,分类效果不好。

而在属性相关性较小时,朴素贝叶斯性能最为良好。对于这一点,有半朴素贝叶斯之类的算法通过考虑部分关联性适度改进。

参考:

https://zhuanlan.zhihu.com/p/26262151

https://zhuanlan.zhihu.com/p/50800849

加群,一起学习吧!

一文读懂朴素贝叶斯分类算法相关推荐

  1. 一文读懂程序化交易算法交易量化投资高频交易统计利

    转 一文读懂程序化交易.算法交易.量化投资.高频交易. 统计套利 在央行发布的<中国金融稳定报告(2016)>中,对于高频交易的解释为程序化交易的频率超过一定程度,就成为高频交易.而对程序 ...

  2. 二维特征分类的基础_带你搞懂朴素贝叶斯分类算法

    贝叶斯分类是一类分类算法的总称,这类算法均以贝叶斯定理为基础,故统称为贝叶斯分类.而朴素朴素贝叶斯分类是贝叶斯分类中最简单,也是常见的一种分类方法.这篇文章我尽可能用直白的话语总结一下我们学习会上讲到 ...

  3. k均值聚类算法考试例题_一文读懂K-means聚类算法

    1.引言 什么是聚类?我们通常说,机器学习任务可以分为两类,一类是监督学习,一类是无监督学习.监督学习:训练集有明确标签,监督学习就是寻找问题(又称输入.特征.自变量)与标签(又称输出.目标.因变量) ...

  4. k means聚类算法_一文读懂K-means聚类算法

    1.引言 什么是聚类?我们通常说,机器学习任务可以分为两类,一类是监督学习,一类是无监督学习.监督学习:训练集有明确标签,监督学习就是寻找问题(又称输入.特征.自变量)与标签(又称输出.目标.因变量) ...

  5. 一文读懂约瑟夫环算法

    2020-05-25 20:13:40 作者 | 扬帆向海 责编 | 王晓曼 出品 | CSDN博客 问题描述 约瑟夫问题(有时也称为约瑟夫斯置换,是一个出现在计算机科学和数学中的问题.在计算机编程的 ...

  6. pca降维的基本思想_一文读懂 PCA 降维算法

    转自:chenbjin https://www.cnblogs.com/chenbjin/p/4200790.html 主成分分析(PCA)是一种基于变量协方差矩阵对数据进行压缩降维.去噪的有效方法, ...

  7. 一文读懂约瑟夫环算法 | 原力计划

    作者 | 扬帆向海 责编 | 王晓曼 出品 | CSDN博客 问题描述 约瑟夫问题(有时也称为约瑟夫斯置换,是一个出现在计算机科学和数学中的问题.在计算机编程的算法中,类似问题又称为约瑟夫环.又称&q ...

  8. 技术原创|一文读懂图遍历算法以及图计算应用

    为解决大规模计算和海量数据处理问题,Google 在 2010 年提出了图计算模型 Pregel.随后又陆续出现了.GraphLab.GraphChi等典型图计算系统. 图计算是人工智能的一个使能技术 ...

  9. 详解朴素贝叶斯分类算法

    原文地址:https://blog.csdn.net/amds123/article/details/70173402 带你搞懂朴素贝叶斯分类算法 带你搞懂朴素贝叶斯分类算 贝叶斯分类是一类分类算法的 ...

最新文章

  1. 视频处理器为电池供电的设计提供4K视频编码
  2. 港中大、商汤开源目标检测工具包mmdetection,对比Detectron如何?
  3. c++ 虚函数_到底什么情况下会合成默认构造函数?
  4. 彩虹物语服务器维护,11.19《彩虹物语》服务器维护及数据互通公告
  5. 【Laravel Cache】 配置redis 存储缓存,通俗易懂,一次就掌握
  6. 在51CTO安了家。。。。
  7. boost::graph模块实现DFS parenthesis的测试程序
  8. Swift 协议protocol
  9. MySQL 二进制日志(Binary Log)
  10. android recyclerview 横向item 宽度,RecyclerView的item宽度不能全屏显示及线性布局与grid布局切换混乱解决方法...
  11. directx最终用户运行时_运维定位服务故障时,前5分钟都在忙啥?
  12. linux用户组500,Linux用户及用户组权限
  13. 能量谱 matlab,频谱、幅度谱、功率谱和能量谱含义
  14. linux下安装虚拟天文馆,【地理软件】虚拟天文馆——stellarium
  15. oracle 帮助文件,oracle chm帮助文件下载
  16. 2021年中国商品期货交易规模分析:交易量达71.71亿手,同比增长21.15%[图]
  17. robotframework如何提取失败的测试,以便下次运行
  18. 计算机核心期刊排名及简介一览
  19. Github使用秘籍
  20. 简易钓鱼网站的构建(Kali SetoolKit)

热门文章

  1. C#:Krypton控件使用方法详解(第十二讲) ——kryptonCheckButton
  2. 微信小程序 java高校课后作业辅导管理系统springboot
  3. 清华大学MBA 2011级P班第一学期课程与教材
  4. 【疯壳·机器人教程8】人形街舞机器人-多个舵机不同速率转动
  5. 人工智能专业读研导师怎么选?建议你收藏这份名单
  6. 学术论文写作英语句型
  7. linux redhat中文字体安装,Linux redhat中文字体安装.doc
  8. Lumion8.0中文版安装教程(附软件下载)
  9. 2022年数模国赛冲刺之模型复习2
  10. 游戏网页设计成品 学校班级网页制作模板 大学生静态HTML网页源码 dreamweaver网页作业 简单网页课程成品