1. 表示先验 p ( y ) p(y) p(y)
表示每个类别的先验概率 p ( y ) p(y) p(y) 是相对简单的。我们可以通过计算每个类别的频率来估计先验概率,例如:
p ( y = C k ) = 类别 C k 中的样本数 总样本数 p(y = C_k) = \frac{\text{类别 } C_k \text{ 中的样本数}}{\text{总样本数}} p(y=Ck)=总样本数类别 Ck 中的样本数
这样可以得出随机选择一个样本属于某一类别 C k C_k Ck 的概率。
2. 为条件密度 p ( x ∣ y ) p(x|y) p(x∣y) 选择概率模型
在监督学习中,给定类别 y y y 后,我们需要为输入特征 x x x 建立条件概率分布模型。
多元高斯分布
对于多元连续数据(即 x ∈ R D \mathbf{x} \in \mathbb{R}^D x∈RD),一种常用的模型是多元高斯分布。类别条件密度可以表示为:
p ( x ∣ y = C k ) = 1 ( 2 π ) D / 2 ∣ Σ k ∣ 1 / 2 exp ( − 1 2 ( x − μ k ) ⊤ Σ k − 1 ( x − μ k ) ) p(\mathbf{x} | y = C_k) = \frac{1}{(2\pi)^{D/2} |\Sigma_k|^{1/2}} \exp\left( -\frac{1}{2} (\mathbf{x} - \mu_k)^\top \Sigma_k^{-1} (\mathbf{x} - \mu_k) \right) p(x∣y=Ck)=(2π)D/2∣Σk∣1/21exp(−21(x−μk)⊤Σk−1(x−μk))
其中:
- μ k \mu_k μk 是类别 C k C_k Ck 的均值向量,
- Σ k \Sigma_k Σk 是类别 C k C_k Ck 的协方差矩阵,表示类别中不同特征之间的关系。
为什么使用多元高斯分布?
多元高斯分布在分类问题中被广泛使用,原因如下:
- 具有良好的数学可处理性。
- 对于接近正态分布的数据表现良好。
- 可以通过协方差矩阵建模特征之间的复杂关系。
3. 协方差矩阵的估计挑战
使用多元高斯模型的主要挑战在于为每个类别的协方差矩阵 Σ k \Sigma_k Σk 估计参数的数量,特别是在高维数据中。
估计 D ( D + 1 ) / 2 D(D+1)/2 D(D+1)/2 个参数
对于每个类别 C k C_k Ck,我们需要估计一个协方差矩阵 Σ k \Sigma_k Σk,它是对称的 D × D D \times D D×D 矩阵。由于矩阵是对称的,因此只需要估计 D ( D + 1 ) 2 \frac{D(D+1)}{2} 2D(D+1) 个独立参数(不是 D 2 D^2 D2,因为矩阵的一半是镜像对称的)。
- 例如,如果 D = 100 D = 100 D=100(即 100 个特征),则需要估计 100 ( 100 + 1 ) 2 = 5050 \frac{100(100 + 1)}{2} = 5050 2100(100+1)=5050 个参数,才能得到每个类别的协方差矩阵。如果有多个类别,参数的数量会线性增长。
为什么这会成为问题?
当特征数 D D D 很大时,参数的数量以平方关系增长 D ( D + 1 ) / 2 D(D + 1)/2 D(D+1)/2。如果数据集不够大,估计这么多参数就会变得困难。这可能导致以下几个问题:
- 过拟合:当参数数量相对于数据点过多时,模型可能过于贴合训练数据,导致在新数据上的泛化能力较差。
- 计算复杂度:估计和求逆大规模的协方差矩阵会非常耗时。
- 数值不稳定:在高维情况下,协方差矩阵 Σ k \Sigma_k Σk 可能会变得病态(ill-conditioned),导致求逆困难,数值计算不稳定。
4. 解决高维问题的可能方案
为了应对估计高维协方差矩阵中参数过多的问题,有几种常见的解决方法:
1. 对角协方差矩阵假设(Cov是0)
假设特征是独立的,只对角线上元素(每个特征的方差)进行建模。此时协方差矩阵简化为:
Σ k = diag ( σ 1 2 , σ 2 2 , … , σ D 2 ) \Sigma_k = \text{diag}(\sigma_1^2, \sigma_2^2, \dots, \sigma_D^2) Σk=diag(σ12,σ22,…,σD2)
这将每个类别的参数数量从 D ( D + 1 ) 2 \frac{D(D + 1)}{2} 2D(D+1) 降低到 D D D,但代价是假设特征之间没有相关性。
2. 共用协方差矩阵(LDA 假设)
另一种方法是假设所有类别共用同一个协方差矩阵,即 Σ k = Σ \Sigma_k = \Sigma Σk=Σ,这就是线性判别分析(LDA) 中使用的假设。这种方法的好处是,只需要为所有类别估计一个协方差矩阵,参数的数量为 D ( D + 1 ) 2 \frac{D(D + 1)}{2} 2D(D+1),显著减少了模型复杂性。
3. 正则化(收缩)
可以使用正则化技术防止在估计协方差矩阵时过拟合。常见的一个方法是收缩,将估计的协方差矩阵 “收缩” 到更简单的矩阵(如单位矩阵)上,以提高估计的稳健性:
Σ k = ( 1 − λ ) Σ ^ k + λ I \Sigma_k = (1 - \lambda) \hat{\Sigma}_k + \lambda I Σk=(1−λ)Σ^k+λI
其中 λ \lambda λ 是一个正则化参数,用于控制估计的协方差矩阵 Σ ^ k \hat{\Sigma}_k Σ^k 和单位矩阵 I I I 之间的平衡。
4. 降维
在估计协方差矩阵之前,你可以使用像主成分分析(PCA) 或 线性判别分析(LDA) 这样的技术对数据进行降维处理。这些方法可以将数据投影到低维子空间,从而减少特征数量 D D D,进而减少需要估计的参数数量。
总结
- 多元高斯分布通常用于建模分类问题中的类别条件密度,适合处理连续数据。
- 在高维数据中,估计协方差矩阵是一个挑战,因为每个类别的协方差矩阵涉及 D ( D + 1 ) / 2 D(D + 1)/2 D(D+1)/2 个参数。
- 为了解决这个问题,可以采取以下措施:
- 假设对角协方差矩阵(特征独立假设),
- 使用所有类别共用的协方差矩阵(LDA),
- 应用正则化技术(如收缩),
- 对数据进行降维处理(如 PCA 或 LDA)。