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

前情:

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

背景:

工具和参考:

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

实践教程

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

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

1.新建网络
File->New->Network
2.新建节点
点击工具栏中的黄色椭圆形图标,即可在网络中新建节点
在这里插入图片描述
3.编辑结点
双击节点或者右键->Properties可以打开节点的编辑面板,提供修改节点名等操作
在这里插入图片描述
点击state右侧的new可以为节点新建状态
在这里插入图片描述
点击Discrete可以将变量的状态由离散变为“连续”,此处的连续其实也只是按区间离散化
在这里插入图片描述
4.新建联系
点击工具栏中的箭头,再分别点击需要建立联系的两个节点即可
在这里插入图片描述

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

如图,是一个搭完拓扑结构,且尚未进行训练的贝叶斯网络模型
在这里插入图片描述
导入数据,进行参数学习
点击Cases->Learn->Incrop Case Files,导入训练数据
在这里插入图片描述
数据集导入的是CSV格式也是支持的,只不过导入时要注意是否格式正确,可在File->Open As File 中选择要导入的数据集,查看是否会有读入错误。以下是可以正常读入的数据样例
在这里插入图片描述

三、模型准确度测试

选择要预测的节点,点击Cases->Test With Cases 导入测试数据即可(此处为了简化操作,直接导入了之前的训练数据)
在这里插入图片描述
输出的报表中会有准确率、基尼系数、AUC等等数据
在这里插入图片描述

  • 62
    点赞
  • 290
    收藏
    觉得还不错? 一键收藏
  • 43
    评论
评论 43
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值