问题标签 [bayesian-networks]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1615 浏览

matlab - 贝叶斯网络的简单示例/应用

谢谢阅读。

我想使用 Matlab 的 BNT 工具箱实现贝叶斯网络。问题是,我找不到“简单”的例子,因为这是我第一次处理 BN。

您能否提出一些可能的应用程序,(节点不多)请^^?

0 投票
0 回答
428 浏览

r - 与交易的因果关系(贝叶斯网络)

我正在使用多个二进制向量,例如 A、B、C、D、E、F、G、H。我想找到它们之间的分类。我尝试了以下方法:

得到这个错误只是因为所有都是连续变量并且在 mu 处为 NULL。

创建网络后,我应该如何进行分类?

0 投票
1 回答
2675 浏览

python - Scikit-learn:半监督朴素贝叶斯实现可用吗?

我想使用 Scikit-learn 的半监督朴素贝叶斯(伯努利)的实现。根据github 中的这个链接,一年前有一些工作和讨论(半监督NB 类)。另一方面,似乎还有另一种不同的实现(函数 fit_semi?),它似乎后来被另一个用户打磨了。但是,它们都没有在当前的稳定版本中可用。

有人可以向我展示一个示例,说明如何在当前版本的 scikit-learn 中使用这两种实现之一来构建半监督朴素贝叶斯?谢谢。

PS:我正在使用来自 NLTK 的 scikit-learn 分类器和 SklearnClassifier 类

编辑

我在我的项目中尝试了 SemiSupervisedNB 的代码,将未标记类的标签从 -1 更改为 2(我正在使用 NLTK 中的 SKlearnClassifier,我的未标记类获得标签 2)。但是,我得到 ValueError: array must not contain infs or NaNs when computing d (模型的当前参数和先前参数之间的差异),因为截距数组包含 inf 值......关于如何解决这个问题的任何想法?

0 投票
1 回答
295 浏览

machine-learning - Scikits NB 与 NLTK NB 的性能对比

我通过绘制我的 3类问题。X 轴是训练数据集大小(忘记实际值),Y 是准确度。这是我得到的。

这种性能差异有什么原因吗?

0 投票
1 回答
1354 浏览

artificial-intelligence - 如何从现有的条件概率表创建联合概率表?(CPT)

我有以下表格,其依赖项如下:

在此处输入图像描述

我想为 建立联合概率表P(M,P,W,B),看起来像这样(当然,你可以假设下表没有给我,它取自这个问题的答案):

在此处输入图像描述

有人可以解释一下如何创建联合概率表P(M,P,W,B)吗?

非常感谢

0 投票
1 回答
31 浏览

probability - 我可以制作与弦 MRF 等效的非弦 MRF 吗?

这里通过等价我的意思是,在这两种情况下分布(整个表)是否相等???

0 投票
5 回答
5065 浏览

python - 在 python 中学习和使用增强的贝叶斯分类器

我正在尝试在(最好是python 3,但python 2也可以接受)中使用森林(或树)增强贝叶斯分类器(原始介绍学习python) ,首先学习它(结构和参数学习)然后使用它用于离散分类并获得具有缺失数据的那些特征的概率。(这就是为什么只是离散分类,甚至是好的朴素分类器对我来说不是很有用。)

我的数据进来的方式,我喜欢从不完整的数据中使用增量学习,但我什至在文献中都没有发现任何可以同时做这两种方法的东西,所以任何做结构和参数学习和推理的东西都是好的回答。

似乎有一些非常独立且未维护的python包大致朝这个方向发展,但我没有看到任何最近的东西(例如,我希望pandas用于这些计算是合理的,但OpenBayes几乎没有使用numpy) ,而我所见过的任何东西似乎都完全没有增强分类器。

那么,我应该从哪里节省一些实现森林增强贝叶斯分类器的工作呢?在 python 类中是否有一个很好的 Pearl 消息传递算法的实现,或者这对于增强的贝叶斯分类器是否不合适?是否有一个可读的面向对象的实现,用于学习和推断其他语言的 TAN 贝叶斯分类器,可以翻译成 python?


我知道但发现不合适的现有软件包是

  • milk,它确实支持分类,但不支持贝叶斯分类器(我肯定需要分类和未指定特征的概率)
  • pebl,它只做结构学习
  • scikit-learn,它只学习朴素贝叶斯分类器
  • OpenBayesnumarray,自从有人将它移植到numpy并且文档可以忽略不计以来,它几乎没有改变。
  • libpgm,它声称支持一组甚至不同的东西。根据主要文档,它进行推理、结构和参数学习。除了似乎没有任何精确推断的方法。
  • Reverend声称自己是“贝叶斯分类器”,文档可以忽略不计,通过查看源代码,我得出的结论是,根据Robinson和类似的方法,它主要是垃圾邮件分类器,而不是贝叶斯分类器。
  • eBay 的bayesianBelief Networks允许构建通用贝叶斯网络并对其进行推理(精确和近似),这意味着它可以用于构建 TAN,但其中没有学习算法,以及 BN 是从函数构建的方式意味着实现参数学习比假设的不同实现更困难。
0 投票
2 回答
776 浏览

machine-learning - 在贝叶斯网络中,节点被“实例化”是什么意思

我正在尝试在贝叶斯网络上关注这些幻灯片。谁能解释一下贝叶斯网络中的节点被“实例化”是什么意思?

0 投票
1 回答
136 浏览

machine-learning - 使用贝叶斯网络对新实例进行分类

假设我有以下贝叶斯网络:

在此处输入图像描述

而且我想在 H=true 或 H=false 上对新实例进行分类,新实例看起来像这样:Fl=true, A=false, S=true, and Ti=false

如何根据 H 对实例进行分类?

我可以通过将表中的概率相乘来计算概率:

0.4 * 0.7 * 0.5 * 0.2 = 0.028

这说明了新实例是否是正实例 H?

编辑 我将尝试根据 Bernhard Kausler 的建议计算概率:

所以这是贝叶斯规则: P(H|S,Ti,Fi,A) = P(H,S,Ti,Fi,A) / P(S,Ti,Fi,A)

计算分母: P(S,Ti,Fi,A) = P(H=T,S,Ti,Fi,A)+P(H=F,S,Ti,Fi,A) = (0.7 * 0.5 * 0.8 * 0.4 * 0.3) + (0.3 * 0.5 * 0.8 * 0.4 * 0.3) =0.048

P(H,S,Ti,Fi,A) = 0.336

所以P(H|S,Ti,Fi,A) = 0.0336 / 0.048 = 0.7

现在我计算P(H=false|S,Ti,Fi,A) = P(H=false,S,Ti,Fi,A) / P(S,Ti,Fi,A) 我们已经有了P(S,Ti,Fi,A´. I's ´0.048.

P(H=false,S,Ti,Fi,A) =0.0144

所以P(H=false|S,Ti,Fi,A) = 0.0144 / 0.048 = 0.3

的概率P(H=true,S,Ti,Fi,A)是最高的。所以新实例将被分类为H=True

这个对吗?

加法:我们不需要计算P(H=false|S,Ti,Fi,A),因为它是 1 - P(H=true|S,Ti,Fi,A)

0 投票
2 回答
492 浏览

r - 读取因子的数据框(在 R 中)

我是 R 的新手。要在包中使用,我需要一个“因子数据框”。

我有一个形式的文本文件:

所以每一列代表一个变量,可以是 1、2 或 3。请建议一个命令,允许我从这样的文本文件中获取因子的数据框(仅将文件作为矩阵读取是不行的,我需要有真正的“因素”)。

提前致谢。