Software
My research has produced a number of software packages, available below, which I make freely available for academic and not-for-profit use. For source code and data sets related to specific publications, please see my publications page.
Lifelong-ML Github
Most research software, including code for papers and datasets, is available on Github.
Older Software [pre-2010]
Gridworld search and rescue: a project framework for a course in artificial intelligence
This educational software allows students to develop an intelligent agent for a search and rescue application in a partially observable gridworld. It allows students to focus on high-level AI issues for solving the problem rather than low-level robotic navigation. It was used as the semester project for CS63 (Artificial Intelligence) in Fall 2009 at Swarthmore College and CMSC 471 (Artificial Intelligence) in Fall 2007 at UMBC.
DDPref: Learning Preferences for Sets of Objects
A Java implementation of the DDPref language for expressing preferences over sets of objects, and an algorithm for learning those preferences from example sets. The DDPref language and learning algorithm are described in the ICML-06 paper Learning user preferences for sets of objects.
Extensions to the Weka Machine Learning Toolkit
These extensions add capabilities to the Weka Machine Learning Toolkit. To use them, download the latest version of the Weka source code, uncompress the source tree, place these files in the appropriate location, and recompile Weka. All code is licensed under the GPL.
- Generate a cross-validated learning curve using the experimenter: CVLearningCurveResultProducer.java
This extension gives the Weka Experimenter the ability to cross-validate the data, produce a learning curve for each training set evaluated on the held-out test set, and then average these into an overall learning curve.
Java Utility Functions (Utils package)
The edu.umbc.cs.maple.utils.* Java package defines a large number of useful utility function
classes for machine learning, spectral graph theory, the Jama matrix package, and Java in general.
It is licensed under the GPL.
The Utils package requires the following packages, which are all bundled in the distribution
above: Weka, Jama, and org.apache.commons.math.
Script to run a set of experiments
BatchProcessRunner.sh is a bash script that executes a set of commands given in an auxiliary
file, allowing only a limited number to run concurrently. When one terminates, the next one in the
series starts. This script is extremely useful for running a large number of experiments, each
defined as a separate command. It is licensed under the
GPL.