Pomegranate: fast and flexible probabilistic modeling in python

by   Jacob Schreiber, et al.

We present pomegranate, an open source machine learning package for probabilistic modeling in Python. Probabilistic modeling encompasses a wide range of methods that explicitly describe uncertainty using probability distributions. Three widely used probabilistic models implemented in pomegranate are general mixture models, hidden Markov models, and Bayesian networks. A primary focus of pomegranate is to abstract away the complexities of training models from their definition. This allows users to focus on specifying the correct model for their application instead of being limited by their understanding of the underlying algorithms. An aspect of this focus involves the collection of additive sufficient statistics from data sets as a strategy for training models. This approach trivially enables many useful learning strategies, such as out-of-core learning, minibatch learning, and semi-supervised learning, without requiring the user to consider how to partition data or modify the algorithms to handle these tasks themselves. pomegranate is written in Cython to speed up calculations and releases the global interpreter lock to allow for built-in multithreaded parallelism, making it competitive with---or outperform---other implementations of similar algorithms. This paper presents an overview of the design choices in pomegranate, and how they have enabled complex features to be supported by simple code.


page 1

page 2

page 3

page 4


PyHHMM: A Python Library for Heterogeneous Hidden Markov Models

We introduce PyHHMM, an object-oriented open-source Python implementatio...

pgmpy: A Python Toolkit for Bayesian Networks

Bayesian Networks (BNs) are used in various fields for modeling, predict...

AMIDST: a Java Toolbox for Scalable Probabilistic Machine Learning

The AMIDST Toolbox is a software for scalable probabilistic machine lear...

A Statistical Approach to Increase Classification Accuracy in Supervised Learning Algorithms

Probabilistic mixture models have been widely used for different machine...

MLJ: A Julia package for composable Machine Learning

MLJ (Machine Learing in Julia) is an open source software package provid...

An API Oriented Open-source Python Framework for Unsupervised Learning on Graphs

We present Karate Club a Python framework combining more than 30 state-o...

Please sign up or login with your details

Forgot password? Click here to reset