zgong001 wrote:The algorithm is as following:
Hill-Climbing Algorithm
1. Choose a network structure G over V, usually (but not necessarily) empty.
2. Compute the score of G, denoted as ScoreG=Score(G).
3. Set maxscore=ScoreG.
4. Repeat the following steps as long as maxscore increases:
1. for every possible arc addition, deletion or reversal not resulting in a cyclic network:
1. compute the score of the modified network G*, ScoreG*=Score(G*):
2. if ScoreG*>ScoreG, set G=G* and ScoreG=ScoreG*.
2. update maxscore with the new value of ScoreG.
5. Return the DAG G.
_____________________________________________
hc in bnlearn:
Score-based structure learning algorithms
Description
Learn the structure of a Bayesian network using a hill-climbing (HC) or a Tabu search (TABU) greedy search.
Usage
hc(x, start = NULL, whitelist = NULL, blacklist = NULL, score = NULL, ...,
debug = FALSE, restart = 0, perturb = 1, max.iter = Inf, maxp = Inf, optimized = TRUE)
Arguments
x
a data frame containing the variables in the model.
start
an object of class bn, the preseeded directed acyclic graph used to initialize the algorithm. If none is specified, an empty one (i.e. without any arc) is used.
whitelist
a data frame with two columns (optionally labeled "from" and "to"), containing a set of arcs to be included in the graph.
blacklist
a data frame with two columns (optionally labeled "from" and "to"), containing a set of arcs not to be included in the graph.
score
a character string, the label of the network score to be used in the algorithm. If none is specified, the default score is the Bayesian Information Criterion for both discrete and continuous data sets. See network scores for details.
...
additional tuning parameters for the network score. See score for details.
debug
a boolean value. If TRUE a lot of debugging output is printed; otherwise the function is completely silent.
restart
an integer, the number of random restarts.
tabu
a positive integer number, the length of the tabu list used in the tabu function.
max.tabu
a positive integer number, the iterations tabu search can perform without improving the best network score.
perturb
an integer, the number of attempts to randomly insert/remove/reverse an arc on every random restart.
max.iter
an integer, the maximum number of iterations.
maxp
the maximum number of parents allowed for a node in any network that is considered in the search, including that that is returned. The default value is Inf.
optimized
a boolean value. If TRUE (the default), score caching is used to speed up structure learning.
Value
An object of class bn. See bn-class for details.
Return to R package for Bayesian network structure learning (BNlearn)
Users browsing this forum: No registered users and 4 guests