1、贝叶斯公式
贝叶斯公式众所周知,推到也比较简单,这里直接写出结果
p(A|B)=p(A)p(B|A)p(B)
其中
p(A)
称为先验概率,
p(A|B)
称为后验概率。贝叶斯公式的意义就在于,事件B的发生对事件A的概率产生了影响,影响系数就是
p(B|A)p(B)
2、朴素贝叶斯
2.1 训练数据集
训练数据集
(x⃗ k,yk),yk∈c1,c2,⋯,cK
2.2 模型
输入:
x⃗ =(a1,a2,⋯,an)
要判断其分类,需要找出使得
p(y=ck|x⃗ )
最大的
ck
,
k=1,2,⋯,K
根据贝叶斯公式可知,
p(y=ck|x⃗ )=p(y=ck)p(x⃗ |y=ck)p(x⃗ )
朴素贝叶斯的“朴素”二字的意义在于,假设输入
x⃗ i
中的各个特征
a1,a2,⋯,an
都是相互独立的。因此,
p(x⃗ |y=ck)=p(a1|y=ck)p(a2|y=ck)⋯p(an|y=ck)
贝叶斯公式的求解将变得简单,其中
p(x⃗ )
可以用全概率公式求解。剩下的问题就是求解
p(y=ck)
和
p(ai|y=ck)
,常用的方法有极大似然估计和贝叶斯估计。
2.3.1 极大似然估计
假设样本总数为
N
,那么先验概率
p(y=ck)
即属于
ck
的样本数/总样本数
N
p(y=ck)=∑Ni=1I(yi=ck)N
而
p(ai|y=ck)
即
ck
类的样本中
ai
出现的次数/
ck
类的样本数
p(ai|y=ck)=∑Ni=1I(yi=ck,xki=ai)∑Ni=1I(yi=ck)
3.实例python实现