be specified. The process stops when further splitting of leaf nodes either does not improve the loss or a prespecified maximum number of leaf nodes is achieved.

We first describe how to split a current leaf node to improve the solution to (\[Tree Impu\]). Suppose the current tree is $T$ and the node to partition is $A$, with $n'$ training samples. For each feature $j$, sort all samples in $A$ by increasing order of the $j$th feature as $X[j]_{j_1}, X[j]_{j_2}, \ldots, X[j]_{j_n'}$. We only allow partitions to occur at $(X[j]_{j_i}+ X[j]_{j_{i+1}})/2, \;1\le i\le n'-1,\; 1\le j\le d$, the midpoint of two adjacent values of each feature. The total number of different partitions is no more than $(n'-1)d$. After each such split of $A$, we keep all other leaf nodes unchanged while allowing all $4$ different class label assignments at the two new daughter nodes of $A$. The current set of trees $\mathscr{T}$ to choose from in optimizing (\[Tree Impu\]) include the initial $T$ and all the partitioned trees described above. The cardinality of $\mathscr{T}$ is no more than $1 + 4(n'-1)d$, a linear order of $n'$. We compute the risk for all $T\in\mathscr{T}$ to find the minimizer. If the initial 