* 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>
* make performance test reproducible
* fix test error
* Doc update and disable logging
* document random_state and version
* remove hardcoded budget
* fix test error and dependency; close#777
* iloc
* Pending changes exported from your codespace
* Update flaml/automl.py
Co-authored-by: Chi Wang <wang.chi@microsoft.com>
* Update flaml/automl.py
Co-authored-by: Chi Wang <wang.chi@microsoft.com>
* Update flaml/ml.py
Co-authored-by: Chi Wang <wang.chi@microsoft.com>
* Update flaml/ml.py
Co-authored-by: Chi Wang <wang.chi@microsoft.com>
* Update website/docs/Examples/Integrate - Scikit-learn Pipeline.md
Co-authored-by: Chi Wang <wang.chi@microsoft.com>
* added documentation for new metric
* Update flaml/ml.py
Co-authored-by: Chi Wang <wang.chi@microsoft.com>
* minor notebook changes
* Update Integrate - Scikit-learn Pipeline.md
* Update notebook/automl_classification.ipynb
Co-authored-by: Chi Wang <wang.chi@microsoft.com>
* Update integrate_azureml.ipynb
Co-authored-by: Chi Wang <wang.chi@microsoft.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>
* support latest xgboost version
* Update test_classification.py
* Update
Exists problems when installing xgb1.6.1 in py3.6
* cleanup
* xgboost version
* remove time_budget_s in test
* remove redundancy
* stop support of python 3.6
Co-authored-by: zsk <shaokunzhang529@gmail.com>
Co-authored-by: Qingyun Wu <qingyun.wu@psu.edu>
* 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
* refactoring TransformersEstimator to support default and custom_hp
* handling starting_points not in search space
* addressing starting point more than max_iter
* fixing upper < lower bug
* add sklearn regressors as learners for ts_forecast task
* add direct forecasting strategy
warnings and errors for duplicate rows and missing values
- add preprocess for sklearn time series forecast
update automl.py
update test/test_forecast.py
* update model.py and test_forecast.py for cv eval_method
* add "hcrystalball" dependency in setup.py
* update automl.py
- add _validate_ts_data function for abstraction
- include xgb_limitdepth as a learner
* update model.py
- update search space for sklearn ts regressors
* update automl.py and test_forecast.py for numpy array inputs
* add documentations to model.py
* add documentation for removing catboost regressor
* update automl.py
- _validate_ts_data() function
Signed-off-by: Kevin Chen <chenkevin.8787@gmail.com>
* add support for customized splitters
* use the param split_type for feeding generators
* use single API for customized splitter and add test
* when task==TS_FORCAST, always set shuffle=False
* update docstr
Co-authored-by: Chi Wang <wang.chi@microsoft.com>
* 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
* update config if n_estimators is modified
* prediction as int
* handle the case n_estimators <= 0
* if trained and no budget to train more, return the trained model
* split_type=group for classification & regression
* set converge flag when no trial can be sampled
* require custom_metric to return dict for logging
close#218
* estimate time budget needed
* log info per iteration
* 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>