贝叶斯分类器

贝叶斯分类器


朴素贝叶斯

朴素贝叶斯分类器

一个重要的前提

属性之间的独立性假设

P ( a 1 , . . . , a n ∣ v j ) = Π i P ( a i ∣ v j ) P(a_1,...,a_n|v_j) = \Pi_iP(a_i|v_j) P(a1,...,anvj)=ΠiP(aivj)

形式

v N B = a r g max ⁡ v j ∈ V P ( v j ) Π i P ( a i ∣ v j ) v_{NB} = arg \max_{v_j \in V}P(v_j)\Pi_iP(a_i|v_j) vNB=argvjVmaxP(vj)ΠiP(aivj)

从训练数据中估计 P ( a i ∣ v j ) P(a_i|v_j) P(aivj) 要比直接估计联合密度估计要容易得多。

估计

从训练样本中进行估计

  • 对任意目标值 v j v_j vj
    • 估计出 P ^ ( v j ) \hat P(v_j) P^(vj)
    • 对任意一个 a j a_j aj,估计出 P ^ ( a i ∣ v j ) \hat P(a_i|v_j) P^(aivj)
  • 模型形式为
    • v N B = a r g max ⁡ v j ∈ V P ^ ( v j ) Π a i ∈ x P ^ ( a i ∣ v j ) v_{NB} = arg \max\limits_{v_j \in V}\hat P(v_j)\Pi_{a_i \in x}\hat P(a_i|v_j) vNB=argvjVmaxP^(vj)ΠaixP^(aivj)
  • 计算出来的值再进行概率归一化即可
连续值属性

对于连续值属性的讨论

  • 离散化
  • 利用概率分布来进行估计
    • P ( x j ∣ C j ) = 1 2 π σ i j e x p ( − ( x j − μ i j ) 2 2 σ i j 2 ) P(x_j|C_j) = \frac{1}{\sqrt{2\pi}\sigma_{ij}}exp(-\frac{(x_j - \mu_{ij})^2}{2\sigma_{ij}^2}) P(xjCj)=2π σij1exp(2σij2(xjμij)2)
    • 其中 μ i j \mu_{ij} μij σ i j \sigma_{ij} σij 分别为类 C i C_i Ci 中随机变量 x i x_i xi 的期望和标准差,利用对应的样本期望和标准差来进行估计
潜在问题
  • 如果某一个属性的条件概率为 0 0 0,那么整个类的后验概率也为 0 0 0
  • 训练样本不能覆盖那么多属性值时,不能分类某些测试记录

针对第一个问题,采用平滑技术

n c + m p n + m , p = 1 k \frac{n_c+mp}{n+m},p = \frac{1}{k} n+mnc+mp,p=k1
其中 p p p 是按均匀概率的观念点出发,如果有 k k k 个可能的属性值,则取值为 1 k \frac{1}{k} k1.
m m m 被称为等效样本.
那么修正式相当于 n n n 个实际观察加上 m m m 个按 p p p 分布的虚拟样本。

特点
  • 对于孤立噪声点,朴素贝叶斯分类器是健壮的
  • 可以处理属性值遗漏问题
  • 可以处理无关属性
  • 属性相关性高会降低朴素贝叶斯分类器的性能

贝叶斯信念网络

贝叶斯信念网络 ( B a y e s   b e l i e f   n e t w o r k , B B N ) (Bayes\ belief\ network,BBN) (Bayes belief network,BBN)

概念
  • 描述的是一组变量所遵循的概率分布,通过一组条件概率来指定一组条件独立性假设
  • 可以表述变量自己上的条件独立性假设。比朴素贝叶斯分类器的限制更少。
  • 如果一个节点的父母节点已知,则它条件独立于它的所有非后代节点。

贝叶斯信念网络的表示

  • 一个无环有向图来标识
  • 一个概率表,即一组局部条件概率的集合

在这里插入图片描述

训练
  • 如果网络结构已知,且变量可以从训练数据中完全取得,那么训练就比较简单

  • 如果网络结构已知,但是只有部分变量能从训练数据中观察到,那么学习问题就困难多了。类似于神经网络的隐藏层的学习。

  • 如果结构位置,那么需要学习结构。

    • 定义一个 评分函数
    • 基于信息论准则
    • 引入了归纳偏置

选择综合编码长度最短的贝叶斯网----最小长度描述准则

评分函数

S ( B ∣ D ) = f ( θ ) ∣ B ∣ − L L ( B ∣ D ) S(B|D) = f(\theta)|B| - LL(B|D) S(BD)=f(θ)BLL(BD)
其中 ∣ B ∣ |B| B 是贝叶斯网的参数个数; f ( θ ) f(\theta) f(θ) 表示描述每个参数 θ \theta θ 所需的字节数

其中 L L ( B ∣ D ) = ∑ i = 1 m log ⁡ P B ( x i ) LL(B|D) = \sum_{i=1}^m\log P_B(x_i) LL(BD)=i=1mlogPB(xi)
是贝叶斯网络的似然。

寻找一个贝叶斯网络 B B B 使得评分函数 S(B|D)最小

  • 如果 f ( θ ) = 1 f(\theta) = 1 f(θ)=1,则就是 A I C AIC AIC 准则
    A I C ( B ∣ D ) = ∣ B ∣ − L L ( B ∣ D ) AIC(B|D) = |B| - LL(B|D) AIC(BD)=BLL(BD)
  • 如果 f ( θ ) = 1 2 log ⁡ m f(\theta) = \frac{1}{2}\log m f(θ)=21logm,则就是 B I C BIC BIC 准则
    B I C ( B ∣ D ) = log ⁡ m 2 ∣ B ∣ − L L ( B ∣ D ) BIC(B|D) = \frac{\log m}{2}|B| - LL(B|D) BIC(BD)=2logmBLL(BD)
  • 如果 f ( θ ) = 0 f(\theta) = 0 f(θ)=0 ,即不考虑进行编码长度,函数退化为对数似然。
    S ( B ∣ D ) = − L L ( B ∣ D ) S(B|D) = - LL(B|D) S(BD)=LL(BD)
    参数 θ x i ∣ π i = P ^ D ( x i ∣ π i ) \theta_{x_i|\pi_i} = \hat P_D(x_i|\pi_i) θxiπi=P^D(xiπi)。其中 P ^ D ( ⋅ ) \hat P_D(·) P^D() D D D 上的经验分布。所以只需要进行搜索得到最优参数。
拓扑结构的学习
主观专家的编码
  • T = ( X 1 , . . . , X d ) T = (X_1,...,X_d) T=(X1,...,Xd),表示变量的全序。
  • 对于所有的 T T T 中的元素
    • X T ( j ) X_{T(j)} XT(j) 表示 T T T 中第 j j j 个次序最高的变量
    • π ( X T ( j ) ) = { X T ( 1 ) , . . . , X T ( j − 1 ) } \pi(X_{T(j)}) = \{X_{T(1)},...,X_{T(j-1)}\} π(XT(j))={XT(1),...,XT(j1)} 表示排在 X T ( j ) X_{T(j)} XT(j) 前面的变量集合
    • π ( X T ( j ) ) \pi(X_{T(j)}) π(XT(j)) 中去掉对 X j X_j Xj 没有影响的变量。这是由先验知识得到的
    • X T ( j ) X_{T(j)} XT(j) π ( X T ( j ) ) \pi(X_{T(j)}) π(XT(j)) 中剩余的变量画弧。

这是一个如何通过主观专家来构建合理网络结构的过程。

梯度提升训练

  • w i j k w_{ijk} wijk 代表概率表的一个表项,即在给定 U i U_i Ui 取值 u i k u_{ik} uik 时,网络变量 Y i Y_i Yi 值为 y i j y_{ij} yij 的概率。

  • 梯度的计算:
    ∂ ln ⁡ P ( D ∣ h ) ∂ w i j k = ∑ d ∈ D P ( Y i = y i j , U i = u i k ∣ d ) w i j k \frac{\partial \ln P(D|h)}{\partial w_{ijk}} = \sum_{d \in D}\frac{P(Y_i = y_{ij},U_i = u_{ik}|d)}{w_{ijk}} wijklnP(Dh)=dDwijkP(Yi=yij,Ui=uikd)

  • 梯度的更新:
    w i j k ← w i j k + η ∑ d ∈ D P h ( y i j , u i k ∣ d ) w i j k w_{ijk} \leftarrow w_{ijk} + \eta \sum_{d \in D}\frac{P_h(y_{ij},u_{ik}|d)}{w_{ijk}} wijkwijk+ηdDwijkPh(yij,uikd)

  • 权重的归一化:
    w i j k ← w i j k ∑ j w i j k w_{ijk} \leftarrow \frac{w_{ijk}}{\sum_{j}w_{ijk}} wijkjwijkwijk

该算法可能找到的是局部最优解。

网络的推断
  • 推断出的结果一把都是一个概率分布。
  • 利用贝叶斯公式来进行概率的而计算

例如:

在这里插入图片描述

  • 如果没有任何先验信息判断一个人是否会患心脏病:
    • 计算过程
      P ( H D = Y e s ) = ∑ α ∑ β P ( H D = Y e s ∣ E = α , D = β ) P ( E = α , D = β ) P(HD = Yes) = \sum_\alpha\sum_\beta P(HD = Yes|E = \alpha,D = \beta)P(E = \alpha,D = \beta) P(HD=Yes)=αβP(HD=YesE=α,D=β)P(E=α,D=β)
      = ∑ α ∑ β P ( H D = Y e s ∣ E = α , D = β ) P ( E = α ) P ( D = β ) = \sum_\alpha\sum_\beta P(HD = Yes|E = \alpha,D = \beta)P(E = \alpha)P(D = \beta) =αβP(HD=YesE=α,D=β)P(E=α)P(D=β)
      = 0.25 ∗ 0.7 ∗ 0.25 + 0.45 ∗ 0.7 ∗ 0.75 + 0.55 ∗ 0.3 ∗ 0.25 + 0.75 ∗ 0.3 ∗ 0.75 = 0.49 = 0.25*0.7*0.25+0.45*0.7*0.75+ 0.55*0.3*0.25+0.75*0.3*0.75 = 0.49 =0.250.70.25+0.450.70.75+0.550.30.25+0.750.30.75=0.49
      ⇒ P ( H D = N o ) = 1 − P ( H D = Y e s ) = 0.51 \Rightarrow P(HD = No) = 1-P(HD = Yes) = 0.51 P(HD=No)=1P(HD=Yes)=0.51
  • 已知该人有高血压
    • 计算过程
      P ( B P = 高 ) = ∑ P ( B P = 高 ∣ H D = γ ) P ( H D = γ ) P(BP = 高) = \sum P(BP = 高|HD = \gamma)P(HD = \gamma) P(BP=)=P(BP=HD=γ)P(HD=γ)
      = 0.85 ∗ 0.49 + 0.2 ∗ 0.51 = 0.5185 = 0.85*0.49+0.2*0.51 = 0.5185 =0.850.49+0.20.51=0.5185
      所以患心脏病的后验概率是:
      P ( H D = Y e s ∣ B P = 高 ) = P ( B P = 高 ∣ H D = Y e s ) P ( H D = Y e s ) P ( B P = 高 ) P(HD = Yes|BP = 高) = \frac{P(BP = 高|HD = Yes)P(HD = Yes)}{P(BP = 高)} P(HD=YesBP=)=P(BP=)P(BP=HD=Yes)P(HD=Yes)
      = 0.85 ∗ 0.49 0.5185 = 0.8033 = \frac{0.85*0.49}{0.5185} = 0.8033 =0.51850.850.49=0.8033
      P ( H D = N o ∣ B P = 高 ) = 0.1967 P(HD = No|BP = 高) = 0.1967 P(HD=NoBP=)=0.1967
  • 经常锻炼且饮食健康
    • 计算方式
      P ( H D = Y e s ∣ B P = 高 , D = 健 康 , E = Y e s ) P(HD = Yes|BP = 高,D = 健康,E = Yes) P(HD=YesBP=D=E=Yes)
      = [ P ( H D = Y e s ∣ B P = 高 , D = 健 康 , E = Y e s ) P ( B P = 高 ∣ D = 健 康 , E = Y e s ) ] ∗ P ( H D = Y e s ∣ D = 健 康 , E = Y e s ) = [\frac{P(HD = Yes|BP = 高,D = 健康,E = Yes)}{P(BP = 高|D = 健康,E = Yes)}] * P(HD = Yes|D = 健康,E = Yes) =[P(BP=D=E=Yes)P(HD=YesBP=D=E=Yes)]P(HD=YesD=E=Yes)
      = P ( B P = 高 ∣ H D = Y e s ) P ( H D = Y e s ∣ D = 健 康 , E = Y e s ) ∑ γ P ( B P = 高 ∣ H D = γ ) P ( H D = γ ∣ D = 健 康 , E = Y e s ) = \frac{P(BP = 高|HD = Yes)P(HD = Yes|D = 健康,E = Yes)}{\sum_\gamma P(BP = 高| HD = \gamma)P(HD = \gamma|D = 健康,E = Yes)} =γP(BP=HD=γ)P(HD=γD=,E=Yes)P(BP=HD=Yes)P(HD=YesD=,E=Yes)
      = 0.85 ∗ 0.25 0.85 ∗ 0.25 + 0.2 ∗ 0.75 = 0.5862 = \frac{0.85*0.25}{0.85*0.25+0.2*0.75} = 0.5862 =0.850.25+0.20.750.850.25=0.5862
      P ( H D = N o ∣ B P = 高 , D = 健 康 , E = Y e s ) = 0.4138 P(HD = No|BP = 高,D = 健康,E = Yes) = 0.4138 P(HD=NoBP=D=E=Yes)=0.4138
B B N BBN BBN 的特点
  • 提供了一种图模型来捕获先验知识,还可以对变量之间的因果关系进行编码
  • 构建网络结构的过程虽然费时费力,但是结构确定了,容易添加新的变量
  • 贝叶斯网络很适合处理不完全数据
  • 数据和先验信息以概率方式结合,所以可以避免过拟合问题。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值