1、贝叶斯公式
贝叶斯的公式如下
\[ P(B_{i}| A) = \frac {P(B_{i} | P(A)) * P(B_{i})} { \sum\nolimits_{j=1}^{N} P(B_{j}) * P(A|P(B_{j}))}\]
2、分类中的朴素贝叶斯
上述公式中我们可以将A当做将要预测的实例,\(B_{i}\)表示第\(i\)个类别标签,也就是说我们输入一个实例,得到在每一个类别标签上的概率,哪个大就选择哪个。
假设我们的训练数据集是
\[ T = {(x_{1},y_{1}),(x_{2},y_{2})........(x_{N},y_{N})}\]
由这个训练数据集,我们可以算出每个类别标签在整个数据集出现的概率
\[ P(Y|c_{k}) , k = 1,2,3 ....k\]
我们可以得到实例中每个实例所对应的条件概率表示
\[ P(X=x|Y=c_{k}) = P(X^{(1)}=x^{(1)},X^{(2)}=x^{(2)}.....X^{(n)}=x^{(n)} | Y = c_{k}) \]
由于\(P(X=x|Y=c_{k})\)有指数数量的参数,所以在求解时是不符合实际需要的,所以在这里我们做了个假设,就是各个\(x^{1},x^{2}....x^{n}\)之间是相互独立的,这也是为什么这种算法叫朴素贝叶斯的原因,最终\(P(X=x|Y=c_{k})\)可以表示成如下:
\[ P(X=x|Y=c_{k}) = \prod_{j=1}^{n} P(X=x^{j} | Y=c_{k})\]
根据数据集,我们可以求解以上的一些参数,当这些参数求解之后,我们就可以进行预测新的实例了。假设我们有一条新的实例x,如何预测其分类的结果呢?首先我们根据贝叶斯公式可以得到
\[ P(Y = y_{k} | X = x )\]
即我们得到所有类别的概率,并选择最大的概率的类别作为结果。展开后为
\[ P(Y = y_{k} | X = x ) = \frac {P(Y = y_{k}) * P(X=x |Y = y_{k})} {\sum\nolimits_{k} P(X=x |Y = y_{k})P(Y=y_{k})}\]
由于我们的前提假设,各个\(x^{l}\)之间是相互独立的,所以可以写成
\[ P(Y = y_{k} | X = x ) = \frac { P(Y = y_{k}) * \prod_{j} P(X^{(j)} = x^{(j)} | Y = y_{k}) } {\sum\nolimits_{k} P(Y=y_{k}) * \prod_{j} P(X^{(j)} = x^{(j)} | Y = y_{k}) }\]
接下来我们要计算\(P(Y = y_{k} | X = x )\)所对应的类别,即
\[ y = \arg\max_{y_{k}} P(Y = y_{k} | X = x )\]
由于式子中分母都相同,所以我们只需要最大化分子即可
\[ y = \arg\max_{y_{k}} P(Y = y_{k}) * \prod_{j} P(X^{(j)} = x^{(j)} | Y = y_{k})\]
3、一个例子
这里我们就copy一下《统计学习方法》上的例子了,上面已经讲得很清楚了,我感觉自己举的例子也不一定有这个清楚。
根据公式得到下面的概率
最后我们选择最大的类别作为最终的类别