算法描述:
输入:训练数据$T={(x_{1},y_{1}),(x_{2},y_{2}),...,(x_{N},y_{N})}$,其中$x_{i}=(x_{i}^{(1)},x_{i}^{(2)},...,x_{i}^{(n)})$,$x_{i}^{(j)}$是第i个样本的第j个特征,$x_{i}^{(j)}\in \{ a_{j1},a_{j2},...,a_{js} \}$,$a_{jl}$表示第j个特征可能取的第l个值,j=1,2,...,n,l=1,2,...,Sj,$y_{i} \in \{ c_{1},c_{2},...,c_{k} \}$;实例x;
输出:实例x的分类
(1) 计算先验概率以及条件概率
$P(Y=c_{k})=\frac{\sum_{i=1}^{N}I(y_{i}=c_{k})}{N},k=1,2,...,K$
$P(X^{(j)}=a_{jl}|Y=c_{k})=\frac{\sum_{i=1}^{N}I(x_{i}^{(j)}=a_{jl},y_{i}=c_{k})}{\sum_{i=1}^{N}I(y_{i}=c_{k})},$
$j=1,2,...,n;l=1,2,...,S_{j};k=1,2,...,K$
(2)对于给定的实例$x=(x^{(1)},x^{(2)},...,x^{(n)})^{T}$,计算
$P(Y=c_{k})\prod_{j=1}^{n} P(X^{(j)}=x^{(j)}|Y=c_{k}),k=1,2,...,K$
(3)确定实例x的类别
$y=arg \max_{c_{k}}P(Y=c_{k})\prod_{j=1}^{n}P(X^{(j)}=x^{(j)}|Y=c_{k})$