朴素贝叶斯算法是个神奇的东西,假定了特征的独立性,却还是在文本分类中有很高的精确度。
我们这里的x=(x1,x2,x3,.....xn)表示数据的特征,y={c1,c2....cm}表示分类个数。
贝叶斯公式argmax p(y=ck|x) = p(x,y=ck)/p(x) = p(y=yk)*(x|y=yk)/p(x);
很明显这里把因果颠倒了。
当x的各个特征独立时,p(x|y=ck) = ∏i (p(xi|y=ck)),带入公式得 argmax p(y=ck|x) = p(x,y=ck)/p(x) = p(y=yk)*p(x|y=yk)/p(x) = p(y=yk)*∏i (p(xi|y=ck))/p(x)
对于每个ck而言p(x)都是相等的,所以可以写成 agrmax p(y=yk)*∏i (p(xi|y=ck))
根据先验的极大似然函数可以得到
p(y=ck)和p(xi|y=ck)就是先验数据中的频率。推导比较麻烦,还在研究中。
准备做一个文本分类。
代码后续补上