Question

Recently I have been doing some research on NGBoost, but I could not see any parameter for categorical features. Is there any parameter that I missed?

__init__(self, Dist=<class 'ngboost.distns.normal.Normal'>, Score=<class 'ngboost.scores.MLE'>, Base=DecisionTreeRegressor(ccp_alpha=0.0, criterion='friedman_mse', max_depth=3,
 |                        max_features=None, max_leaf_nodes=None,
 |                        min_impurity_decrease=0.0, min_impurity_split=None,
 |                        min_samples_leaf=1, min_samples_split=2,
 |                        min_weight_fraction_leaf=0.0, presort='deprecated',
 |                        random_state=None, splitter='best'), natural_gradient=True, n_estimators=500, learning_rate=0.01, minibatch_frac=1.0, verbose=True, verbose_eval=100, tol=0.0001)

https://github.com/stanfordmlgroup/ngboost

Was it helpful?

Solution

It does not support at the time (it will come just as xgboost did not have to have it)

Given thats its a boosting method in the first place one can ask whats the history of xbgoost and subsequent cat and lgboost. XGBoost implementation of gradientboosting did not handle categorical features because it did not have to, it was sufficient enough as it was. What made xgboost special was the use of Hessian information. When other implementations (e.g. gbm in sklearn in Python) used just gradients, XGBoost used Hessian information when boosting. Which in turn was super faster.

TL;DR handling categorical features is not just a matter of convinience, it is also important for speed. This feature will come subsequently (if we contribute!) for time its all about representing uncertainty.

Licensed under: CC-BY-SA with attribution
Not affiliated with datascience.stackexchange
scroll top