1. A computer-implemented method for machine learning a dataset to construct a decision tree model, the method comprising the steps of: (a) initializing a master process with an initial model corresponding to a root of a decision tree; (b) initializing a plurality of worker processes; (c) partitioning the full dataset into a plurality of partition datasets; (d) distributing the initial model to each of the worker processes; (e) distributing each of the partition datasets to a respective one of the worker processes; (f) in each worker process, processing its corresponding partition dataset based on the distributed initial model to form local results; (g) in each worker process, compressing its corresponding local results; (h) in each worker process, transmitting the compressed results to the master process; (i) merging the compressed results received from the worker processes; (j) based on the merged results, updating the model by adding one new layer; (k) distributing the updated model to the worker processes; and (l) repeating steps (f)-(k) until a stopping criterion is met; wherein the dataset includes at least one categorical result field and, for at least one of the worker processes, said compressing the corresponding local results includes forming an approximate histogram corresponding to the categorical result field; and wherein at least one worker process merges at least one categorical result approximate histogram from a child process together with at least one other categorical result approximate histogram from a different child process by summing its corresponding counts from the child processes for the corresponding category.