假设有两类数据: A 和 B 假设有两类数据:A和B 假设有两类数据:A和B
平面直角坐标系上分布着A与B类型的数据
对于一个未知类型的数据点(x,y)
P 1 ( x , y ) 表示数据点 ( x , y ) 属于类别 A 的概率 P 2 ( x , y ) 表示数据点 ( x , y ) 属于类别 B 的概率 P1(x,y)表示数据点(x,y)属于类别A的概率\\ P2(x,y)表示数据点(x,y)属于类别B的概率 P1(x,y)表示数据点(x,y)属于类别A的概率P2(x,y)表示数据点(x,y)属于类别B的概率
我们选取概率较大的作为该数据的类别,即最高概率的决策。
计算P1(x,y)和P2(x,y),其实是计算P(A|x,y)和P(B|x,y),即计算P(x,y)的条件概率。
贝叶斯条件概率公式有:
p ( A ∣ x , y ) = p ( x , y ∣ A ) ∗ p ( A ) p ( x , y ) p(A|x,y)=\frac{p(x,y|A)*p(A)}{p(x,y)} p(A∣x,y)=p(x,y)p(x,y∣A)∗p(A)
将 ( x , y ) (x,y) (x,y)替换成 ω \omega ω, ω \omega ω是一个向量。
c i , i = 1 , 2 , 3 … c_i,i=1,2,3… ci,i=1,2,3…表示类别,有:
p ( c i ∣ ω ) = p ( ω ∣ c i ) ∗ p ( c i ) p ( ω ) p(c_i|\omega)=\frac{p(\omega|c_i)*p(c_i)}{p(\omega)} p(ci∣ω)=p(ω)p(ω∣ci)∗p(ci)
利用贝叶斯条件独立性:
p ( ω ∣ c i ) = ∏ j = 1 n p ( w j ∣ c i ) p(\omega|c_i)=\prod_{j=1}^np(w_j|c_i) p(ω∣ci)=j=1∏np(wj∣ci)
伪代码如下:
计算每个类别中的文档数目
对每篇训练文档:
对每个类别:
如果词条出现在文档中-->增加该词条的计数值
增加所有词条的计数值
对每个类别:
对每个词条:
将该词条的数目除以总词条数目得到条件概率
返回每个类别的条件概率