引言:朴素贝叶斯分类器作为基础的分类算法,早在基础数学时期就已经被使用,目前在各行各业中更是被广泛使用。近几年车厘子在中国地区卖得火热,面对车厘子和樱桃,很多老百姓很难分清楚,那么算法能帮我们区分吗? 
本文选自《大数据时代的算法:机器学习、人工智能及其典型实例》。


  车厘子是樱桃吗?它们有区别是什么呢?通过在水果市场采集,获得了一些关于车厘子和樱桃的相关特征数据。 

  通过现有的车厘子和樱桃的数据,在包含车厘子和樱桃的混合水果中,随机给一个车厘子或者樱桃,识别它是樱桃或者车厘子的可能性哪个大? 本文我们将用朴素贝叶斯(Naive Beyesian)来解决这个问题,但在开始之前我们来简单了解下一些相关知识。

贝叶斯定理

  朴素贝叶斯是以贝叶斯定理为基础的概率分类模型。贝叶斯定理是概率论中的一个定理,它跟随机变量的条件概率及边缘概率分布有关。在有些关于概率的解说中,贝叶斯定理能够告知我们如何利用新证据修改已有的看法。这个名称来自于托马斯·贝叶斯。 
  通常,事件A在事件B(发生)的条件下的概率与事件B在事件A的条件下的概率是不一样的;然而,这两者有着确定的关系,贝叶斯定理就是对这种关系的表示。贝叶斯公式定义在事件B出现的前提下,事件A出现的概率等于事件A出现的前提下事件B发生的概率乘以时间A出现的概率再除以时间B出现的概率。通过联系事件A与事件B,计算从一个事件产生另一事件的概率,即从结果上溯原。因此,贝叶斯定理公式如下所示: 

  在理解贝叶斯定理的基础上,可以较好地理解基于朴素贝叶斯的分类模型。信息分类是信息处理中最基本的模块,每一段信息无论长或短,都由若干特征组成,因此可以将所有特征视为一个向量集W=(w1,w2,w3,…,wn),其中wi即表示其中第i个特征。而信息的分类也可以视为一个分类标记的集合C={c1,c2,c3,…,cm}。在进行特征学习之前,特征wi与分类标记cj的关系不是确定值,因此需要提前计算P(C|W),也就是在特征wi出现的情况下,信息属于分类标记C的概率,可根据贝叶斯计算,公式如下: 

  因此,可以从信息分类的角度理解贝叶斯公式,即表示为:在特征wi出现的情况下是否是特征类别cj取决于在特征分类标记cj情况下特征wi出现的概率以及wi在所有特征中出现的概率。P(W)的意义在于如果这个特征在所有信息中出现,那么用特征wi去判定是否属于分类标识cj的概率越低,越不具备代表性。

车厘子与樱桃问题的解决

  朴素贝叶斯是一种有监督的学习方式,可以利用伯努利模型(Bernoulli Model)以文件为粒度进行文本分类。 
(有监督学习是有监督分类的实质,有监督分类是指根据已有的训练集提供的样本,通过不断计算,从样本中学习选择特征参数,对分类器建立判别函数以对被识别的样本进行分类。有监督分类方式可以有效利用先验数据,对后验数据进行校验,但是缺点也比较明显。首先,训练数据是人为收集,具有一定的主观性,并且人为收集数据也会导致花费一定的人力成本;其次,最终分类器分类的结果中,分类结果只可能是训练数据中的分类类型,不会产生新的类型。) 
假设训练集样本的特征满足高斯分布,得到下表。 

  我们认为两种类别是等概率的,也就是P(车厘子)=P(樱桃)=0.5。概率密度函数如下: 

  验证过程先给出一个待确定属于车厘子还是樱桃的测试样本,见下表。 

  验证的标准则是:得到的样本属于樱桃还是车厘子的后验概率大者。 

  上述式子用于求取车厘子的后验概率, 

  上式用于求取樱桃的后验概率。证据因子evidence(通常是常数)用来对各类的后验概率之和进行归一化。 

  证据因子是一个常数(在高斯分布中通常是一个常数),所以可以忽略,只需计算后验概率式子中的分子即可。接下来通过样本的特征值来判别样本所属的类别。 

  其中,μ=0.8,α=0.018257419,二者均为训练集样本的高斯分布参数。注意,这里计算的是概率密度而不是概率。 

  通过上述计算可以看出,车厘子的后验概率分子较大,由此可以预计这个样本属于车厘子的可能性较大。 
  本文选自《大数据时代的算法:机器学习、人工智能及其典型实例》,点此链接可在博文视点官网查看此书。 
                     

利用算法识别车厘子与樱桃相关推荐

  1. OpenCV-Python实战(番外篇)——利用 SVM 算法识别手写数字

    OpenCV-Python实战(番外篇)--利用 SVM 算法识别手写数字 前言 使用 SVM 进行手写数字识别 参数 C 和 γ 对识别手写数字精确度的影响 完整代码 相关链接 前言 支持向量机 ( ...

  2. OpenCV-Python实战(番外篇)——利用 KNN 算法识别手写数字

    OpenCV-Python实战(番外篇)--利用 KNN 算法识别手写数字 前言 手写数字数据集 MNIST 介绍 基准模型--利用 KNN 算法识别手写数字 改进模型1--参数 K 对识别手写数字精 ...

  3. 用算法识别水流模式,AI探测到962起污水泄漏事件

    来源:大数据文摘本文约1500字,建议阅读6分钟人工智能技术如何发挥作用? 研究人员表示,人工智能技术检测到了数百起未处理污水直接排放入英国河流的事件. 科学家们利用机器学习技术,从两处污水处理设施超 ...

  4. 【OpenCV/C++】KNN算法识别数字的实现原理与代码详解

    KNN算法识别数字 一.KNN原理 1.1 KNN原理介绍 1.2 KNN的关键参数 二.KNN算法识别手写数字 2.1 训练过程代码详解 2.2 预测分类的实现过程 三.KNN算法识别印刷数字 2. ...

  5. 利用python识别身份证号后获取年龄和性别信息

    利用python识别身份证号后获取年龄和性别信息 1. 实验目的 利用python识别身份证号后,从身份证号中获取年龄和性别信息 2. 主代码 1. 身份证号码识别 # !/usr/bin/pytho ...

  6. opencv手势识别(3_SVM算法识别)

    手势识别系列博文3:SVM算法识别手势 前言 原理介绍 代码实现 前言 书山有路勤为径,学海无涯苦做舟 琴某人辛辛苦苦码的报告,当然不能让你们这么容易复制过去(๑• . •๑) 运行视频见链接:htt ...

  7. opencv手势识别(2_KNN算法识别)

    手势识别系列博文2:KNN算法识别手势 前言 原理介绍 代码实现 前言 书山有路勤为径,学海无涯苦做舟 琴某人辛辛苦苦码的报告,当然不能让你们这么容易复制过去(๑• . •๑) 运行视频见链接:htt ...

  8. 【玩转华为云】手把手教你利用ModelArts识别偶像的声音

    本篇推文共计2000个字,阅读时间约3分钟. 华为云-华为公司倾力打造的云战略品牌,2011年成立,致力于为全球客户提供领先的公有云服务,包含弹性云服务器.云数据库.云安全等云计算服务,软件开发服务, ...

  9. 大数据算法识别高自杀风险人群?准确率高得吓人

    每年4月1日,追忆张国荣,几乎成了固定的"节目",之所以如此"执着"地纪念,很大程度上就在于张国荣的自杀身亡,令人扼腕. 据统计,全世界每年有约80万人自杀死亡 ...

  10. 【ECG理论篇】(1)AI实现心律失常判别:心电基础知识及利用算法判别心律失常的分析流程

    最近开始做一个新的项目,使用深度学习来优化传统的心律失常预测算法 因为自己也是初涉这个方向,所以学习开始的第一步就是了解背景知识. 基础词汇 心电图(Electrocardiogram,ECG):指心 ...

最新文章

  1. python官网 中文版 新闻-他说,懂中文就能学会Python,但需要这个工具
  2. asm 查看 数据文件 修改 时间_更高效的GMX分段模拟方法:修改tpr文件
  3. 【转】汇编语言学习笔记一:CS和IP寄存器
  4. 读书笔记_CLR.via.c#第五章_基元类型_引用类型_值类型
  5. Python中OpenCV2. VS. CV1
  6. 计算机信息处理教案,冀教版七年级信息技术第二课计算机--信息处理工具 教案...
  7. 【qduoj】C语言课程设计_约瑟夫问题
  8. layui 传递前端请求_layui弹出层如何传值?
  9. go的优势--链表与结构体使用
  10. SpringBoot启动时实现自动执行代码的几种方式讲解
  11. php gbk json_encode,php中json_encode处理gbk与gb2312中文乱码问题的解决方法
  12. php 获取array keys,php数组函数序列之
  13. MongoDB副本集学习(三):性能和优化相关
  14. 分享一个手写轮播图的学习案例
  15. 《社会心理学》第一章读书笔记
  16. PostgreSQL - 一文看懂explain
  17. Python 爬虫:抓取豆瓣top250电影数据
  18. 群体遗传,进化分析利器Popgene分享给大家
  19. html加了文档声明之后页面错乱,PDF转成HTML排版错乱?教你一招完美转换
  20. DSC曲线峰面积的确定及仪器校正

热门文章

  1. 阿里云CDN+OSS完成图片加速
  2. 49 字符大小写排序
  3. UGUI实现摇杆(模仿太极熊猫)
  4. 读取android项目assets目录下的txt文件.
  5. 关于重定向printf出错 Error[Pe020]: identifier FILE is undefined 解决方案
  6. springmvc+ueditor上传路径(个人备忘)
  7. django迁移数据库错误
  8. SpringMVC对象绑定时自定义名称对应关系
  9. css字体及css文本控制
  10. [13年迁移]公司服务器坏了,无聊按面向对象的方法分析下javascript的空值和假值...