如何在weka中使用贝叶斯网络找到变量之间的偶然关系?

时间:2017-09-15 03:32:14

标签: java weka bayesian bayesian-networks

如何找到贝叶斯信念网络变量之间的因果关系?

我理解的是,为了找到变量之间的因果关系,我需要构建贝叶斯信念网络。

我谷歌了一下,所有的例子都说它需要专业知识和足够的数据来构建BBN。

我已经看到Weka中有一个用于贝叶斯网络的API。但这对我来说太复杂了。 Weka中的一步一步程序是什么,以便我可以从数据集构建贝叶斯网络(数据集包含多个变量和目标变量)

我尝试使用以下代码

    BayesNet bn= new BayesNet();
    //bn.m_Instances=data;
    LocalScoreSearchAlgorithm sa= new LocalScoreSearchAlgorithm();
    String[] options = new String[1];
    options[0] = "-D";                                    
    bn.setOptions(options);
    //bn.m_Instances=data;
    bn.initStructure();
    bn.initCPTs();
    bn.buildStructure();

但它不起作用。我尝试了其他几种组合。但我没有建立一个网络。

我建立网络后如何找到变量之间的因果关系?怎么解读?

1 个答案:

答案 0 :(得分:0)

首先,从数据中学习的贝叶斯网络仅显示"相关性"在变量中,不是"因果关系"。例如,如果您有变量A,B,C和D,并且从数据中学习的网络有A和B作为C的父项,而C作为D的父项,则不一定意味着A和B导致C,或者C导致D.它只意味着它们是相关的。了解变量之间的因果关系需要专业知识。

在Weka中构建贝叶斯网络时,您可以简单地使用GUI。当您打开GUI时,单击" Explorer",然后单击"打开文件"并选择您的文件(您的文件必须是arff格式)。然后继续"分类"标签。点击"选择",然后选择" weka / classifiers / bayes / BayesNet"。然后点击"开始"并将创建网络。