机器学习基础(六):贝叶斯分类(贝叶斯决策论、朴素/半朴素贝叶斯分类器、贝叶斯网、EM算法)
6、贝叶斯分类
6.1贝叶斯决策论Bayesian decision theory
概率框架下实施决策的基本方法。
对分类任务来说,在所有相关概率都已知的理想情形下,贝叶斯决策论考虑如何基于这些概率和误判损失来选择最优的类别标记。
贝叶斯判定准则Bayes decision rule:为最小化总体风险,只需在每个样本上选择那个能使条件风险最小的类别标记,即,h* 称为贝叶斯最优分类器Bayes optimal classifier,与之对应的总体风险R(h*)称为贝叶斯风险Bayes risk,1-R(h*)反映了分类器所能达到的最好性能,即通过机器学习所能产生的模型精度的理论上限。
——要使用贝叶斯判定准则来最小化决策风险,首先要获得后验概率(通常难直接获得)
→机器学习要实现的是基于有限的训练样本尽可能准确地估计出后验概率(两种策略:①判别式模型discriminative models:给定x,可通过直接建模来预测c,决策树、BP神经网络、支持向量机等都可归入判别式模型的范畴;②生成式模型generative models:先对联合概率分布建模,然后再由此获得,考虑,估计的问题就转化为如何基于训练数据D来估计类先验概率P©和似然/类条件概率)
→直接使用频率来估计显然不可行,因为"未被观测到"与"出现概率为零"通常是不同的,假设具有确定的形式并且被参数向量唯一确定,记为
→用极大似然估计MLE(根据数据采样来估计概率分布参数的经典方法)
缺点:估计结果的准确性严重依赖于所假设的概率分布形式是否符合潜在的真实数据分布(往往需在一定程度上利用关于应用任务本身的经验知识假设概率分布形式)
6.2朴素贝叶斯分类器naive Bayes classifier,NB
采用“属性条件独立性假设attribute conditional independence assumption”:对已知类别,假设所有属性相互独立,即假设每个属性独立地对分类结果发生影响
基于此,可重写为
d为属性数目,xi为x在第i个属性上的取值(实际上是一个“属性-值”对)
朴素贝叶斯分类器的表达式(基于的贝叶斯判定准则):
→ 拉普拉斯修正Laplacian correction(平滑处理):为避免其他属性携带的信息被训练集中未出现的属性值抹去,在估计概率值时通常要进行平滑。假设属性值与类别均匀分布。
6.3半朴素贝叶斯分类器semi-naive Bayes classifiers
适当考虑一部分属性间的相互依赖信息,从而既不需要进行完全联合概率计算,又不至于彻底忽略了比较强的属性依赖关系。
→独依赖估计One-Dependent Estimator,ODE(最常用的一种策略):
假设每个属性在类别之外最多仅依赖于一个其他属性:
→如何确定每个属性的父属性?
①超父super-parent:假设所有属性都依赖于同一个属性
通过交叉验证等模型选择方法确定超父属性,形成SPODE方法。
②TAN(Tree Augmented naive Bayes):在最大带权生成树算法的基础上通过以下步骤将属性间依赖关系约简为树形结构(实际上仅保留了强相关属性之间的依赖性):
③AODE(Averaged One-Dependent Estimator):基于集成学习机制、更为强大的独依赖分类器(与SPODE不同,AODE尝试将每个属性作为超父来构建SPODE,然后将那些具有足够训练数据支撑的SPODE集成起来作为最终结果):
6.4贝叶斯网Bayesian network
是经典的概率图模型,也称作“信念网”,借助有向无环图DAG来刻画属性之间的依赖关系,并使用条件概率表CPT来描述属性的联合概率分布
6.4.1结构
贝叶斯网中三个变量之间的典型依赖关系:
①同父common parent结构:给定父节点x1的取值,则x3与x4条件独立(x3⊥x4 | x1);若x1的取值未知,则x3和x4就不独立(x3╨x4不成立)
②顺序结构:给定x的值,则y与z条件独立(y⊥z | x);但y╨z不成立
③V型结构(冲撞结构):给定子结点x4的取值,x1与x2必不独立;若x4的取值完全未知,则V型结构下x1与x2却是相互独立的()(边际独立性marginal independence),记为x1||x2
→ 有向分离D-separation(分析有向图中变量间的条件独立性)
①先把有向图转变为一个无向图(“道德图moral graph”):
②假定道德图中有变量x,y和变量集合z={zi},若变量x和y能在图上被z分开,即从道德图中将变量集合z去除后,x和y分属两个连通分支,则称变量x和y被z有向分离,x⊥y | z成立:
6.4.2学习
往往不知道网络结构→贝叶斯网学习的首要任务是根据训练数据集来找出结构最“恰当”的贝叶斯网
→ 评分搜索(常用方法):
①定义一个评分函数score function,以此来评估贝叶斯网与训练数据的契合程度
AIC评分函数:f(θ)=1,AIC(B|D)=|B|-LL(B|D)
BIC评分函数:f(θ)=(1/2)logm,AIC(B|D)=(1/2)logm|B|-LL(B|D)
若f(θ)=0,评分函数退化为负对数似然,相应的,学习任务退化为极大似然估计
②然后基于这个评分函数寻找结构最优的贝叶斯网
有两种常用的策略能在有限时间内求得近似解:第一种是贪心法,例如从某个网络结构出发,每次调整一条边(增加、删除或调整方向),直到评分函数值不再降低为止;第二种是通过给网络结构施加约束来削减搜索空间,例如将网络结构限定为树形结构等(半朴素贝叶斯分类器可看作贝叶斯网的特例)
6.4.3推断inference
通过已知变量观测值(“证据evidence”)来推测待查询变量的过程
贝叶斯网的近似推断常使用吉布斯采样(一种随机采样方法)来完成
→
(吉布斯采样实际上是在贝叶斯网所有变量的联合状态空间与证据E=e一致的子空间中进行随机漫步random walk,每一步仅依赖于前一步的状态,这是一个“马尔可夫链Markov chain”)
缺点:收敛速度较慢;若贝叶斯网中存在极端概率0或1,则不能保证马尔可夫链存在平稳分布,此时吉布斯采样会给出错误的估计结果
6.5 EM算法(无监督 聚类算法)
存在未观测变量(隐变量latent variable)的情形下对模型参数进行估计?
简要来说,EM算法使用两个步骤变替计算:第一步是期望(E)步,利用当前估计的参数值来计算对数似然的期望值;第二步是最大化(M) 步,寻找能使E步产生的似然期望最大化的参数值。然后,新得到的参数值重新被用于E步,……直至收敛到局部最优解
①EM算法原型:
②若不是取Z的期望,而是基于所计算隐变量Z的概率分布:
_ _ _ _ _ _ 未完待续,喜欢的朋友可以关注后续文章 _ _ _ _ _ _
机器学习基础系列文章回顾:
机器学习基础(一):简介
机器学习基础(二):模型评估与选择
机器学习基础(三):决策树
机器学习基础(四):特征选择与稀疏学习
机器学习基础(五):计算学习理论
参考书目:
周志华.《机器学习》
机器学习基础(六):贝叶斯分类(贝叶斯决策论、朴素/半朴素贝叶斯分类器、贝叶斯网、EM算法)相关推荐
- 机器学习 —— 基础整理(一)贝叶斯决策论;二次判别函数;贝叶斯错误率;生成式模型的参数方法...
本文简单整理了以下内容: (一)贝叶斯决策论:最小错误率决策.最小风险决策:经验风险与结构风险 (二)判别函数:生成式模型:多元高斯密度下的判别函数:线性判别函数LDF.二次判别函数QDF (三)贝叶 ...
- 机器学习强基计划4-5:详解半朴素贝叶斯分类TAN原理(附Python实现)
目录 0 写在前面 1 条件互信息 2 最大带权生成树 3 TAN算法原理 4 Python实现 4.1 计算条件互信息 4.2 构造属性最大生成树 4.3 属性依赖关系可视化 4.4 预测 0 写在 ...
- 机器学习基础(七):概率图模型(HMM、MRF、CRF、话题模型、推断方法)
7.概率图模型 概率模型probabilistic model:提供一种描述框架,将学习任务归结于计算变量的概率分布,核心是如何基于可观测变量推测出未知变量的条件分布 → ①生成式generative ...
- 2.机器学习基础(一)
文章目录 第二章 机器学习基础 2.1 基本概念 2.1.1 什么是神经网络 2.1.2 各种常见算法图示 2.1.3 计算图的导数计算 2.1.4 理解局部最优与全局最优 2.1.5 大数据与深度学 ...
- 2.机器学习基础(五)
文章目录 2.13 支持向量机 2.13.1 什么是支持向量机 2.13.2 支持向量机能解决哪些问题 2.13.3 核函数特点及其作用 2.13.4 SVM为什么引入对偶问题 2.13.5 如何理解 ...
- review2:机器学习基础
review2:机器学习基础 第二章 机器学习基础 2.1 大话理解机器学习本质 2.2 各种常见算法图示 2.3 监督学习.非监督学习.半监督学习.弱监督学习? 2.4 监督学习有哪些步骤 2.5 ...
- python第六周实验_机器学习 | 吴恩达机器学习第六周编程作业(Python版)
实验指导书 下载密码:ovyt 本篇博客主要讲解,吴恩达机器学习第六周的编程作业,作业内容主要是实现一个正则化的线性回归算法,涉及本周讲的模型选择问题,绘制学习曲线判断高偏差/高方差问题.原始实 ...
- 机器学习 | 吴恩达机器学习第六周编程作业(Python版)
实验指导书 下载密码:ovyt 本篇博客主要讲解,吴恩达机器学习第六周的编程作业,作业内容主要是实现一个正则化的线性回归算法,涉及本周讲的模型选择问题,绘制学习曲线判断高偏差/高方差问题.原始实 ...
- 【机器学习基础】数学推导+纯Python实现机器学习算法11:朴素贝叶斯
Python机器学习算法实现 Author:louwill 今天要讲的算法是朴素贝叶斯(Naive Bayes).相较于之前的支持向量机等模型,朴素贝叶斯就要简单多了.朴素贝叶斯是一种基于贝叶斯定理和 ...
最新文章
- 简要解释什么是Conv1d,Conv2d,Conv3d
- delphi 获取4位的年份_原来华为手机拨号键盘这么厉害!除了能打电话,还有4个隐藏功能...
- SDM450+android8.1播放左声道音频文件和右声道音频文件,左右喇叭都有声音问题
- VisualSVN Server Manager创建版本库以及TortoiseSVN的使用
- Java利用Jakson实现序列化与反序列化操作
- 遭遇DBD::mysql::dr::imp_data_size unexpectedly
- 逆向工程核心原理读书笔记-API钩取之IE浏览器连接控制
- 金蝶报表制作_BI报表不光好看,更好用,为什么很多人却还不知道?
- UWP开发随笔——UWP新控件!AutoSuggestBox!
- python列表用来有序存放一组_Python期末习题练习
- ssh secure shell client 保存密码_著名的SSH协议
- Python机器学习常用模块
- 浅谈JS各种宽高(clientHeight、scrollHeight、offsetHeight等)
- Windows server 2008 R2 SP1 安装KB4512486补丁失败的解决方法
- 云上发展,唯快不破!IT部门是数字化转型的变革者 | 凌云时刻
- 敏捷学习之Scrum五个事件
- 相关子查询和不相关子查询
- Nelder-Mead(内德-米德)算法
- 什么是报表工具?和 EXCEL 有什么区别?
- 职业照--蓝底照片转换为白底
热门文章
- 在Visual Studio 2010 C++ 下调用Winpcap 4.1.3库的方法
- Linux nohup中的2>1
- Unity3d实现加载PPT文件并展示
- 网络测试软件 ix,ixchariot7.3免费版
- dell服务器uefi启动不了系统安装系统安装,新版戴尔bios设置UEFI引导的方法
- 荣获百度机器阅读理解第一名的团队,他们想分享这些给你!
- 上架各个应用商店所需资料
- 摄像头-主码流子码流
- ARM:特殊功能寄存器、Load/Store内存读写指令、栈操作指令
- python秒转换成小时分钟秒_Python函数将秒数转换成分,小时和天