Another reason why Julia is the Data Science language of the (near) future:
I have been trying to make JLBoost.jl (a pure- #julialang) XGBoost-like) "hackable".
Background: XGBoost has a grow_policy parameter with two possible choices "depthwise" and "lossguide".
1/n
#xgboost
I have been trying to make JLBoost.jl (a pure- #julialang) XGBoost-like) "hackable".
Background: XGBoost has a grow_policy parameter with two possible choices "depthwise" and "lossguide".
1/n
#xgboost
Users in Python in R are not able to add more. You need to fork the C++ code to add new methods.
But grow policy is just a way to select which end node to split.
See https://lightgbm.readthedocs.io/en/latest/Features.html#leaf-wise-best-first-tree-growth
2/n
But grow policy is just a way to select which end node to split.
See https://lightgbm.readthedocs.io/en/latest/Features.html#leaf-wise-best-first-tree-growth
2/n
To make the grow_policy "hackable" in JLBoost.jl, all I needed to do was to provide the grow_policy as a parameter.
The grow_policy parameter needs to be a function, such that grow_policy(tree) returns the node to split!
That's it!
3/n
The grow_policy parameter needs to be a function, such that grow_policy(tree) returns the node to split!
That's it!
3/n
Indeed, for the "depth-wise" grow policy just return all leaves nodes
And for the lossguide (aka best-first, leaf-wise) just return the leaf node with the highest gain!
One can experiment with other approaches just by providing a Julia function.
Did I mention no C++?!
4/n
And for the lossguide (aka best-first, leaf-wise) just return the leaf node with the highest gain!
One can experiment with other approaches just by providing a Julia function.
Did I mention no C++?!
4/n
I am working thru (slowly) all the parts of a tree-boosting lib that should be "hackable". Once done, JLBoost.jl should allow researchers to experiment very quickly with new ideas!
JLBoost is only at the 1st stage of 1) working, 2) bugfree, 3) fast. So early days.
5/n, n=5
JLBoost is only at the 1st stage of 1) working, 2) bugfree, 3) fast. So early days.
5/n, n=5