1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > 利用Netica训练简易贝叶斯网络模型【教程】

利用Netica训练简易贝叶斯网络模型【教程】

时间:2018-11-16 22:44:02

相关推荐

利用Netica训练简易贝叶斯网络模型【教程】

前情:

写人工智能相关的选修课期末论文的时候,想简单搭个静态贝叶斯网络模型尝试进行数据分析,但并没有在网上找到特别好的容易上手的教程。查阅参考文献时发现Netica是个比较方便的贝叶斯网络工具(相比Matlab的贝叶斯网络工具箱等,Netica不用敲代码学语法,而且是可视化交互界面,对新手相当友好),只是网上没什么详细教程,只能看官方文档自己摸索。本文相当于一个Netica基本使用流程的教程。

背景:

工具和参考:

Netica下载地址【百度网盘提取码:p02v 】Netica官方教程

贝叶斯网络简介:

贝叶斯网络属于概率图模型的一种(本教程中涉及的是最基本的静态贝叶斯网络),是一个有向无环图(DAG) ,网络的拓扑结构代表了各变量之间的影响关系(即因果联系)。基于训练数据计算各节点条件概率表(CPT),得到模型的参数。之后输入数据进行预测的过程,就是根据已有的条件概率将样本划入对应条件下可能性最大的类别。

此外,贝叶斯网络的常见使用场景是在疾病预测和故障诊断等领域。

实践教程

以下举例部分将使用Netica自带的例子进行示范

一、搭建贝叶斯网络拓扑结构

1.新建网络

2.新建节点

点击工具栏中的黄色椭圆形图标,即可在网络中新建节点

3.编辑结点

双击节点或者右键->Properties可以打开节点的编辑面板,提供修改节点名等操作

点击state右侧的new可以为节点新建状态

点击Discrete可以将变量的状态由离散变为“连续”,此处的连续其实也只是按区间离散化

4.新建联系

点击工具栏中的箭头,再分别点击需要建立联系的两个节点即可

二、导入数据进行参数学习

如图,是一个搭完拓扑结构,且尚未进行训练的贝叶斯网络模型

导入数据,进行参数学习

点击Cases->Learn->Incrop Case Files,导入训练数据

数据集导入的是CSV格式也是支持的,只不过导入时要注意是否格式正确,可在File->Open As File 中选择要导入的数据集,查看是否会有读入错误。以下是可以正常读入的数据样例

三、模型准确度测试

选择要预测的节点,点击Cases->Test With Cases 导入测试数据即可(此处为了简化操作,直接导入了之前的训练数据)

输出的报表中会有准确率、基尼系数、AUC等等数据

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。