\input{figures/pseudo-code/ridor.tex}
A rule based decision tree classifier called Ripple Down Rules(RDR) was proposed by
Paul Compton in his 1991 paper titled ``Ripple Down Rules:
Possibilities and Limitations''\cite{rdr}. RIDOR\cite{ridor} is the Java implementation of Compton's Ripple Down Rules. A basic Ripple Down Rule
tree is defined as a binary tree where each node contains:
\bi
\item A classification
\item A predicate function
\item A true branch
\item A false branch
\ei
The true and false branches are other nodes that may or may not
exist. The true branches are called "Exceptions", and are added when data is incorrectly classified. It acts as an exception to the parent node. The false branches are called the "Else" branch. This branch is added to attempt to identify data that did not match the parent node. The true and false branches are followed depending on the
outcome of the predicate function during testing. The true and false
nodes are created on demand, and are patches to the tree. This tree structure has several benefits:
\be
\item As each node is passed, the number of attributes that need to be considered decreases.
\item Data is split according to a predicate function, resulting in decreased data at each child node and increased intra-node similarity.
\ee
Ripple Down Rule trees are human maintainable, explainable, and incremental.

This classifier automatically finds the local clusters within the global space. During testing, each testing instance is passed down the tree, following the true and false branches according to the predicate functions at each node. When the testing instance reaches a leaf node, RDR returns the majority class of the leaf node.
