赞
踩
第一章 机器学习简介
第二章 感知机
第三章 支持向量机
第四章 朴素贝叶斯分类器
第五章 Logistic回归
第六章 线性回归和岭回归
第七章 多层感知机与反向传播【Python实例】
第八章 主成分分析【PCA降维】
第九章 隐马尔可夫模型
第十章 奇异值分解
回顾支持向量机模型中,从训练样本集
{
(
x
i
,
y
i
)
}
i
=
1
N
\{(x_i,y_i)\}_{i=1}^N
{(xi,yi)}i=1N 直接学得决策函数
f
(
x
)
=
sign
(
∑
i
=
1
N
α
i
y
i
(
x
i
⋅
x
)
+
b
)
,
f( x) = \operatorname{sign}( \sum _{i= 1}^N\alpha_iy_i (x_i\cdot x) + b),
f(x)=sign(i=1∑Nαiyi(xi⋅x)+b),对新数据实例
x
x
x的预测
y
^
\hat{y}
y^直接由决策函数给出,即
y
^
=
f
(
x
)
\hat{y}=f(x)
y^=f(x)。而朴素贝叶斯分类是以条件概率分布
P
(
Y
∣
X
)
P(Y|X)
P(Y∣X)而非决策函数
f
(
x
)
f(x)
f(x)为模型的分类方法:
假设有
N
N
N 种可能的类别标记,即
Y
=
{
y
1
,
y
2
,
…
,
y
N
}
,
λ
i
j
\mathcal{Y}=\{y_1,y_2,\ldots,y_N\},\lambda_{ij}
Y={y1,y2,…,yN},λij 是将一个真实标记为
y
j
y_j
yj的样本误分类为
y
i
y_i
yi所产生的损失。基于后验概率
P
(
y
i
∣
x
)
P(y_i\mid\boldsymbol{x})
P(yi∣x) 可获得将样本
x
\boldsymbol{x}
x 分类为
y
i
y_i
yi 所产生的期望损失, 即在样本
x
x
x 上的“条件风险”。那么我们可以得到将
x
x
x的类别预测为
y
i
y_i
yi所产生的风险(期望损失)为
R
(
Y
=
y
i
∣
x
)
=
∑
j
=
1
K
λ
i
j
P
(
Y
=
y
j
∣
x
)
,
R(Y=y_i|x)=\sum_{j=1}^K\lambda_{ij}P(Y=y_j|x),
R(Y=yi∣x)=j=1∑KλijP(Y=yj∣x),最优预测依据贝叶斯决策论(期望损失最小化),对输入实例
x
x
x的最优预测
y
^
\hat{y}
y^应该满足:
y
^
=
argmin
y
i
R
(
Y
=
y
i
∣
x
)
\hat{y}=\operatorname*{argmin}_{y_i}R(Y=y_i|x)
y^=yiargminR(Y=yi∣x)
如果我们采用0-1损失函数,即
λ
i
j
=
{
1
,
i
≠
j
0
,
i
=
j
.
\lambda_{ij}=\left\{1,i≠j0,i=j
R
(
Y
=
y
i
∣
x
)
=
∑
j
≠
i
1
×
P
(
Y
=
y
j
∣
x
)
+
0
×
P
(
Y
=
y
i
∣
x
)
=
∑
j
≠
i
P
(
Y
=
y
j
∣
x
)
=
1
−
P
(
Y
=
y
i
∣
x
)
.
R(Y=yi|x)=∑j≠i1×P(Y=yj|x)+0×P(Y=yi|x)=∑j≠iP(Y=yj|x)=1−P(Y=yi|x).
相应地,输入实例
x
x
x的最优预测
y
^
\hat{y}
y^应该满足:
y
^
=
argmin
y
i
R
(
Y
=
y
i
∣
x
)
=
argmin
y
i
[
1
−
P
(
Y
=
y
i
∣
x
)
]
=
argmax
y
i
P
(
Y
=
y
i
∣
x
)
(
1
)
ˆy=argminyiR(Y=yi|x)=argminyi[1−P(Y=yi|x)]=argmaxyiP(Y=yi|x)
如何计算相应的后验概率 P ( Y = y i ∣ x ) ? P(Y=y_i|x)? P(Y=yi∣x)?
朴素别叶斯模型就是很典型的生成式模型,而支持向量机、Logistic回归等属于判别式模型。
下面我们介绍怎么学习联合概率
P
(
Y
=
c
i
,
x
)
P(Y=c_i,x)
P(Y=ci,x),回顾一下贝叶斯公式:
P
(
A
∣
B
)
=
P
(
A
,
B
)
P
(
B
)
=
P
(
B
∣
A
)
P
(
A
)
P
(
B
)
P(A \mid B)=\frac{P(A, B)}{P(B)}=\frac{P(B|A)P(A)}{P(B)}
P(A∣B)=P(B)P(A,B)=P(B)P(B∣A)P(A)
在分类问题中(这里先假设特征是离散的),可以这样来看:
P
(
类别
∣
特征
)
=
P
(
类别
,
特征
)
P
(
特征
)
=
P
(
特征
∣
类别
)
P
(
类别
)
P
(
特征
)
P(类别 \mid 特征)=\frac{P(类别, 特征)}{P(特征)}=\frac{P(特征|类别)P(类别)}{P(特征)}
P(类别∣特征)=P(特征)P(类别,特征)=P(特征)P(特征∣类别)P(类别)
用类别集合:
Y
=
{
y
1
,
y
2
…
,
y
n
}
\mathcal{Y}=\{y_1,y_2…,y_n\}
Y={y1,y2…,yn}和特征集合
X
=
{
x
1
,
x
2
,
⋯
,
x
d
}
X=\{x_1,x_2,\cdots,x_d\}
X={x1,x2,⋯,xd}来写,后验概率计算如下:
P
(
y
i
∣
X
)
=
P
(
y
i
,
X
)
P
(
X
)
=
P
(
X
∣
y
i
)
P
(
y
i
)
P
(
X
)
=
P
(
x
1
,
x
2
⋯
x
d
∣
y
i
)
P
(
y
i
)
P
(
X
)
P(y_i \mid X)=\frac{P(y_i, X)}{P(X)}=\frac{P(X|y_i)P(y_i)}{P(X)}=\frac{P(x_1,x_2\cdots x_d|y_i)P(y_i)}{P(X)}
P(yi∣X)=P(X)P(yi,X)=P(X)P(X∣yi)P(yi)=P(X)P(x1,x2⋯xd∣yi)P(yi)
观察一下最右边的式子:
刚刚提到
P
(
X
∣
y
i
)
=
P
(
x
1
,
x
2
⋯
x
n
∣
y
i
)
P(X|y_i)=P(x_1,x_2\cdots x_n|y_i)
P(X∣yi)=P(x1,x2⋯xn∣yi)是联合概率,不好求,所以朴素贝叶斯分类做了一个很强的假设:假设特征是相互独立的!(所以叫朴素贝叶斯),那么联合概率就能拆开了:
P
(
y
i
∣
X
)
=
P
(
x
1
,
x
2
⋯
x
d
∣
y
i
)
P
(
y
i
)
P
(
X
)
=
P
(
y
i
)
∏
j
=
1
d
P
(
x
j
∣
y
i
)
P
(
X
)
P(y_i \mid X)=\frac{P(x_1,x_2\cdots x_d|y_i)P(y_i)}{P(X)}=\frac{P(y_i)\prod_{j=1}^dP(x_j|y_i)}{P(X)}
P(yi∣X)=P(X)P(x1,x2⋯xd∣yi)P(yi)=P(X)P(yi)∏j=1dP(xj∣yi)
这样给定特征后,可以在训练集中通过右边的公式计算每一类的概率,从而给出预测的类别。
通过一封邮件的内容来判断是正常邮件还是垃圾邮件,由后验概率 P ( y ^ ∣ X ) P(\hat{y}|X) P(y^∣X)的形式我们知道
特征是每封邮件的内容,而内容我们可以细分为句子,而句子可以进一步细分为词。如下面垃圾邮件截图:
以这句话为例,设这句话分词集合为
X
X
X,判断是不是垃圾邮件,计算:
P
(
垃圾邮件
∣
X
)
=
P
(
X
∣
垃圾邮件
)
P
(
垃圾邮件
)
P
(
X
)
=
P
(
垃圾邮件
)
∏
j
=
1
n
P
(
x
j
∣
垃圾邮件
)
P
(
X
)
P(垃圾邮件|X)=\frac{P(X|垃圾邮件)P(垃圾邮件)}{P(X)}=\frac{P(垃圾邮件)\prod_{j=1}^nP(x_j|垃圾邮件)}{P(X)}
P(垃圾邮件∣X)=P(X)P(X∣垃圾邮件)P(垃圾邮件)=P(X)P(垃圾邮件)∏j=1nP(xj∣垃圾邮件)
假设训练集给出24封垃圾邮件和24封正常邮件,则
而这里有个问题是,如果有一个词在训练集中没有出现过,那么 P ( x j ∣ 垃圾邮件 ) = 0 P(x_j|垃圾邮件)=0 P(xj∣垃圾邮件)=0导致整个 P ( 垃圾邮件 ∣ X ) = 0 P(垃圾邮件|X)=0 P(垃圾邮件∣X)=0,这显然不合理,所以我们需要平滑。
零概率问题,就是在计算实例的概率时,如果某个量x,在观察样本库训练集中没有出现过,会导致整个实例的概率结果是0。在文本分类的问题中,当一个词语没有在训练样本中出现,该词语调概率为0,使用连乘计算文本出现概率时也为0。这是不合理的,不能因为一个事件没有观察到就武断的认为该事件的概率是0。
为了解决零概率的问题,法国数学家拉普拉斯最早提出用加1的方法估计没有出现过的现象的概率,所以加法平滑也叫做拉普拉斯平滑。 假定训练样本很大时,每个分量x的计数加1造成的估计概率变化可以忽略不计,但可以方便有效的避免零概率问题。
所以在垃圾邮件分类的问题中,可以得到:
P
(
x
j
∣
垃圾邮件)
=
∣
x
j
∣
+
1
n
P(x_j|垃圾邮件)=\frac{|x_j|+1}{n}
P(xj∣垃圾邮件)=n∣xj∣+1
其中
∣
x
j
∣
为词
x
j
|x_j|为词x_j
∣xj∣为词xj在垃圾邮件中出现的次数,n为垃圾邮件的总词数。
上面的例子我们假设特征取值是离散值,当特征取连续值时,概率的计算方式不同。而根据特征的取值不同,朴素贝叶斯可以分为两种模型:
在多项式模型中,特征取值为离散值,概率计算就同上面一样,统计每一个特征的频率当作概率。该模型常用于文本分类,特征是单词,值是单词的出现次数。设某文档 d = { t 1 , t 2 , . . . , t k } d=\{t_1,t_2,...,t_k\} d={t1,t2,...,tk} ,其中 t i t_i ti为在该文档d中出现的单词,允许重复,上面垃圾邮件分类就属于多项式模型。
当特征是连续变量的时候,运用多项式模型就会导致很多0(不做平滑的情况下),此时即使做平滑,所得到的条件概率也难以描述真实情况。所以处理连续的特征变量,应该采用高斯模型。
高斯朴素贝叶斯模型是假设每个特征的条件概率
P
(
x
i
∣
y
i
)
P(x_i\mid y_i)
P(xi∣yi) 服从高斯分布
N
(
μ
t
,
σ
t
2
)
N\left(\mu_{t}, \sigma_{t}^{2}\right)
N(μt,σt2)。在
c
c
c 类下第
i
\mathrm{i}
i 个词对应的高斯分布为:
P
(
x
i
∣
y
i
)
=
1
σ
i
,
y
i
2
π
e
−
(
x
i
−
μ
i
,
y
i
)
2
2
σ
i
,
y
i
2
P(x_i\mid y_i)=\frac{1}{\sigma_{i, y_i} \sqrt{2 \pi}} e ^{-\frac{\left(x_{i}-\mu_{i, y_i}\right)^{2}}{2 \sigma_{i, y_i}^{2}}}
P(xi∣yi)=σi,yi2π
1e−2σi,yi2(xi−μi,yi)2
其中,
μ
i
,
y
i
,
σ
i
,
y
i
2
\mu_{i, y_i} , \sigma_{i, y_i}^{2}
μi,yi,σi,yi2 表示
y
i
y_i
yi类下第
i
\mathrm{i}
i 个特征的均值和方差。所以关键是对高斯分布的均值和方差的估计,采用的方法极大似然估计,由概统的知识可得:
对于一个连续的样本值, 带入高斯分布,就可以求出它的概率分布了,所有参数估计完成之后,就可以计算给定样本的条件概率 P ( x 1 , x 2 ⋯ , x d ∣ y i ) P\left(x_1,x_2\cdots,x_d \mid y_i\right) P(x1,x2⋯,xd∣yi) ,进而可以计算 P ( y i ) P ( x 1 , x 2 ⋯ , x d ∣ y i ) P(y_i)P\left(x_1,x_2\cdots,x_d \mid y_i\right) P(yi)P(x1,x2⋯,xd∣yi),之后就可以确定样本类别,完成模型预测。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。