Naive Bayes Model 朴素贝叶斯 简单易懂的笔记by hch

Naive Bayes model

朴素贝叶斯

简单易懂 by hch

我们用一个例子开始:

Naive Bayes Model 朴素贝叶斯 简单易懂的笔记by hch
我们把它当成概率论求条件概率的题解解试试

P=P()P()=P()P()P()P()=P()P()P()=P()P()P()P()+P() P(感冒|打喷嚏\cap建筑工人)=\frac{P(感冒\cap打喷嚏\cap建筑工人)}{P(打喷嚏\cap建筑工人)}\\=\frac{P(感冒)}{P(打喷嚏\cap建筑工人)}*\frac{P(感冒\cap打喷嚏\cap建筑工人)}{P(感冒)}\\=\frac{P(感冒)}{P(打喷嚏\cap建筑工人)}*P(打喷嚏\cap建筑工人|感冒)\\=\frac{P(感冒)}{P(打喷嚏)*P(建筑工人)}*(P(打喷嚏|感冒)+P(建筑工人|感冒))

p(AB)=P(AB)p(B)=P(A)P(B)P(AB)P(A)=P(A)P(B)P(BA) p(A|B)=\frac{P(AB)}{p(B)}=\frac{P(A)}{P(B)}*\frac{P(AB)}{P(A)}=\frac{P(A)}{P(B)}*P(B|A)

多么神奇:

我们会发现
P()P()P()P() P(感冒),P(打喷嚏),P(打喷嚏|感冒),P(建筑工人|感冒)
是在表中多么好求!!

开始拓展

x 特征1 特征2 特征n tag
x1 1 0 1 1 1
x2 0 1 1 1 3
x3 1 0 0 1 2
xm 1 0 0 0 5

xj表示第j个样本,共有m个样本
xji表示第j个样本的第i维特征值
yj表示第j个样本的tag,即结果
tag共有K种
ck表示第k种tag
我们试图通过已知tag的数据去训练模型,从而预测未知tag的数据
(下面数学公式有哪里不懂了,记得回来看这里的定义)

预想下,我们如何预测:

给予我们上面一个表(样本数据),再给我们一个

x=[1,0,1,1,...,1] x_{待预测}=[1,0,1,1,...,1]
让我们预测它的tag?
很容易结合上面例子,想到针对不同的tag取值,我们都求一下它们的条件概率,然后选里面最大的,即(下面用x表示 x_待预测)

y=argmaxP(Y=ckX=x) y=arg max{P(Y=c_k|X=x)}

argmax(f(x))fxx0 argmax(f(x))表示f(x)取最大值时的x_0

P(Y=ckX=x)=P(X=xY=ck)P(Y=ck)P(X=x)=(i=1nP(X=xiY=ck))P(Y=ck)i=1nP(X=xi) P(Y=c_k|X=x)=P(X=x|Y=c_k)*\frac{P(Y=c_k)}{P(X=x)}\\ =(\sum_{i=1}^{n} P(X=x_i|Y=c_k))* \frac{P(Y=c_k)}{\prod_{i=1}^{n}P(X=x_i)}
理解不了上面数学公式的,试着结合生动的例子理解下里面变量的含义,
正如马克思指出的 :

认识来源于实践 而不是看着式子空想

Naive Bayes Model 朴素贝叶斯 简单易懂的笔记by hch