GSoC 2016 is coming to an end I’ve just sent the last PR necessary to complete the scope of my proposal. It has been an exciting project, and I do feel that I learned a lot. I was able to implement a number of basic BN structure estimation algorithms, that I wanted to study for a long time. Once all the reviewing is done, pgmpy will support for basic score-based structure learning, with the usual structure scores (BIC, BDeu, K2) and exhaustive search and local heuristic search (hill climbing) with tabu search, edge blacklists and whitelists and indegree restriction.
It will also support basic constraint-based structure learning with conditional chi2 independence tests. I implemented the PC algorithm and a PDAG completion procedure (under review). Finally, MMHC, a hybrid learning algorithm is also implemented (under review). In the beginning of the project I also worked on Bayesian parameter estimation for BNs.
estimators/-folder is already less empty than before, a lot remains to be done. pgmpy learning does not yet have:
- learning for
- learning for continuous networks
- better support for learning from incomplete data
- Chow-Liu tree-structure BN learning <- an efficient algorithm that can find the optimal tree network given data. Sounds great, then we get tree-bayes classification as well.
- Strong documentation & show cases to get more people interested in pgmpy
Tomorrow, I’ll share another post with my key learnings about BNs!