模式识别(一)基于贝叶斯决策理论的分类器
1.1 引言1.2贝叶斯决策理论1.3判别函数和决策面1.4正态分布的贝叶斯分类1.5未知概率密度函数的估计1.6最近邻规则1.7贝叶斯网络
1.1 引言
设计分类器是将未知类型的样本分类到最可能的类别中。
后验概率:
给定一个
M
M
M类
(
w
1
,
w
2
,
.
.
.
,
w
M
)
(w_1,w_2,...,w_M)
(w1,w2,...,wM)的分类任务和一个用特征向量x表示的未知样本,生成条件概率
P
(
w
i
∣
x
)
,
i
=
1
,
2
,
.
.
M
P(w_i|x),i=1,2,..M
P(wi∣x),i=1,2,..M,也称后验概率。
1.2贝叶斯决策理论
先验概率:如果有N个训练样本,其中
N
1
,
N
2
N_1,N_2
N1,N2个样本分布属于
w
1
,
w
2
w_1,w_2
w1,w2,则相应的先验概率为
P
(
w
1
)
=
N
1
N
,
P
(
w
2
)
=
N
2
N
P(w_1)=\frac{N_1}{N},P(w_2)=\frac{N_2}{N}
P(w1)=NN1,P(w2)=NN2。
贝叶斯公式:
P
(
w
i
∣
x
)
=
p
(
x
∣
w
i
)
P
(
w
i
)
p
(
x
)
(1.1)
P(w_i|x)=\frac{p(x|w_i)P(w_i)}{p(x)} \tag{1.1}
P(wi∣x)=p(x)p(x∣wi)P(wi)(1.1)
p
(
x
)
p(x)
p(x)是x的概率密度函数:
p
(
x
)
=
∑
i
=
1
2
p
(
x
∣
w
i
)
P
(
w
i
)
(1.2)
p(x)=\sum_{i=1} ^{2}p(x|w_i)P(w_i) \tag{1.2}
p(x)=i=1∑2p(x∣wi)P(wi)(1.2)
贝叶斯分类规则描述为:
如果
P
(
w
1
∣
x
)
>
P
(
w
2
∣
x
)
则
x
属
于
w
1
P(w_1|x)>P(w_2|x)则x属于w_1
P(w1∣x)>P(w2∣x)则x属于w1;
如果
P
(
w
1
∣
x
)
<
P
(
w
2
∣
x
)
则
x
属
于
w
2
P(w_1|x)<P(w_2|x)则x属于w_2
P(w1∣x)<P(w2∣x)则x属于w2;
但是由于贝叶斯准则的极限性,出现判定错误是不可避免的,其错误率
P
e
P_e
Pe的公式为:
2
P
e
=
∫
−
∞
x
0
p
(
x
∣
w
2
)
d
x
+
∫
x
0
+
∞
p
(
x
∣
w
1
)
d
x
(1.3)
2P_e= \int_{-\infty}^{x_0} p(x|w_2)dx+ \int_{x_0}^{+\infty}p(x|w_1)d_x \tag{1.3}
2Pe=∫−∞x0p(x∣w2)dx+∫x0+∞p(x∣w1)dx(1.3)
因此需要最小化分类错误率。
贝叶斯分类器在最小化分类错误率是最优的。
最小平均风险
使用分类错误率最小并不是最好的标准,因为分类错误最小中认为所有的错误判断带来的后果是相同的,但是在实际中并非如此,如医生判断一个病人的疾病,将恶性肿瘤判断为良性肿瘤的,比将良性肿瘤判断为恶性肿瘤带来的后果严重。
因此引入根据不同分类的重要性对其进行加权,反映出对总错误率的贡献程度。
一个M分类问题,
R
j
,
j
=
1
,
2
,
3
,
.
.
.
,
M
R_j,j=1,2,3,...,M
Rj,j=1,2,3,...,M是每一类
w
j
w_j
wj各自对应的特征空间。
r
k
=
∑
i
=
1
M
λ
k
i
∫
R
i
P
(
x
∣
w
k
)
d
x
(1.4)
r_k = \sum _{i=1}^M \lambda_{ki}\int_{R_i}P(x|w_k)dx \tag{1.4}
rk=i=1∑Mλki∫RiP(x∣wk)dx(1.4)
平均风险
r
=
∑
k
=
1
M
r
k
P
(
w
k
)
=
∑
i
=
1
M
∫
R
i
(
∑
k
=
1
M
λ
k
i
p
(
x
∣
w
k
)
P
(
w
k
)
)
d
x
r=\sum _{k=1} ^M r_kP(w_k)=\sum_{i=1}^{M}\int_{R_i}(\sum_{k=1}^{M}\lambda_{ki}p(x|w_k)P(w_k))d_x
r=k=1∑MrkP(wk)=i=1∑M∫Ri(k=1∑Mλkip(x∣wk)P(wk))dx
1.3判别函数和决策面
对于M类的任务,风险概率和错误率的最小化等价于将特征空间分为M个区域,如果区域
R
i
R_i
Ri和
R
j
R_j
Rj正好相邻,它们在多维特征空间中由决策面划分,对于最小错误率可描述为:
P
(
w
i
∣
x
)
−
P
(
w
j
∣
x
)
=
0
P(w_i|x)-P(w_j|x)=0
P(wi∣x)−P(wj∣x)=0
对于决策面,差值为正的为一方,另一方则是负的。
判别函数:
g
i
(
x
)
=
f
(
P
(
w
i
∣
x
)
)
g_i(x) = f(P(w_i|x))
gi(x)=f(P(wi∣x))
若
g
i
(
x
)
>
g
j
(
x
)
∀
j
≠
i
,
将
x
分
类
到
w
i
g_i(x)>g_j(x) \forall j\not=i,将x分类到w_i
gi(x)>gj(x)∀j=i,将x分类到wi
决策面描述为:
g
i
j
(
x
)
=
g
i
(
x
)
−
g
j
(
x
)
=
0
,
i
,
j
=
1
,
2
,
.
.
.
,
M
,
i
≠
j
g_ij(x)=g_i(x)-g_j(x)=0,i,j=1,2,...,M,i\not=j
gij(x)=gi(x)−gj(x)=0,i,j=1,2,...,M,i=j
1.4正态分布的贝叶斯分类
1.4.1 高斯密度函数
一维高斯函数:
p
(
x
)
=
1
2
π
σ
e
x
p
(
−
(
x
−
μ
)
2
2
σ
2
)
p(x)=\frac{1}{\sqrt{2\pi}\sigma } exp(-\frac{(x-\mu)^2}{2\sigma ^2})
p(x)=2πσ1exp(−2σ2(x−μ)2)
参数
μ
\mu
μ指数据变量的平均值:
μ
=
E
[
x
]
=
∫
−
∞
+
∞
x
p
(
x
)
d
x
\mu=E[x]=\int_{-\infty}^{+\infty}xp(x)dx
μ=E[x]=∫−∞+∞xp(x)dx
参数
σ
2
\sigma^2
σ2等于x的方差,即:
σ
2
=
E
(
x
−
μ
)
2
=
∫
−
∞
+
∞
(
x
−
μ
)
2
p
(
x
)
d
x
\sigma^2=E(x-\mu)^2=\int_{-\infty}^{+\infty}(x-\mu)^2p(x)dx
σ2=E(x−μ)2=∫−∞+∞(x−μ)2p(x)dx
多变量高斯概率密度函数定义为:
p
(
x
)
=
1
(
2
π
)
l
/
2
∣
Σ
∣
1
/
2
e
x
p
(
−
1
2
(
x
−
μ
)
T
Σ
−
1
(
x
−
μ
)
)
p(x)=\frac{1}{(2\pi)^{l/2}|\Sigma|^{1/2}}exp(-\frac{1}{2}(x-\mu)^T\Sigma ^{-1}(x-\mu))
p(x)=(2π)l/2∣Σ∣1/21exp(−21(x−μ)TΣ−1(x−μ))
其中
μ
=
E
[
x
]
\mu=E[x]
μ=E[x]是均值,
Σ
\Sigma
Σ是
l
∗
l
l*l
l∗l协方差矩阵,定义为:
Σ
=
E
[
(
x
−
μ
)
(
x
−
μ
)
T
]
\Sigma=E[(x-\mu)(x-\mu)^T]
Σ=E[(x−μ)(x−μ)T]
二维空间的情况:
Σ
=
E
[
[
x
1
−
μ
1
x
2
−
u
2
]
[
x
1
−
u
1
,
x
2
−
u
2
]
]
\Sigma=E\left[ \left[ \begin{matrix} x_1-\mu_1\\ x_2-u_2\end{matrix}\right] \left[ x_1 -u_1,x_2-u_2 \right] \right]
Σ=E[[x1−μ1x2−u2][x1−u1,x2−u2]]
=
[
σ
1
2
σ
12
σ
12
σ
2
2
]
=\left[ \begin{matrix} \sigma_1^2 & \sigma_{12}\\ \sigma_{12} &\sigma_2^2 \end{matrix} \right]
=[σ12σ12σ12σ22]
二维高斯函数的对角线协方差矩阵为:
Σ
=
[
3
0
0
3
]
\Sigma=\left[ \begin{matrix} 3 & 0\\ 0 & 3 \end{matrix} \right]
Σ=[3003]
用python实现该二维高斯密度函数的曲线:
import numpy as np
import matplotlib.pyplot as plt
import math
import mpl_toolkits.mplot3d
x, y = np.mgrid[-10:10:0.1, -10:10:0.1]
z=1/(2*math.pi*3)*np.exp(-1/2 * (x**2+y**2)/3)
ax = plt.subplot(111, projection='3d')
ax.plot_surface(x, y, z, rstride=1, cstride=1, cmap='rainbow', alpha=0.9)#绘面
ax.set_xlabel('x')
ax.set_ylabel('y')
ax.set_zlabel('z')
plt.show()
运行结果:
1.5未知概率密度函数的估计
1.6最近邻规则
1.7贝叶斯网络
更多推荐
所有评论(0)