机器学习40讲
王天一
工学博士,副教授
立即订阅
8038 人已学习
课程目录
已完结 44 讲
0/4登录后,你可以任选4讲全文学习。
开篇词 (1讲)
开篇词 | 打通修炼机器学习的任督二脉
免费
机器学习概观 (10讲)
01 | 频率视角下的机器学习
02 | 贝叶斯视角下的机器学习
03 | 学什么与怎么学
04 | 计算学习理论
05 | 模型的分类方式
06 | 模型的设计准则
07 | 模型的验证方法
08 | 模型的评估指标
09 | 实验设计
10 | 特征预处理
统计机器学习模型 (18讲)
11 | 基础线性回归:一元与多元
12 | 正则化处理:收缩方法与边际化
13 | 线性降维:主成分的使用
14 | 非线性降维:流形学习
15 | 从回归到分类:联系函数与降维
16 | 建模非正态分布:广义线性模型
17 | 几何角度看分类:支持向量机
18 | 从全局到局部:核技巧
19 | 非参数化的局部模型:K近邻
20 | 基于距离的学习:聚类与度量学习
21 | 基函数扩展:属性的非线性化
22 | 自适应的基函数:神经网络
23 | 层次化的神经网络:深度学习
24 | 深度编解码:表示学习
25 | 基于特征的区域划分:树模型
26 | 集成化处理:Boosting与Bagging
27 | 万能模型:梯度提升与随机森林
总结课 | 机器学习的模型体系
概率图模型 (14讲)
28 | 最简单的概率图:朴素贝叶斯
29 | 有向图模型:贝叶斯网络
30 | 无向图模型:马尔可夫随机场
31 | 建模连续分布:高斯网络
32 | 从有限到无限:高斯过程
33 | 序列化建模:隐马尔可夫模型
34 | 连续序列化模型:线性动态系统
35 | 精确推断:变量消除及其拓展
36 | 确定近似推断:变分贝叶斯
37 | 随机近似推断:MCMC
38 | 完备数据下的参数学习:有向图与无向图
39 | 隐变量下的参数学习:EM方法与混合模型
40 | 结构学习:基于约束与基于评分
总结课 | 贝叶斯学习的模型体系
结束语 (1讲)
结课 | 终有一天,你将为今天的付出骄傲
机器学习40讲
登录|注册

28 | 最简单的概率图:朴素贝叶斯

王天一 2018-08-09
从今天起,我们将进入概率图模型的模块,以贝叶斯的角度重新审视机器学习。
在机器学习任务中,输入和输出之间并不是简单的一对一的决定关系,两者之间通常存在着一些可见或不可见的中间变量。要计算输出变量的概率分布,就得把这些中间变量纳入到建模的框架之中。要简洁明快地表达多个变量之间的复杂的相关关系,图模型无疑是理想的选择。将图模型和概率模型结合起来,就是这个模块的主题——概率图模型(probabilistic graphical model)。
在“人工智能基础课”中,我曾用简短的篇幅粗略地介绍过概率图模型的概念和分类。这次我们从实例出发,看一看最简单的概率图模型——朴素贝叶斯分类器(naive Bayes classifier),并以它作为从统计机器学习到概率图模型的过渡。
还记得朴素贝叶斯的原理吗?回忆一下,朴素贝叶斯利用后验概率最大化来判定数据所属的类别,其“朴素”之处在于条件独立性的引入。条件独立性假设保证了所有属性相互独立,互不影响,每个属性独立地对分类结果发生作用,这样类条件概率就变成了属性条件概率的乘积。这在概率图中体现为条件独立关系(conditioanl independence):如果将朴素贝叶斯模型画成有向图的话,它就是下图中的贝叶斯网络,类别信息指向所有的属性,任何两个属性之间都没有箭头的指向
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《机器学习40讲》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(5)

  • 林彦
    树增强朴素贝叶斯不假设各个属性是相互独立的,允许部分属性依赖。它需要计算属性间的互信息值,互信息值越大,就代表2个属性关联性越大。和文中的朴素贝叶斯一样,属性之间的关联性的前提是要在某一分类属性确定下进行计算,不同的类属性值会有不同的属性关联性。

    在计算完各个属性对的互信息值之后,进行贝叶斯网络的构建。

    1. 根据各个属性对的互信息值降序排序,依次取出其中的节点对,遵循不产生环路的原则,构造最大权重跨度树,直到选择完n-1条边为止;

    2. 上述过程构成的是一个无向图,接下来为整个无向图确定边的方向。选择任意一个属性节点作为根节点,由根节点向外的方向为属性节点之间的方向;

    3. 为每一个属性节点添加父节点,父节点就是分类属性节点,至此贝叶斯网络结构构造完毕。

    我对这个贝叶斯网络的理解是除了上面第2步提到的根结点只有分类属性一个夫节点外,其他的节点都有2个父节点,一个是分类属性,一个是第2步构造的有向图中的父节点。

    作者回复: 总结的很全面👍构造TAN其实都可以有点儿结构学习的意思了。

    2018-08-24
    1
  • 林彦
    王老师,我的理解和问题如下。

    1. 先验概率即先验分布,是训练数据集上不同类别的数据所占的比例,是朴素贝叶斯因子分解公式中的p(Y);

    2. 似然概率是条件概率的乘积,是朴素贝叶斯因子分解公式中的∏i=1~Np(Xi|Y);

    3. 问题:狄利克雷分布(Dirichlet distribution)利用因子分解后的似然概率对因子分解后的先验概率进行加权。

    3.1 这里∏i=1~Kxi^(αi−1)这一部分中的xi相当于上面朴素贝叶斯因子分解公式中的p(Y),即类别的先验概率?

    3.2 我的理解狄利克雷分布的计算结果Dir(α)是先验概率(类别分布)的共轭先验,这个结果可以放到朴素贝叶斯因子分解公式中替换掉p(Y),然后与似然概率 (条件概率的乘积)那一部分相乘,相乘的结果为属性和类别的联合分布。这个理解对吗?

    3.3 狄利克雷分布中因子分解后的似然概率是指公式中的哪一部分?狄利克雷中的α(alpha)和每个类别中不同属性的条件概率有关吗?

    3.4 狄利克雷分布的参数被修正为 Ni+αi,这个参数是在计算狄利克雷分布或伽马函数时作为输入参数代入公式或程序模块用的?

    谢谢。

    作者回复: 统一回答,就不分点了:
    频率主义下的朴素贝叶斯根据最大似然估计来确定参数,比如类先验等于类别比例(6/13和7/13),属性条件概率等于每个类别里属性的比例,这些都是根据数据计算出来的。这就是你留言里的12两点。
    但问题是最大似然估计给出的点估计并不可靠,可以回忆一下专栏开头两讲里的例子。从贝叶斯角度来看,需要给每个类别的分布、每个属性的分布全部设定先验,来刻画它们完整的概率特性,狄利克雷分布起到的就是这个作用。
    在对属性条件概率使用狄利克雷先验时,会把2个类别,5个属性,2个属性的取值共同建模。这相当于三个因素共同定义出一个单个的先验,也就是属性a取值为b时,属于类别c的先验概率。所有这些先验全都设为均匀的,也就是无信息的先验。
    其实类先验也应该这么处理,但出于复杂性的考虑,没有给它设置,直接把最大似然的结果拿来用了。
    接下来的任务就是根据训练数据对先验进行修正。举个例子,在先验里,我认为看与不看英格兰队比赛这单个属性的两个取值对苏格兰人的类别没有影响,它们的先验是相等的。但数据告诉我们,所有苏格兰人都不看英格兰的球,这样就得对先验进行调整,把苏格兰人不看英格兰比赛的概率往高调,这样做得到的就是后验概率。
    所有的先验概率都要根据数据做这种调整,调整的方式就是数数,把符合这个先验的样本数目加到狄利克雷的参数上。比如属性a取值为b时,属于类别c的样本数是N个,那就把N加到对应的先验的参数上。等所有参数都更新完之后做个归一化,就是真正的后验概率。不难发现,训练数据起到的是似然概率的作用。
    在这个过程中,不同的先验之间依然是独立的,一个先验的更新不会影响到另一个先验的更新。
    这么做的目的跟拉普拉斯平滑一样,都是避免极端情况。如果属性a取值为b时,属于类别c的样本从没出现过,那频率主义就处理不了了。引入一个分布能够保留更详细的概率,避免一刀切。

    2018-08-24
    1
  • 林彦
    手动计算了下联合概率,发现∀i,(Xi⊥X−i|Y)这个条件要求必须是在Y分类已经确定的情况下,N 个属性变量 Xi才是互相独立,联合分布的概率才等于各自概率的乘积。而∀i,(Xi⊥X−i)是不成立的,即Y分类不确定的情况下,Xi不是互相独立的,所有分类的Xi的概率的乘积并不等于Xi的联合分布的概率。

    在文中的例子里x=(1,0,1,1,0)T发生的概率等于英格兰人出现x的概率与苏格兰人出现的x的概率之和,而不等于Xi各个属性在所有样本取值概率的乘积。

    作者回复: 你说得对。这个图是个大的分连结构,一因多果,只有在因确定时,多个结果之间才会条件独立。
    所谓条件独立里的“条件”就是指某些变量的确定,如果大家都可以随意变化,那就不会存在独立性。

    2018-08-24
  • 旺旺
    王老师,机器学习的python文件,能讲一下如何打开吗?
    2018-08-09
  • 旺旺
    王老师,机器学习的python的文件,如何打开,能给我们讲一下吗?

    作者回复: 直接用Python自己的集成环境就可以打开了,我用的就是Python的IDLE,也可以安装其他的编译器,具体使用方法可以参考另一门python的课程。

    2018-08-09
收起评论
5
返回
顶部