3-2 朴素贝叶斯分类算法及MATLAB实现

3-2 朴素贝叶斯分类算法及MATLAB实现

\quad \quad 贝叶斯学派的思想可以概括为先验概率+数据=后验概率。也就是说我们在实际问题中需要得到的后验概率,可以通过先验概率和数据一起综合得到。贝叶斯学习可以用于垃圾邮件分类,文本分类等。

1.基础知识

  1. 全概率公式: P ( B ) = ∑ i = 1 n P ( A i ) ∗ P ( B ∣ A i ) P(B)=\sum^{n}_{i=1}P(A_i)*P(B|A_i) P(B)=i=1nP(Ai)P(BAi)
  2. 条件概率: P ( A ∣ B ) = P ( A ⋂ B ) P ( B ) P(A|B)=\frac{P(A\bigcap B)}{P(B)} P(AB)=P(B)P(AB) P ( B ∣ A ) = P ( A ⋂ B ) P ( A ) P(B|A)=\frac{P(A\bigcap B)}{P(A)} P(BA)=P(A)P(AB)
  3. 独立事件交概率: P ( A B ) = P ( A ⋂ B ) = P ( A ) ∗ P ( B ) P(AB)=P(A\bigcap B)=P(A)*P(B) P(AB)=P(AB)=P(A)P(B)
  4. 贝叶斯公式:
    P ( A ∣ B ) = P ( A ⋂ B ) P ( B ) = P ( A ) ∗ P ( B ∣ A ) P ( B ) = P ( A ) ∗ P ( B ∣ A ) ∑ i = 1 n P ( A i ) ∗ P ( B ∣ A i ) P(A|B)=\frac{P(A\bigcap B)}{P(B)}=\frac{P(A)*P(B|A)}{P(B)}=\frac{P(A)*P(B|A)}{\sum^{n}_{i=1}P(A_i)*P(B|A_i)} P(AB)=P(B)P(AB)=P(B)P(A)P(BA)=i=1nP(Ai)P(BAi)P(A)P(BA)

2. 分类依据

对应给定的样本X的特征向量 x 1 , x 2 , . . . , x m x_1,x_2,...,x_m x1,x2,...,xm,我们假定特征之间是独立的;则该样本 X X X的类别 y y y的概率可以由贝叶斯公式得到:
P ( y ∣ ( x 1 , x 2 , . . . , x m ) ) = P ( y ) ∗ P ( ( x 1 , x 2 , . . . , x m ∣ y ) P ( x 1 , x 2 , . . . , x m ) = P ( y ) ∗ ∏ i = 1 n P ( x i ) P ( x 1 , x 2 , . . . , x m ) P(y|(x_1,x_2,...,x_m))=\frac{P(y)*P((x_1,x_2,...,x_m|y)}{P(x_1,x_2,...,x_m)}=\frac{P(y)*\prod_{i=1}^nP(x_i)}{P(x_1,x_2,...,x_m)} P(y(x1,x2,...,xm))=P(x1,x2,...,xm)P(y)P((x1,x2,...,xmy)=P(x1,x2,...,xm)P(y)i=1nP(xi)
在给定样本的情况下,P(x_1,x_2,…,x_m)是常数,所以得到:
\quad \quad P ( y ∣ ( x 1 , x 2 , . . . , x m ) = C ∗ P ( y ) ∗ ∏ i = 1 n P ( x i ) P(y|(x_1,x_2,...,x_m)=C*P(y)*\prod_{i=1}^nP(x_i) P(y(x1,x2,...,xm)=CP(y)i=1nP(xi)
于是问题转化为:
y − = a r g m i n { P ( y ) ∗ ∏ i = 1 n P ( x i ) } \overset{-}{y}=argmin\{P(y)*\prod_{i=1}^nP(x_i)\} y=argmin{P(y)i=1nP(xi)}

3.计算步骤

  1. x = { a 1 , a 2 , . . . , a m } x=\{a_1,a_2,...,a_m\} x={a1,a2,...,am}为待分类项,其中 a a a x x x的一个特征属性
  2. 类别集合为 C = y 1 , y 2 , . . . , y n C={y_1,y_2,...,y_n} C=y1,y2,...,yn
  3. 分别计算 P ( y 1 ∣ x ) , P ( y 2 ∣ x ) , . . . . , P ( y n ∣ x ) P(y_1|x),P(y_2|x),....,P(y_n|x) P(y1x),P(y2x),....,P(ynx)的值(贝叶斯公式)
  4. 如果 P ( y k ∣ x ) = m a x { P ( y 1 ∣ x ) , P ( y 2 ∣ x ) , . . . . , P ( y n ∣ x ) } P(y_k|x)=max\{P(y_1|x),P(y_2|x),....,P(y_n|x)\} P(ykx)=max{P(y1x),P(y2x),....,P(ynx)},那么认为 x x x y k y_k yk类型

4.MATLAB Example

用fisher数据做算法实例可参考MATLAB官方函数算例
https://ww2.mathworks.cn/help/stats/fitcnb.html

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值