Estimators¶
- class lgbn.estimators.GreedyEquivalentSearch(score=None, max_iter=1000000, eps=1e-09)¶
Greedy Equivalent Search structure learning algorithm.
The Greedy Equivalent algorithm learns the structure of a Bayesian network that maximizes the given score. The search procedure starts with an empty graph. Edges are added until no more increase the score and then removed until no further operation increases the score. Equality of operations and thus networks is defined by equivalence classes. An equivalence class contains all networks which have the same edges regardless of orientation. This algorithm is reasonably fast when used with a decomposable score which can be cached.
See [3] for a detailed description of the Greedy Equivalent Search algorithm.
Note
This implementation requires a decomposable score, although there exist other implementations that work with non-decomposable scores.
References
- search()¶
Search the space of posible models for the one that maximizes the score of this estimator.
- class lgbn.estimators.GreedyHillClimbing(score=None, start_net=None, max_iter=1000000, eps=1e-09)¶
Greedy Hill Climbing structure search algorithm.
The Greedy Hill Climbing algorithm learns the structure of a Bayesian network that maximizes the given score. The search procedure starts with an initial network, which defaults to a fully disconnected network. Edges are added, removed or have their direction reversed one at a time until no more modifications increase the overall score of the network. This algorithm is reasonably fast when used with a decomposable score which can be cached.
See p. 40 in [2] for a detailed description of the Greedy Hill Climbing algorithm. The source refers to Greedy Hill Climbing as Max-Min Hill Climbing.
Note
This implementation requires a decomposable score, although there exist other implementations that work with non-decomposable scores.
References
- get_params(deep=True)¶
Get parameters for this estimator.
- Parameters:
deep (bool, default=True) – If True, will return the parameters for this estimator and contained subobjects that are estimators.
- Returns:
params – Parameter names mapped to their values.
- Return type:
dict
- search()¶
Search the space of posible models for the one that maximizes the score of this estimator.
- set_params(**kwargs)¶
Set the parameters of this estimator.
The method works on simple estimators as well as on nested objects (such as
Pipeline
). The latter have parameters of the form<component>__<parameter>
so that it’s possible to update each component of a nested object.- Parameters:
**params (dict) – Estimator parameters.
- Returns:
self – Estimator instance.
- Return type:
estimator instance
- class lgbn.estimators.K2Search(score=None, ordering=None, eps=1e-09)¶
K2 structure learning algorithm.
The K2 algorithm learns the structure of a Bayesian network that maximizes the given score. The search procedure is guided by a given topological ordering of the network. In that ordering, if node x comes before node y, then node y can never be a parent of node x. This vastly reduces the search space resulting in a significant speedup, even without using caching.
See [1] for a detailed description of the K2 algorithm.
Note
This implementation requires a decomposable score, although there exist other implementations that work with non-decomposable scores.
References
- get_params(deep=True)¶
Get parameters for this estimator.
- Parameters:
deep (bool, default=True) – If True, will return the parameters for this estimator and contained subobjects that are estimators.
- Returns:
params – Parameter names mapped to their values.
- Return type:
dict
- search()¶
Search the space of posible models for the one that maximizes the score of this estimator.
- set_params(**kwargs)¶
Set the parameters of this estimator.
The method works on simple estimators as well as on nested objects (such as
Pipeline
). The latter have parameters of the form<component>__<parameter>
so that it’s possible to update each component of a nested object.- Parameters:
**params (dict) – Estimator parameters.
- Returns:
self – Estimator instance.
- Return type:
estimator instance
- class lgbn.estimators.ScoreSearchEstimator(score=None, eps=1e-09)¶
A structure estimator using score-based search.
Note
This class is just a general interface, it cannot actually be used.
See also
- eps: float = 1e-09¶
Tolerance for equality testing of numeric values. Two values a and b are equal if
abs(a - b) < eps
.
- fit(data)¶
Fit the model to the given data.
- Parameters:
data (pandas.DataFrame) – A DataFrame with one row per observation and one column per variable. Column names will be used for node identifiers in the resulting model.
- Return type:
A fitted estimator (self).
- get_params(deep=True)¶
Get parameters for this estimator.
- Parameters:
deep (bool, default=True) – If True, will return the parameters for this estimator and contained subobjects that are estimators.
- Returns:
params – Parameter names mapped to their values.
- Return type:
dict
- model: BayesianNetwork = None¶
The model resulting from the estimation.
- property score¶
Score instance to use for scoring networks in the search procedure.
- search() BayesianNetwork ¶
Search the space of posible models for the one that maximizes the score of this estimator.
- set_params(**kwargs)¶
Set the parameters of this estimator.
The method works on simple estimators as well as on nested objects (such as
Pipeline
). The latter have parameters of the form<component>__<parameter>
so that it’s possible to update each component of a nested object.- Parameters:
**params (dict) – Estimator parameters.
- Returns:
self – Estimator instance.
- Return type:
estimator instance