Nice write-up, thanks for sharing. One possible typo I noticed:
> Maximum depth of tree (vertical depth) The maximum depth of trees. It is used to control over-fitting, higher values prevent a model from learning relations which might be highly specific to the particular sample.
Shouldn't it be lower values, i.e., shallower trees, that control over-fitting?