如何找到贝叶斯信念网络变量之间的因果关系?
我理解的是,为了找到变量之间的因果关系,我需要构建贝叶斯信念网络。
我谷歌了一下,所有的例子都说它需要专业知识和足够的数据来构建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();
但它不起作用。我尝试了其他几种组合。但我没有建立一个网络。
我建立网络后如何找到变量之间的因果关系?怎么解读?
答案 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"。然后点击"开始"并将创建网络。