算法:
输入:训练数据
T={(x1,y1),(x2,y2),…,(xN,yN)}
,其中
xi=(x(1)i,x(2)i,…,x(n)i)T
,
x(j)i
是第
i
个样本的第
P(Y=ck)=∑Ni=1I(yi=ck)N,k=1,2,…,K
P(X(j)=ajl|Y=ck)=∑Ni=1I(x(j)i=ajl,yi=ck)∑Ni=1I(yi=ck)
j=1,2,…,n;l=1,2,…,Sj;k=1,2,…,K
(2) 对于给定的实例 x=(x(1),x(2),…,x(n))T ,计算
P(Y=ck)∏j=1nP(X(j)=x(j)|Y=ck),k=1,2,…,K
(3) 确定实例 x 的类
模型:
P(X,Y) ,条件独立性假设
策略:
极大后验概率估计
推理思路:
通过训练数据集学习
P(X,Y)
,具体地,学习先验概率分布
P(Y=ck)
和条件概率分布
P(X=x|Y=ck)
朴素 = 条件独立性假设 = 特征在类确定的情况下是条件独立的
P(X=x|Y=ck)=P(X(1)=x(1),…,X(n)=x(n)|Y=ck)=∏j=1nP(X(j)=x(j)|Y=ck)
将后验概率 P(Y=ck|X=x) 最大的类作为 x 的类输出
分母对所有 ck 都是相同的,所以
y=argmaxckP(Y=ck)∏j=1nP(X(j)=x(j)|Y=ck)
算法缺陷及改进
可能出现估计的概率为0,采用贝叶斯估计代替极大似然估计
Pλ(Y=ck)=∑Ni=1I(yi=ck)+λN+Kλ,k=1,2,…,K
Pλ(X(j)=ajl|Y=ck)=∑Ni=1I(x(j)i=ajl,yi=ck)+λ∑Ni=1I(yi=ck)+Sjλ
λ≥0 ,当 λ=0 即为极大似然估计。常取 λ=1 此时称为拉普拉斯平滑。