title: 【机器学习自学笔记4】朴素贝叶斯分类器
date: 2020-10-29 18:34:29
categories: 机器学习
tags:

  • 机器学习
  • 概率论

贝叶斯分类是一类分类算法的总称,这类算法均以贝叶斯定理为基础,故统称为贝叶斯分类。而朴素贝叶斯分类是贝叶斯分类中最简单,也是常见的一种分类方法。

贝叶斯公式

P(B∣A)=P(AB)P(A)=P(A∣B)P(B)P(A)P(B|A) = \frac{P(AB)}{P(A)} = \frac{P(A|B)P(B)}{P(A)} P(B∣A)=P(A)P(AB)​=P(A)P(A∣B)P(B)​

根据贝叶斯公式,如果已知一个实例的特征,要求该实例属于哪个类别的概率最大,只需要知道该特征在每个类别种的概率即可!

即根据先验概率求解后验概率。
P(类别∣特征)=P(特征∣类型)P(类别)P(特征)P(类别|特征)=\frac{P(特征|类型)P(类别)}{P(特征)} P(类别∣特征)=P(特征)P(特征∣类型)P(类别)​
这就是贝叶斯分类的核心思想

朴素贝叶斯分类

已知数据集

颜色 响声 甜度 好瓜
青绿 浑浊 不甜 不是
青绿 浑浊 不甜 不是
青绿 清脆
青绿 浑浊 不甜 不是
深绿 清脆
深绿 浑浊
深绿 浑浊 不甜
深绿 清脆
深绿 清脆

给出问题,如果已知有一个瓜的特征 = {深绿,清脆,不甜},这个瓜是不是好瓜?

这是典型的后验概率问题,可以通过贝叶斯公式转换为对先验概率的求解问题:
P(好瓜∣颜色=深绿,响声=清脆,甜度=不甜)=P(颜色=深绿,响声=清脆,甜度=不甜∣好瓜)P(好瓜)P(颜色=深绿,响声=清脆,甜度=不甜)P(好瓜|颜色=深绿,响声=清脆,甜度=不甜) = \frac{P(颜色=深绿,响声=清脆,甜度=不甜|好瓜)P(好瓜)}{P(颜色=深绿,响声=清脆,甜度=不甜)} P(好瓜∣颜色=深绿,响声=清脆,甜度=不甜)=P(颜色=深绿,响声=清脆,甜度=不甜)P(颜色=深绿,响声=清脆,甜度=不甜∣好瓜)P(好瓜)​
如果数据集的几个特征相互独立,则上述公式可以变换为:
P(好瓜∣颜色=深绿,响声=清脆,甜度=不甜)P(好瓜|颜色=深绿,响声=清脆,甜度=不甜) P(好瓜∣颜色=深绿,响声=清脆,甜度=不甜)

=P(颜色=深绿∣好瓜)P(响声=清脆∣好瓜)P(甜度=不甜∣好瓜)P(好瓜)P(颜色=深绿)P(响声=清脆)P(甜度=不甜)= \frac{P(颜色=深绿|好瓜)P(响声=清脆|好瓜)P(甜度=不甜|好瓜)P(好瓜)}{P(颜色=深绿)P(响声=清脆)P(甜度=不甜)} =P(颜色=深绿)P(响声=清脆)P(甜度=不甜)P(颜色=深绿∣好瓜)P(响声=清脆∣好瓜)P(甜度=不甜∣好瓜)P(好瓜)​

这样一来,问题就变得非常容易求解。

根据数据集求出各个概率:
P(颜色=深绿∣好瓜)=56=0.8333P(颜色=深绿|好瓜) = \frac{5}{6} = 0.8333 P(颜色=深绿∣好瓜)=65​=0.8333

P(响声=清脆∣好瓜)=46=0.6667P(响声=清脆|好瓜)=\frac{4}{6}=0.6667 P(响声=清脆∣好瓜)=64​=0.6667

P(甜度=不甜∣好瓜)=16=0.1667P(甜度=不甜|好瓜) = \frac{1}{6} = 0.1667 P(甜度=不甜∣好瓜)=61​=0.1667

P(好瓜)=69=0.6667P(好瓜) = \frac{6}{9} = 0.6667 P(好瓜)=96​=0.6667

P(颜色=深绿)=59=0.5556P(颜色=深绿) = \frac{5}{9} = 0.5556 P(颜色=深绿)=95​=0.5556

P(响声=清脆)=49=0.4444P(响声=清脆) = \frac{4}{9} = 0.4444 P(响声=清脆)=94​=0.4444

P(甜度=不甜)=49=0.4444P(甜度=不甜) = \frac{4}{9} = 0.4444 P(甜度=不甜)=94​=0.4444


P(好瓜∣颜色=深绿,响声=清脆,甜度=不甜)P(好瓜|颜色=深绿,响声=清脆,甜度=不甜) P(好瓜∣颜色=深绿,响声=清脆,甜度=不甜)

=0.8333⋅0.6667⋅0.1667⋅0.66670.5556⋅0.4444⋅0.4444=0.5627= \frac{0.8333\cdot0.6667\cdot0.1667\cdot0.6667}{0.5556\cdot0.4444\cdot0.4444} = 0.5627 =0.5556⋅0.4444⋅0.44440.8333⋅0.6667⋅0.1667⋅0.6667​=0.5627

同理
P(不是好瓜∣颜色=深绿,响声=清脆,甜度=不甜)=0.4373P(不是好瓜|颜色=深绿,响声=清脆,甜度=不甜) = 0.4373 P(不是好瓜∣颜色=深绿,响声=清脆,甜度=不甜)=0.4373
因此,深绿、清脆、不甜的瓜是好瓜的概率更大。

朴素贝叶斯分类为什么朴素

那么,何为朴素贝叶斯分类中的朴素

注意到,我们上面的计算基于各特征间相互独立的假设,这是一个较强的假设。

朴素一词对应英文中的 naive,即天真,意思是这种想当然的假设是非常天真的,在现实生活中,这种特征相互独立的情况几乎不存在。

之所以要假设特征间相互独立,有两个原因:

  • 减少计算量
  • 同时满足各个特征的样本难以寻找甚至不存在,无法保证充足的样本

拉普拉斯修正

朴素贝叶斯分类有一个问题:如果计算中有一个概率出现 0,会导致什么?

答:结果为 0 或无法计算。

这显然不是我们想要的结果!

为了解决这个问题,可以引入拉普拉斯修正对概率进行平滑化处理:

  • |D|表示数据集的样本个数
  • N 表示数据集结果拥有的类别数
  • NiN_iNi​ 表示该特征拥有的类别数

P^(c)=∣Dc∣+1∣D∣+N\hat{P}(c) = \frac{|D_c|+1}{|D|+N} P^(c)=∣D∣+N∣Dc​∣+1​

P^(xi∣c)=∣Dc,xi∣+1∣Dc∣+Ni\hat{P}(x_i|c) = \frac{|D_{c,x_i}|+1}{|D_c|+N_i} P^(xi​∣c)=∣Dc​∣+Ni​∣Dc,xi​​∣+1​

已知数据集

颜色 响声 甜度 好瓜
青绿 浑浊 不甜 不是
青绿 浑浊 不甜 不是
青绿 清脆
青绿 浑浊 不甜 不是
深绿 清脆
深绿 浑浊
深绿 浑浊 不甜
深绿 清脆
深绿 清脆

此时
P(颜色=深绿∣不是好瓜)=03=0P(颜色=深绿|不是好瓜) = \frac{0}{3} = 0 P(颜色=深绿∣不是好瓜)=30​=0
这将导致分类计算结果为 0. 进行拉普拉斯修正
P^(颜色=深绿∣不是好瓜)=0+13+3=16\hat{P}(颜色=深绿|不是好瓜) = \frac{0 + 1}{3+3} = \frac{1}{6} P^(颜色=深绿∣不是好瓜)=3+30+1​=61​
这种平滑化处理就避免了分类结果为 0 的情况。

【机器学习自学笔记4】朴素贝叶斯分类器相关推荐

  1. 机器学习与R之朴素贝叶斯分类器

    朴素贝叶斯 1联合概率分布 p(x,y)=p(y)P(x|y)  或者p(A交B)=p(A)xp(B)  p(A交B)不容易求,假设条件独立拆分成两个事件的乘积 2基本假设条件独立性 3利用贝叶斯定理 ...

  2. 【一起入门MachineLearning】中科院机器学习第3课-朴素贝叶斯分类器

    专栏介绍:本栏目为 "2021秋季中国科学院大学周晓飞老师的机器学习" 课程记录,不仅仅是课程笔记噢- 每周上两小节课,每周更新两篇博客,如果感兴趣的话,就和我一起入门Machin ...

  3. 机器学习实验 - 朴素贝叶斯分类器

    目录 一.报告摘要 1.1 实验要求 1.2 实验思路 1.3 实验结论 二.实验内容 2.1 方法介绍 2.2 实验细节 2.2.1 实验环境 2.2.2 实验过程 2.2.3 实验与理论内容的不同 ...

  4. 机器学习实战 朴素贝叶斯分类器

    基于概率论的分类方法: 朴素贝叶斯 我的微信公众号: s406205391; 欢迎大家一起学习,一起进步!!! k-近邻算法和决策树会给出"该数据属于哪一类"的明确回答.不过,分类 ...

  5. 机器学习算法 - 朴素贝叶斯分类器

    ​ 一.算法简介 1.1 背景 监督学习分为生成模型 (generative model) 与判别模型 (discriminative model) 判别模型:SVM, LR, KNN, NN, CR ...

  6. 机器学习实战读书笔记(3)朴素贝叶斯

    贝叶斯定理 要理解贝叶斯推断,必须先理解贝叶斯定理.后者实际上就是计算"条件概率"的公式. 所谓"条件概率"(Conditional probability), ...

  7. 机器学习:朴素贝叶斯分类器,决策函数向量化处理,mask使用技巧

    文章目录 前面实现的朴素贝叶斯分类器,决策函数是非向量化的: 借助于numpy向量化处理,相当于并行计算,注意mask使用技巧,用途较广: 前面实现的朴素贝叶斯分类器,决策函数是非向量化的: 前面提到 ...

  8. sklearn朴素贝叶斯分类器_python机器学习:方法链和朴素贝叶斯分类器

    今天我们在学习朴素贝叶斯分类器之前,我们先来总结下前面经常用到的内容,方法链:在scikit-learn中所有模型的fit方法返回的都是self.我们用一行代码初始化模型并拟合,对应代码如下:logr ...

  9. python机器学习案例系列教程——文档分类器,朴素贝叶斯分类器,费舍尔分类器

    全栈工程师开发手册 (作者:栾鹏) python数据挖掘系列教程 github地址:https://github.com/626626cdllp/data-mining/tree/master/Bay ...

  10. 机器学习(3)高斯判别分析朴素贝叶斯分类器

    判别模型与生成模型 判别模型 判别模型是对观测数据进行直接分类,常见的判别模型有逻辑回归和感知机算法等.此模型仅对数据进行分类,并不能具象化或者量化数据本身的分布状态,因此也无法根据分类生成可观测的图 ...

最新文章

  1. 【JavsScript】推荐五款流行的JavaScript模板引擎
  2. Error: bin/bash^M: bad interpreter: no such file o
  3. MySQL中INSERT IGNORE INTO和REPLACE INTO的使用
  4. 5首页加载慢_UIViewController 预加载方案浅谈
  5. mysql省市县三级互动_mysql+ajax的省市县三级联动
  6. python fieldnames_csvreader.fieldnames在python中未被识别为csv reader对象的属性
  7. 大数据之-Hadoop_环境搭建_JDK安装---大数据之hadoop工作笔记0017
  8. 关于叫号类的PV操作总结
  9. springBoot+Mybatis注解大全
  10. PHP九九乘法表代码
  11. 《动手学ROS2进阶篇》8.2RVIZ2可视化移动机器人模型
  12. stm32 iap升级
  13. 树的四种遍历 先序 中序 后序 层次
  14. C语言中,求三个数中最大数
  15. noseunittestpytest
  16. linux 查找文件是否含有某个字符串
  17. empty 和 isset 的区别
  18. 洛谷P4394 [BOI2008]Elect 选举 题解
  19. 涵数计算机怎么玩游戏,科学计算器
  20. nginx配置ip黑名单

热门文章

  1. 20175312 2018-2019-2 实验三 敏捷开发与XP实践 实验报告
  2. EPLAN教程 | 易盼软件图形系统如何正确使用?
  3. linux 查看日志文件
  4. 毕业设计-基于Unity的餐厅经营游戏的设计与开发(附源码、开题报告、论文、答辩PPT、演示视频,带数据库)
  5. java兼容的浏览器_介绍几款浏览器兼容性测试工具
  6. Java项目:(小程序)幼儿园报名系统(java+weixin-java-mp+spring+spring mvc+mybatis+layui+微信小程序)
  7. 两个数码管显示16位数
  8. CnOpenData中国发明授权专利信息数据
  9. 人脸识别应用概览及其技术、产品厂商一览
  10. Fiddler拦截指定站点并修改客户端request请求