问题标签 [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.
matlab - 贝叶斯网络的简单示例/应用
谢谢阅读。
我想使用 Matlab 的 BNT 工具箱实现贝叶斯网络。问题是,我找不到“简单”的例子,因为这是我第一次处理 BN。
您能否提出一些可能的应用程序,(节点不多)请^^?
r - 与交易的因果关系(贝叶斯网络)
我正在使用多个二进制向量,例如 A、B、C、D、E、F、G、H。我想找到它们之间的分类。我尝试了以下方法:
得到这个错误只是因为所有都是连续变量并且在 mu 处为 NULL。
创建网络后,我应该如何进行分类?
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 值......关于如何解决这个问题的任何想法?
machine-learning - Scikits NB 与 NLTK NB 的性能对比
我通过绘制我的 3类问题。X 轴是训练数据集大小(忘记实际值),Y 是准确度。这是我得到的。
这种性能差异有什么原因吗?
artificial-intelligence - 如何从现有的条件概率表创建联合概率表?(CPT)
我有以下表格,其依赖项如下:
我想为 建立联合概率表P(M,P,W,B)
,看起来像这样(当然,你可以假设下表没有给我,它取自这个问题的答案):
有人可以解释一下如何创建联合概率表P(M,P,W,B)
吗?
非常感谢
probability - 我可以制作与弦 MRF 等效的非弦 MRF 吗?
这里通过等价我的意思是,在这两种情况下分布(整个表)是否相等???
python - 在 python 中学习和使用增强的贝叶斯分类器
我正在尝试在(最好是python 3,但python 2也可以接受)中使用森林(或树)增强贝叶斯分类器(原始介绍,学习python
) ,首先学习它(结构和参数学习)然后使用它用于离散分类并获得具有缺失数据的那些特征的概率。(这就是为什么只是离散分类,甚至是好的朴素分类器对我来说不是很有用。)
我的数据进来的方式,我喜欢从不完整的数据中使用增量学习,但我什至在文献中都没有发现任何可以同时做这两种方法的东西,所以任何做结构和参数学习和推理的东西都是好的回答。
似乎有一些非常独立且未维护的python包大致朝这个方向发展,但我没有看到任何最近的东西(例如,我希望pandas
用于这些计算是合理的,但OpenBayes
几乎没有使用numpy
) ,而我所见过的任何东西似乎都完全没有增强分类器。
那么,我应该从哪里节省一些实现森林增强贝叶斯分类器的工作呢?在 python 类中是否有一个很好的 Pearl 消息传递算法的实现,或者这对于增强的贝叶斯分类器是否不合适?是否有一个可读的面向对象的实现,用于学习和推断其他语言的 TAN 贝叶斯分类器,可以翻译成 python?
我知道但发现不合适的现有软件包是
milk
,它确实支持分类,但不支持贝叶斯分类器(我肯定需要分类和未指定特征的概率)pebl
,它只做结构学习scikit-learn
,它只学习朴素贝叶斯分类器OpenBayes
numarray
,自从有人将它移植到numpy
并且文档可以忽略不计以来,它几乎没有改变。libpgm
,它声称支持一组甚至不同的东西。根据主要文档,它进行推理、结构和参数学习。除了似乎没有任何精确推断的方法。- Reverend声称自己是“贝叶斯分类器”,文档可以忽略不计,通过查看源代码,我得出的结论是,根据Robinson和类似的方法,它主要是垃圾邮件分类器,而不是贝叶斯分类器。
- eBay 的
bayesian
Belief Networks允许构建通用贝叶斯网络并对其进行推理(精确和近似),这意味着它可以用于构建 TAN,但其中没有学习算法,以及 BN 是从函数构建的方式意味着实现参数学习比假设的不同实现更困难。
machine-learning - 在贝叶斯网络中,节点被“实例化”是什么意思
我正在尝试在贝叶斯网络上关注这些幻灯片。谁能解释一下贝叶斯网络中的节点被“实例化”是什么意思?
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)
。
r - 读取因子的数据框(在 R 中)
我是 R 的新手。要在包中使用,我需要一个“因子数据框”。
我有一个形式的文本文件:
所以每一列代表一个变量,可以是 1、2 或 3。请建议一个命令,允许我从这样的文本文件中获取因子的数据框(仅将文件作为矩阵读取是不行的,我需要有真正的“因素”)。
提前致谢。