Structure Scores
Compute structure scores.
Description
Each model can be scored based on its structure. However, the score doesn’t have very straight forward
interpretebility but can be used to compare different models. A higher score represents a better fit.
This method only needs the model structure to compute the score. The structure score functionality
can be found here: bnlearn.bnlearn.structure_scores()
.
- param model
The model whose score needs to be computed.
- type model
The bnlearn instance such as pgmpy.base.DAG or pgmpy.models.BayesianNetwork
- param df
The dataset against which to score the model.
- type df
pd.DataFrame instance
- param scoring_method
The following four scoring methods are supported currently: 1) K2Score 2) BDeuScore 3) BDsScore 4) BicScore
- type scoring_method
str ( k2 | bdeu | bds | bic )
- param kwargs
Any additional parameters parameters that needs to be passed to the scoring method.
- type kwargs
kwargs
- returns
Model score – A score value for the model.
- rtype
float
Examples
>>> import bnlearn as bn
>>> # Load example dataset
>>>
>>> df = bn.import_example('sprinkler')
>>> edges = [('Cloudy', 'Sprinkler'), ('Cloudy', 'Rain'), ('Sprinkler', 'Wet_Grass'), ('Rain', 'Wet_Grass')]
>>>
>>> # Make the Bayesian DAG
>>> DAG = bn.make_DAG(edges)
>>> model = bn.parameter_learning.fit(DAG, df)
>>>
>>> # Structure scores are stored in the model dictionary.
>>> model['structure_scores']
>>>
>>> # Compute the structure score for as specific scoring-method.
>>> bn.structure_scores(model, df, scoring_method="bic")