【机器学习自学笔记4】朴素贝叶斯分类器
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】朴素贝叶斯分类器相关推荐
- 机器学习与R之朴素贝叶斯分类器
朴素贝叶斯 1联合概率分布 p(x,y)=p(y)P(x|y) 或者p(A交B)=p(A)xp(B) p(A交B)不容易求,假设条件独立拆分成两个事件的乘积 2基本假设条件独立性 3利用贝叶斯定理 ...
- 【一起入门MachineLearning】中科院机器学习第3课-朴素贝叶斯分类器
专栏介绍:本栏目为 "2021秋季中国科学院大学周晓飞老师的机器学习" 课程记录,不仅仅是课程笔记噢- 每周上两小节课,每周更新两篇博客,如果感兴趣的话,就和我一起入门Machin ...
- 机器学习实验 - 朴素贝叶斯分类器
目录 一.报告摘要 1.1 实验要求 1.2 实验思路 1.3 实验结论 二.实验内容 2.1 方法介绍 2.2 实验细节 2.2.1 实验环境 2.2.2 实验过程 2.2.3 实验与理论内容的不同 ...
- 机器学习实战 朴素贝叶斯分类器
基于概率论的分类方法: 朴素贝叶斯 我的微信公众号: s406205391; 欢迎大家一起学习,一起进步!!! k-近邻算法和决策树会给出"该数据属于哪一类"的明确回答.不过,分类 ...
- 机器学习算法 - 朴素贝叶斯分类器
一.算法简介 1.1 背景 监督学习分为生成模型 (generative model) 与判别模型 (discriminative model) 判别模型:SVM, LR, KNN, NN, CR ...
- 机器学习实战读书笔记(3)朴素贝叶斯
贝叶斯定理 要理解贝叶斯推断,必须先理解贝叶斯定理.后者实际上就是计算"条件概率"的公式. 所谓"条件概率"(Conditional probability), ...
- 机器学习:朴素贝叶斯分类器,决策函数向量化处理,mask使用技巧
文章目录 前面实现的朴素贝叶斯分类器,决策函数是非向量化的: 借助于numpy向量化处理,相当于并行计算,注意mask使用技巧,用途较广: 前面实现的朴素贝叶斯分类器,决策函数是非向量化的: 前面提到 ...
- sklearn朴素贝叶斯分类器_python机器学习:方法链和朴素贝叶斯分类器
今天我们在学习朴素贝叶斯分类器之前,我们先来总结下前面经常用到的内容,方法链:在scikit-learn中所有模型的fit方法返回的都是self.我们用一行代码初始化模型并拟合,对应代码如下:logr ...
- python机器学习案例系列教程——文档分类器,朴素贝叶斯分类器,费舍尔分类器
全栈工程师开发手册 (作者:栾鹏) python数据挖掘系列教程 github地址:https://github.com/626626cdllp/data-mining/tree/master/Bay ...
- 机器学习(3)高斯判别分析朴素贝叶斯分类器
判别模型与生成模型 判别模型 判别模型是对观测数据进行直接分类,常见的判别模型有逻辑回归和感知机算法等.此模型仅对数据进行分类,并不能具象化或者量化数据本身的分布状态,因此也无法根据分类生成可观测的图 ...
最新文章
- 【JavsScript】推荐五款流行的JavaScript模板引擎
- Error: bin/bash^M: bad interpreter: no such file o
- MySQL中INSERT IGNORE INTO和REPLACE INTO的使用
- 5首页加载慢_UIViewController 预加载方案浅谈
- mysql省市县三级互动_mysql+ajax的省市县三级联动
- python fieldnames_csvreader.fieldnames在python中未被识别为csv reader对象的属性
- 大数据之-Hadoop_环境搭建_JDK安装---大数据之hadoop工作笔记0017
- 关于叫号类的PV操作总结
- springBoot+Mybatis注解大全
- PHP九九乘法表代码
- 《动手学ROS2进阶篇》8.2RVIZ2可视化移动机器人模型
- stm32 iap升级
- 树的四种遍历 先序 中序 后序 层次
- C语言中,求三个数中最大数
- noseunittestpytest
- linux 查找文件是否含有某个字符串
- empty 和 isset 的区别
- 洛谷P4394 [BOI2008]Elect 选举 题解
- 涵数计算机怎么玩游戏,科学计算器
- nginx配置ip黑名单
热门文章
- 20175312 2018-2019-2 实验三 敏捷开发与XP实践 实验报告
- EPLAN教程 | 易盼软件图形系统如何正确使用?
- linux 查看日志文件
- 毕业设计-基于Unity的餐厅经营游戏的设计与开发(附源码、开题报告、论文、答辩PPT、演示视频,带数据库)
- java兼容的浏览器_介绍几款浏览器兼容性测试工具
- Java项目:(小程序)幼儿园报名系统(java+weixin-java-mp+spring+spring mvc+mybatis+layui+微信小程序)
- 两个数码管显示16位数
- CnOpenData中国发明授权专利信息数据
- 人脸识别应用概览及其技术、产品厂商一览
- Fiddler拦截指定站点并修改客户端request请求