Open source · Research · Education

Research methods made practical

I develop and maintain open-source software that turns research in data mining, machine learning, and optimization into reusable tools. Most projects are R packages, with some Python modules, and Bioconductor packages.

Pattern mining

Discover, represent, visualize, and share frequent patterns, association rules, and sequences using the arules package family.

arulespy

Python · PyPI

A Python interface for exploring association rules and frequent itemsets with arules.

arulesViz

R · CRAN

Static and interactive visualization techniques for association rules and itemsets.

arulesSequences

R · CRAN

Mining and manipulating frequent sequences using the SPADE algorithm family.

arulesCBA

R · CRAN

Associative classification with CBA, CMAR, CPAR, FOIL, PART, PRM, RCAR, and RIPPER.

arulesNBMiner

R · CRAN

Model-based mining of NB-frequent itemsets and NB-precise association rules.

pmml

R · CRAN

Generate predictive model markup language (PMML) to export and exchange various predictive models including association rules.

Clustering and data streams

Analyze density-based structure in static and evolving data with efficient, extensible algorithms.

streamConnect

R

Connect stream-mining components using sockets and deploy them as web services.

streamMOA

R · Java · CRAN

An interface to clustering algorithms from the Java-based MOA (Massive Online Analysis) data-stream mining framework.

rEMM

R · CRAN

Extensible Markov Models that add temporal structure learning to data-stream clustering.

Discrete optimization and optimal decision-making

Model and solve discrete optimization problems for data analysis, visualization and decision-making.

pomdpSolve

R · C · CRAN

A convenient R distribution and interface for Anthony Cassandra's popular pomdp-solve software to solve POMDPs.

TSP

R · CRAN

Infrastructure and algorithms for traveling salesperson problems, including a Concorde solver interface.

markovDP

R

Work with Markov decision processes (MDPs) using dynamic programming and reinforcement learning.

qap

R · CRAN

Heuristics for the quadratic assignment problem (QAP).

Recommender systems

Build, evaluate, and compare recommendation algorithms using a shared framework.

Bioinformatics

Connect established biological-sequence tools with reproducible R and Bioconductor workflows.

rRDP

R

An R interface to the Ribosomal Database Project classifier for classifying ribosomal RNA sequences.

Educational software

All software above can be used for educational purposes. Specifically for educational purposes, I have compiled an created code examples, coding assignments, howw-tos, R libraries, and Python modules. All software isaccompanied by educational material including instructions and presentation slides shared under a creative commons library.

Artificial Intelligence

Python · Course materials

Slides, compact code examples, and exercises for an introduction to AI using Russell and Norvig’s Artificial Intelligence: A Modern Approach.

Reinforcement Learning

Python · Course materials

Slides, code examples, and exercises for an introductory course in reinforcement learning.

Data Structures

C++ · Code examples

Code for an introductory data-structures course using Mark Allen Weiss’s Data Structures and Algorithm Analysis in C++.

gym-classics2

Python · RL package

Classic discrete finite Markov decision processes and algorithms for teaching reinforcement learning.

Additional examples

R · C++ · Small tools

Tools for fitting distributions and Gridhunt2, a game for teaching encapsulation, composition, inheritance, and polymorphism.

Archived projects

These projects remain available for reproducibility and historical use but are no longer the recommended starting point for new work.

rMSA

R

An R interface to multiple-sequence alignment tools including ClustalW, MAFFT, MUSCLE, and Kalign.

QuasiAlign

R

Prototype software for efficient biological-sequence analysis using alignment-free methods.