Jeff Heaton

Welcome to Heaton Research, the site that contains my projects, books, and blog. My name is Jeff Heaton, I am a data scientist, indy publisher, and adjunct instructor at Washington University. My interests include machine learning, feature engineering, and real world applications of these topics. I am known for AI books, Kickstarter projects, YouTube Videos and open source projects. I use the programming languages Python, R, Java, and C#. My blog can be found here.

I am most active on the following social media sites (in order of activity). If would like to keep up to date on my projects, just follow me:

Deep Learning Course @ WUSTL

I teach T81-558:Applications of Deep Neural Networks as an adjunct faculty member of Washington University in St. Louis. This is a hybrid course that combines classroom learning with Internet delivered videos. All material for this class can be found at the link provided.

Artificial Intelligence for Humans

Jeff Heaton's books include:

I am the author of the popular Artificial Intelligence for Humans series of books. The series teaches artificial intelligence concepts in a mathematically gentle manner, which is why I named the series Artificial Intelligence for Humans. As a result, as a result these books always follow the theories with real-world programming examples and pseudocode instead of relying solely on mathematical formulas. You can see online (Javascript) examples of some of the topics covered in these books [here].

Encog Machine Learning Framework

Encog is a Java/C# machine learning framework that I've developed since 2008. Encog supports a variety of advanced algorithms, particularly neural networks and genetic programming. Most Encog training algoritms are multi-threaded and scale well to multicore hardware. A GUI based workbench is also provided to help model and train machine learning algorithms.


I also have an interest in Artificial Life and created MergeLife is a family of cellular automata that I developed. Each member of this family is represented by a hexidecimal encoding, such
as E542-5F79-9341-F31E-6C6B-7F08-8773-7068 that represent a MergeLife update rule. The three patterns that you see above are three different MergeLife update rules. Other than a random starting grid, these update rules are
completly deterministic. MergeLife rules are discovered using a Genetic Algorithm. You can think of MergeLife as a utility to create entirely new Cellular Automata that are similar to Conway's Game of Life. Complete implementations of MergeLife in Java, Python, and JavaScript are provided on GitHub.