* refactor(Config): use a Config object instead of dictionary of dictionaries!
* fix(Config): use default_ensemble_config
* fix(Portfolio): fixed portfolio construction
* refactor(Project): removed regression method (we can still use regression models, but we'll need map them to classes later)
* fix(Training): removed mistakenly left in `method` parameter
* fix, feat: Fixed inference processing data. Add transformation attribute.
* feat: Added transformations step, refractored the loop to make more sense (divided the train and inference loop).
* feat: Truncated models over time and transformations over time. Fixed some typing aswell.
* fix: Fixed a number of out of array problems.
* feat: Inference now works!
* fix(Steps): runtime error not checking for None
* fix(Steps): preloaded transformers are not optional anymore, sped up training by temporary increasing the retrain_every
* fix(CI): disable ray memory monitoring
* refactor(Inference): removed truncate_models and replaced it with filling X with NaN until inference should start
* feat(Inference): added index_from parameter
* fix(Tests): walk_forward test
* refactor(Pipeline): only predict one asset
* refactor(Inference): removed select_models step, inference code moved to run_inference.py so it matches convention (similar to run_pipeline.py)
* fix(Evaluation): adjust transaction costs
* fix(Config): adjusted retrain_every
Co-authored-by: Daniel Szemerey <szemereydaniel@gmail.com>
Co-authored-by: Mark Aron Szulyovszky <mark.szulyovszky@gmail.com>
* feat(Transformations): removed feature-selection pre-processing step completely
* fix(Core): removed unnecessary `original_X`
* fix(Transformations): use the X_expanding_window to transform subsequent data
* fix(RFE): should check for model correctly
* fix(Config): only re-train the model every 40 timestamp
* fix(MetaLabeling): pass in the correct X to meta-labeling step
* fix(Transformation): PCA should at least keep as many features as sliding_window_size
* feat(Transformations): cache transformations across the same asset
* fix(Tests): missing preloaded_transformations arg
* chore(Config): got rid of unnecessary 'classification_models' and 'regression_models' dictionary keys
* feat: Added optional import of models.
* fix: Models weren't wrapped into abstract class, fixed it.
* chore: Deleted leftover comments.
* fix: Same merge commit as on remote.
* fix: System wasn't putting in RF because there was no differentiation between RF as regressor and RF as classificator.
* fix(Models): use the XGBoostModel wrapper
Co-authored-by: Daniel Szemerey <szemereydaniel@gmail.com>
Co-authored-by: Mark Aron Szulyovszky <mark.szulyovszky@gmail.com>
* refactor(Naming): use `primary_models` & `meta_labeling_models`
* refactor(Naming): using primary * meta_labeling across config and in pipeline
* feat(Pipeline): added back Ensemble models
* fix(Pipeline): compiler error
* fix(Config): typo
* chore(Pipeline): removed unused averaging step
* revert the changes in discretizing
* chore(Pipeline): remove sharpe improvement logging
* fix(Pipeline): ensemble predictions should be a pd.Series instead of a DataFrame
* fix(Pipeline): discard unnecessary ensemble_probabilities
* fix(Pipeline): fixes regarding various meta-labeling ensemble bugs
* fix(Reporting): use the new naming convention
* fix(Reporting): use the right variable
* feat(Sweep): new sweep for ensemble models
* fix(Sweep): config reference
* fix(Config): simplified dev config
* fix(Models): use the faster LR model
* fix(Models): use LGBM in the meta-labeling model for speed
* fix(Selection): always use the first model for feature selection, commented out caching from select_features() as it's close to redundant in terms of speed