1. A computer implemented method at a machine learning system comprising: accessing a plurality of training examples; storing a graph of connected nodes at a memory of the machine learning system the nodes having split function parameters specifying tests for determining flow of elements through the graph; and adding, using a processor, new nodes to the graph in a manner which selects between possible connection patterns between nodes of the graph, and possible split function parameter values, by applying a training objective to elements of the training examples reaching nodes of the graph according to the split function parameters.