Structure learning is one of the most important branches in Bayesian network, while learning Bayesian network structures from data is NP-complete. An improved algorithm is provided for learning Bayesian network structures from data. It constructs the initial undirected graph based on mutual information, and then orients undirected edges by using conditional independence tests, additionally a local optimal method for four-node and five-node loops is proposed to construct the initial draft about the structure...