Code

The following software is all available under an open source license.

Naive Conformant Learning (NaCL)
Naive Conformant Learning (NaCL)

Given a logistic regression (LR) model, NaCL learns a Naive Bayes model that conforms to the LR model while maximizing the joint feature likelihood on the dataset. The learned model gives us the ability to handle missing features, while getting benefits of higher accuracy of LR models.

Source
Logistic Circuits
Logistic Circuits

A new statistical classifier based on logical circuits that performs as well as deep neural networks on simple image classification tasks. Its parameter learning is convex optimization and a simple local search can induce strong structure from data.

Source
Collapsed Compilation
Collapsed Compilation

An inference engine for graphical models and other discrete structures. It works by sampling many reasonably sized circuits and using each to perform inference.

Source
TrimBN
TrimBN

An implementation of robust trimming of Bayesian Network classifiers. It searches for a smaller subset of features while maintaining the classifier behavior.

Source
Semantic Loss
Semantic Loss

A system for enforcing logical constraints during the learning procedure of a deep neural network. Uses circuits to evaluate and differentiate the extent to which a logical constraint is being followed by neural net outputs.

Source
OpenWorldPDB
OpenWorldPDB

A Postgres-based implementation of query evaluation for open-world probabilistic databases

Source
ALICE
ALICE

ALICE is an Eclipse plugin for code search that uses active learning and inductive logic programming (ILP) to identify the properties and structure of those code blocks that the user would like to retrieve.

Source
LearnPSDD
LearnPSDD

LearnPSDD is a discrete density estimation algorithm. It learns a tractable probabilistic circuit (a PSDD) from data and achieves state-of-the-art likelihoods on many standard datasets.

Source
Forclift
Forclift

Forclift is a prototype implementation of algorithms for first-order knowledge compilation, lifted probabilistic inference (exact and approximate), and lifted parameter and structure learning. It supports various input formals, including Markov logic and weighted model counting problems.

Source
Direct & Factored Deletion
Direct & Factored Deletion

Prototype implementation of direct and factored deletion algorithms to learn Bayesian network parameters from incomplete data under the MCAR and MAR assumptions. These algorithms are consistent, yet they only require a single pass over the data, and no inference in the Bayesian network.

Source
ProbLog
ProbLog

ProbLog is a probabilistic logic programming language. It extends Prolog with probabilistic constructs. The inference and learning algorithms for ProbLog use state-of-the-art knowledge compilation techniques. DTProbLog is a decision-theoretic extension of ProbLog.

Source
PokerDemo
PokerDemo

PokerDemo is a classroom demo (in Dutch) to teach programming, expert, and multi-agent systems to high school students . It contains a visual programming tool that lets students create a rule-based poker player. Student can compete on the server with their friends and an artificial agent. (code)

Source
DaisyDiff
DaisyDiff

Daisy Diff is a Java library that diffs (compares) HTML files. It highlights added and removed words and annotates changes to the styling. This project was a Google Summer of Code 2007 project for DaisyCMS. A PHP version of the algorithm was developed for MediaWiki/Wikipedia in the Google Summer of Code 2008. Various content management systems use DaisyDiff for comparing HTML changes.

Source
JSDD
JSDD

A Java wrapper for the SDD library

Source

Data

Please consider using the following datasets.

Density Estimation Datasets
Density Estimation Datasets

A repository of standard datasets for discrete density estimation.

Source

Prototypes

The following are some rough prototypes.

CSPoker
CSPoker

CSPoker is a framework for developing and testing artificial poker agents. It contains the Monte-Carlo tree search players that I developed in my M.S. thesis. Parts of the CSPoker code has branched into the Pokersource and OpenTestBed projects. CSPoker was used by Sun Microsystems to demo JMX and Java FX Script during the JavaOne 2008 conference.

Source
ScalaDD
ScalaDD

Experimental implementation of decision diagrams (OBDDs, SDDs, PSDDs) in Scala

Source
ScalaLogic
ScalaLogic

A simple Prolog implementation in Scala

Source
MCTS-gammon
MCTS-gammon

A MCTS backgammon player

Source