机器学习之朴素贝叶斯&贝叶斯网络
- 贝叶斯决决策论
在所有相关概率都理想的情况下,贝叶斯决策论考虑基于这些概率和误判损失来选择最优标记,基本思想如下:
(1)已知先验概率和类条件概率密度(似然)
(2)利用贝叶斯转化为后验概率
(3)根据后验概率的大小进行决策分类
1、风险最小化
风险:根据后验概率可以获得将样本分为某类所产生的期望损失,即在该样本上的“条件风险”。

目的:寻找最小化总体风险,只需在每个样本上选择能使条件风险最小的类标记

2、决策风险最小化---后验概率最大化
获得后验概率有两种方法,机器学习也因为这两种方法被分为判别模型和生成模型。
判别模型:对于给定的x, 通过建模P(c|x)来预测c.
生成模型:先对联合分布P(c,x)建模,在算出P(c|x)

- 朴素贝叶斯(NB)
假设:属性之间需要相互独立
算法:
input: 训练集T={(xi,yi)|i=1...N}
output:实例x的分类

- 半朴素贝叶斯(SNB)
适当地考虑一些属性之间的相互依赖关系
问题变为:寻找被依赖的属性,即父属性。
SPODE:所有属性都依赖于同一属性,通过交叉验证的方法确定超父属性。

TAN(最大带权生成树):

(1)计算量属性之间的互信息,作为两节点之间边的权重

(2)插入最大权重边
(3)找到下一个最大边,并加入到树中,要求不成为环
(4)重复上述过程,直到插入n-1条边
(5)标出方向
AODE:
集成学习机制,更强大的独依赖分类器,尝试将每个属性作为超父来构建SPODE
- 贝叶斯网络(NB)
经典的概率图模型(有向无环图模型)
把某个研究系统中涉及的随机变量,根据能否条件独立的绘制在一张有向图中,就成了贝叶斯网络。一个贝叶斯网络由结构和参数两部分组成。
三个变量间的典型依赖关系:
(1)同父结构(tail-to-tail)

c已知的情况下,P(a,b,c)=P(a)P(b|c)P(b|c),无法得出a,b独立。
c未知的情况下,a,b独立
(2)V型结构(head-to-head)
c未知时,a,b独立
(3)顺序结构(head-to-tail)

c已知时,a,b独立;反之,不独立。
- 如何学习构成一个贝叶斯网络
根据训练集学习出好的贝叶斯网络是解决问题的关键,“评分搜索”是常用的学习方法。
爬山算法:
(1)选择一个网络结构G(一般为空)
(2)计算这一结构的得分,并取最大得分
(3)随着得分的增大,循环进行:对边的增加和修正,更新最大得分
(4)返回一个有向图。
- R语言代码实现:
朴素贝叶斯:

贝叶斯网络:


机器学习之朴素贝叶斯&贝叶斯网络的更多相关文章
- 说说C#之父——安德斯·海尔斯伯格
安德斯·海尔斯伯格(Anders Hejlsberg,1960.12~),丹麦人,Turbo Pascal编译器的主要作者,Delphi和.NET之父! 看到照片的那一刹那儿,我就觉得帅爆了,53岁的 ...
- [机器学习&数据挖掘]朴素贝叶斯数学原理
1.准备: (1)先验概率:根据以往经验和分析得到的概率,也就是通常的概率,在全概率公式中表现是“由因求果”的果 (2)后验概率:指在得到“结果”的信息后重新修正的概率,通常为条件概率(但条件概率不全 ...
- 机器学习:朴素贝叶斯--python
今天介绍机器学习中一种基于概率的常见的分类方法,朴素贝叶斯,之前介绍的KNN, decision tree 等方法是一种 hard decision,因为这些分类器的输出只有0 或者 1,朴素贝叶斯方 ...
- Python机器学习算法 — 朴素贝叶斯算法(Naive Bayes)
朴素贝叶斯算法 -- 简介 朴素贝叶斯法是基于贝叶斯定理与特征条件独立假设的分类方法.最为广泛的两种分类模型是决策树模型(Decision Tree Model)和朴素贝叶斯模型(Naive Baye ...
- 100天搞定机器学习|Day15 朴素贝叶斯
Day15,开始学习朴素贝叶斯,先了解一下贝爷,以示敬意. 托马斯·贝叶斯 (Thomas Bayes),英国神学家.数学家.数理统计学家和哲学家,1702年出生于英国伦敦,做过神甫:1742年成为英 ...
- 吴裕雄--天生自然python机器学习:朴素贝叶斯算法
分类器有时会产生错误结果,这时可以要求分类器给出一个最优的类别猜测结果,同 时给出这个猜测的概率估计值. 概率论是许多机器学习算法的基础 在计算 特征值取某个值的概率时涉及了一些概率知识,在那里我们先 ...
- 概率图形模型(PGM)学习笔记(四)-贝叶斯网络-伯努利贝叶斯-贝叶斯多项式
之前忘记强调重要的差异:链式法则的条件概率和贝叶斯网络的链式法则之间的差异 条件概率链式法则 P\left({D,I,G,S,L} \right) = P\left( D \right)P\left( ...
- 掌握Spark机器学习库-08.2-朴素贝叶斯算法
数据集 iris.data 数据集概览 代码 import org.apache.spark.SparkConf import org.apache.spark.ml.classification.{ ...
- Infer.net 开源组件: 1, 机器学习入门,要从贝叶斯说起
我的入门方式,先从应用现象中,总结规律反推本质.一头扎进理论书籍是不对的. 老外的先进,还是体现在传承方面.没办法,我们竞争压力大,有好东西藏着掖着.大家都苦逼 我最开始是从介绍,有了基本概念,见xx ...
随机推荐
- 【python 3】 列表方法操作汇总
基础数据类型 : list list主要操作:索引.切片.查询.修改.增加.删除.扩展.统计.排序.获取下标.拷贝…… 1.1 索引 由图: list正向下标从0开始 list反向下标从-1开始 ...
- roc曲线和auc
只是为了复习一下,在评价分类器的性能好坏时,通常用recall和precision, PS:CNN做图像分类还是用了loss 和 accuracy 使用ROC的目的在于更好的(直观+量化)评价分类模型 ...
- 雷林鹏分享:jQuery EasyUI 数据网格 - 创建列组合
jQuery EasyUI 数据网格 - 创建列组合 easyui 的数据网格(DataGrid)可以创建列组合,如下所示: 在本实例中,我们使用平面数据来填充数据网格(DataGrid)的数据,并把 ...
- Asp.Net MVC 从客户端<a href="http://www....")中检测到有潜在危险的 Request.Form 值
Asp.Net MVC应用程序, Framework4.0: 则需要在webconfig文件的 <system.web> 配置节中加上 <httpRuntime requestVal ...
- Python字符串 --Python3
Python语言中,字符串是用两个双引号或者单引号括起来的词汇表或多个字符. 1.Python字符串的两种序号体系 反向递减序号:-- -9 -8 -7 -6 -5 -4 -3 -2 -1 正向递增序 ...
- linux-基础命令篇-02
基本命令:--LS 关于显示的颜色含义: 白色:表示普通文件 蓝色:表示目录 绿色:表示可执行文件 红色:表示压缩文件 浅蓝色:链接文件 红色闪烁:表示链接的文件有问题 黄色:表示设备文件 灰色:表示 ...
- C语言博客作业05——指针
1.本章学习总结 1.1思维导图 1.2本章学习体会及代码量 1.2.1学习体会 可能因为之前数组那块儿的作业拖得太久了,以至于我觉得指针学的好快,还没反应过来就教完了,然后一开始做题的时候,就是一脸 ...
- Wincc报表+Listview使用
listview在Wincc中可以作为显示的控件,对于列表表头的定义如下所示: list的命名,点击属性,在对象名称中对其定义: 有了listview的定义,就可以使用VBS对其表头的定义.具体代码如 ...
- 深度学习梯度反向传播出现Nan值的原因归类
症状:前向计算一切正常.梯度反向传播的时候就出现异常,梯度从某一层开始出现Nan值(Nan: Not a number缩写,在numpy中,np.nan != np.nan,是唯一个不等于自身的数). ...
- vue 修饰符
Vue.js 为 v-on 提供了事件修饰符来处理 DOM 事件细节,如:event.preventDefault() 或 event.stopPropagation(). Vue.js通过由点(.) ...