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


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

  • 机器学习
  • 概率论

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

贝叶斯公式

P ( B ∣ A ) = P ( A B ) 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(BA)=P(A)P(AB)=P(A)P(AB)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 ( 颜 色 = 深 绿 ∣ 好 瓜 ) = 5 6 = 0.8333 P(颜色=深绿|好瓜) = \frac{5}{6} = 0.8333 P(=绿)=65=0.8333

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

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

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

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

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

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


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

= 0.8333 ⋅ 0.6667 ⋅ 0.1667 ⋅ 0.6667 0.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.55560.44440.44440.83330.66670.16670.6667=0.5627

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

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

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

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

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

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

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

拉普拉斯修正

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

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

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

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

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

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

P ^ ( x i ∣ c ) = ∣ D c , x i ∣ + 1 ∣ D c ∣ + N i \hat{P}(x_i|c) = \frac{|D_{c,x_i}|+1}{|D_c|+N_i} P^(xic)=Dc+NiDc,xi+1

已知数据集

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

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

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值