As previously discussed, a quick review of MapieTimeSeriesRegressor against sktime APIs.
I think the regressor is simply a forecaster, with tags: capability:pred_int (can predict probabilistically), and ignores-exogeneous-X: False, as it uses exogenous data
The interface matches as follows:
fit and predict map onto each other, with slightly different args.
mapie's partial_fit is sktime's update method.
The probabilisitc predict (if alpha is passed) is sktime's predict_interval.
possibly inconsistent interface elements:
it looks like exogenous data X is absolutely required in mapie (is that true?), whereas theoretically the implemented estimator does not need it, and sktime also assumes that every forecaster can be run without X, with y only
sample weights are currently not supported in sktime
in sktime, fit and predict cannot be given additional parameters, all non-data/task arguments should be in the constructor. So, ensemble or optimize_beta should move to the constructor, from predict.
As previously discussed, a quick review of
MapieTimeSeriesRegressor
againstsktime
APIs.capability:pred_int
(can predict probabilistically), andignores-exogeneous-X: False
, as it uses exogenous datafit
andpredict
map onto each other, with slightly different args.mapie
'spartial_fit
issktime
'supdate
method.predict
(ifalpha
is passed) issktime
'spredict_interval
.X
is absolutely required inmapie
(is that true?), whereas theoretically the implemented estimator does not need it, andsktime
also assumes that every forecaster can be run withoutX
, withy
onlysktime
sktime
,fit
andpredict
cannot be given additional parameters, all non-data/task arguments should be in the constructor. So,ensemble
oroptimize_beta
should move to the constructor, frompredict
.From an interfacing perspective, using the maximal extension template with filling only
predict_interval
should work: https://github.com/sktime/sktime/blob/main/extension_templates/forecasting.py (possibly also filling inpredict_proba
with anEmpirical
distribution)