Naive Bayes model
朴素贝叶斯
简单易懂 by hch
我们用一个例子开始:

我们把它当成概率论求条件概率的题解解试试
P(感冒∣打喷嚏∩建筑工人)=P(打喷嚏∩建筑工人)P(感冒∩打喷嚏∩建筑工人)=P(打喷嚏∩建筑工人)P(感冒)∗P(感冒)P(感冒∩打喷嚏∩建筑工人)=P(打喷嚏∩建筑工人)P(感冒)∗P(打喷嚏∩建筑工人∣感冒)=P(打喷嚏)∗P(建筑工人)P(感冒)∗(P(打喷嚏∣感冒)+P(建筑工人∣感冒))
p(A∣B)=p(B)P(AB)=P(B)P(A)∗P(A)P(AB)=P(B)P(A)∗P(B∣A)
多么神奇:
我们会发现
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]
让我们预测它的tag?
很容易结合上面例子,想到针对不同的tag取值,我们都求一下它们的条件概率,然后选里面最大的,即(下面用x表示 x_待预测)
y=argmax{P(Y=ck∣X=x)}
argmax(f(x))表示f(x)取最大值时的x0
P(Y=ck∣X=x)=P(X=x∣Y=ck)∗P(X=x)P(Y=ck)=(i=1∑nP(X=xi∣Y=ck))∗∏i=1nP(X=xi)P(Y=ck)
理解不了上面数学公式的,试着结合生动的例子理解下里面变量的含义,
正如马克思指出的 :
认识来源于实践 而不是看着式子空想
