Abstract: Pomegranate is a Python package for probabilistic modeling that emphasizes both ease of use and speed. In keeping with the first emphasis, pomegranate has a simple sklearn-like API for training models and making inference, and a convenient "lego API" that allows complex models to be specified out of simple components. In keeping with the second emphasis , the computationally intensive parts of pomegranate are written in efficient Cython code, all models support both multithreaded parallelism, out-of-core computations, and some models support GPU calculations. Currently, pomegranate allows you to build general mixture models, naive Bayes classifiers, Markov chains, hidden Markov models, factor graphs, and Bayesian networks, as well as combinations such as a mixture of hidden Markov models. In this talk I will show how to build models of increasing complexity with code examples, including a naive Bayes' classifier that uses different probability distributions for different features, and a Bayesian network given data and a set of constraints. When necessarily, I will draw examples from "popular culture" and inadvertently prove how out of touch I am with today's youth.
Bio: Jacob Schreiber is a fifth year Ph.D. student and NSF IGERT big data fellow in the Computer Science and Engineering department at the University of Washington. His primary research focus is on the application of machine larning methods, primarily deep learning ones, to the massive amount of data being generated in the field of genome science. His research projects have involved using convolutional neural networks to predict the three dimensional structure of the genome and using deep tensor factorization to learn a latent representation of the human epigenome. He routinely contributes to the Python open source community, currently as the core developer of the pomegranate package for flexible probabilistic modeling, and in the past as a developer for the scikit-learn project. Future projects include graduating.