标签: bayesian-networks

在循环中使用bnlearn函数"cpquery"

我正在尝试使用bnlearn 来计算条件概率,并且当在循环中使用"cpquery"函数时我遇到了问题.我已经使用包中包含的数据创建了一个示例,如下所示.在循环中使用cpquery函数时,函数无法识别循环中创建的变量(示例中为"evi").我收到错误:

Error in parse(text = evi) : object 'evi' not found
Run Code Online (Sandbox Code Playgroud)

"evi"的创建步骤基于作者提供的示例.

你能提供的任何帮助都会很棒.我迫切希望找到一种可以将cpquery函数应用于大量观察的方法.

library(bnlearn)
data(learning.test)
fitted = bn.fit(hc(learning.test), learning.test)

bn.function <- function(network, evidence_data) {
  a <- NULL
  b <- nrow(evidence_data)
  for (i in 1:b) {
    evi <- paste("(", names(evidence_data), "=='",
               sapply(evidence_data[i,], as.character), "')",
               sep = "", collapse = " & ")
    a[i] <- cpquery(network, (C=='c'), eval(parse(text=evi)))
  }
  return(a)
}

test <- bn.function(fitted, learning.test)
Run Code Online (Sandbox Code Playgroud)

提前致谢!

r probability bayesian-networks

6
推荐指数
1
解决办法
1450
查看次数

scikit-learn 有贝叶斯网络吗?如果是,是否有实现供参考

我需要在 Python 中使用 BayesNet 对数据进行分类。我已经将 scikit learn 用于其他分类器,如随机森林、SVM 等。我知道它有朴素贝叶斯,但我只是在寻找贝叶斯网络。如果有人可以帮助我,那将非常有帮助 此外,如果有一个实现以供参考,那将更有帮助。谢谢

python bayesian-networks scikit-learn

6
推荐指数
1
解决办法
1130
查看次数

决策树和贝叶斯网络之间有什么区别?

如果我理解正确,都可以使用贝叶斯定理生成非循环图并根据每个节点上应用的函数来计算百分比。

有什么不同?

bayesian bayesian-networks decision-tree

5
推荐指数
0
解决办法
5584
查看次数

AI /用于确定颜色名称的统计方法

我正在考虑编写一个小库,从预定的候选列表中猜出(RGB值)颜色的名称.

我的第一次尝试纯粹基于三维RGB颜色空间内的毕达哥拉斯距离 - 这并不是大规模成功,因为大多数命名颜色点位于空间的边缘(例如蓝色在0,0,255),所以,对于空间中间的大多数颜色,它最接近的命名颜色是相当随意的.

所以,我正在考虑更好的方法,并提出了一些候选人

  • HSV色彩空间内的圆柱形距离 - 可能与上述类似的问题,然而,HSV似乎在人类意义上比RGB更有意义,这可能是有用的.

  • 上述任何一种,但每个命名的色点用一个任意值加权,该值表示其对周围空间中的点的吸引力.这样的模型有名字吗?我意识到这有点模糊,但对我来说这似乎是一个相当直观的想法.

  • 一个贝叶斯网络,它检查HSV颜色的属性并返回最可能的颜色名称(我想象的节点类似于,例如P(黑色|饱和度<10),P(红色|色调= 0),但是,这似乎不太理想 - 例如,给定颜色为红色的概率与其色调与0的接近程度成正比,而不是离散值.是否有一种方法可以调整贝叶斯网络来处理连续的概率变量被测试?

  • 最后,我想知道在HSV或RGB色彩空间内是否有某种基于支持向量机的分类,但对这些并不是非常熟悉,我不确定这是否会比基于毕达哥拉斯距离的方法提供任何特别的优势我最初尝试过,特别是因为我只处理三维空间.

因此,我想知道,您是否有任何类似问题的经验,或者知道任何可能帮助我决定方法的资源?如果有人能指出我正确的方向(无论是上述之一,还是完全不同的东西),我将非常感激.

干杯!

蒂姆

statistics artificial-intelligence classification bayesian bayesian-networks

5
推荐指数
1
解决办法
273
查看次数

是否有一个Java替代贝叶斯信念网络框架"Infer.NET"?

这是Java替代贝叶斯信念网络框架 - Infer.NET吗?如果它是可扩展的(大型数据集的在线学习),良好支持(自2010年以来的最后更新)以及开源和易于编写的网络结构,则是优选的.所以来自Infer.NET的所有功能.

java machine-learning bayesian-networks belief-propagation

5
推荐指数
1
解决办法
1896
查看次数

将WEKA模型导入MATLAB

有谁知道如何在MATLAB中重用WEKA模型?我最近在WEKA中创建了一个Bayes Net模型,我想在MATLAB中导入该模型,这样我就可以在MATLAB中重新创建贝叶斯网络.

有人帮忙请!!

matlab model bayesian-networks weka

5
推荐指数
1
解决办法
5832
查看次数

试图用爱德华实现贝叶斯神经网络

我试图将贝叶斯神经网络用于在PyCon上的Torsten Scholak提出的用于非线性回归的一些真实世界数据,并且得到了一些奇怪的结果。合适的程度可以达到一定程度,然后可以保持平坦。关于我在做什么错的任何想法吗?我正在使用爱德华图书馆

def neural_network_with_2_layers(x, W_0, W_1, b_0, b_1):
    h = tf.nn.tanh(tf.matmul(x, W_0) + b_0)
    h = tf.matmul(h, W_1) + b_1
    return tf.reshape(h, [-1])

dim = 10  # layer dimensions
W_0 = Normal(loc=tf.zeros([D, dim]),
             scale=tf.ones([D, dim]))
W_1 = Normal(loc=tf.zeros([dim, 1]),
             scale=tf.ones([dim, 1]))
b_0 = Normal(loc=tf.zeros(dim),
             scale=tf.ones(dim))
b_1 = Normal(loc=tf.zeros(1),
             scale=tf.ones(1))

x = tf.placeholder(tf.float32, [N, D])

#Reshaping
a = neural_network_with_2_layers(x,W_0,W_1,b_0,b_1)
b = tf.reshape(a,[len(X_train),1])
y = Normal(loc=b,scale=(tf.ones([N,1])*0.1))  # constant noise


 `#BACKWARD MODEL A`

q_W_0 = Normal(loc=tf.Variable(tf.random_normal([D, dim])),
               scale=tf.nn.softplus(tf.Variable(tf.random_normal([D, dim]))))
q_W_1 = Normal(loc=tf.Variable(tf.random_normal([dim, 1])), …
Run Code Online (Sandbox Code Playgroud)

python bayesian-networks deep-learning tensorflow edward

5
推荐指数
0
解决办法
629
查看次数

石榴贝叶斯网络的样本

我用from_samples()石榴构建了一个贝叶斯网络。我能够使用 来从模型中获得最大可能的预测model.predict()。我想知道是否有一种方法可以有条件(或无条件)从这个贝叶斯网络中采样?即是否有从网络中获取随机样本而不是最大可能的预测?

我看了看model.sample(),但它正在上升NotImplementedError

另外,如果使用 无法做到这一点pomegranate,那么还有哪些其他库非常适合 Python 中的贝叶斯网络?

python machine-learning bayesian-networks python-3.5 pomegranate

5
推荐指数
1
解决办法
4609
查看次数

作为 PC 算法的一部分,在 Python 中测试条件独立性

我正在用 python 实现 PC 算法。该算法构建了n变量高斯分布的图形模型。该图模型基本上是有向无环图的骨架,这意味着如果结构如下:

(x1)---(x2)---(x3)
Run Code Online (Sandbox Code Playgroud)

是在图中,则给定 x2,x1 与 x3 无关。更一般地,如果 A 是图的邻接矩阵并且 A(i,j)=A(j,i) = 0 (i 和 j 之间缺少边),则 i 和 j 是条件独立的,对于所有变量出现在从 i 到 j 的任何路径中。出于统计和机器学习的目的,可以“学习”底层图形模型。如果我们对联合高斯 n 变量随机变量有足够的观察,我们可以使用 PC 算法,其工作原理如下:

given n as the number of variables observed, initialize the graph as G=K(n) 
for each pair i,j of nodes:
    if exists an edge e from i to j:
        look for the neighbours of i
        if j is in neighbours of i then remove j from the set of …
Run Code Online (Sandbox Code Playgroud)

python statistics machine-learning bayesian-networks directed-acyclic-graphs

5
推荐指数
1
解决办法
3401
查看次数

Python 中的贝叶斯网络:构建和采样

对于一个项目,我需要创建包含属性之间特定依赖关系的综合分类数据。这可以通过从预定义的贝叶斯网络中采样来完成。在互联网上进行了一些探索后,我发现这Pomegranate是贝叶斯网络的一个很好的包,但是 - 就我而言 - 从这样一个预定义的贝叶斯网络中采样似乎是不可能的。例如,model.sample()引发 a NotImplementedError(尽管解决方案是这样说的)。

有谁知道是否有一个库可以为贝叶斯网络的构建和采样提供良好的接口?

python bayesian-networks sampling pomegranate

5
推荐指数
2
解决办法
1323
查看次数