* Refactor into automl subpackage
Moved some of the packages into an automl subpackage to tidy before the
task-based refactor. This is in response to discussions with the group
and a comment on the first task-based PR.
Only changes here are moving subpackages and modules into the new
automl, fixing imports to work with this structure and fixing some
dependencies in setup.py.
* Fix doc building post automl subpackage refactor
* Fix broken links in website post automl subpackage refactor
* Fix broken links in website post automl subpackage refactor
* Remove vw from test deps as this is breaking the build
* Move default back to the top-level
I'd moved this to automl as that's where it's used internally, but had
missed that this is actually part of the public interface so makes sense
to live where it was.
* Re-add top level modules with deprecation warnings
flaml.data, flaml.ml and flaml.model are re-added to the top level,
being re-exported from flaml.automl for backwards compatability. Adding
a deprecation warning so that we can have a planned removal later.
* Fix model.py line-endings
* Pin pytorch-lightning to less than 1.8.0
We're seeing strange lightning related bugs from pytorch-forecasting
since the release of lightning 1.8.0. Going to try constraining this to
see if we have a fix.
* Fix the lightning version pin
Was optimistic with setting it in the 1.7.x range, but that isn't
compatible with python 3.6
* Remove lightning version pin
* Revert dependency version changes
* Minor change to retrigger the build
* Fix line endings in ml.py and model.py
Co-authored-by: Qingyun Wu <qingyun.wu@psu.edu>
Co-authored-by: EgorKraevTransferwise <egor.kraev@transferwise.com>
* time series forecasting with panel datasets
- integrate Temporal Fusion Transformer as a learner based on pytorchforecasting
Signed-off-by: Kevin Chen <chenkevin.8787@gmail.com>
* update setup.py
Signed-off-by: Kevin Chen <chenkevin.8787@gmail.com>
* update test_forecast.py
Signed-off-by: Kevin Chen <chenkevin.8787@gmail.com>
* update setup.py
Signed-off-by: Kevin Chen <chenkevin.8787@gmail.com>
* update setup.py
Signed-off-by: Kevin Chen <chenkevin.8787@gmail.com>
* update model.py and test_forecast.py
- remove blank lines
Signed-off-by: Kevin Chen <chenkevin.8787@gmail.com>
* update model.py to prevent errors
Signed-off-by: Kevin Chen <chenkevin.8787@gmail.com>
* update automl.py and data.py
- change forecast task name
- update documentation for fit() method
Signed-off-by: Kevin Chen <chenkevin.8787@gmail.com>
* update test_forecast.py
Signed-off-by: Kevin Chen <chenkevin.8787@gmail.com>
* update test_forecast.py
- add performance test
- use 'fit_kwargs_by_estimator'
Signed-off-by: Kevin Chen <chenkevin.8787@gmail.com>
* add time index function
Signed-off-by: Kevin Chen <chenkevin.8787@gmail.com>
* update test_forecast.py performance test
Signed-off-by: Kevin Chen <chenkevin.8787@gmail.com>
* update data.py
Signed-off-by: Kevin Chen <chenkevin.8787@gmail.com>
* update automl.py
Signed-off-by: Kevin Chen <chenkevin.8787@gmail.com>
* update data.py to prevent type error
Signed-off-by: Kevin Chen <chenkevin.8787@gmail.com>
* update setup.py
Signed-off-by: Kevin Chen <chenkevin.8787@gmail.com>
* update for pytorch forecasting tft on panel datasets
Signed-off-by: Kevin Chen <chenkevin.8787@gmail.com>
* update automl.py documentations
Signed-off-by: Kevin Chen <chenkevin.8787@gmail.com>
* - rename estimator
- add 'gpu_per_trial' for tft estimator
Signed-off-by: Kevin Chen <chenkevin.8787@gmail.com>
* update test_forecast.py
Signed-off-by: Kevin Chen <chenkevin.8787@gmail.com>
* include ts panel forecasting as an example
Signed-off-by: Kevin Chen <chenkevin.8787@gmail.com>
* update model.py
Signed-off-by: Kevin Chen <chenkevin.8787@gmail.com>
* update documentations
Signed-off-by: Kevin Chen <chenkevin.8787@gmail.com>
* update automl_time_series_forecast.ipynb
Signed-off-by: Kevin Chen <chenkevin.8787@gmail.com>
* update documentations
Signed-off-by: Kevin Chen <chenkevin.8787@gmail.com>
* "weights_summary" argument deprecated and removed for pl.Trainer()
Signed-off-by: Kevin Chen <chenkevin.8787@gmail.com>
* update model.py tft estimator prediction method
Signed-off-by: Kevin Chen <chenkevin.8787@gmail.com>
* update model.py
Signed-off-by: Kevin Chen <chenkevin.8787@gmail.com>
* update `fit_kwargs` documentation
Signed-off-by: Kevin Chen <chenkevin.8787@gmail.com>
* update automl.py
Signed-off-by: Kevin Chen <chenkevin.8787@gmail.com>
Signed-off-by: Kevin Chen <chenkevin.8787@gmail.com>
Co-authored-by: Chi Wang <wang.chi@microsoft.com>
* fix checkpoint naming + trial id for non-ray mode, fix the bug in running test mode, delete all the checkpoints in non-ray mode
* finished testing for checkpoint naming, delete checkpoint, ray, max iter = 1
* adding predict_proba, address PR 293's comments
close#293#291
* limit time and memory
* separate tests
* lrl1 can't be limited by limit_resource
* free memory when possible
* passthrough=False when ensemble fails;
retrain when trained_estimator is None
* use callback to for resource limit
* handle lower version of xgb with no callback
* free mem ratio
* reduce verbosity
* retrain_final when max_iter==1
* remove trained_estimator from result
* model_history
* wheel
* retrain time as best_config_train_time
* ci: libomp version for xgboost on macos
* limit_resource not working in windows
* test pickle load
* mute forecaster
* notebook update
* check hard
* preventive callback
* add use_ray
* Integrate multivariate time series forecasting, now supports
continuous and categorical variables
- update data.py to transform time series data
- update search space
- update documentations to reflect changes
- update test_forecast.py
- rename 'forecast' task to 'ts_forecast' task
* update automl.py and test_forecast.py
* update forecast notebook
* update README.md and setup.py
* update ml.py and test_forecast.py
- make "ds" and "y" constant variables
* replace constants with constant variables
* bump version to 0.7.0
* update setup.py
- support 'forecast' and 'ts_forecast'
* update automl.py and data.py
- support 'forecast' and 'ts_forecast' tasks
* warning -> info for low cost partial config
#195, #110
* when n_estimators < 0, use trained_estimator's
* log debug info
* test random seed
* remove "objective"; avoid ZeroDivisionError
* hp config to estimator params
* check type of searcher
* default n_jobs
* try import
* Update searchalgo_auto.py
* CLASSIFICATION
* auto_augment flag
* min_sample_size
* make catboost optional
* increase test coverage
* use define by run only when needed
* warmstart bs
* classification -> binary, multi
* warm start with evaluated rewards
* data transformer; resource attr for gs
* BlendSearchTuner bug fix and unittest
* bug fix
* docstr and import
* task type
* remove catboost training dir
* close#48
* bs for hierarchical space. close#85
* retrain for hierarchical space
* clean ml (#180)
Co-authored-by: Qingyun Wu <qxw5138@psu.edu>
* support ranking task
* examples
* cv shuffle
* forecast api and implementation cleaner
* period constraints
* delete groups after fit
* non hashable value out of signature
* parallel trials
* add random in _search_parallel
* fix bug in retraining
* check memory constraint before training
* retrain_full
* log custom metric
* retraining budget check
* sample size check before retrain
* remove 'time2eval' from result
* report 'total_search_time' in result
* rename total_search_time to wall_clock_time
* rename train_loss boolean to log_training_metric
* set default train_loss to None
* exclude oom result
* log retrained model
* no subsample
* doc str
* notebook
* predicted value is NaN for sarimax
* version
Co-authored-by: Chi Wang <wang.chi@microsoft.com>
Co-authored-by: Qingyun Wu <qxw5138@psu.edu>
* added 'forecast' task with estimators ['fbprophet', 'arima', 'sarimax']
* update setup.py
* add TimeSeriesSplit to 'regression' and 'classification' task
* add 'time' split_type for 'classification' and 'regression' task
Signed-off-by: Kevin Chen <chenkevin.8787@gmail.com>
* feature importance
* variable name
* Update test/test_split.py
Co-authored-by: Chi Wang <wang.chi@microsoft.com>
* Update test/test_forecast.py
Co-authored-by: Chi Wang <wang.chi@microsoft.com>
* prophet installation fail in windows
* upload flaml_forecast.ipynb
Signed-off-by: Kevin Chen <chenkevin.8787@gmail.com>
* remove extra comma
* exclusive bound
* log file name
* add cost to space
* dataset_format
* add load_openml_dataset test
* docstr
* revise test format
* simplify restore
* order categories
* openml server exception in test
* process space
* add warning
* log format
* reduce n_cpu
* nested space
* hierarchical search space for CFO
* non hierarchical for bs
* unflatten hierarchical config
* connection error
* random sample
* config signature
* check ray version
* preprocess numpy array
* catboost preprocess
* time budget
* seed, verbose, hpo_method
* test cfocat
* shallow copy in flatten_dict
prevent lgbm model duplication
* match estimator name
* quantize and log
* test qloguniform and qrandint
* test qlograndint
* thread.running
Co-authored-by: Chi Wang <wang.chi@microsoft.com>
Co-authored-by: Qingyun Wu <qingyunwu@Qingyuns-MacBook-Pro-2.local>
* datetime feature engineering added.
* check if datetime in columns moved after drop check. Check if the new columns do not already exist.
* check the drop condition before to add new_column. In transform, check directly if new columns are present in num_column.
* check if new_column is in X.columns.
* fixed lint issue. update version to 0.4.1.
* pickle the AutoML object
* get best model per estimator
* test deberta
* stateless API
* prevent divide by zero
* test roberta
* BlendSearchTuner
* delta time
* reindex columns when dropping int-indexed columns
* test drop columns and small training data
* param set for ensemble builder
* fillna on copy
Co-authored-by: Chi Wang (MSR) <chiw@microsoft.com>
* v0.2.2
separate the HPO part into the module flaml.tune
enhanced implementation of FLOW^2, CFO and BlendSearch
support parallel tuning using ray tune
add support for sample_weight and generic fit arguments
enable mlflow logging
Co-authored-by: Chi Wang (MSR) <chiw@microsoft.com>
Co-authored-by: qingyun-wu <qw2ky@virginia.edu>
* set default logging level to INFO
* remove unnecessary import
* API future compatibility
* add test for customized learner
* test dependency
Co-authored-by: Chi Wang (MSR) <chiw@microsoft.com>