nok / sklearn-porter

Transpile trained scikit-learn estimators to C, Java, JavaScript and others.
BSD 3-Clause "New" or "Revised" License
1.29k stars 170 forks source link

Is there any plans to suuport GradientBoostingClassifier and CalibratedClassifier? #42

Open odedfisc opened 5 years ago

nok commented 5 years ago

GradientBoostingClassifier: I will check and compare the final result of a GradientBoostingClassifier with other combined (ensemble) classifiers like ensemble.AdaBoostClassifier, ensemble.ExtraTreesClassifier or ensemble.RandomForestClassifier. If the computed results and data structure is the same, it will be simple to support and add this classifier.


CalibratedClassifierCV: The CalibratedClassifierCV is a cross validator estimator.

Probability calibration with isotonic regression or sigmoid.

See glossary entry for cross-validation estimator.

With this class, the base_estimator is fit on the train set of the cross->validation generator and the test set is used for calibration. The probabilities >for each of the folds are then averaged for prediction. In case that cv=”prefit” >is passed to init, it is assumed that base_estimator has been fitted already >and all data is used for calibration. Note that data for fitting the classifier >and for calibrating it must be disjoint.

So it's an encapsulation of the base_estimator. But today there is no automatic check, decapsulation and export of the base_estimator. But I will add it like the Pipeline, GridSearchCV or RandomizedSearchCV (source: Porter.py#L75-L87).

As a workaround you can try to assign the base estimator directly: Porter(clf.base_estimator)

odedfisc commented 5 years ago

Many thanks

beojan commented 5 years ago

Has there been any progress on this?

loftalert commented 4 years ago

I would also be interested in a port of XGBoost, an algorithm that regularly beats the other ensemble methods. After all, the package provides a sklearn API so it sort of belongs to the sklearn model zoo. Any plans on that?