# How to build naive bayes graph from data

For an university assignment I have to use the HuginLite software to do some probabilistic inferences with different algorithms. One of these algorithms is Naive Bayes but its graph is not built automatically by the software, so I have to construct it and create the conditional probability table.

The scenario is the one of 4-5 genes expression related to Acute Myeloid Leukemia (AML) which is the target of the model. I've understood that in Naive Bayes every feature is considered conditionally independent from others, so I've supposed that in the graph they are non connected by an edge, so I've thought that the graph was a simple connection of each genes to the AML node like in the image below. This seems to be wrong, so basically there is something that I'm missing or I've not understood well on how to build the graph given data.

The data set is structured with entries of yes/no values for genes and disease expression, like this (is just a portion of the dataset):

ATP2B4,NAP1L1,MDK,PCCB,MDS1,AML
no,no,no,yes,yes,no
no,yes,yes,yes,yes,no
no,yes,no,yes,no,no
no,no,yes,yes,yes,no
no,no,no,yes,yes,no
no,no,no,yes,yes,yes


I've computed the probability of expression of each gene simply counting every 'yes' occurrence and divided for the number of entries, the same for conditional probabilities like P(ATP2B4 | AML) counting occurrences with ATP2B4 = 'yes' and AML = 'yes'. In order to fill the CPT for AML I've used the Bayes theorem and multiplied every conditional probabilty for every possible configuration.

It has been told to me that the graph itself is wrong and so even the CPT. How do I build that graph given a dataset of occurences? I'm struggling on this problem since some days.

• The idea is to build a probabilistic model which can predict a gene selection. The model has 5 input values and 1 output values. Unfortunately, the attempt in building such a model failed, because the learned bayes classificator isn't able to solve the system identification problem. From a machine learning perspective, it's a clustering task which can be solved by finding the correct hyper plane in the problem space which is often multidimensional. Increasing the number of input values and a more elaborated datatype than only a yes/no footprint will help to overcome the difficulties. – Manuel Rodriguez Sep 7 at 9:43
• The problem is that I don't have other input values except for yes/no indication for a sequence of genes and the presence of the disease. The graph above is an attampt that I've made but it has been told to me that is wrong and I'm not understanding why. I've read about constraint-based and score-based approaches to build the graph but I'm not sure this can be done by hand and then fed to the software with the CPT. – Marco Sep 7 at 9:53