机器学习笔记3——朴素贝叶斯算法(分类)

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),ykc1,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实现

猜你喜欢

转载自blog.csdn.net/qsdzxp/article/details/79703061