朴素贝叶斯在自然语言处理(NLP)中使用较频繁。
步骤:
(1)计算先验概率和条件
(2)对于需要预测的实例,计算:
(3)确定每个实例所属的类别:
下面来看一个例子(来自李航的《统计学习方法》):
X
(
1
)
,
X
(
2
)
X^{(1)},X^{(2)}
X(1),X(2)为特征,取值集合分别为
A
1
=
A_1=
A1={1,2,3},
A
2
=
A_2=
A2={S,M,L},Y为类别标记,
Y
=
Y=
Y={1,-1}。预测
x
=
(
2
,
S
)
x=(2,S)
x=(2,S)所属的类别。
首先,算出每个类别在所有数据的占比:
然后,对每个类别,算出每个特征在这一类别的占比:
对于类别1,特征
X
(
1
)
X^{(1)}
X(1):
对于类别1,特征
X
(
1
)
X^{(1)}
X(1):
对于类别-1,特征
X
(
2
)
X^{(2)}
X(2):
对于类别-1,特征
X
(
2
)
X^{(2)}
X(2):
最后,计算实例属于每个类别的概率:
算出来概率最大的值,实例就属于哪个类别。
一个比较明白的图(放在一起有点模糊,分开放):
贝叶斯估计:避免所要估计的概率值为0的情形。
λ
\lambda
λ==0:极大似然估计(朴素贝叶斯)
λ
\lambda
λ>0:避免0概率,出现偏差分数
λ
\lambda
λ==1:拉普拉斯平滑估计概率
优点:高效,易于实现;可用于多分类任务。
缺点:分类性能不高;需要先验概率。