大连理工大学选修课——机器学习笔记(4):NBM的原理及应用

NBM的原理及应用

贝叶斯决策及相关

贝叶斯决策

  • 对于给定数据集 X = [ X 1 , X 2 , ⋯   , X d ] T X=[X_1,X_2,\cdots,X_d]^T X=[X1,X2,⋯,Xd]T
  • K个类 C i , i = 1 , ⋯   , K C_i,i=1,\cdots,K Ci,i=1,⋯,K, 满足 P ( C i ) > = 0 a n d ∑ P ( C i ) = 1 P(C_i)>=0\ and\ \sum P(C_i)=1 P(Ci)>=0 and ∑P(Ci)=1
  • 对于数据样本 x x x的类别判断为:

c h o o s e C i i f P ( C i ∣ x ) = m a x P ( C k ∣ x ) choose\ C_i\ if P(C_i|x)=maxP(C_k|x) choose Ci ifP(Ci∣x)=maxP(Ck∣x)

后验概率的计算

  • 贝叶斯定理公式为

    P ( C i ∣ x ) = p ( x ∣ C i ) P ( C i ) p ( x ) P(C_i|x)=\frac{p(x|C_i)P(C_i)}{p(x)} P(Ci∣x)=p(x)p(x∣Ci)P(Ci)

    其中, p ( x ) , p ( x ∣ C i ) p(x),p(x|C_i) p(x),p(x∣Ci)可以从训练样本中估算。

理解后验概率

后验概率是一种条件概率,代表随机事件存在关联。

理解贝叶斯决策

总是选择错误风险最小的结果。

一元统计分析及参数估计

  • 常规做法:根据给定的数据集估算这些概率。

  • 存在问题:如果数据集太小,那么从数据集里计算出来的概率偏差将非常严重。

    例:观察一个质地均匀的骰子投掷6次的结果:

    1,3,1,5,3,3

    质地均匀的骰子每个点出现的概率应该是1/6

    如果根据观察到的数据集去计算每个点的概率,和真实的概率差别会非常大。

    即:如果数据集太小,那么从数据集里计算出来的概率偏差将非常严重。

  • 解决方法:

    • 不完全依赖给定的数据,结合概率分布模型计算概率。

概率分布模型

  • 概率密度函数(PDF)
    • 描述连续随机事件(变量)可能性的函数。
  • 概率质量函数(PMF)
    • 描述离散随机事件(变量)可能性的函数。

处理连续随机变量和离散随机变量需要采用不同的概率分布模型

  • 伯努利分布(二值分布)
    • 二项式分布
  • 多值分布
    • 多项式分布
  • 高斯分布

一维数据的情况

数据仅含一个特征,可能是连续/随机的随机变量。

伯努利分布

伯努利分布是二值分布,用0/1表示。

  • 伯努利分布概率质量函数:

P ( X = x ) = { p x = 1 1 − p x = 0 P(X=x)=\left\{ \begin{matrix} p\qquad &x=1\\ 1-p\qquad &x=0 \end{matrix} \right. P(X=x)={p1−px=1x=0

  • 二项式分布:

P k = C N k p k ( 1 − p ) N − k P_k=C_N^kp^k(1-p)^{N-k} Pk=CNkpk(1−p)N−k

复制代码
    做了N次伯努利试验,结果1出现k次的概率。

多值分布

∑ j = 1 M p j = 1 f ( x 1 , x 2 , ⋯   , x m ∣ p ) = ∏ j = 1 M p j x j \begin{align} \sum_{j=1}^{M}p_j=&1\\ f(x_1,x_2,\cdots,x_m|p)=&\prod_{j=1}^{M}p_j^{x_j} \end{align} j=1∑Mpj=f(x1,x2,⋯,xm∣p)=1j=1∏Mpjxj

M M M是特征取值的状态数, x j x_j xj当且仅当类别x状态j时,取值为1,其余情况取值为0。

  • 多项式分布:满足多值分布的实验,连续做 n 次后,每种类别出现的特定次数组合的概率。

    多项式分布的PMF:

    f ( X , n , P ) = n ! ∏ j = 1 M x j ! ∏ j = 1 M p j x j \begin{align} f(X,n,P)=\frac{n!}{\prod_{j=1}^{M}x_j!}\prod_{j=1}^Mp_j^{x_j} \end{align} f(X,n,P)=∏j=1Mxj!n!j=1∏Mpjxj

高斯分布

连续随机变量的概率分布,即正态分布

公式包含 μ , σ \mu,\sigma μ,σ两个参数:

p ( x ) = 1 2 π e x p ( − ( x − μ ) 2 2 σ 2 ) p(x)=\frac{1}{\sqrt{2\pi}}exp(-\frac{(x-\mu)^2}{2\sigma^2}) p(x)=2π 1exp(−2σ2(x−μ)2)

参数估计

含义:确定概率分布模型的参数,概率模型确定后,即可计算 p ( x ) 和 p ( x ∣ C i ) p(x)和p(x|C_i) p(x)和p(x∣Ci)。

方法:最大似然估计

最大似然估计

似然:在参数 θ \theta θ下,数据样本 X = { x 1 , x 2 , ⋯   , x n } X=\{x_1,x_2,\cdots,x_n\} X={x1,x2,⋯,xn}出现的概率

  1. 样本满足独立同分布

    X = { x t } t = 1 N X={\{x^t\}}^N_{t=1} X={xt}t=1N

  2. x服从参数为 θ \theta θ的概率分布

    x t ∼ p ( x ∣ θ ) x^t\sim p(x|\theta) xt∼p(x∣θ)

  3. 样本的似然(假设样本相互独立):

l ( X ∣ θ ) = p ( X ∣ θ ) = ∏ t = 1 N p ( x t ∣ θ ) l(X|\theta)=p(X|\theta)=\prod_{t=1}^Np(x^t|\theta) l(X∣θ)=p(X∣θ)=t=1∏Np(xt∣θ)

复制代码
     对数似然:

L ( X ∣ θ ) = l o g l ( X ∣ θ ) = ∑ t = 1 N l o g p ( x t ∣ θ ) L(X|\theta)=logl(X|\theta)=\sum_{t=1}^Nlog\ p(x^t|\theta) L(X∣θ)=logl(X∣θ)=t=1∑Nlog p(xt∣θ)

  1. 通过极值估算概率模型参数 θ \theta θ

    1. 伯努利分布

      下面的公式展示了如何通过最大似然估计(MLE)推导伯努利分布的参数p。

      伯努利分布的概率质量函数为:

      P ( x t ∣ p ) = p x t ( 1 − p ) 1 − x t \begin{align} P(x^t|p)={p^x}^t(1-p)^{1-x^t} \end{align} P(xt∣p)=pxt(1−p)1−xt

      联合似然函数(所有样本的联合概率):

      L ( X ∣ p ) = ∏ t = 1 N p x t ( 1 − 0 ) 1 − x t \begin{align} L(X|p)=\prod_{t=1}^N{p^x}^t(1-0)^{1-x^t} \end{align} L(X∣p)=t=1∏Npxt(1−0)1−xt

      为了简化计算,取对数,将连乘转为连加:

      l o g L ( X ∣ p ) = ∑ t = 1 N [ x t l o g p ] + ( 1 − x t ) l o g ( 1 − p ) , 展开得: = ( ∑ t = 1 N x t ) l o g p + ( N − ∑ t = 1 N x t ) l o g ( 1 − p ) 其中, ∑ x t 表示总成功次数, N − ∑ x t 表示失败次数。 \begin{align} log\ L(X|p)=&\sum_{t=1}^N[x^tlog\ p]+(1-x^t)log(1-p),展开得:\\ =&(\sum_{t=1}^Nx^t)log\ p+(N-\sum_{t=1}^Nx^t)log(1-p) \end{align}\\ 其中,\sum x^t表示总成功次数,N-\sum x^t表示失败次数。 log L(X∣p)==t=1∑N[xtlog p]+(1−xt)log(1−p),展开得:(t=1∑Nxt)log p+(N−t=1∑Nxt)log(1−p)其中,∑xt表示总成功次数,N−∑xt表示失败次数。

      对p求导,并令导数为0:

      d d p l o g L ( X ∣ p ) = x t p − N − ∑ x t 1 − p = 0 \begin{align} \frac{d}{dp}log\ L(X|p)=\frac{x^t}{p}-\frac{N-\sum x^t}{1-p}=0 \end{align} dpdlog L(X∣p)=pxt−1−pN−∑xt=0

      解方程得:

      p ^ = x t N \hat{p}=\frac{x^t}{N} p^=Nxt

    2. 多值分布

      1. 类条件概率的估计

        p ^ ( x ∣ C i ) = ∏ j = 1 M p ^ i j x j \hat p(x|C_i)=\prod_{j=1}^M\hat p_{ij}^{x_j} p^(x∣Ci)=j=1∏Mp^ijxj

        • 符号说明
          • C i C_i Ci表示第i个类别。
          • p ^ i j \hat p_{ij} p^ij表示类别 C i C_i Ci下第j个特征的出现概率(MLE估计值)。
          • x j x_j xj是样本的第j个特征值(二值或频数)。
          • p ^ i j = N i j N i \hat p_{ij}=\frac{N_{ij}}{N_i} p^ij=NiNij, N i j N_{ij} Nij表示 C i C_i Ci中第 j j j个特征出现的总次数, N i N_i Ni表示 C i C_i Ci的总样本数。
      2. 先验概率的估计

        p ^ ( C i ) = ∑ l r l i N \hat p(C_i)=\frac{\sum_lr_l^i}{N} p^(Ci)=N∑lrli

        • 符号说明
          • r l i r_l^i rli:第 l l l个样本是否属于 C i C_i Ci(1是,0否)。
          • N:总样本数。
      3. 构建判别式函数

        g i ( x ) = l o g ( p ^ ( x ∣ C i ) p ^ ( C i ) ) = ∑ j = 1 M x j l o g p ^ i j + l o g p ^ ( C i ) g_i(x)=log(\hat p^(x∣C_i)\hat p^(C_i))=\sum_{j=1}^M x_{j}log\ \hat p_{ij}+log\ \hat p(C_i) gi(x)=log(p^(x∣Ci)p^(Ci))=∑j=1Mxjlog p^ij+log p^(Ci)

    高斯分布

    1. 建立似然函数

      L ( X ∣ μ , σ ) = − N 2 l o g ( 2 π ) − N l o g σ − ∑ t ( x t − μ ) 2 2 σ 2 L(X|\mu,\sigma)=-\frac{N}{2}log(2\pi)-Nlog\sigma-\frac{\sum_t(x^t-\mu)^2}{2\sigma^2} L(X∣μ,σ)=−2Nlog(2π)−Nlogσ−2σ2∑t(xt−μ)2

    2. 计算自变量的偏导,令等于0,得最大似然估计结果:

      m = ∑ t x t N s 2 = ∑ t ( x t − m ) 2 N m=\frac{\sum_tx^t}{N}\\ s^2=\frac{\sum_t(x^t-m)^2}{N} m=N∑txts2=N∑t(xt−m)2

    3. 高斯分布用于分类

      1. 对每个类别 C i C_i Ci,用MLE估计其高斯参数 ( m i , s i 2 ) (m_i,s_i^2) (mi,si2):

        p ^ ( x ∣ C i ) = 1 2 π s i e x p ( − ( x − m i ) 2 2 s i 2 ) \hat p(x|C_i)=\frac{1}{\sqrt{2\pi s_i}}exp(-\frac{(x-m_i)^2}{2s_i^2}) p^(x∣Ci)=2πsi 1exp(−2si2(x−mi)2)

      2. 先验概率估计:

        p ^ ( C i ) = 类别 C i 的样本数 N \hat p(C_i)=\frac{类别C_i的样本数}{N} p^(Ci)=N类别Ci的样本数

      3. 构建判别式

        取对数后,判别函数 g i ( x ) g_i(x) gi(x) 为:

        g i ( x ) = − 1 2 l o g 2 π − l o g s i − ( x − m i ) 2 2 s i 2 + l o g p ^ ( C i ) g_i(x)=-\frac{1}{2}log2\pi-log\ s_i-\frac{(x-m_i)^2}{2s_i^2}+log\ \hat p(C_i) gi(x)=−21log2π−log si−2si2(x−mi)2+log p^(Ci)

多元数据的贝叶斯模型

多元数据

  • 被观测的样本具有多个特征(维度>1)

    样本集可以用矩阵表示。

    X = [ X 1 1 X 2 1 ⋯ X d 1 X 1 2 X 2 2 ⋯ X d 2 . . X 1 N X 2 N ⋯ X d N ] X=\begin{bmatrix} X_1^1\quad X_2^1\quad \cdots\quad X_d^1\\ X_1^2\quad X_2^2\quad \cdots\quad X_d^2\\ .\\ .\\ X_1^N\quad X_2^N\quad \cdots\quad X_d^N \end{bmatrix} X= X11X21⋯Xd1X12X22⋯Xd2..X1NX2N⋯XdN

多元数据的统计量

  • 均值向量

  • 特征变量的方差

    σ i 2 \sigma_i^2 σi2

  • 特征变量间的协方差

    协方差描述了特征变量之间的关联,如果特征变量彼此独立、不相关,则协方差为零。

  • 特征变量的相关性

    相关性把特征变量之间的协方差归一化到[-1,+1],特征变量如果不相关,则相关性为0。

多元数据的参数估计

  • 最大似然估计的结果
    • 样本均值向量

      m = ∑ t = 1 N x t N ( m i = ∑ t = 1 N x i t N ) m=\frac{\sum^N_{t=1}x^t}{N}\quad (m_i=\frac{\sum_{t=1}^Nx^t_i}{N}) m=N∑t=1Nxt(mi=N∑t=1Nxit)

    • 样本的协方差

多元高斯分布

  • x ∼ N d ( μ , ∑ ) x\sim N_d(\mu,\sum) x∼Nd(μ,∑)

  • 样本的协方差矩阵用S表示

基于多元高斯分布的贝叶斯分类法

  1. 假定
  1. 判别式为:

  2. 根据最大似然估计:

  1. 化简得:

如果协方差矩阵为对角矩阵,化简结果为:

上式为朴素贝叶斯模型的基于高斯分布的判别式(NBM)。

讨论朴素贝叶斯模型

  • 括号内为标准化的欧氏距离,消除量纲影响。

  • NBM是线性判别式,每个特征变量的分布都是高斯分布。

  • 如果每个特征变量方差相同,或进行了归一化处理,NBM退化为:

    括号内为欧氏距离,不需要再标准化了。

  • 最小距离分类:

    如果 p ^ ( C i ) \hat p(C_i) p^(Ci)相等:

上式为最小距离分类方法

贝叶斯模型的简化形式

为了降低模型的复杂程度,降低计算量,需要对贝叶斯模型进行化简。

独立性假设

朴素贝叶斯的前提是假定样本实例的各个特征之间相互独立,此时, σ = 0 , ρ = 0 \sigma=0,\rho=0 σ=0,ρ=0

协方差矩阵退化为对角矩阵

公式:

可以化简为:

等价于:

此时,多元数据的条件概率等于一元条件概率的乘积,每个特征变量都独立处理,不须再考虑协方差

三种朴素贝叶斯分类器

随机变量的预处理

  • 样本实例的特征可以是连续的随机变量
  • 也可以是离散的随机变量
  • 不同类型的特征变量需要采用不同的概率模型处理
  • 不同概率模型对应不同的贝叶斯模型的实现方法
  1. 对于连续随机变量:
    • 采用高斯分布模型。
    • 离散成多值状态,采用多值分布模型。
    • 离散成二值状态,采用伯努力分布模型。
  2. 对于多值离散型随机变量
    • 采用多值分布模型、
    • 离散成二值状态,采用伯努力分布模型

贝叶斯模型的优点

  • 分类效率稳定
  • 对缺少数据不太敏感,常用于文本分类
  • 对小规模数据表现很好,对大规模数据可分批增量式训练
  • 能处理多分类任务

贝叶斯模型的缺点

  • 特征较多或特征相关性较大时,分类效果不好。
  • 对数据的表达形式很敏感。
  • 需要知道先验概率(常取决于假设),因此存在一定误差。

朴素贝叶斯模型的三种实现形式

  • 基于伯努力的NBM
    • 处理二值随机变量的数据
  • 基于多值分布的NBM
    • 处理离散随机变量的数据
  • 基于高斯分布的NBM
    • 处理连续随机变量的数据

条件概率的数据平滑

如果某个离散随机变量的条件概率为0,那么条件概率连乘就会失败。

  • 平滑方法:
相关推荐
愚戏师22 分钟前
Linux复习笔记(一)基础命令和操作
linux·笔记
星火撩猿1 小时前
OpenGl实战笔记(3)基于qt5.15.2+mingw64+opengl实现光照变化效果
笔记·qt·opengl·光照效果
夏季疯1 小时前
学习笔记:黑马程序员JavaWeb开发教程(2025.3.29)
java·笔记·学习
xixixiLucky2 小时前
Selenium Web自动化测试学习笔记(一)
笔记·学习·selenium
HHONGQI1232 小时前
ESP32- 开发笔记- 软件开发 6 蓝牙协议栈 1
笔记
m0_620607813 小时前
机器学习——逻辑回归ROC练习
人工智能·机器学习·逻辑回归
TJ-周月年3 小时前
2025FIC初赛(手机)
笔记·网络安全
江畔柳前堤3 小时前
信息论12:从信息增益到信息增益比——决策树中的惩罚机制与应用
运维·深度学习·算法·决策树·机器学习·计算机视觉·docker
一点.点3 小时前
李沐动手深度学习(pycharm中运行笔记)——09.softmax回归+图像分类数据集+从零实现+简洁实现
pytorch·笔记·python·深度学习·动手深度学习·softmax回归
摆烂仙君3 小时前
注意力(Attention)机制详解(附代码)
人工智能·机器学习·计算机视觉