We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Make the backtest time complexity O(n+m) instead of O(n*m), where n, m - number of folds for the backtest on fit and the actual backtest.
Make our ensembles more efficient
In BasePipeline:
BasePipeline
fold_id: Optional[int] = None
_run_fold
fold_id: int
fold_id
backtest
In StackingEnsemble and VotingEnsemble:
StackingEnsemble
VotingEnsemble
_backtest_pipeline
_backtest_pipeline(pipeline: BasePipeline, ts: TSDataset, n_folds: Union[int, List[FoldMask]])
EnsembleMixin
self.n_folds
forecasts: Optional[List[List["TSDataset"]]] = None
In VotingEnsemble:
self.weights="auto"
n_folds
self.forecasts
n_folds = n_folds + self.n_folds
self.forecasts = None
fit
_process_weights
self.forecasts != None
self.fold_id
_forecast
In StackingEnsemble:
Notes:
None
is
is not
No response
The text was updated successfully, but these errors were encountered:
Will be closed with adding caching in #655
Sorry, something went wrong.
No branches or pull requests
🚀 Feature Request
Make the backtest time complexity O(n+m) instead of O(n*m), where n, m - number of folds for the backtest on fit and the actual backtest.
Motivation
Make our ensembles more efficient
Proposal
In
BasePipeline
:fold_id: Optional[int] = None
_run_fold
:fold_id: int
to the signaturefold_id
after this linebacktest
:fold_id
to the_run_fold
hereIn
StackingEnsemble
andVotingEnsemble
:_backtest_pipeline
and make it static:_backtest_pipeline(pipeline: BasePipeline, ts: TSDataset, n_folds: Union[int, List[FoldMask]])
EnsembleMixin
self.n_folds
)forecasts: Optional[List[List["TSDataset"]]] = None
In
VotingEnsemble
:self.weights="auto"
andn_folds
is integer:self.forecasts
using the_backtest_pipeline
withn_folds = n_folds + self.n_folds
self.forecasts = None
fit
:self.forecasts = None
_process_weights
:self.forecasts != None
it should get the nessesary forecasts fromself.forecasts
using theself.fold_id
here_forecast
:self.forecasts != None
it should get the necessary forecasts fromself.forecasts
using theself.fold_id
hereIn
StackingEnsemble
:n_folds
is integer:self.forecasts
using the_backtest_pipeline
withn_folds = n_folds + self.n_folds
self.forecasts = None
fit
:self.forecasts != None
it should get the necessary forecasts fromself.forecasts
using theself.fold_id
hereself.forecasts = None
_forecast
:self.forecasts != None
it should get the nessesary forecasts fromself.forecasts
using theself.fold_id
hereNotes:
None
should be done usingis
oris not
self.forecasts = None
leave the old logicTest cases
No response
Alternatives
No response
Additional context
No response
Checklist
The text was updated successfully, but these errors were encountered: