西瓜书笔记更新啦!
假设有 N N N种可能类别标记,即 y = c 1 , c 2 , ⋯   , c N y = {c_1,c_2,\cdots,c_N} y=c1,c2,⋯,cN, λ i j \lambda_{ij} λij是将一个真实标记为 c j c_j cj的样本误分类为 c i c_i ci所产生的损失,基于后验概率 P ( c i ∣ x ) P(c_i | x) P(ci∣x)可获得将样本 x x x分类为 c i c_i ci所产生的期望损失,即在样本 x x x上的“条件风险”
R ( c i ∣ x ) = ∑ j = 1 N λ i , j P ( c j ∣ x ) R(c_i | x) = \sum_{j=1}^{N} \lambda_{i,j}P(c_j | x) R(ci∣x)=j=1∑Nλi,jP(cj∣x)
为了最小化总体风险,就产生了贝叶斯判定准则:只需在每个样本上选择那个能使条件风险 R ( c ∣ x ) R(c | x) R(c∣x)最小的类别标记,即
h ∗ ( x ) = arg max c ∈ y R ( c ∣ x ) h^*(x) = \mathop{\arg\max}_{c \in y} R(c | x) h∗(x)=argmaxc∈yR(c∣x)
其中, h ∗ ( x ) h^*(x) h∗(x)为贝叶斯最优分类器,与之对应的 R ( h ∗ ) R(h^*) R(h∗)为贝叶斯风险, 1 − R ( h ∗ ) 1-R(h^*) 1−R(h∗)反映了分类器所能达到的最好性能,即通过机器学习所能产生的模型精度的理论上限。
具体地,若是最小化分类错误率,则误判损失 λ i j \lambda_{ij} λij可写为:
λ i j = { 1 , i f i = j 0 , o t h e r w i s e \lambda_{ij} = \left\{\begin{array}{cc} 1, & if\quad i=j\\ 0, & otherwise \end{array}\right. λij={1,0,ifi=jotherwise
此时条件风险
R ( c i ∣ x ) = 1 − P ( c ∣ x ) R(c_i | x) = 1-P(c | x) R(ci∣x)=1−P(c∣x)
贝叶斯最优分类器为
h ∗ ( x ) = arg min c ∈ y P ( c ∣ x ) h^*(x) = \mathop{\arg\min}_{c \in y} P(c | x) h∗(x)=argminc∈yP(c∣x)
给定x,通过直接建模 P ( c ∣ x ) P(c | x) P(c∣x)来预测 c c c,例如决策树、BP神经网络、支持向量机等
考虑
P ( C ∣ X ) = P ( x , c ) P ( x ) P(C | X) = \frac{P(x,c)}{P(x)} P(C∣X)=P(x)P(x,c)
基于贝叶斯定理:
P ( C ∣ X ) = P ( c ) P ( x ∣ c ) P ( x ) P(C | X) = \frac{P(c)P(x | c)}{P(x)} P(C∣X)=P(x)P(c)P(x∣c)
其中等式右边:先验概率,样本x相对于类别c的类条件概率,归一化证据因子。
先对联合概率分布 P ( x , c ) P(x,c) P(x,c)建模,然后再由此获得 P ( c ∣ x ) P(c | x) P(c∣x)
概率模型的训练过程就是参数估计过程。
两种不同解决方案:
remark:计算似然过程中连乘容易下溢,通常使用对数似然。
采用属性条件独立性假设:对已知类别,假设所有属性独立。
有
P ( C ∣ X ) = P ( c ) P ( x ∣ c ) P ( x ) = P ( c ) P ( x ) ∏ i = 1 d P ( x i ∣ c ) P(C | X) = \frac{P(c)P(x | c)}{P(x)} = \frac{P(c)}{P(x)} \prod_{i=1}^{d}P(x_i | c) P(C∣X)=P(x)P(c)P(x∣c)=P(x)P(c)i=1∏dP(xi∣c)
其中d为属性数目
由于所有类别 P ( x ) P(x) P(x)相同,因此有
h ∗ ( x ) = arg max c ∈ y P ( c ) ∏ i = 1 d P ( x i ∣ c ) h^*(x) = \mathop{\arg\max}_{c \in y} P(c) \prod_{i=1}^{d}P(x_i | c) h∗(x)=argmaxc∈yP(c)i=1∏dP(xi∣c)
即朴素贝叶斯分类器表达式
适当考虑一些属性之间的依赖。
最直接:假设所有属性都依赖于同一个属性——“超父”,然后通过交叉验证等模型选择方法来确定超父属性,由此形成SPODE方法。
另外还有TAN方法(基于最大带权生成树),其算法步骤:
TAN保留了强相关属性之间的依赖性。
AODE方法:集成学习机制,独依赖分类器,无需模型选择,能通过预计算节省预测时间,也可以采取懒惰学习方式在预测时再计算,易于实现增量学习。
借助有向无环图来刻画属性之间的依赖关系。用条件概率表来描述属性的联合概率分布。
三种典型依赖:
分析变量间条件独立性*:有向分离法,算法:
由此产生“道德图”,父节点相连成为“道德化“
若网络结构已知,即属性间的依赖关系已知,只需通过对训练样本“计数”,估计出每个节点的条件概率表即可。——参数学习
往往现实中不知道网格结构,所以要寻找最恰当结构:评分搜索是常用方法。——结构学习
评分搜索:先定义一个评分函数,以此来评估贝叶斯网与训练数据之间的期和程度,然后基于这个评分函数来寻找结构最优的贝叶斯网。
常用评分函数基于信息论准则,此类准则将学习问题看做一个数据压缩任务,学习目标是找到一个能以最短编码长度描述训练数据的模型,此时编码成都包括了描述模型自身所需的字节长度和使用该模型描述数据所需的字节长度。
最小描述长度准则:选择综合编码长度最短的贝叶斯网。
不幸的是,从所有可能的网络结构空间搜索最优贝叶斯网结构是一个NP难问题。
有两种常用策略能在有限时间求得近似解:
根据贝叶斯网定义的联合概率分布精确计算后验概率是十分精确的,可是这种精确推断是NP难的,所以需要近似推断。
常用吉布斯采样完成。
吉布斯采样算法收敛速度较慢,且若不能保证马尔科夫链平稳分布,可能给出错误估计
用于估计参数隐变量(存在为观测的属性变量值)
迭代式方法,若参数已知,则可以根据训练数据推断出最优隐变量的值,反之若隐变量已知,可以方便对参数做极大似然估计。
(EM算法是非梯度优化方法)
隐变量估计也可以用梯度下降法来求解,但是指数级上升的求和项数,给计算带来问题。