复合随机变量特征连续型Bayes
准备工作
问题产生
Frankie的困惑
Bayes通常用于在已知先验概率
P
(
ω
)
P(\omega)
P(ω)和类条件概率
P
(
X
∣
ω
)
P(X|\omega)
P(X∣ω)的前提下,计算拥有某个特征的样本属于某个类的后验概率
P
(
ω
∣
X
)
P(\omega|X)
P(ω∣X)。
著名的Bayes公式为:
P
(
ω
∣
X
)
=
P
(
X
∣
ω
)
⋅
P
(
ω
)
P
(
X
)
P(\omega|X)=\frac{P(X|\omega)\cdot P(\omega)}{P(X)}
P(ω∣X)=P(X)P(X∣ω)⋅P(ω)
Frankie是一名研究生。在一次科研活动中,他坐着船前往某个湖进行大量水质采样。水质分为
C
l
e
a
n
Clean
Clean和
T
e
r
r
i
b
l
e
Terrible
Terrible两种。对于抽到的每一个样本,可以提取出3个连续型的特征。Frankie通过统计,得到了:
- C l e a n Clean Clean样本和 T e r r i b l e Terrible Terrible样本的占比,作为水质类别的先验概率
- 不同特征在全体样本中的联合分布律,作为不同特征的先验概率
- 不同特征分别在 C l e a n Clean Clean和 T e r r i b l e Terrible Terrible类别中的联合分布律,作为不同特征的类条件概率
现在,给定一个新的样本(假设新的样本特征值的每一个分量在已知样本中),Frankie就可以通过简单的Naive Bayes计算,得到该水质分别属于 C l e a n Clean Clean和 T e r r i b l e Terrible Terrible类别的后验概率了。
那么问题来了,有一天Frankie得到了一个全新的特征序列,该怎么通过已有样本得到全新特征值的类别呢?
如果因为原始数据因不满足正态性不便计算,而对样本值做了Box-Cox变换或其他变换。变换后的数据经过统计得到的后验概率还是其原数据的后验概率吗?
在大量数据下,我们可以很容易地知道单个特征的近似分布,但是如果不用Naive Bayes,各个特征之间的联合分布该如何计算。
问题总结
- Bayes公式如何处理连续型特征
- 当随机变量经过一定变换后,如何计算原数据下对应的后验概率
- 如何得到联合分布
特征连续型贝叶斯推导
已知连续型随机变量
X
X
X,类别空间
Ω
=
{
ω
1
,
ω
2
,
…
,
ω
n
}
\Omega=\{\omega_{1}, \omega_{2}, \dots , \omega_{n}\}
Ω={ω1,ω2,…,ωn}
P
(
ω
∣
X
=
x
)
=
P
(
X
=
x
∣
ω
)
⋅
P
(
ω
)
P
(
X
=
x
)
=
P
(
x
≤
X
≤
x
+
Δ
x
∣
ω
)
⋅
P
(
ω
)
P
(
x
≤
X
≤
x
+
Δ
x
)
=
d
F
X
∣
ω
(
x
)
⋅
P
(
ω
)
d
F
X
(
x
)
=
f
X
∣
ω
(
x
)
d
x
f
X
(
x
)
d
x
⋅
P
(
ω
)
=
f
X
∣
ω
(
x
)
f
X
(
x
)
⋅
P
(
ω
)
\begin{split} P(\omega|X=x)&=\frac{P(X=x|\omega)\cdot P(\omega)}{P(X=x)} \\ &=\frac{P(x \leq X \leq x+\Delta x|\omega)\cdot P(\omega)}{P(x \leq X \leq x+\Delta x)} \\ &=\frac{dF_{X|\omega}(x)\cdot P(\omega)}{dF_{X}(x)} \\ &=\frac{f_{X|\omega}(x)dx}{f_{X}(x)dx} \cdot P(\omega) \\ &=\frac{f_{X|\omega}(x)}{f_{X}(x)} \cdot P(\omega) \\ \end{split}
P(ω∣X=x)=P(X=x)P(X=x∣ω)⋅P(ω)=P(x≤X≤x+Δx)P(x≤X≤x+Δx∣ω)⋅P(ω)=dFX(x)dFX∣ω(x)⋅P(ω)=fX(x)dxfX∣ω(x)dx⋅P(ω)=fX(x)fX∣ω(x)⋅P(ω)
这就解决了第一个问题,结论如下:
P
(
ω
∣
X
=
x
)
=
f
X
∣
ω
(
x
)
f
X
(
x
)
⋅
P
(
ω
)
\begin{equation} \begin{split} P(\omega|X=x) = \frac{f_{X|\omega}(x)}{f_{X}(x)} \cdot P(\omega) \end{split} \end{equation}
P(ω∣X=x)=fX(x)fX∣ω(x)⋅P(ω)
随机变量的变换
现在需要解决随机变量经过变换后,其概率密度该如何计算,即:
已知
f
X
(
x
)
f_{X}(x)
fX(x)和变换函数
Y
=
g
(
X
)
Y=g(X)
Y=g(X),如何计算
f
Y
(
y
)
∣
y
=
g
(
x
)
f_{Y}(y)|_{y=g(x)}
fY(y)∣y=g(x)
Box-Cox变换
Box-Cox变换是一种将非正态数据转成正态数据的一种幂次变换。具体形式为:
b
λ
=
{
(
x
+
1
)
λ
−
1
λ
λ
≠
0
l
n
(
x
+
1
)
λ
=
0
\begin{equation} \begin{split} b_{\lambda}= \begin{cases} \displaystyle \frac{(x+1)^{\lambda}-1}{\lambda} &\lambda \neq 0\\ \displaystyle ln(x+1) & \lambda =0 \end{cases} \end{split} \end{equation}
bλ=⎩
⎨
⎧λ(x+1)λ−1ln(x+1)λ=0λ=0
其中
λ
\lambda
λ需要通过极大似然估计的方法求得。
变换后概率密度推导
设
X
X
X是连续型随机变量,
Y
=
g
(
X
)
Y=g(X)
Y=g(X)是经过Box-Cox变换后的新的随机变量(实际上
g
(
x
)
g(x)
g(x)可以是任意可导函数)。现有一样本
X
=
x
X=x
X=x,容易得到对于
y
=
g
(
x
)
y=g(x)
y=g(x):
F
Y
(
y
)
=
P
(
Y
≤
y
)
=
P
(
g
(
X
)
≤
y
)
=
P
(
X
≤
g
−
1
(
y
)
)
=
F
X
(
g
−
1
(
y
)
)
=
F
X
(
x
)
\begin{split} F_{Y}(y) &= P(Y \leq y) \\ &= P(g(X) \leq y) \\ &= P(X \leq g^{-1}(y)) \\ &= F_{X}(g^{-1}(y)) \\ &= F_{X}(x) \end{split}
FY(y)=P(Y≤y)=P(g(X)≤y)=P(X≤g−1(y))=FX(g−1(y))=FX(x)
由此得到结论:
F
Y
(
y
)
=
F
X
(
x
)
s
.
t
.
y
=
g
(
x
)
,
Y
=
g
(
X
)
\begin{equation} \begin{split} &F_{Y}(y)=F_{X}(x) \\ &s.t.\ y=g(x),Y=g(X) \end{split} \end{equation}
FY(y)=FX(x)s.t. y=g(x),Y=g(X)
由
(
3
)
(3)
(3)得到
Y
Y
Y的概率密度函数:
f
Y
(
y
)
=
d
F
Y
(
y
)
d
y
=
d
F
X
(
x
)
d
y
=
d
F
X
(
x
)
d
x
d
x
d
y
=
f
X
(
x
)
⋅
1
g
′
(
x
)
\begin{split} f_{Y}(y)&=\frac{dF_{Y}(y)}{dy} \\ &=\frac{dF_{X}(x)}{dy} \\ &=\frac{dF_{X}(x)}{dx} \frac{dx}{dy} \\ &=f_{X}(x) \cdot \frac{1}{g'(x)} \end{split}
fY(y)=dydFY(y)=dydFX(x)=dxdFX(x)dydx=fX(x)⋅g′(x)1
由此得到结论:
f
Y
(
y
)
=
f
X
(
x
)
⋅
1
g
′
(
x
)
\begin{equation} \begin{split} f_{Y}(y)&=f_{X}(x) \cdot \frac{1}{g'(x)} \end{split} \end{equation}
fY(y)=fX(x)⋅g′(x)1
变换后随机变量的特征连续型Bayes公式
由于对于不同的数据分布,Box-Cox变换的参数
λ
\lambda
λ都不一样。由于特征的先验概率和类条件概率分布不同,其Box-Cox变换函数不一致。
由此,假设特征连续型Bayes公式中,不同特征的类条件概率分布的变换函数为
Y
1
Y_{1}
Y1,不同特征的先验概率为
Y
2
Y_{2}
Y2
由
(
1
)
,
(
4
)
(1),(4)
(1),(4)式可得:
P
(
ω
∣
X
=
x
)
=
g
1
′
(
x
)
f
Y
1
∣
ω
(
y
1
)
g
2
′
(
x
)
f
Y
2
(
y
2
)
⋅
P
(
ω
)
\begin{equation} \begin{split} P(\omega|X=x)=\frac{g'_{1}(x)f_{Y_{1}|\omega}(y_{1})}{g'_{2}(x)f_{Y_{2}}(y_{2})} \cdot P(\omega) \end{split} \end{equation}
P(ω∣X=x)=g2′(x)fY2(y2)g1′(x)fY1∣ω(y1)⋅P(ω)
联合分布以及非Naive Bayes
在解决如何得到联合分布前,先推导出多元复合随机变量特征连续型Bayes公式的形式。
多元复合随机变量特征连续型Bayes公式
设
X
=
{
X
1
,
X
2
,
…
,
X
n
}
X=\{X_{1},X_{2}, \dots , X_{n}\}
X={X1,X2,…,Xn}为多元随机变量,对于
i
≠
j
i \neq j
i=j,
X
i
X_{i}
Xi与
X
j
X_{j}
Xj独立,
Y
=
{
Y
1
,
Y
2
,
…
,
Y
n
}
Y=\{Y_{1},Y_{2}, \dots ,Y_{n}\}
Y={Y1,Y2,…,Yn}是经过变换后的多元复合随机变量,其中
Y
i
Y_{i}
Yi只与
X
i
X_{i}
Xi相关。
P
(
ω
∣
X
=
x
)
P(\omega|X=x)
P(ω∣X=x)的推导需要先回到
(
4
)
(4)
(4)式的推导:
f
Y
(
y
)
=
∂
n
F
Y
(
y
)
∂
y
1
∂
y
2
…
∂
y
n
=
∂
n
F
X
(
x
)
∂
y
1
∂
y
2
…
∂
y
n
\begin{equation} \begin{split} f_{Y}(y)&=\frac{\partial^{n} F_{Y}(y)}{\partial y_{1}\partial y_{2} \dots \partial y_{n}} \\ &=\frac{\partial^{n} F_{X}(x)}{\partial y_{1}\partial y_{2} \dots \partial y_{n}} \end{split} \end{equation}
fY(y)=∂y1∂y2…∂yn∂nFY(y)=∂y1∂y2…∂yn∂nFX(x)
因为对于
i
≠
j
i \neq j
i=j,
Y
i
Y_{i}
Yi与
X
j
X_{j}
Xj不相关,得到:
∂
x
i
∂
y
j
=
0
i
≠
j
\begin{split} \frac{\partial x_{i}}{\partial y_{j}}=0 \ \ \ \ \ \ \ \ \ i\neq j \end{split}
∂yj∂xi=0 i=j
由此推得:
∂
F
X
(
x
)
∂
y
i
=
∂
F
X
(
x
)
∂
x
i
⋅
∂
x
i
∂
y
i
\begin{split} \frac{\partial F_{X}(x)}{\partial y_{i}} =\frac{\partial F_{X}(x)}{\partial x_{i}} \cdot \frac{\partial x_{i}}{\partial y_{i}} \end{split}
∂yi∂FX(x)=∂xi∂FX(x)⋅∂yi∂xi
将上述引理应用于(6)式可得:
f
Y
(
y
)
=
∂
n
F
Y
(
y
)
∂
y
1
∂
y
2
…
∂
y
n
…
=
f
X
(
x
)
∏
i
=
1
n
1
g
′
(
x
i
)
\begin{split} f_{Y}(y)&=\frac{\partial^{n} F_{Y}(y)}{\partial y_{1}\partial y_{2} \dots \partial y_{n}} \\ & \dots \\ &= f_{X}(x) \prod_{i=1}^{n} \frac{1}{g'(x_{i})} \end{split}
fY(y)=∂y1∂y2…∂yn∂nFY(y)…=fX(x)i=1∏ng′(xi)1
得到最终的多元复合随机变量特征连续型Bayes公式:
P
(
ω
∣
X
=
x
)
=
∏
i
=
1
n
g
1
′
(
x
i
)
f
Y
1
∣
ω
(
y
1
)
∏
i
=
1
n
g
2
′
(
x
i
)
f
Y
2
(
y
2
)
⋅
P
(
ω
)
\begin{equation} \begin{split} P(\omega|X=x)=\frac{\prod_{i=1}^{n}g'_{1}(x_{i})f_{Y_{1}|\omega}(y_{1})}{\prod_{i=1}^{n}g'_{2}(x_{i})f_{Y_{2}}(y_{2})} \cdot P(\omega) \end{split} \end{equation}
P(ω∣X=x)=∏i=1ng2′(xi)fY2(y2)∏i=1ng1′(xi)fY1∣ω(y1)⋅P(ω)
获得联合分布(Copula函数)
对于多个非独立的随机变量,可以使用Copula函数对它们的联合分布进行建模。
Frankie发现他的数据经过Box-Cox变换后能够大致契合正太分布,于是他使用经典的Elliptical Copula函数中最经典的Gaussian Copula对他数据的联合分布进行建模。
C
Σ
G
a
u
s
s
(
u
)
=
Φ
Σ
(
Φ
−
1
(
u
1
)
,
Φ
−
1
(
u
2
)
,
…
,
Φ
−
1
(
u
n
)
)
\begin{equation} \begin{split} C_{\Sigma}^{Gauss}(u)=\Phi_{\Sigma}(\Phi^{-1}(u_{1}),\Phi^{-1}(u_{2}), \dots, \Phi^{-1}(u_{n})) \end{split} \end{equation}
CΣGauss(u)=ΦΣ(Φ−1(u1),Φ−1(u2),…,Φ−1(un))
其中,
Φ
−
1
\Phi^{-1}
Φ−1是标准正态分布的伪逆;
Φ
Σ
\Phi_{\Sigma}
ΦΣ是均值为0,协方差矩阵为
σ
\sigma
σ的多元正态分布的联合分布。
参照Gaussian Copula函数,还应对Box-Cox变换后的数据进行标准化。所以,对原数据的变换函数最终可以表示为:
Y
=
b
λ
(
X
)
−
μ
λ
σ
λ
\begin{equation} \begin{split} Y=\frac{b_{\lambda}(X)-\mu_{\lambda}}{\sigma_{\lambda}} \end{split} \end{equation}
Y=σλbλ(X)−μλ
其中,
b
λ
(
X
)
b_{\lambda}(X)
bλ(X)是参数为
λ
\lambda
λ的Box-Cox变换函数,
μ
λ
\mu_{\lambda}
μλ和
σ
λ
\sigma_{\lambda}
σλ分别表示变换后数据的均值和方差。
结论
对离散型类别,连续型特征的一组数据进行Bayes分析,其步骤如下:
- 统计得到类别先验概率 P ( ω ) P(\omega) P(ω)
- 将原数据进行Box-Cox变换,并进行标准正态化
- 计算变换后数据的协方差矩阵,并拟合成标准正态分布
- 将拟合的标准正态分布代入Gaussian Copula函数
- 将得到的先验概率密度和类条件概率密度代入多元复合随机变量特征连续型Bayes公式得到最终的后验概率