microsoft / hummingbird

Hummingbird compiles trained ML models into tensor computation for faster inference.
MIT License
3.33k stars 277 forks source link

Add support for NGBoost (NGBRegressor/NGBClassifier) #546

Open leonardomurakami opened 2 years ago

leonardomurakami commented 2 years ago

Trying to run hummingbird for NGBRegressor and receiving MissingConverter: Unable to find converter for model type <class 'ngboost.api.NGBRegressor'>. It usually means the pipeline being converted contains a transformer or a predictor with no corresponding converter implemented. Please fill an issue at https://github.com/microsoft/hummingbird.

ksaur commented 2 years ago

Thanks! Added this to the requests list.

I'm assuming you mean this NGBoost. Can you please give us a few more details about your model?

leonardomurakami commented 2 years ago

Ay, sorry for taking so long to answer. Giving some more details, it is basically a boosting model which follows the sklearn API, except, on top of being able to do point estimates, it is able to predict a probabilistic distribution through the pred_dist method

Thanks for adding this to the requests list!

Geethen commented 1 year ago

Hi, Has there been any progress on incorporating NGBoost?. If I may add on some of the cool features of NGBoost. It allows you to specify any tree-based algorithm as the base estimator (so for example, LightGBM). However, for medium-large datasets (1.3 Gb feather file), it is incredibly slow for training and inference. I assume that converting this to pytorch, for example. May help to reduce the inference speed. The probabilistic distribution output is now less of a benefit for NGBoost because of the availability of conformal prediction. In short, I look forward to using NGBoost via hummingbird :)