Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Constrained Bayesian optimization #1034

Merged
merged 5 commits into from
Apr 22, 2021

Conversation

ValerioPerrone
Copy link
Contributor

Description of changes:

Extends the acquisition function to handle multiple outputs and implements constrained Bayesian optimization.

This is useful to tackle problems such as optimizing accuracy with an upper bound on memory requirements or on unfairness.

The main change is meanstd_acqfunc.py. The acquisition function now internally operates with a dictionary Dict[str, SurrogateModel], allowing for a model for each output metric. The standard case is a dictionary with a single model but the change is backward compatible: if a plain SurrogateModel is passed, the acquisition function automatically turns it into a one-key dictionary.

Other key changes:

  • Implemented CEIAcquisitionFunction and EIpuAcquisitionFunction, two multi-output acquisition functions. These require the predictions from both the main model and, respectively, the constraint or cost model, and return the head gradients wrt to the mean and standard deviation of each model.

  • Introduced 'constrained_bayesopt', a new searcher to run end-to-end experiments with constrained BO.

  • Extended GPModelPendingCandidateStateTransformer to support multiple models with a shared state.

Testing

  • All previous tests pass. The behavior of existing code is unaffected by the acquisition function refactoring.

  • test_bayesopt_eipu.py: tests cost-aware EI, an example of multi-output acquisition function.

  • test_bayesopt_cei.py: tests the constrained EI. This includes tests with/without MCMC, with/without fantasizing, and with/without feasible candidates.

  • test_multi_output_searcher.py: tests the constrained BO searcher.

@ValerioPerrone ValerioPerrone requested a review from mseeger March 25, 2021 10:44
@mseeger mseeger requested a review from gradientsky March 25, 2021 10:47
@szha
Copy link

szha commented Mar 25, 2021

Job PR-1034-1 is done.
Docs are uploaded to http://autogluon-staging.s3-website-us-west-2.amazonaws.com/PR-1034/1/index.html

@@ -0,0 +1,262 @@
from typing import Callable, Dict, Type, Optional, Any
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A general thought: This is a lot of changes, do we think it makes sense to have an entire submodule autogluon.search dedicated to this code / searcher code in general? This could be an optional dependency for other modules which would allow to plug-in searcher backends. This would lighten the autogluon.core code and ensure that the blast radius of searcher changes are contained within the searcher module.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This would also make migration easier if we eventually move the searcher logic to ray or some similar package.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In fact, we will move all this code out of the AutoGluon codebase and bring it back as a dependence. We are currently working on this full steam, our code would then work on AutoGluon, but also on Ray Tune. In the end, this is the cleanest solution.

This will happen likely in April, latest in May.

Of course, we'll make sure everything will work just as before.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's great, I think that is the cleanest approach as well.

@szha
Copy link

szha commented Mar 26, 2021

Job PR-1034-2 is done.
Docs are uploaded to http://autogluon-staging.s3-website-us-west-2.amazonaws.com/PR-1034/2/index.html

@szha
Copy link

szha commented Apr 9, 2021

Job PR-1034-3 is done.
Docs are uploaded to http://autogluon-staging.s3-website-us-west-2.amazonaws.com/PR-1034/3/index.html

if self.do_profile:
self.profiler.stop('total_update')
# Create BO algorithm
initial_candidates_scorer = create_initial_candidates_scorer(
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Use keys for the arguments

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done.

return IndependentThompsonSampling(model, random_state=random_state)
else:
return acquisition_class(model)
return acquisition_class(model, active_output)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Use key: active_output=active_output

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done.

initial_scoring = kwargs.get('initial_scoring', 'acq_func')
opt_warmstart = kwargs.get('opt_warmstart', False)
# Constrained GP regression model
kernel = Matern52(dimension=hp_ranges_cs.ndarray_size(), ARD=True)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add comment: We need two GP models here, one for active metric, the other for constraint metric

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

BTW: You could make this really clean by making a temporary function which creates gpmodel, model_args, and then call that both in _create_common_objects and here. This way, we make sure this is done in the same way.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please do this, let us avoid copy&paste

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've factored it out as a common function.

(as dict) as single argument. One use case for this callback is
to store profiler records.
"""
self.active_metric_name = DEFAULT_METRIC
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These two seem to be parameters the user can pass elsewhere, e.g. in searcher_factory.py.

I think either way is OK (user can choose, or we fix them). Since these are internal names, it is fine to fix them. But please only do one of them.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've now fixed them as they are internal only.

@@ -101,7 +102,7 @@ def _create_common_objects(**kwargs):
model_args = GPModelArgs(
num_fantasy_samples=kwargs['num_fantasy_samples'],
random_seed=random_seed,
active_metric=DEFAULT_METRIC,
active_metric=kwargs.get('active_metric', DEFAULT_METRIC),
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since active_metric is just an internal name (right?), we can just fix it to DEFAULT_METRIC, no?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done.

# Common objects
hp_ranges_cs, random_seed, gpmodel, model_args, profiler, _map_reward, \
skip_optimization, debug_log = _create_common_objects(**kwargs)
constraint_metric_name = kwargs.get('constraint_metric', DEFAULT_CONSTRAINT_METRIC)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These are internal names, no?

Of course, the user-facing names (appearing in train_fn) must be configurable.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done.

@@ -234,6 +292,10 @@ def _common_defaults(is_hyperband: bool) -> (Set[str], dict, dict):
default_options['gp_resource_kernel'] = 'matern52'
default_options['resource_acq'] = 'bohb'
default_options['num_init_random'] = 10
if is_constrained:
default_options['active_metric'] = DEFAULT_METRIC
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See above. If these are internal, there is no value having the user set them. Correct me if I am wrong.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done. They are internal and fixed.

@szha
Copy link

szha commented Apr 13, 2021

Job PR-1034-5 is done.
Docs are uploaded to http://autogluon-staging.s3-website-us-west-2.amazonaws.com/PR-1034/5/index.html

# DEBUG: Supplied values are used only once
self._debug_fantasy_values = None

if self._use_single_model:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nitpick:
This could be done without copy&paste, something like this:

if self._use_single_model:
gpmodels = dictionarize_objective(self._gpmodel)
else:
gpmodels = self._gpmodel
output_models = {
GaussProcSurrogateModel(...)
for metric_name, gpmodel in gpmodels
}
if self._use_single_model:
self._model = output_models[self.active_metric]
else:
self._model = output_models

You are using dictionarize_objective elsewhere for this. That's elegant, but maybe the name is misleading then.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actually, please do this. We don't want c&p.

DEFAULT_CONSTRAINT_METRIC = 'constraint_metric'


def dictionarize_objective(x):
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OK, is there not a potential problem here?

  • In the code, you allow the user to define the active metric name, and only if not is DEFAULT_METRIC used
  • But in dictionarize_objective, DEFAULT_METRIC is hardcoded.

I'd prefer if the hardcoded names are used everywhere, no? There seems no advantage of the user choosing these names, because they are internal anyway.

@@ -116,6 +143,10 @@ def backward_gradient(
pass


# Useful type that allows for a dictionary mapping each output name to a SurrogateModel
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you expand this docstring? This type def is used all over the place. Please do explain why this is sometimes a dict.



DEFAULT_ACQUISITION_FUNCTION = EIAcquisitionFunction
DEFAULT_LOCAL_OPTIMIZER_CLASS = LBFGSOptimizeAcquisition
DEFAULT_NUM_INITIAL_CANDIDATES = 250
DEFAULT_NUM_INITIAL_RANDOM_EVALUATIONS = 3
DEFAULT_METRIC = 'active_metric'
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there a good reason for moving this to base_classes, and not leave it here?

I've never been a big fan of this defaults.py, but the intention was to collect constants here, and why not? Can't you import from base_classes?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The reason is that EIAcquisitionfunction requires it, resulting in a circular import.

_gp_searcher = kwargs.get('_constrained_gp_searcher')
if _gp_searcher is None:
kwargs['configspace'] = configspace
if 'initial_scoring' in kwargs:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why not just:
self.initial_scoring = 'acq_func'
assert (...)

config_cs = self._to_config_cs(config)
self.gp_searcher.update(
config_cs, reward=kwargs[self._reward_attribute],
constraint=kwargs[DEFAULT_CONSTRAINT_METRIC])
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Again, DEFAULT_CONSTRAINT_METRIC hardcoded here. Please make it hardcoded everywhere then, do not let the user choose.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh wait, no! This name is user facing. You cannot use DEFAULT_CONSTRAINT_METRIC here, you need to use something like self._constraint_attribute !

OK, there are:

  • Internal names, in internal searcher code: You can fix them and hardcode
  • User facing names, which appear in train_fn. These have to be arguments, of course

Copy link
Contributor Author

@ValerioPerrone ValerioPerrone Apr 16, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for your comments. I've addressed them in the following commit. I've now created a self._constraint_attribute, which is user facing, and hardcoded the rest.

@mseeger
Copy link
Contributor

mseeger commented Apr 15, 2021

I am OK once my comments from yesterday are addressed. In particular, the scheduler needs a _constraint_attribute attribute which can be passed in. I'd also strongly prefer the internal names of these metrics not to be user-selectable, this is just creating confusion.

@szha
Copy link

szha commented Apr 16, 2021

Job PR-1034-7 is done.
Docs are uploaded to http://autogluon-staging.s3-website-us-west-2.amazonaws.com/PR-1034/7/index.html

@mseeger
Copy link
Contributor

mseeger commented Apr 19, 2021

OK,

@mseeger mseeger closed this Apr 19, 2021
@mseeger mseeger reopened this Apr 19, 2021
@mseeger
Copy link
Contributor

mseeger commented Apr 21, 2021

Any cycles for this one? This code is the basis for a tutorial on Fair HPO, which has been published now, and which would also go into a blog post, creating visibility for AG.

Copy link
Contributor

@Innixma Innixma left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good in terms of not altering much existing functionality that is actively used by submodules. I don't have context in terms of the actual changes themselves, so I'm deferring to @mseeger for that.

I'm ok to merge, @mseeger feel free to merge whenever you are ready.

@mseeger mseeger merged commit 72ef8f8 into autogluon:master Apr 22, 2021
taesup-aws pushed a commit to taesup-aws/autogluon that referenced this pull request May 6, 2021
Tabular: Re-order NN model priority (autogluon#1059)

Tabular: Added Adaptive Early Stopping (autogluon#1042)

* Tabular: Added AdaptiveES, default adaptive to LightGBM

* ag.es -> ag.early_stop

* addressed comments

Tabular: Upgraded CatBoost to v0.25 (autogluon#1064)

Tabular: Added extra_metrics argument to leaderboard (autogluon#1058)

* Tabular: Added extra_metrics argument to leaderboard

* addressed comments

Upgrade psutil and scipy (autogluon#1072)

Tabular: Added efficient OOF functionality to RF/XT models (autogluon#1066)

* Tabular: Added efficient OOF functionality to RF/XT models

* addressed comments, disabled RF/XT use_child_oof by default

Tabular: Adjusted per-level stack time (autogluon#1075)

* Tabular: Added efficient OOF functionality to RF/XT models

* addressed comments, disabled RF/XT use_child_oof by default

* Tabular: Adjusted stack time limit allocation

Constrained Bayesian optimization (autogluon#1034)

* Constrained Bayesian optimization

* Comments from Matthias

* Fix random_seed keyword

* constraint_attribute + other comments

* Fix import

Co-authored-by: Valerio Perrone <vperrone@amazon.com>

Refactoring of FIFOScheduler, HyperbandScheduler: self.time_out bette… (autogluon#1050)

* Refactoring of FIFOScheduler, HyperbandScheduler: self.time_out better respected by stopping jobs when they run over

* Added an option and warning concerning the changed meaning of 'time_out'

* Removed code to add time_this_iter to result in reporter (buggy, and not used)

update predict_proba return (autogluon#1044)

* update predict_proba return

* non-api breaking

* bump

* update format

* update label format and predict_proba

* add test

* fix d8

* remove squeeze

* fix

* fix incorrect class mapping, force it align with label column

* fix

* fix label

* fix sorted list

* fix

* reset labels

* fix test

* address comments

* fix test

* fix

* label

* test for custom label

Vision: Limited gluoncv version (autogluon#1081)

Tabular: RF/XT Efficient OOB (autogluon#1082)

* Tabular: Enabled efficient OOB for RF/XT

* Tabular: Removed min_samples_leaf

* 300 estimators

Tabular: Refactored evaluate/evaluate_predictions (autogluon#1080)

* Tabular: Refactored evaluate/evaluate_predictions

* minor fix

Tabular: Reorder model priority (autogluon#1084)

* Tabular: Enabled efficient OOB for RF/XT

* Tabular: Removed min_samples_leaf

* 300 estimators

* Tabular: Reordered model training priority

* added memory check before training XGBoost

* minor update

* fix xgboost

Updated to v0.2.0 (autogluon#1086)

Restricted sklearn to >=0.23.2 (autogluon#1088)

Update to 0.2.1 (autogluon#1087)

TextPredictor fails if eval_metric = 'average_precision' (autogluon#1092)

* TextPredictor fails if eval_metric = 'average_precision'
Fixes autogluon#1085

* TextPredictor fails if eval_metric = 'average_precision'
Fixes autogluon#1085

Co-authored-by: Rohit Jain <rohit@thetalake.com>

upgrade SHAP notebooks (autogluon#1089)

tell users to search closed issues (autogluon#1095)

Added tutorial / API reference table to README.md (autogluon#1093)

Tabular: Added ImagePredictorModel (autogluon#1041)

* Tabular: Added ImagePredictorModel

* Added ImagePredictorModel unittest

* revert accidental minimum_cat_count change

* addressed comments

* addressed comments

* Updated after ImagePredictor refactor

* minor fix

* Addressed comments

add `tabular_nn_torch.py`
taesup-aws pushed a commit to taesup-aws/autogluon that referenced this pull request May 6, 2021
Tabular: Re-order NN model priority (autogluon#1059)

Tabular: Added Adaptive Early Stopping (autogluon#1042)

* Tabular: Added AdaptiveES, default adaptive to LightGBM

* ag.es -> ag.early_stop

* addressed comments

Tabular: Upgraded CatBoost to v0.25 (autogluon#1064)

Tabular: Added extra_metrics argument to leaderboard (autogluon#1058)

* Tabular: Added extra_metrics argument to leaderboard

* addressed comments

Upgrade psutil and scipy (autogluon#1072)

Tabular: Added efficient OOF functionality to RF/XT models (autogluon#1066)

* Tabular: Added efficient OOF functionality to RF/XT models

* addressed comments, disabled RF/XT use_child_oof by default

Tabular: Adjusted per-level stack time (autogluon#1075)

* Tabular: Added efficient OOF functionality to RF/XT models

* addressed comments, disabled RF/XT use_child_oof by default

* Tabular: Adjusted stack time limit allocation

Constrained Bayesian optimization (autogluon#1034)

* Constrained Bayesian optimization

* Comments from Matthias

* Fix random_seed keyword

* constraint_attribute + other comments

* Fix import

Co-authored-by: Valerio Perrone <vperrone@amazon.com>

Refactoring of FIFOScheduler, HyperbandScheduler: self.time_out bette… (autogluon#1050)

* Refactoring of FIFOScheduler, HyperbandScheduler: self.time_out better respected by stopping jobs when they run over

* Added an option and warning concerning the changed meaning of 'time_out'

* Removed code to add time_this_iter to result in reporter (buggy, and not used)

update predict_proba return (autogluon#1044)

* update predict_proba return

* non-api breaking

* bump

* update format

* update label format and predict_proba

* add test

* fix d8

* remove squeeze

* fix

* fix incorrect class mapping, force it align with label column

* fix

* fix label

* fix sorted list

* fix

* reset labels

* fix test

* address comments

* fix test

* fix

* label

* test for custom label

Vision: Limited gluoncv version (autogluon#1081)

Tabular: RF/XT Efficient OOB (autogluon#1082)

* Tabular: Enabled efficient OOB for RF/XT

* Tabular: Removed min_samples_leaf

* 300 estimators

Tabular: Refactored evaluate/evaluate_predictions (autogluon#1080)

* Tabular: Refactored evaluate/evaluate_predictions

* minor fix

Tabular: Reorder model priority (autogluon#1084)

* Tabular: Enabled efficient OOB for RF/XT

* Tabular: Removed min_samples_leaf

* 300 estimators

* Tabular: Reordered model training priority

* added memory check before training XGBoost

* minor update

* fix xgboost

Updated to v0.2.0 (autogluon#1086)

Restricted sklearn to >=0.23.2 (autogluon#1088)

Update to 0.2.1 (autogluon#1087)

TextPredictor fails if eval_metric = 'average_precision' (autogluon#1092)

* TextPredictor fails if eval_metric = 'average_precision'
Fixes autogluon#1085

* TextPredictor fails if eval_metric = 'average_precision'
Fixes autogluon#1085

Co-authored-by: Rohit Jain <rohit@thetalake.com>

upgrade SHAP notebooks (autogluon#1089)

tell users to search closed issues (autogluon#1095)

Added tutorial / API reference table to README.md (autogluon#1093)

Tabular: Added ImagePredictorModel (autogluon#1041)

* Tabular: Added ImagePredictorModel

* Added ImagePredictorModel unittest

* revert accidental minimum_cat_count change

* addressed comments

* addressed comments

* Updated after ImagePredictor refactor

* minor fix

* Addressed comments

add `tabular_nn_torch.py`
taesup-aws pushed a commit to taesup-aws/autogluon that referenced this pull request May 6, 2021
author Nick Erickson <neerick@amazon.com> 1618432717 -0700
committer Taesup Kim <taesup@amazon.com> 1620282435 -0700

parent b257068
author Nick Erickson <neerick@amazon.com> 1618432717 -0700
committer Taesup Kim <taesup@amazon.com> 1620282343 -0700

parent b257068
author Nick Erickson <neerick@amazon.com> 1618432717 -0700
committer Taesup Kim <taesup@amazon.com> 1620282244 -0700

parent b257068
author Nick Erickson <neerick@amazon.com> 1618432717 -0700
committer Taesup Kim <taesup@amazon.com> 1620281986 -0700

Neural network based quantile regression models

Tabular: Re-order NN model priority (autogluon#1059)

Tabular: Added Adaptive Early Stopping (autogluon#1042)

* Tabular: Added AdaptiveES, default adaptive to LightGBM

* ag.es -> ag.early_stop

* addressed comments

Tabular: Upgraded CatBoost to v0.25 (autogluon#1064)

Tabular: Added extra_metrics argument to leaderboard (autogluon#1058)

* Tabular: Added extra_metrics argument to leaderboard

* addressed comments

Upgrade psutil and scipy (autogluon#1072)

Tabular: Added efficient OOF functionality to RF/XT models (autogluon#1066)

* Tabular: Added efficient OOF functionality to RF/XT models

* addressed comments, disabled RF/XT use_child_oof by default

Tabular: Adjusted per-level stack time (autogluon#1075)

* Tabular: Added efficient OOF functionality to RF/XT models

* addressed comments, disabled RF/XT use_child_oof by default

* Tabular: Adjusted stack time limit allocation

Constrained Bayesian optimization (autogluon#1034)

* Constrained Bayesian optimization

* Comments from Matthias

* Fix random_seed keyword

* constraint_attribute + other comments

* Fix import

Co-authored-by: Valerio Perrone <vperrone@amazon.com>

Refactoring of FIFOScheduler, HyperbandScheduler: self.time_out bette… (autogluon#1050)

* Refactoring of FIFOScheduler, HyperbandScheduler: self.time_out better respected by stopping jobs when they run over

* Added an option and warning concerning the changed meaning of 'time_out'

* Removed code to add time_this_iter to result in reporter (buggy, and not used)

update predict_proba return (autogluon#1044)

* update predict_proba return

* non-api breaking

* bump

* update format

* update label format and predict_proba

* add test

* fix d8

* remove squeeze

* fix

* fix incorrect class mapping, force it align with label column

* fix

* fix label

* fix sorted list

* fix

* reset labels

* fix test

* address comments

* fix test

* fix

* label

* test for custom label

Vision: Limited gluoncv version (autogluon#1081)

Tabular: RF/XT Efficient OOB (autogluon#1082)

* Tabular: Enabled efficient OOB for RF/XT

* Tabular: Removed min_samples_leaf

* 300 estimators

Tabular: Refactored evaluate/evaluate_predictions (autogluon#1080)

* Tabular: Refactored evaluate/evaluate_predictions

* minor fix

Tabular: Reorder model priority (autogluon#1084)

* Tabular: Enabled efficient OOB for RF/XT

* Tabular: Removed min_samples_leaf

* 300 estimators

* Tabular: Reordered model training priority

* added memory check before training XGBoost

* minor update

* fix xgboost

Updated to v0.2.0 (autogluon#1086)

Restricted sklearn to >=0.23.2 (autogluon#1088)

Update to 0.2.1 (autogluon#1087)

TextPredictor fails if eval_metric = 'average_precision' (autogluon#1092)

* TextPredictor fails if eval_metric = 'average_precision'
Fixes autogluon#1085

* TextPredictor fails if eval_metric = 'average_precision'
Fixes autogluon#1085

Co-authored-by: Rohit Jain <rohit@thetalake.com>

upgrade SHAP notebooks (autogluon#1089)

tell users to search closed issues (autogluon#1095)

Added tutorial / API reference table to README.md (autogluon#1093)

Tabular: Added ImagePredictorModel (autogluon#1041)

* Tabular: Added ImagePredictorModel

* Added ImagePredictorModel unittest

* revert accidental minimum_cat_count change

* addressed comments

* addressed comments

* Updated after ImagePredictor refactor

* minor fix

* Addressed comments

add `tabular_nn_torch.py`

Neural network based quantile regression models

Tabular: Re-order NN model priority (autogluon#1059)

Tabular: Added Adaptive Early Stopping (autogluon#1042)

* Tabular: Added AdaptiveES, default adaptive to LightGBM

* ag.es -> ag.early_stop

* addressed comments

Tabular: Upgraded CatBoost to v0.25 (autogluon#1064)

Tabular: Added extra_metrics argument to leaderboard (autogluon#1058)

* Tabular: Added extra_metrics argument to leaderboard

* addressed comments

Upgrade psutil and scipy (autogluon#1072)

Tabular: Added efficient OOF functionality to RF/XT models (autogluon#1066)

* Tabular: Added efficient OOF functionality to RF/XT models

* addressed comments, disabled RF/XT use_child_oof by default

Tabular: Adjusted per-level stack time (autogluon#1075)

* Tabular: Added efficient OOF functionality to RF/XT models

* addressed comments, disabled RF/XT use_child_oof by default

* Tabular: Adjusted stack time limit allocation

Constrained Bayesian optimization (autogluon#1034)

* Constrained Bayesian optimization

* Comments from Matthias

* Fix random_seed keyword

* constraint_attribute + other comments

* Fix import

Co-authored-by: Valerio Perrone <vperrone@amazon.com>

Refactoring of FIFOScheduler, HyperbandScheduler: self.time_out bette… (autogluon#1050)

* Refactoring of FIFOScheduler, HyperbandScheduler: self.time_out better respected by stopping jobs when they run over

* Added an option and warning concerning the changed meaning of 'time_out'

* Removed code to add time_this_iter to result in reporter (buggy, and not used)

update predict_proba return (autogluon#1044)

* update predict_proba return

* non-api breaking

* bump

* update format

* update label format and predict_proba

* add test

* fix d8

* remove squeeze

* fix

* fix incorrect class mapping, force it align with label column

* fix

* fix label

* fix sorted list

* fix

* reset labels

* fix test

* address comments

* fix test

* fix

* label

* test for custom label

Vision: Limited gluoncv version (autogluon#1081)

Tabular: RF/XT Efficient OOB (autogluon#1082)

* Tabular: Enabled efficient OOB for RF/XT

* Tabular: Removed min_samples_leaf

* 300 estimators

Tabular: Refactored evaluate/evaluate_predictions (autogluon#1080)

* Tabular: Refactored evaluate/evaluate_predictions

* minor fix

Tabular: Reorder model priority (autogluon#1084)

* Tabular: Enabled efficient OOB for RF/XT

* Tabular: Removed min_samples_leaf

* 300 estimators

* Tabular: Reordered model training priority

* added memory check before training XGBoost

* minor update

* fix xgboost

Updated to v0.2.0 (autogluon#1086)

Restricted sklearn to >=0.23.2 (autogluon#1088)

Update to 0.2.1 (autogluon#1087)

TextPredictor fails if eval_metric = 'average_precision' (autogluon#1092)

* TextPredictor fails if eval_metric = 'average_precision'
Fixes autogluon#1085

* TextPredictor fails if eval_metric = 'average_precision'
Fixes autogluon#1085

Co-authored-by: Rohit Jain <rohit@thetalake.com>

upgrade SHAP notebooks (autogluon#1089)

tell users to search closed issues (autogluon#1095)

Added tutorial / API reference table to README.md (autogluon#1093)

Tabular: Added ImagePredictorModel (autogluon#1041)

* Tabular: Added ImagePredictorModel

* Added ImagePredictorModel unittest

* revert accidental minimum_cat_count change

* addressed comments

* addressed comments

* Updated after ImagePredictor refactor

* minor fix

* Addressed comments

add `tabular_nn_torch.py`

Added license and downloads badges to README.md (autogluon#1057)

Tabular: Upgraded CatBoost to v0.25 (autogluon#1064)

Tabular: Adjusted per-level stack time (autogluon#1075)

* Tabular: Added efficient OOF functionality to RF/XT models

* addressed comments, disabled RF/XT use_child_oof by default

* Tabular: Adjusted stack time limit allocation

Constrained Bayesian optimization (autogluon#1034)

* Constrained Bayesian optimization

* Comments from Matthias

* Fix random_seed keyword

* constraint_attribute + other comments

* Fix import

Co-authored-by: Valerio Perrone <vperrone@amazon.com>

Refactoring of FIFOScheduler, HyperbandScheduler: self.time_out bette… (autogluon#1050)

* Refactoring of FIFOScheduler, HyperbandScheduler: self.time_out better respected by stopping jobs when they run over

* Added an option and warning concerning the changed meaning of 'time_out'

* Removed code to add time_this_iter to result in reporter (buggy, and not used)

Vision: Limited gluoncv version (autogluon#1081)

Tabular: RF/XT Efficient OOB (autogluon#1082)

* Tabular: Enabled efficient OOB for RF/XT

* Tabular: Removed min_samples_leaf

* 300 estimators

Tabular: Refactored evaluate/evaluate_predictions (autogluon#1080)

* Tabular: Refactored evaluate/evaluate_predictions

* minor fix

Tabular: Reorder model priority (autogluon#1084)

* Tabular: Enabled efficient OOB for RF/XT

* Tabular: Removed min_samples_leaf

* 300 estimators

* Tabular: Reordered model training priority

* added memory check before training XGBoost

* minor update

* fix xgboost

Updated to v0.2.0 (autogluon#1086)

Restricted sklearn to >=0.23.2 (autogluon#1088)

TextPredictor fails if eval_metric = 'average_precision' (autogluon#1092)

* TextPredictor fails if eval_metric = 'average_precision'
Fixes autogluon#1085

* TextPredictor fails if eval_metric = 'average_precision'
Fixes autogluon#1085

Co-authored-by: Rohit Jain <rohit@thetalake.com>

upgrade SHAP notebooks (autogluon#1089)

tell users to search closed issues (autogluon#1095)

Added tutorial / API reference table to README.md (autogluon#1093)

Tabular: Added ImagePredictorModel (autogluon#1041)

* Tabular: Added ImagePredictorModel

* Added ImagePredictorModel unittest

* revert accidental minimum_cat_count change

* addressed comments

* addressed comments

* Updated after ImagePredictor refactor

* minor fix

* Addressed comments

add `tabular_nn_torch.py`

parent b257068
author Taesup Kim <taesup@amazon.com> 1615327379 -0800
committer Taesup Kim <taesup@amazon.com> 1619138345 -0700

parent b257068
author Taesup Kim <taesup@amazon.com> 1615327379 -0800
committer Taesup Kim <taesup@amazon.com> 1619138344 -0700

parent b257068
author Taesup Kim <taesup@amazon.com> 1615327379 -0800
committer Taesup Kim <taesup@amazon.com> 1619138307 -0700

Neural network based quantile regression models (FastAI version, PyTorch version)

chages after initial review. (except lgb_model and rf_quantile)

Update tabular_nn_fastai.py

Reverting minor changes.

modifications for review.
(1) pinball_loss with sample_weight
(2) rebase
(3) remove lgb
(4) warning log for rf and xt
(5) remove unnecessary comments.

minor modifications.
(1) warning for RF/XT quantile regression models.
(2) error in `compute_weighted_metric`

add `test_quantile()` with some modifications.

Neural network based quantile regression models (FastAI version, PyTorch version)

initial commit for quantile regression.
(RandomForestMSE, ExtraTreesMSE, LightGBM, WeightedEnsemble_L2)

chages after initial review. (except lgb_model and rf_quantile)

Update tabular_nn_fastai.py

Reverting minor changes.

remove lgb setting and some modifications based on the review

Neural network based quantile regression models (FastAI version, PyTorch version)

enable HPO for QuantileNeuralNetwork

add `test_quantile()` with some modifications.

minor fix

minor fix

minor change

enable HPO for QuantileNeuralNetwork

modifications after intial review.

add `tabular_nn_torch.py`

modifcation after final review
taesup-aws added a commit to taesup-aws/autogluon that referenced this pull request May 6, 2021
author Taesup Kim <taesup@amazon.com> 1620282644 -0700
committer Taesup Kim <taesup@amazon.com> 1620283458 -0700

parent 665e0a9
author Taesup Kim <taesup@amazon.com> 1620282644 -0700
committer Taesup Kim <taesup@amazon.com> 1620283381 -0700

parent 665e0a9
author Taesup Kim <taesup@amazon.com> 1620282644 -0700
committer Taesup Kim <taesup@amazon.com> 1620283367 -0700

parent 665e0a9
author Taesup Kim <taesup@amazon.com> 1620282644 -0700
committer Taesup Kim <taesup@amazon.com> 1620283298 -0700

parent 665e0a9
author Taesup Kim <taesup@amazon.com> 1620282644 -0700
committer Taesup Kim <taesup@amazon.com> 1620283225 -0700

modification

Added license and downloads badges to README.md (autogluon#1057)

Tabular: Upgraded CatBoost to v0.25 (autogluon#1064)

Tabular: Adjusted per-level stack time (autogluon#1075)

* Tabular: Added efficient OOF functionality to RF/XT models

* addressed comments, disabled RF/XT use_child_oof by default

* Tabular: Adjusted stack time limit allocation

Constrained Bayesian optimization (autogluon#1034)

* Constrained Bayesian optimization

* Comments from Matthias

* Fix random_seed keyword

* constraint_attribute + other comments

* Fix import

Co-authored-by: Valerio Perrone <vperrone@amazon.com>

Refactoring of FIFOScheduler, HyperbandScheduler: self.time_out bette… (autogluon#1050)

* Refactoring of FIFOScheduler, HyperbandScheduler: self.time_out better respected by stopping jobs when they run over

* Added an option and warning concerning the changed meaning of 'time_out'

* Removed code to add time_this_iter to result in reporter (buggy, and not used)

Vision: Limited gluoncv version (autogluon#1081)

Tabular: RF/XT Efficient OOB (autogluon#1082)

* Tabular: Enabled efficient OOB for RF/XT

* Tabular: Removed min_samples_leaf

* 300 estimators

Tabular: Refactored evaluate/evaluate_predictions (autogluon#1080)

* Tabular: Refactored evaluate/evaluate_predictions

* minor fix

Updated to v0.2.0 (autogluon#1086)

Restricted sklearn to >=0.23.2 (autogluon#1088)

TextPredictor fails if eval_metric = 'average_precision' (autogluon#1092)

* TextPredictor fails if eval_metric = 'average_precision'
Fixes autogluon#1085

* TextPredictor fails if eval_metric = 'average_precision'
Fixes autogluon#1085

Co-authored-by: Rohit Jain <rohit@thetalake.com>

upgrade SHAP notebooks (autogluon#1089)

tell users to search closed issues (autogluon#1095)

Added tutorial / API reference table to README.md (autogluon#1093)
taesup-aws pushed a commit to taesup-aws/autogluon that referenced this pull request May 6, 2021
parent b257068
author Nick Erickson <neerick@amazon.com> 1618432717 -0700
committer Taesup Kim <taesup@amazon.com> 1620282435 -0700

parent b257068
author Nick Erickson <neerick@amazon.com> 1618432717 -0700
committer Taesup Kim <taesup@amazon.com> 1620282343 -0700

parent b257068
author Nick Erickson <neerick@amazon.com> 1618432717 -0700
committer Taesup Kim <taesup@amazon.com> 1620282244 -0700

parent b257068
author Nick Erickson <neerick@amazon.com> 1618432717 -0700
committer Taesup Kim <taesup@amazon.com> 1620281986 -0700

Neural network based quantile regression models

Tabular: Re-order NN model priority (autogluon#1059)

Tabular: Added Adaptive Early Stopping (autogluon#1042)

* Tabular: Added AdaptiveES, default adaptive to LightGBM

* ag.es -> ag.early_stop

* addressed comments

Tabular: Upgraded CatBoost to v0.25 (autogluon#1064)

Tabular: Added extra_metrics argument to leaderboard (autogluon#1058)

* Tabular: Added extra_metrics argument to leaderboard

* addressed comments

Upgrade psutil and scipy (autogluon#1072)

Tabular: Added efficient OOF functionality to RF/XT models (autogluon#1066)

* Tabular: Added efficient OOF functionality to RF/XT models

* addressed comments, disabled RF/XT use_child_oof by default

Tabular: Adjusted per-level stack time (autogluon#1075)

* Tabular: Added efficient OOF functionality to RF/XT models

* addressed comments, disabled RF/XT use_child_oof by default

* Tabular: Adjusted stack time limit allocation

Constrained Bayesian optimization (autogluon#1034)

* Constrained Bayesian optimization

* Comments from Matthias

* Fix random_seed keyword

* constraint_attribute + other comments

* Fix import

Co-authored-by: Valerio Perrone <vperrone@amazon.com>

Refactoring of FIFOScheduler, HyperbandScheduler: self.time_out bette… (autogluon#1050)

* Refactoring of FIFOScheduler, HyperbandScheduler: self.time_out better respected by stopping jobs when they run over

* Added an option and warning concerning the changed meaning of 'time_out'

* Removed code to add time_this_iter to result in reporter (buggy, and not used)

update predict_proba return (autogluon#1044)

* update predict_proba return

* non-api breaking

* bump

* update format

* update label format and predict_proba

* add test

* fix d8

* remove squeeze

* fix

* fix incorrect class mapping, force it align with label column

* fix

* fix label

* fix sorted list

* fix

* reset labels

* fix test

* address comments

* fix test

* fix

* label

* test for custom label

Vision: Limited gluoncv version (autogluon#1081)

Tabular: RF/XT Efficient OOB (autogluon#1082)

* Tabular: Enabled efficient OOB for RF/XT

* Tabular: Removed min_samples_leaf

* 300 estimators

Tabular: Refactored evaluate/evaluate_predictions (autogluon#1080)

* Tabular: Refactored evaluate/evaluate_predictions

* minor fix

Tabular: Reorder model priority (autogluon#1084)

* Tabular: Enabled efficient OOB for RF/XT

* Tabular: Removed min_samples_leaf

* 300 estimators

* Tabular: Reordered model training priority

* added memory check before training XGBoost

* minor update

* fix xgboost

Updated to v0.2.0 (autogluon#1086)

Restricted sklearn to >=0.23.2 (autogluon#1088)

Update to 0.2.1 (autogluon#1087)

TextPredictor fails if eval_metric = 'average_precision' (autogluon#1092)

* TextPredictor fails if eval_metric = 'average_precision'
Fixes autogluon#1085

* TextPredictor fails if eval_metric = 'average_precision'
Fixes autogluon#1085

Co-authored-by: Rohit Jain <rohit@thetalake.com>

upgrade SHAP notebooks (autogluon#1089)

tell users to search closed issues (autogluon#1095)

Added tutorial / API reference table to README.md (autogluon#1093)

Tabular: Added ImagePredictorModel (autogluon#1041)

* Tabular: Added ImagePredictorModel

* Added ImagePredictorModel unittest

* revert accidental minimum_cat_count change

* addressed comments

* addressed comments

* Updated after ImagePredictor refactor

* minor fix

* Addressed comments

add `tabular_nn_torch.py`

Neural network based quantile regression models

Tabular: Re-order NN model priority (autogluon#1059)

Tabular: Added Adaptive Early Stopping (autogluon#1042)

* Tabular: Added AdaptiveES, default adaptive to LightGBM

* ag.es -> ag.early_stop

* addressed comments

Tabular: Upgraded CatBoost to v0.25 (autogluon#1064)

Tabular: Added extra_metrics argument to leaderboard (autogluon#1058)

* Tabular: Added extra_metrics argument to leaderboard

* addressed comments

Upgrade psutil and scipy (autogluon#1072)

Tabular: Added efficient OOF functionality to RF/XT models (autogluon#1066)

* Tabular: Added efficient OOF functionality to RF/XT models

* addressed comments, disabled RF/XT use_child_oof by default

Tabular: Adjusted per-level stack time (autogluon#1075)

* Tabular: Added efficient OOF functionality to RF/XT models

* addressed comments, disabled RF/XT use_child_oof by default

* Tabular: Adjusted stack time limit allocation

Constrained Bayesian optimization (autogluon#1034)

* Constrained Bayesian optimization

* Comments from Matthias

* Fix random_seed keyword

* constraint_attribute + other comments

* Fix import

Co-authored-by: Valerio Perrone <vperrone@amazon.com>

Refactoring of FIFOScheduler, HyperbandScheduler: self.time_out bette… (autogluon#1050)

* Refactoring of FIFOScheduler, HyperbandScheduler: self.time_out better respected by stopping jobs when they run over

* Added an option and warning concerning the changed meaning of 'time_out'

* Removed code to add time_this_iter to result in reporter (buggy, and not used)

update predict_proba return (autogluon#1044)

* update predict_proba return

* non-api breaking

* bump

* update format

* update label format and predict_proba

* add test

* fix d8

* remove squeeze

* fix

* fix incorrect class mapping, force it align with label column

* fix

* fix label

* fix sorted list

* fix

* reset labels

* fix test

* address comments

* fix test

* fix

* label

* test for custom label

Vision: Limited gluoncv version (autogluon#1081)

Tabular: RF/XT Efficient OOB (autogluon#1082)

* Tabular: Enabled efficient OOB for RF/XT

* Tabular: Removed min_samples_leaf

* 300 estimators

Tabular: Refactored evaluate/evaluate_predictions (autogluon#1080)

* Tabular: Refactored evaluate/evaluate_predictions

* minor fix

Tabular: Reorder model priority (autogluon#1084)

* Tabular: Enabled efficient OOB for RF/XT

* Tabular: Removed min_samples_leaf

* 300 estimators

* Tabular: Reordered model training priority

* added memory check before training XGBoost

* minor update

* fix xgboost

Updated to v0.2.0 (autogluon#1086)

Restricted sklearn to >=0.23.2 (autogluon#1088)

Update to 0.2.1 (autogluon#1087)

TextPredictor fails if eval_metric = 'average_precision' (autogluon#1092)

* TextPredictor fails if eval_metric = 'average_precision'
Fixes autogluon#1085

* TextPredictor fails if eval_metric = 'average_precision'
Fixes autogluon#1085

Co-authored-by: Rohit Jain <rohit@thetalake.com>

upgrade SHAP notebooks (autogluon#1089)

tell users to search closed issues (autogluon#1095)

Added tutorial / API reference table to README.md (autogluon#1093)

Tabular: Added ImagePredictorModel (autogluon#1041)

* Tabular: Added ImagePredictorModel

* Added ImagePredictorModel unittest

* revert accidental minimum_cat_count change

* addressed comments

* addressed comments

* Updated after ImagePredictor refactor

* minor fix

* Addressed comments

add `tabular_nn_torch.py`

Added license and downloads badges to README.md (autogluon#1057)

Tabular: Upgraded CatBoost to v0.25 (autogluon#1064)

Tabular: Adjusted per-level stack time (autogluon#1075)

* Tabular: Added efficient OOF functionality to RF/XT models

* addressed comments, disabled RF/XT use_child_oof by default

* Tabular: Adjusted stack time limit allocation

Constrained Bayesian optimization (autogluon#1034)

* Constrained Bayesian optimization

* Comments from Matthias

* Fix random_seed keyword

* constraint_attribute + other comments

* Fix import

Co-authored-by: Valerio Perrone <vperrone@amazon.com>

Refactoring of FIFOScheduler, HyperbandScheduler: self.time_out bette… (autogluon#1050)

* Refactoring of FIFOScheduler, HyperbandScheduler: self.time_out better respected by stopping jobs when they run over

* Added an option and warning concerning the changed meaning of 'time_out'

* Removed code to add time_this_iter to result in reporter (buggy, and not used)

Vision: Limited gluoncv version (autogluon#1081)

Tabular: RF/XT Efficient OOB (autogluon#1082)

* Tabular: Enabled efficient OOB for RF/XT

* Tabular: Removed min_samples_leaf

* 300 estimators

Tabular: Refactored evaluate/evaluate_predictions (autogluon#1080)

* Tabular: Refactored evaluate/evaluate_predictions

* minor fix

Tabular: Reorder model priority (autogluon#1084)

* Tabular: Enabled efficient OOB for RF/XT

* Tabular: Removed min_samples_leaf

* 300 estimators

* Tabular: Reordered model training priority

* added memory check before training XGBoost

* minor update

* fix xgboost

Updated to v0.2.0 (autogluon#1086)

Restricted sklearn to >=0.23.2 (autogluon#1088)

TextPredictor fails if eval_metric = 'average_precision' (autogluon#1092)

* TextPredictor fails if eval_metric = 'average_precision'
Fixes autogluon#1085

* TextPredictor fails if eval_metric = 'average_precision'
Fixes autogluon#1085

Co-authored-by: Rohit Jain <rohit@thetalake.com>

upgrade SHAP notebooks (autogluon#1089)

tell users to search closed issues (autogluon#1095)

Added tutorial / API reference table to README.md (autogluon#1093)

Tabular: Added ImagePredictorModel (autogluon#1041)

* Tabular: Added ImagePredictorModel

* Added ImagePredictorModel unittest

* revert accidental minimum_cat_count change

* addressed comments

* addressed comments

* Updated after ImagePredictor refactor

* minor fix

* Addressed comments

add `tabular_nn_torch.py`

parent b257068
author Taesup Kim <taesup@amazon.com> 1615327379 -0800
committer Taesup Kim <taesup@amazon.com> 1619138345 -0700

parent b257068
author Taesup Kim <taesup@amazon.com> 1615327379 -0800
committer Taesup Kim <taesup@amazon.com> 1619138344 -0700

parent b257068
author Taesup Kim <taesup@amazon.com> 1615327379 -0800
committer Taesup Kim <taesup@amazon.com> 1619138307 -0700

Neural network based quantile regression models (FastAI version, PyTorch version)

chages after initial review. (except lgb_model and rf_quantile)

Update tabular_nn_fastai.py

Reverting minor changes.

modifications for review.
(1) pinball_loss with sample_weight
(2) rebase
(3) remove lgb
(4) warning log for rf and xt
(5) remove unnecessary comments.

minor modifications.
(1) warning for RF/XT quantile regression models.
(2) error in `compute_weighted_metric`

add `test_quantile()` with some modifications.

Neural network based quantile regression models (FastAI version, PyTorch version)

initial commit for quantile regression.
(RandomForestMSE, ExtraTreesMSE, LightGBM, WeightedEnsemble_L2)

chages after initial review. (except lgb_model and rf_quantile)

Update tabular_nn_fastai.py

Reverting minor changes.

remove lgb setting and some modifications based on the review

Neural network based quantile regression models (FastAI version, PyTorch version)

enable HPO for QuantileNeuralNetwork

add `test_quantile()` with some modifications.

minor fix

minor fix

minor change

enable HPO for QuantileNeuralNetwork

modifications after intial review.

add `tabular_nn_torch.py`

modifcation after final review

parent 665e0a9
author Taesup Kim <taesup@amazon.com> 1620282644 -0700
committer Taesup Kim <taesup@amazon.com> 1620283458 -0700

parent 665e0a9
author Taesup Kim <taesup@amazon.com> 1620282644 -0700
committer Taesup Kim <taesup@amazon.com> 1620283381 -0700

parent 665e0a9
author Taesup Kim <taesup@amazon.com> 1620282644 -0700
committer Taesup Kim <taesup@amazon.com> 1620283367 -0700

parent 665e0a9
author Taesup Kim <taesup@amazon.com> 1620282644 -0700
committer Taesup Kim <taesup@amazon.com> 1620283298 -0700

parent 665e0a9
author Taesup Kim <taesup@amazon.com> 1620282644 -0700
committer Taesup Kim <taesup@amazon.com> 1620283225 -0700

modification

Added license and downloads badges to README.md (autogluon#1057)

Tabular: Upgraded CatBoost to v0.25 (autogluon#1064)

Tabular: Adjusted per-level stack time (autogluon#1075)

* Tabular: Added efficient OOF functionality to RF/XT models

* addressed comments, disabled RF/XT use_child_oof by default

* Tabular: Adjusted stack time limit allocation

Constrained Bayesian optimization (autogluon#1034)

* Constrained Bayesian optimization

* Comments from Matthias

* Fix random_seed keyword

* constraint_attribute + other comments

* Fix import

Co-authored-by: Valerio Perrone <vperrone@amazon.com>

Refactoring of FIFOScheduler, HyperbandScheduler: self.time_out bette… (autogluon#1050)

* Refactoring of FIFOScheduler, HyperbandScheduler: self.time_out better respected by stopping jobs when they run over

* Added an option and warning concerning the changed meaning of 'time_out'

* Removed code to add time_this_iter to result in reporter (buggy, and not used)

Vision: Limited gluoncv version (autogluon#1081)

Tabular: RF/XT Efficient OOB (autogluon#1082)

* Tabular: Enabled efficient OOB for RF/XT

* Tabular: Removed min_samples_leaf

* 300 estimators

Tabular: Refactored evaluate/evaluate_predictions (autogluon#1080)

* Tabular: Refactored evaluate/evaluate_predictions

* minor fix

Updated to v0.2.0 (autogluon#1086)

Restricted sklearn to >=0.23.2 (autogluon#1088)

TextPredictor fails if eval_metric = 'average_precision' (autogluon#1092)

* TextPredictor fails if eval_metric = 'average_precision'
Fixes autogluon#1085

* TextPredictor fails if eval_metric = 'average_precision'
Fixes autogluon#1085

Co-authored-by: Rohit Jain <rohit@thetalake.com>

upgrade SHAP notebooks (autogluon#1089)

tell users to search closed issues (autogluon#1095)

Added tutorial / API reference table to README.md (autogluon#1093)
jwmueller pushed a commit that referenced this pull request May 7, 2021
* rebase and add quantile-nn

parent b257068
author Nick Erickson <neerick@amazon.com> 1618432717 -0700
committer Taesup Kim <taesup@amazon.com> 1620282435 -0700

parent b257068
author Nick Erickson <neerick@amazon.com> 1618432717 -0700
committer Taesup Kim <taesup@amazon.com> 1620282343 -0700

parent b257068
author Nick Erickson <neerick@amazon.com> 1618432717 -0700
committer Taesup Kim <taesup@amazon.com> 1620282244 -0700

parent b257068
author Nick Erickson <neerick@amazon.com> 1618432717 -0700
committer Taesup Kim <taesup@amazon.com> 1620281986 -0700

Neural network based quantile regression models

Tabular: Re-order NN model priority (#1059)

Tabular: Added Adaptive Early Stopping (#1042)

* Tabular: Added AdaptiveES, default adaptive to LightGBM

* ag.es -> ag.early_stop

* addressed comments

Tabular: Upgraded CatBoost to v0.25 (#1064)

Tabular: Added extra_metrics argument to leaderboard (#1058)

* Tabular: Added extra_metrics argument to leaderboard

* addressed comments

Upgrade psutil and scipy (#1072)

Tabular: Added efficient OOF functionality to RF/XT models (#1066)

* Tabular: Added efficient OOF functionality to RF/XT models

* addressed comments, disabled RF/XT use_child_oof by default

Tabular: Adjusted per-level stack time (#1075)

* Tabular: Added efficient OOF functionality to RF/XT models

* addressed comments, disabled RF/XT use_child_oof by default

* Tabular: Adjusted stack time limit allocation

Constrained Bayesian optimization (#1034)

* Constrained Bayesian optimization

* Comments from Matthias

* Fix random_seed keyword

* constraint_attribute + other comments

* Fix import

Co-authored-by: Valerio Perrone <vperrone@amazon.com>

Refactoring of FIFOScheduler, HyperbandScheduler: self.time_out bette… (#1050)

* Refactoring of FIFOScheduler, HyperbandScheduler: self.time_out better respected by stopping jobs when they run over

* Added an option and warning concerning the changed meaning of 'time_out'

* Removed code to add time_this_iter to result in reporter (buggy, and not used)

update predict_proba return (#1044)

* update predict_proba return

* non-api breaking

* bump

* update format

* update label format and predict_proba

* add test

* fix d8

* remove squeeze

* fix

* fix incorrect class mapping, force it align with label column

* fix

* fix label

* fix sorted list

* fix

* reset labels

* fix test

* address comments

* fix test

* fix

* label

* test for custom label

Vision: Limited gluoncv version (#1081)

Tabular: RF/XT Efficient OOB (#1082)

* Tabular: Enabled efficient OOB for RF/XT

* Tabular: Removed min_samples_leaf

* 300 estimators

Tabular: Refactored evaluate/evaluate_predictions (#1080)

* Tabular: Refactored evaluate/evaluate_predictions

* minor fix

Tabular: Reorder model priority (#1084)

* Tabular: Enabled efficient OOB for RF/XT

* Tabular: Removed min_samples_leaf

* 300 estimators

* Tabular: Reordered model training priority

* added memory check before training XGBoost

* minor update

* fix xgboost

Updated to v0.2.0 (#1086)

Restricted sklearn to >=0.23.2 (#1088)

Update to 0.2.1 (#1087)

TextPredictor fails if eval_metric = 'average_precision' (#1092)

* TextPredictor fails if eval_metric = 'average_precision'
Fixes #1085

* TextPredictor fails if eval_metric = 'average_precision'
Fixes #1085

Co-authored-by: Rohit Jain <rohit@thetalake.com>

upgrade SHAP notebooks (#1089)

tell users to search closed issues (#1095)

Added tutorial / API reference table to README.md (#1093)

Tabular: Added ImagePredictorModel (#1041)

* Tabular: Added ImagePredictorModel

* Added ImagePredictorModel unittest

* revert accidental minimum_cat_count change

* addressed comments

* addressed comments

* Updated after ImagePredictor refactor

* minor fix

* Addressed comments

add `tabular_nn_torch.py`

Neural network based quantile regression models

Tabular: Re-order NN model priority (#1059)

Tabular: Added Adaptive Early Stopping (#1042)

* Tabular: Added AdaptiveES, default adaptive to LightGBM

* ag.es -> ag.early_stop

* addressed comments

Tabular: Upgraded CatBoost to v0.25 (#1064)

Tabular: Added extra_metrics argument to leaderboard (#1058)

* Tabular: Added extra_metrics argument to leaderboard

* addressed comments

Upgrade psutil and scipy (#1072)

Tabular: Added efficient OOF functionality to RF/XT models (#1066)

* Tabular: Added efficient OOF functionality to RF/XT models

* addressed comments, disabled RF/XT use_child_oof by default

Tabular: Adjusted per-level stack time (#1075)

* Tabular: Added efficient OOF functionality to RF/XT models

* addressed comments, disabled RF/XT use_child_oof by default

* Tabular: Adjusted stack time limit allocation

Constrained Bayesian optimization (#1034)

* Constrained Bayesian optimization

* Comments from Matthias

* Fix random_seed keyword

* constraint_attribute + other comments

* Fix import

Co-authored-by: Valerio Perrone <vperrone@amazon.com>

Refactoring of FIFOScheduler, HyperbandScheduler: self.time_out bette… (#1050)

* Refactoring of FIFOScheduler, HyperbandScheduler: self.time_out better respected by stopping jobs when they run over

* Added an option and warning concerning the changed meaning of 'time_out'

* Removed code to add time_this_iter to result in reporter (buggy, and not used)

update predict_proba return (#1044)

* update predict_proba return

* non-api breaking

* bump

* update format

* update label format and predict_proba

* add test

* fix d8

* remove squeeze

* fix

* fix incorrect class mapping, force it align with label column

* fix

* fix label

* fix sorted list

* fix

* reset labels

* fix test

* address comments

* fix test

* fix

* label

* test for custom label

Vision: Limited gluoncv version (#1081)

Tabular: RF/XT Efficient OOB (#1082)

* Tabular: Enabled efficient OOB for RF/XT

* Tabular: Removed min_samples_leaf

* 300 estimators

Tabular: Refactored evaluate/evaluate_predictions (#1080)

* Tabular: Refactored evaluate/evaluate_predictions

* minor fix

Tabular: Reorder model priority (#1084)

* Tabular: Enabled efficient OOB for RF/XT

* Tabular: Removed min_samples_leaf

* 300 estimators

* Tabular: Reordered model training priority

* added memory check before training XGBoost

* minor update

* fix xgboost

Updated to v0.2.0 (#1086)

Restricted sklearn to >=0.23.2 (#1088)

Update to 0.2.1 (#1087)

TextPredictor fails if eval_metric = 'average_precision' (#1092)

* TextPredictor fails if eval_metric = 'average_precision'
Fixes #1085

* TextPredictor fails if eval_metric = 'average_precision'
Fixes #1085

Co-authored-by: Rohit Jain <rohit@thetalake.com>

upgrade SHAP notebooks (#1089)

tell users to search closed issues (#1095)

Added tutorial / API reference table to README.md (#1093)

Tabular: Added ImagePredictorModel (#1041)

* Tabular: Added ImagePredictorModel

* Added ImagePredictorModel unittest

* revert accidental minimum_cat_count change

* addressed comments

* addressed comments

* Updated after ImagePredictor refactor

* minor fix

* Addressed comments

add `tabular_nn_torch.py`

Added license and downloads badges to README.md (#1057)

Tabular: Upgraded CatBoost to v0.25 (#1064)

Tabular: Adjusted per-level stack time (#1075)

* Tabular: Added efficient OOF functionality to RF/XT models

* addressed comments, disabled RF/XT use_child_oof by default

* Tabular: Adjusted stack time limit allocation

Constrained Bayesian optimization (#1034)

* Constrained Bayesian optimization

* Comments from Matthias

* Fix random_seed keyword

* constraint_attribute + other comments

* Fix import

Co-authored-by: Valerio Perrone <vperrone@amazon.com>

Refactoring of FIFOScheduler, HyperbandScheduler: self.time_out bette… (#1050)

* Refactoring of FIFOScheduler, HyperbandScheduler: self.time_out better respected by stopping jobs when they run over

* Added an option and warning concerning the changed meaning of 'time_out'

* Removed code to add time_this_iter to result in reporter (buggy, and not used)

Vision: Limited gluoncv version (#1081)

Tabular: RF/XT Efficient OOB (#1082)

* Tabular: Enabled efficient OOB for RF/XT

* Tabular: Removed min_samples_leaf

* 300 estimators

Tabular: Refactored evaluate/evaluate_predictions (#1080)

* Tabular: Refactored evaluate/evaluate_predictions

* minor fix

Tabular: Reorder model priority (#1084)

* Tabular: Enabled efficient OOB for RF/XT

* Tabular: Removed min_samples_leaf

* 300 estimators

* Tabular: Reordered model training priority

* added memory check before training XGBoost

* minor update

* fix xgboost

Updated to v0.2.0 (#1086)

Restricted sklearn to >=0.23.2 (#1088)

TextPredictor fails if eval_metric = 'average_precision' (#1092)

* TextPredictor fails if eval_metric = 'average_precision'
Fixes #1085

* TextPredictor fails if eval_metric = 'average_precision'
Fixes #1085

Co-authored-by: Rohit Jain <rohit@thetalake.com>

upgrade SHAP notebooks (#1089)

tell users to search closed issues (#1095)

Added tutorial / API reference table to README.md (#1093)

Tabular: Added ImagePredictorModel (#1041)

* Tabular: Added ImagePredictorModel

* Added ImagePredictorModel unittest

* revert accidental minimum_cat_count change

* addressed comments

* addressed comments

* Updated after ImagePredictor refactor

* minor fix

* Addressed comments

add `tabular_nn_torch.py`

parent b257068
author Taesup Kim <taesup@amazon.com> 1615327379 -0800
committer Taesup Kim <taesup@amazon.com> 1619138345 -0700

parent b257068
author Taesup Kim <taesup@amazon.com> 1615327379 -0800
committer Taesup Kim <taesup@amazon.com> 1619138344 -0700

parent b257068
author Taesup Kim <taesup@amazon.com> 1615327379 -0800
committer Taesup Kim <taesup@amazon.com> 1619138307 -0700

Neural network based quantile regression models (FastAI version, PyTorch version)

chages after initial review. (except lgb_model and rf_quantile)

Update tabular_nn_fastai.py

Reverting minor changes.

modifications for review.
(1) pinball_loss with sample_weight
(2) rebase
(3) remove lgb
(4) warning log for rf and xt
(5) remove unnecessary comments.

minor modifications.
(1) warning for RF/XT quantile regression models.
(2) error in `compute_weighted_metric`

add `test_quantile()` with some modifications.

Neural network based quantile regression models (FastAI version, PyTorch version)

initial commit for quantile regression.
(RandomForestMSE, ExtraTreesMSE, LightGBM, WeightedEnsemble_L2)

chages after initial review. (except lgb_model and rf_quantile)

Update tabular_nn_fastai.py

Reverting minor changes.

remove lgb setting and some modifications based on the review

Neural network based quantile regression models (FastAI version, PyTorch version)

enable HPO for QuantileNeuralNetwork

add `test_quantile()` with some modifications.

minor fix

minor fix

minor change

enable HPO for QuantileNeuralNetwork

modifications after intial review.

add `tabular_nn_torch.py`

modifcation after final review

parent 665e0a9
author Taesup Kim <taesup@amazon.com> 1620282644 -0700
committer Taesup Kim <taesup@amazon.com> 1620283458 -0700

parent 665e0a9
author Taesup Kim <taesup@amazon.com> 1620282644 -0700
committer Taesup Kim <taesup@amazon.com> 1620283381 -0700

parent 665e0a9
author Taesup Kim <taesup@amazon.com> 1620282644 -0700
committer Taesup Kim <taesup@amazon.com> 1620283367 -0700

parent 665e0a9
author Taesup Kim <taesup@amazon.com> 1620282644 -0700
committer Taesup Kim <taesup@amazon.com> 1620283298 -0700

parent 665e0a9
author Taesup Kim <taesup@amazon.com> 1620282644 -0700
committer Taesup Kim <taesup@amazon.com> 1620283225 -0700

modification

Added license and downloads badges to README.md (#1057)

Tabular: Upgraded CatBoost to v0.25 (#1064)

Tabular: Adjusted per-level stack time (#1075)

* Tabular: Added efficient OOF functionality to RF/XT models

* addressed comments, disabled RF/XT use_child_oof by default

* Tabular: Adjusted stack time limit allocation

Constrained Bayesian optimization (#1034)

* Constrained Bayesian optimization

* Comments from Matthias

* Fix random_seed keyword

* constraint_attribute + other comments

* Fix import

Co-authored-by: Valerio Perrone <vperrone@amazon.com>

Refactoring of FIFOScheduler, HyperbandScheduler: self.time_out bette… (#1050)

* Refactoring of FIFOScheduler, HyperbandScheduler: self.time_out better respected by stopping jobs when they run over

* Added an option and warning concerning the changed meaning of 'time_out'

* Removed code to add time_this_iter to result in reporter (buggy, and not used)

Vision: Limited gluoncv version (#1081)

Tabular: RF/XT Efficient OOB (#1082)

* Tabular: Enabled efficient OOB for RF/XT

* Tabular: Removed min_samples_leaf

* 300 estimators

Tabular: Refactored evaluate/evaluate_predictions (#1080)

* Tabular: Refactored evaluate/evaluate_predictions

* minor fix

Updated to v0.2.0 (#1086)

Restricted sklearn to >=0.23.2 (#1088)

TextPredictor fails if eval_metric = 'average_precision' (#1092)

* TextPredictor fails if eval_metric = 'average_precision'
Fixes #1085

* TextPredictor fails if eval_metric = 'average_precision'
Fixes #1085

Co-authored-by: Rohit Jain <rohit@thetalake.com>

upgrade SHAP notebooks (#1089)

tell users to search closed issues (#1095)

Added tutorial / API reference table to README.md (#1093)

* modification

* rearrange modules.

Co-authored-by: Nick Erickson <neerick@amazon.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants