首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >提高贝叶斯因果网络预测精度的研究

提高贝叶斯因果网络预测精度的研究
EN

Stack Overflow用户
提问于 2020-04-02 09:24:09
回答 1查看 232关注 0票数 1

我想确定在热力学过程中产生意外结果(或无反应)的原因。我有相关变量的连续数据,并试图利用贝叶斯网络(BN)来确定因果关系。为此,我在Python中使用了一个名为“因果关系”的库。

我遵循了这个库的教程部分来构建DAG,BN模型,一切都很好,直到预测的步骤。少数/少多数类的预测精度在60-70%左右(在SMOTETomek/SMOTETomek和特定随机状态下为80%~ 90% ),而稳定精度则在90%以上。我已经实现了以下数据预处理步骤。

  1. 确保不丢失/NaN值
  2. 离散化(只有库支持它)
  3. 用于数据平衡的SMOTE/SMOTETomek
  4. 各种列车/测试尺寸组合

我正在努力找出优化模型的方法。我在互联网上也找不到同样的支持材料。

对于这个库/ BN模型,是否有任何数据预处理技术和数据集要求的指南或“最佳实践”?请您建议任何故障排除方法,以找出低精度/度量的原因吗?也许是DAG中一个被误解的节点-节点因果关系导致了平庸的准确性?

任何有关这方面的想法/文献/其他适当的图书馆都会有很大的帮助!

EN

回答 1

Stack Overflow用户

发布于 2020-07-10 00:25:41

一些可以帮助你的小窍门:

  1. 改变/调整结构学习。
  • 尝试不同的阈值。在执行from_pandas时,您可以试验不同的w-threshold值(以及beta术语(如果使用from_pandas_lasso))。 这将改变网络的密度。更致密的结构意味着具有更多参数的BN。如果结构更密集,您有更多的参数,您的模型可能会表现得更好。但是,如果它太密集,您可能没有足够的数据来训练它,而且可能会过于合适。
  • 以数据为中心。从经验上看,如果数据以中心为中心,NOTEARS (from_pandas背后的算法)似乎工作得最好。因此,减去看看这个的平均值可能是个好主意。
  • 确保因果关系。NOTEARS不能保证因果关系。因此,我们需要“专家”来判断产出和作出必要的修改。如果您看到没有因果意义的边缘,您可以删除它们或添加它们作为tabu_edges,并再次训练您的网络。
  1. 谨慎的实验。性能可能非常敏感于您如何离散数据。尝试各种类型的谨慎可以有所帮助。您可以使用:
  • 方法可在因果关系(统一,例如)
  • 修正了基于阈值对数据有意义的离散化
  • MDLP是一种有监督的数据离散化方法。您可以为每个节点应用MDLP作为其子节点的“目标”。在pypy中有两个主要的MDLP包:mdlpmdlp离散化
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60988236

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档