朴素贝叶斯算法

朴素贝叶斯算法是基于贝叶斯定理特征条件独立假设的分类方法。对于给定的训练数据集,首先基于特征条件独立假设学习输入/输出的联合概率分布;然后基于此模型,对给定的输入 x ,利用贝叶斯定理求出后验概率最大的输出 y ,即为对应的类别。

朴素贝叶斯算法_第1张图片

1.1 先验概率

  先验概率(prior probability)是指根据以往经验和分析得到的概率

1.2 条件概率

  条件概率是指在事件 Y=yY=y 已经发生的条件下,事件 X=xX=x 发生的概率。条件概率可表示为: P(X=x|Y=y)P(X=x|Y=y) 。而条件概率计算公式为:

朴素贝叶斯算法_第2张图片

 p(X=x,Y=y)为联合概率。

1.3 全概率公式

  全概率公式是指:如果事件 Y=y1,Y=y2,...,Y=ynY=y1,Y=y2,...,Y=yn 可构成一个完备事件组,即它们两两互不相容,其和为全集。则对于事件 X=xX=x 有:

 

1.4 后验概率

   后验概率是指,某事件 X=xX=x 已经发生,那么该事件是因为事件 Y=yY=y 的而发生的概率。

朴素贝叶斯算法_第3张图片

 

问题:在夏季,某公园男性穿凉鞋的概率为 1/2 ,女性穿凉鞋的概率为 2/3 ,并且该公园中男女比例通常为 2:1 ,问题:若你在公园中随机遇到一个穿凉鞋的人,请问他的性别为男性或女性的概率分别为多少?

朴素贝叶斯算法_第4张图片

 

 代码验证:

朴素贝叶斯算法_第5张图片

 

import numpy as np

H = np.array([2/3,1/3])  #完备事件组概率
C = np.array([1/2,2/3]) #条件概率
h = np.array(2/3)
c = np.array(1/2)

#全概率公式
def quan(H,C):
    return (H * C).sum()

#贝叶斯公式
def bei(h, c, quan):
    x = h*c
    y = quan(H,C)
    return x/y


print(quan(H,C))
print(bei(h,c,quan))

你可能感兴趣的:(算法,人工智能)