Implement decision tree, random forest and gradient boost from scratch.
references:
https://medium.com/mlreview/gradient-boosting-from-scratch-1e317ae4587d
https://towardsdatascience.com/random-forests-and-decision-trees-from-scratch-in-python-3e4fa5ae4249