Currenlty I see two main paths to take: 1) Try to parallelize some parts of the code, especially the place where goodness of different splitting values is estimated 2) Switch to Cython :(
Currenlty I see two main paths to take: