Composite Bayesian Networks
Network initialization
If the dataset contains both discrete and continuous variables, CompositeBN is can be used.
To initialize a CompositeBN object, you can use the following code:
import bamt.networks as networks
bn = networks.CompositeBN()
Data Preprocessing
Before applying any structure or parametric learning, the data should be preprocessed as follows:
import bamt.Preprocessor as pp
import pandas as pd
from sklearn import preprocessing
data = pd.read_csv("path/to/data")
encoder = preprocessing.LabelEncoder()
p = pp.Preprocessor([("encoder", encoder)])
preprocessed_data, _ = p.apply(data)
Structure Learning
For structure learning of Composite BNs, bn.add_nodes() and bn.add_edges() methods are used.
Data should be non-preprocessed when passed to bn.add_edges()
info = p.info
bn.add_nodes(info)
bn.add_edges(data) # !!! non-preprocessed
Parametric Learning
For parametric learning of continuous BNs, bn.fit_parameters() method is used.
bn.fit_parameters(data) # !!! non-preprocessed
bn.get_info()