python高斯分类

admin 101 0
高斯分类是基于高斯概率分布的监督学习方法,常用于解决分类问题,其核心假设是特征在给定类别下服从高斯分布,通过计算各类别的先验概率及条件概率密度,结合贝叶斯定理预测样本所属类别,Python中可通过scikit-learn库的GaussianNB实现,需对数据进行标准化处理以符合正态分布假设,该方法计算高效、易于理解,适用于特征连续且分布近似正态的数据集,如文本分类、数值型特征分类等,但需注意特征独立性假设可能带来的局限性。

Python实现高斯分类:原理、代码与应用详解

在机器学习的分类任务中,如何有效处理连续型特征数据是一个普遍存在的挑战,高斯分类(Gaussian Classification)作为一种基于概率框架的分类方法,特别适用于特征数据服从或近似服从高斯分布(正态分布)的场景。高斯朴素贝叶斯(Gaussian Naive Bayes, GNB) 是其中最具代表性的模型之一,它凭借其简洁高效、对小型数据集表现稳健的特性,在文本分类、垃圾邮件过滤、医疗诊断以及信用风险评估等领域得到了广泛应用,本文将深入剖析高斯分类的核心原理,并通过Python代码实现其完整流程,最后结合实际应用场景分析其优缺点。

高斯分类的核心原理

高斯分类的理论基石是贝叶斯定理高斯分布假设,其核心思想在于:对于给定的样本特征,计算其属于各个类别的后验概率,并将样本分配给具有最大后验概率的那个类别。

贝叶斯定理

贝叶斯定理揭示了事件之间条件概率的内在联系,其数学表达式为:

$$ P(y|x_1, x_2, \dots, x_n) = \frac{P(y) \cdot P(x_1, x_2, \dots, x_n|y)}{P(x_1, x_2, \dots, x_n)} $$
  • $P(y|x_1, x_2, \dots, x_n)$:后验概率(Posterior Probability),表示在观测到特征向量 $(x_1, x_2, \dots, x_n)$ 的条件下,样本属于类别 $y$ 的概率,这是分类决策的关键依据。
  • $P(y)$:先验概率(Prior Probability),表示类别 $y$ 在整体数据集中出现的概率,通常通过训练集中该类别的样本比例来估计。
  • $P(x_1, x_2, \dots, x_n|y)$:似然概率(Likelihood),表示在类别 $y$ 的条件下,观测到特征向量 $(x_1, x_2, \dots, x_n)$ 出现的概率。
  • $P(x_1, x_2, \dots, x_n)$:证据概率(Evidence),表示特征向量 $(x_1, x_2, \dots, x_n)$ 在整个数据集中出现的概率,由于该值对于所有类别都是相同的,在比较不同类别的后验概率时,可以视为常数,因此在计算最大后验概率时通常可以忽略不计。

朴素贝叶斯的“朴素”假设

直接计算联合似然概率 $P(x_1, x_2, \dots, x_n|y)$ 需要考虑所有特征之间的联合分布,这在高维特征空间中计算极其复杂且需要海量数据,为了解决这一难题,朴素贝叶斯引入了关键的“特征条件独立”假设

$$ P(x_1, x_2, \dots, x_n|y) = \prod_{i=1}^n P(x_i|y) $$

该假设认为:在给定类别 $y$ 的条件下,各个特征 $x_i$ 之间是相互独立的,这一“朴素”的假设极大地简化了计算复杂度,将联合概率分解为多个单特征条件概率的乘积,尽管在现实世界中特征间往往存在相关性,使得该假设严格来说并不成立,但大量实践证明,即使这种独立性假设不完全满足,朴素贝叶斯分类器在很多任务中依然能取得令人满意的分类效果,这主要得益于其强大的泛化能力和对噪声的鲁棒性。

高斯分布的引入:处理连续特征

朴素贝叶斯最初设计用于处理离散型特征(如词频、类别标签),许多现实世界的数据集包含连续型特征(如身高、温度、测量值),对于连续特征,无法像离散特征那样通过简单的计数来估计条件概率 $P(x_i|y)$,高斯朴素贝叶斯的核心创新在于:**假设在给定类别 $y$ 的条件下,每个连续特征 $x_i$ 都服从高斯分布(正态分布)**。

高斯分布的概率密度函数(PDF)定义如下:

$$ P(x_i|y) = \frac{1}{\sqrt{2\pi\sigma_{iy}^2}} \exp\left(-\frac{(x_i - \mu_{iy})^2}{2\sigma_{iy}^2}\right) $$
  • $\mu_{iy}$:表示在类别 $y$ 下,特征 $x_i$ 的均值(Mean)。
  • $\sigma_{iy}^2$:表示在类别 $y$ 下,特征 $x_i$ 的方差(Variance)。

这两个参数($\mu_{iy}$ 和 $\sigma_{iy}^2$)是每个类别-特征组合特有的,它们可以通过训练数据中属于类别 $y$ 的所有样本在特征 $x_i$ 上的取值进行计算得到。$\mu_{iy}$ 是这些样本值的算术平均数,$\sigma_{iy}^2$ 是这些样本值的方差,一旦确定了这些参数,我们就可以利用高斯分布的概率密度函数来计算任意特征值 $x_i$ 在给定类别 $y$ 下的条件概率密度值。

分类决策规则

将贝叶斯定理、特征条件独立假设以及高斯分布假设结合起来,我们可以推导出样本 $(x_1, x_2, \dots, x_n)$ 属于类别 $y$ 的后验概率表达式:

$$ P(y|x_1, x_2, \dots, x_n) \propto P(y) \cdot \prod_{i=1}^n \left[ \frac{1}{\sqrt{2\pi\sigma_{iy}^2}} \exp\left(-\frac{(x_i - \mu_{iy})^2}{2\sigma_{iy}^2}\right) \right] $$

为了便于计算并避免因多个小概率值相乘导致的数值下溢(Underflow)问题,通常对后验概率取自然对数(Log),利用对数的性质(乘法变加法,指数变乘法),得到对数后验概率:

$$ \log P(y|x_1, x_2, \dots, x_n) \propto \log P(y) + \sum_{i=1}^n \left[ -\frac{1}{2}\log(2\pi\sigma_{iy}^2)

标签: #贝叶斯