贝叶斯网(2)Netica:从数据中学习CPT

1. 离散节点

在官方Tutorial中是有详细的案例的,就是B篇3.3节,你可以动手把天气预报这个实现一下:

http://www.norsys.com/tutorials/netica/secB/tut_B3.htm#LearningProbTables

2. 连续节点

假如我想输入的不是离散的状态,而是连续的数值,则不能像上一个案例一样做了。

*  离散状态:难,易;阴,晴,雨;是,否……这些都是多选一问题,天气只能是“阴,晴,雨”三选一,课程难度只有“难,易”两个选项,而不是“0为最易10为最难下,难度系数为5.312...”。

* 连续数值:房屋的面积,平均房间数(因为是平均房间所以可以是4.6这样的数而非整数)。仍然以最简单的贝叶斯网A→B为例,A为房屋面积,B为房价,则A可以是连续的数值。

Netica对连续节点的处理是:划分区间,看给定的连续数值落在哪个区间内。这一操作被称之为“离散化”。怎么理解离散化呢,这让我想起几年前学习正态分布的时候网上提供的可视化程序均是通过绘制柱状图,而柱状图划分的越细,就越接近连续状态下的正态分布曲线。

下面给一个简单的案例,波士顿房价,其中网络结构由自己搭建(箭头的指向自定义),节点之间的关联采取“从数据中学习”的方式获得(本质上是从数据中学习CPT,数据来源:波士顿房价数据集(Boston House Price Dataset)(下载地址:http://t.cn/RfHTAgY),简化起见,在此我挑选了一氧化氮浓度、犯罪率以及平均房间数这三列)。

step 1: 把这个之间粘贴到txt文件中。

// ~->[CASE-1]->~

crime    air     room    price

0.00632  0.5380  6.5750  24.00

0.02731  0.4690  6.4210  21.60

0.02729  0.4690  7.1850  34.70

0.03237  0.4580  6.9980  33.40

0.06905  0.4580  7.1470  36.20

0.02985  0.4580  6.4300  28.70

0.08829  0.5240  6.0120  22.90

0.14455  0.5240  6.1720  27.10

0.21124  0.5240  5.6310  16.50

0.17004  0.5240  6.0040  18.90

0.22489  0.5240  6.3770  15.00

step 2: 载入txt文件,自动生成节点,并且在弹出的对话框中指定“离散成多少个区间”。

step 3: 根据大致的因果关系手动连接节点构建网络。

step 4: 再次载入同一个txt文件以学习节点与节点之间的关联。

现在整个贝叶斯网就搭建好了。各个节点均为连续节点,也就是说我在获取新数据的时候,可以直接输入新数据(如:air=0.49):

然后根据数值所属区间,Netica会自动给你归入到low NO或high NO(总感觉和想象的有点不一样,这样略粗糙啊,不过这就是Netica的设定)。

现在对搭建好的网络玩一下。可以发现将air调到“NO浓度最小”,crime调到“犯罪率最低”,room调到“房间数最多”的时候,房价属于“高房价区间”的可能性是最大的,这符合人类的基本认知。

2018.9.26

原文地址:https://www.cnblogs.com/NanShan2016/p/9707714.html

时间: 2024-10-30 08:40:17

贝叶斯网(2)Netica:从数据中学习CPT的相关文章

PGM:贝叶斯网表示之朴素贝叶斯模型naive Bayes

http://blog.csdn.net/pipisorry/article/details/52469064 独立性质的利用 条件参数化和条件独立性假设被结合在一起,目的是对高维概率分布产生非常紧凑的表示. 随机变量的独立性 [PGM:概率论基础知识:独立性性质的利用] 条件参数化方法 Note: P(I), P(S | i0), P(S | i1)都是二项式分布,都只需要一个参数. 皮皮blog 朴素贝叶斯模型naive Bayes 朴素贝叶斯模型的学生示例 {这个示例很好的阐述了什么是朴素

分享《贝叶斯思维:统计建模的Python学习法》高清中文版PDF+高清英文版PDF+源代码

下载:https://pan.baidu.com/s/1axiPTi3PkYcZhdkQAQidEg 更多资料分享:http://blog.51cto.com/3215120 <贝叶斯思维:统计建模的Python学习法>高清中文版PDF+高清英文版PDF+源代码 高清中文版PDF,带目录和书签,文字能够复制粘贴:高清英文版PDF,带目录和书签,文字能够复制粘贴:中英文两版可以对比学习. 配套源代码: 经典书籍,讲解详细: 其中高清中文版如图: 原文地址:http://blog.51cto.co

分享《贝叶斯思维:统计建模的Python学习法》+PDF+源码+Allen B.Downey+许杨毅

下载:https://pan.baidu.com/s/130Wf-CymOIW4ELlh9ihVlg 更多资料分享:http://blog.51cto.com/14087171 <贝叶斯思维:统计建模的Python学习法>高清中文版PDF+高清英文版PDF+源代码 高清中文版PDF,带目录和书签,文字能够复制粘贴:高清英文版PDF,带目录和书签,文字能够复制粘贴:中英文两版可以对比学习. 配套源代码: 经典书籍,讲解详细: 其中高清中文版如图: 原文地址:http://blog.51cto.c

贝叶斯思维:统计建模的Python学习法pdf

下载地址:网盘下载 内容简介  · · · · · · 这本书帮助那些希望用数学工具解决实际问题的人们,仅有的要求可能就是懂一点概率知识和程序设计.而贝叶斯方法是一种常见的利用概率学知识去解决不确定性问题的数学方法,对于一个计算机专业的人士,应当熟悉其应用在诸如机器翻译,语音识别,垃圾邮件检测等常见的计算机问题领域. 可是本书实际上会远远扩大你的视野,即使不是一个计算机专业的人士,你也可以看到在战争环境下(二战德军坦克问题),法律问题上(肾肿瘤的假设验证),体育博彩领域(棕熊队和加人队NFL比赛

Comprehensive learning path – Data Science in Python深入学习路径-使用python数据中学习

http://blog.csdn.net/pipisorry/article/details/44245575 关于怎么学习python,并将python用于数据科学.数据分析.机器学习中的一篇非常好的文章 Comprehensive learning path – Data Science in Python 深度学习路径-用python进行数据学习 Journey from a Pythonnoob(新手) to a Kaggler on Python So, you want to bec

贝叶斯思维:统计建模的PYTHON学习法

链接:https://pan.baidu.com/s/1np2P3rfQD6INUXgChYBQFw 密码:7h2q 原文地址:https://www.cnblogs.com/luoshuifusheng/p/9442425.html

NLP系列(4)_朴素贝叶斯实战与进阶(转)

http://blog.csdn.net/han_xiaoyang/article/details/50629608 作者: 寒小阳 && 龙心尘 时间:2016年2月. 出处:http://blog.csdn.net/han_xiaoyang/article/details/50629608 http://blog.csdn.net/longxinchen_ml/article/details/50629613 声明:版权所有,转载请联系作者并注明出处 1.引言 前两篇博文介绍了朴素贝叶

PGM:贝叶斯网络与朴素贝叶斯网络

http://blog.csdn.net/pipisorry/article/details/51471222 贝叶斯与频率派思想 频率派思想 长久以来,人们对一件事情发生或不发生,只有固定的0和1,即要么发生,要么不发生,从来不会去考虑某件事情发生的概率有多大,不发生的概率又是多大.而且事情发生或不发生的概率虽然未知,但最起码是一个确定的值. 比如如果问那时的人们一个问题:"有一个袋子,里面装着若干个白球和黑球,请问从袋子中取得白球的概率是多少?"他们会立马告诉你,取出白球的概率就是

NLP系列(4)_朴素贝叶斯实战与进阶

作者: 寒小阳 && 龙心尘 时间:2016年2月. 出处: http://blog.csdn.net/han_xiaoyang/article/details/50629608 http://blog.csdn.net/longxinchen_ml/article/details/50629613 声明:版权所有,转载请联系作者并注明出处 1.引言 前两篇博文介绍了朴素贝叶斯这个名字读着"萌蠢"但实际上简单直接高效的方法,我们也介绍了一下贝叶斯方法的一些细节.按照老规