1. A method of ordering data in a decision tree, the method comprising the steps of: a. identifying training data; b. identifying a set-of attributes, the set of attributes comprising: a target attribute; and allowable predictor attributes; c. characterizing the set of attributes; d. specifying constraints on the decision tree in terms of the characterized set of attributes; e. determining which of the allowable predictor attributes can be used in nodes of the decision tree for splitting at a region of the decision tree; f. determining the best splitter from the allowable predictor attributes that can be used in a specific node of the decision tree for splitting at the region; g. splitting any of the nodes at the region if the any of the nodes are splittable; h. incrementing the region of the decision tree by 1; and i. repeating steps e through h until there are no splittable nodes remaining.