机器学习算法--贝叶斯分类器(二)

该文章参考周志华老师著的《机器学习》一书

1.  朴素贝叶斯分类器

朴素贝叶斯分类器采用了“属性条件独立性假设”:对已知类别,假设所有属性相互独立,即假设每个属性独立的对分类结果发生影响。

d为属性数目,xi x 在第 i 个属性上的取值,朴素贝叶斯分类器的表达式为:

令 Dc 表示训练集 D 中第 c 类样本的集合,例如西瓜数据集有两个类别:好瓜和坏瓜,若有充足的独立同分布样本,则

对于离散属性:,Dc,xi 表示 Dc 在第 i 个属性上取值为 xi 的样本组成的集合;对于连续属性考虑连续密度函数,假定 p(xi|c) 服从正态分布。

为了避免其他属性携带的信息被训练集中未出现的属性抹去,在估计概率值时通常要进行平滑。N 表示训练集 D 中可能的类别数,Ni 表示第 i 个属性可能的取值数:

2.  半朴素贝叶斯分类器

放松独立性条件,适当考虑一部分属性间的相互依赖信息,“独依赖估计”(简称ODE)是半朴素贝叶斯分类器常用的一种策略。主要有三种方法:

(1)SPODE(超父独依赖估计),假设所有的属性都依赖于同一个属性,最后类别结点和每个属性都连接起来;

(2)TAN(Tree Augmented naive Bayes),在最大带权树的基础上,步骤如下:计算两个属性之间的互信息;以属性为结点构建完全图,任意两个结点之间的边的权重设为互信息;构建次完全图的最大带权生成树,挑选根变量,将边置为有向;加入类别结点y,增加从y 到每个属性的有向边。

(3)AODE(平均独依赖估计),尝试将每个属性作为超父来构建SPOE,集成结果,与朴素贝叶斯相似,无需模型选择,是对符合条件的样本计数。

3.  贝叶斯网

简称“信念网”,借助有向无环图(DAG)来刻画属性之间的依赖关系

4.  EM算法

前面的讨论假设样本所有属性变量的值都已被观测到,但在现实应用中训练样本很难是完整的,所以会存在未观测到的变量,即“隐变量”,所以用到EM(期望最大化)算法:第一步是期望(E)步,利用当前估计的参数值来计算对数似然的期望值(即最优隐变量的值);第二步是最大化(M)步,寻找能使E步产生的似然期望最大化的参数值。然后交替下去,直至收敛到局部最优解。可看作是坐标下降法。

时间: 2025-01-01 21:09:29

机器学习算法--贝叶斯分类器(二)的相关文章

机器学习算法--贝叶斯分类器(一)

1. 贝叶斯决策论  定义: 贝叶斯决策论是概率框架下实施决策的基本方法.对分类任务来说,在所有概率都已知的理想情形下,贝叶斯决策考虑如何基于这些概率和误判损失来选择最优的类别标记,下面以多分类任务为例来解释其基本原理. 条件风险:假设有N中可能的类别标记,即 Y={c1,c2,...,cN}, λij 是将一个真实标记为 cj 的样本误分类为 ci 所产生的损失.基于后验概率 P(ci|x) 可获得样本x分类为ci所产生的期望损失,即在样本x上的"条件风险" 这是单个样本的条件风险,

机器学习:贝叶斯分类器(二)——高斯朴素贝叶斯分类器代码实现

一 高斯朴素贝叶斯分类器代码实现 网上搜索不调用sklearn实现的朴素贝叶斯分类器基本很少,即使有也是结合文本分类的多项式或伯努利类型,因此自己写了一遍能直接封装的高斯类型NB分类器,当然与真正的源码相比少了很多属性和方法,有兴趣的可以自己添加.代码如下(有详细注释): class NaiveBayes(): '''高斯朴素贝叶斯分类器''' def __init__(self): self._X_train = None self._y_train = None self._classes

机器学习---朴素贝叶斯分类器(Machine Learning Naive Bayes Classifier)

朴素贝叶斯分类器是一组简单快速的分类算法.网上已经有很多文章介绍,比如这篇写得比较好:https://blog.csdn.net/sinat_36246371/article/details/60140664.在这里,我按自己的理解再整理一遍. 在机器学习中,我们有时需要解决分类问题.也就是说,给定一个样本的特征值(feature1,feature2,...feauren),我们想知道该样本属于哪个分类标签(label1,label2,...labeln).即:我们想要知道该样本各个标签的条件概

机器学习算法总结(二)

SVM上:这个算法应该是机器学习这门课里最重要的部分了. 首先是SVM的思想:找到超平面,将两类中距离最近的点分的越开越好(直至二者相等). 然后是函数间隔和几何间隔的定义,二者之间的区别. 接着是超平面模型的建立,看看它是如何将问题转化为凸优化问题的. SVM第一个难点:拉格朗日对偶.由KKT条件可知,起作用的约束都在边界上,这个会用来解释支持向量. 由KKT条件知,在SVM模型中,只有函数间隔为1的点才是支持向量. 通过对偶解出w,b.对于新出现的样本,只需要和支持向量作内积就可以将其分类.

贝叶斯分类器学习笔记

我们知道,对于人类来说学习通常是指通过经验获得知识从而导致可度量的行为变化.也就是说我们通过经验获得了知识,然后这些知识又对我们未来的行为产生了影响.而机器学习则是让机器来进行学习,因此我们也可以认为机器学习同样是让机器通过经验(在计算机中表现为数据)获得知识(知识即为我们的模型),然后基于这些知识(模型)来对我们未来的行为产生影响(即不同的模型在接收到未来的新数据可能会得到不同的label).对于人类来说最重要的是正确知识的获取,这对于机器来说也是一样的,最重要的是获得合适的模型.对于人类来说

【原创】.NET平台机器学习组件-Infer.NET连载(二)简单贝叶斯分类器的例子—【附源码和自制帮助文档】

Infer.NET机器学习翻译系列文章将进行连载,感兴趣的朋友请收藏或关注 你还可以参考本博客其他.NET开源项目的相关文章: [原创]彩票预测算法:离散型马尔可夫链模型          Newlife XCode组件资源目录汇总[2013年版] [原创]开源.NET下的XML数据库介绍及入门          [原创].NET开源压缩组件介绍与入门 [开源].NET开源表达式计算组件介绍与使用          [原创]开源Word读写组件DocX介绍与入门 [原创]Matlab.NET混编

【机器学习算法-python实现】扫黄神器-朴素贝叶斯分类器的实现

(转载请注明出处:http://blog.csdn.net/buptgshengod) 1.背景 以前我在外面公司实习的时候,一个大神跟我说过,学计算机就是要一个一个贝叶斯公式的套用来套用去.嗯,现在终于用到了.朴素贝叶斯分类器据说是好多扫黄软件使用的算法,贝叶斯公式也比较简单,大学做概率题经常会用到.核心思想就是找出特征值对结果影响概率最大的项.公式如下: 什么是朴素贝叶斯,就是特征值相互独立互不影响的情况.贝叶斯可以有很多变形,这里先搞一个简单的,以后遇到复杂的再写. 2.数据集 摘自机器学

基于朴素贝叶斯分类器的文本分类算法

源代码下载:NaviveBayesClassify.rar Preface 文本的分类和聚类是一个比较有意思的话题,我以前也写过一篇blog<基于K-Means的文本聚类算法>,加上最近读了几本数据挖掘和机器学习的书籍,因此很想写点东西来记录下学习的所得. 在本文的上半部分<基于朴素贝叶斯分类器的文本分类算法(上)>一文中简单介绍了贝叶斯学习的基本理论,这一篇将展示如何将该理论运用到中文文本分类中来,具体的文本分类原理就不再介绍了,在上半部分有,也可以参见代码的注释. 文本特征向量

数据挖掘十大经典算法(9) 朴素贝叶斯分类器 Naive Bayes

贝叶斯分类器 贝叶斯分类器的分类原理是通过某对象的先验概率,利用贝叶斯公式计算出其后验概率,即该对象属于某一类的概率,选择具有最大后验概率的类作为该对象所属的类.眼下研究较多的贝叶斯分类器主要有四种,各自是:Naive Bayes.TAN.BAN和GBN. 贝叶斯网络是一个带有概率凝视的有向无环图,图中的每个结点均表示一个随机变量,图中两结点 间若存在着一条弧,则表示这两结点相相应的随机变量是概率相依的,反之则说明这两个随机变量是条件独立的.网络中随意一个结点X 均有一个对应的条件概率表(Con