机器学习:贝叶斯分类算法

贝叶斯定理

P(XCi)P(X|C_i) 表示 X 在类别 i 下的条件概率

P(CiX)=P(XCi)P(X)P(Ci)P(C_i|X) = \frac{P(X|C_i)}{P(X)}P(C_i)

P(XCi)P(X|C_i)

  • P(XCi)P(XC_i)由样本中统计 i 类别下 X 的数量得出
  • P(Ci)P(C_i) 根据具体情况给出

此处的 X 是一个属性的取值。

贝叶斯决策的准则为:

若对任意的 j 和特定的 i

P(CiX)>P(CjX)P(C_i | X) > P(C_j |X)

则 X 属于类别 i

假设 X 属于类别 c , P(c)P(c) 代表类别 c 的概率,P(X)P(X) 表示的是样本 X 的概率,P(Xc)P(X|c) 表示一个物品是 c 类别的情况下它是 XX 的概率,则可以求出这个物品是 X 的情况下他是 c 类别的概率

P(cX)=P(Xc)P(X)P(c)P(c|X) = \frac{P(X|c)}{P(X)}P(c)

但是类别不至有一个,找到物品确定是 X 的情况下,最有可能属于的类别需要这样子计算:

max(P(ciX))=maxP(Xci)P(c)P(X)max(P(c_i | X)) = max\frac{P(X|c_i) P(c)}{P(X)}

也就是遍历所有类别,一个一个算,求出里面最大概率的情况下的 cic_i 就被称为 极大后验假设,记作 cmaxc_{max} 也就是

cmax=argmaxcCP(Xci)P(c)P(X)c_{max} = argmax_{c\in C}\frac{P(X|c_i) P(c)}{P(X)}

由于是求最大,不是求具体的数值,所以可以忽略共同因子 P(X)P(X)

在没有类别概率 P(c)P(c) 的情况下,可以假设每个类别的概率相等,所以再忽略 P©

cml=argmaxcCP(Xc)c_{ml} = argmax_{c \in C}P(X|c)

这就是极大似然概率

朴素贝叶斯分类算法

朴素的假设:属性的类条件独立性。就是在指定类别的时候,属性之间是相互独立的。

X 由属性 {x1,x2,...,xn}\{x_1,x_2, ...,x_n\} 组成

想根据贝叶斯公式求解最大后验假设,我们需要先有 P(XCi)P(X | C_i)P(Ci)P(C_i)

由于朴素假设,所以可以直接计算(所有属性的条件概率累乘)

P(XCi)=j=1nP(xjCi)P(X|C_i) = \prod^n_{j=1}P(x_j|C_i)

最大后验假设:

imax=argmaximP(Ci)j=1nP(xjCi)i_{max} = argmax_{i \leq m}P(C_i)\prod^n_{j=1}P(x_j|C_i)

这就是朴素贝叶斯分类器进行分类的依据,类别 imaxi_{max} 就是样本 X 所属的类别。

工作过程

遍历所有样本 X ,根据朴素假设下的贝叶斯定理,将 X 判断为最大后验假设的那个类别。

  • 如果 P(Ci)P(C_i) 未可知,则假设他们相等(在计算中可以直接忽略),也可以用样本中 CiC_i 所占的比例对 P(Ci)P(C_i) 进行估算。
  • 如果属性 AkA_k 是连续值,则假设它服从正态分布;如果是离散的,则按照样本中,指定类别下该属性为指定值的比例来计算 P(xjCi)P(x_j|C_i)

算法描述

  1. 样本离散化处理、缺失值处理。
  2. 遍历样本集,将类别数量、类别下的属性取值的样本个数构成统计表。
  3. 跟据统计表计算 P(Ci)P(C_i)P(Ak=xiCi)P(A_k = x_i | C_i)
  4. 构建分类模型为贝叶斯最大后验假设。
  5. 遍历数据集得到分类结果。

贝叶斯信念网

朴素假设太严格

用图形表示一组随变量之间的概率关系:

  1. 有向无环图,表示变量之间的依赖关系。如果一个节点的父节点已知,则他对他的上层的其他所有节点独立
  2. 概率表,把各节点和它的直接父节点关联起来。若 X 的父节点是 Y,则包含 P(XY)P(X|Y),若没有父节点则只包含 P(X)

image-20211224110030232