You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
We can follow the existing convention for GBM and XGBoost, which is to use an argument called monotone_constraints. [https://github.com/h2oai/h2o-3/blob/master/h2o-docs/src/product/data-science/algo-params/monotone_constraints.rst|https://github.com/h2oai/h2o-3/blob/master/h2o-docs/src/product/data-science/algo-params/monotone_constraints.rst|smart-link]
To avoid multiplication of algo-specific parameters, and to improve customizability of AutoML internals (at users own risks), I suggest to expose all algo-specific constraints through a single {{algo_parameters}} param.
will apply it only to all {{XGBoost}} models (more precisely, to all models created by the {{XGBoostStepsProvider}}, itself registered with name=XGBoost).
This can be used in combination to constraint multiple algorithms:
monotone_constraints to all models and grids supporting it (GBM + XGBoost)
ntrees=100 to all models and grids supporting it (DRF, GBM, XGBoost), overriding the value defined on backend.
ntrees=200 to all XGBoost models and grids, overriding the value defined on backend and ignoring the previous ntrees=100.
ntrees=[50, 100, 200] as an hyperparameter for all GBM grids, ignoring the default ntrees param or hyperparam for those grids. The array syntax is interpreted as an hyperparameter only if set explicitely for grids.
The text was updated successfully, but these errors were encountered:
Sebastien Poirier commented: [~accountid:557058:afd6e9a4-1891-4845-98ea-b5d34a2bc42c] didn’t we have a ticket about customizing algo parameters?
Just wondering if we could not provide a dictionary for those params instead of exposing them one by one.
Something like algo_parameters and for each algo in AutoML, if it supports a key, we set it… could it be risky?
for example in Py:
or we could combine both…
This would directly bring a lot of flexibility for users who want to tune AutoML instead of exposing params one after another.
Any thoughts?
h1. Initial demand
Expose monotonicity constraints to AutoML.
We can follow the existing convention for GBM and XGBoost, which is to use an argument called monotone_constraints. [https://github.com/h2oai/h2o-3/blob/master/h2o-docs/src/product/data-science/algo-params/monotone_constraints.rst|https://github.com/h2oai/h2o-3/blob/master/h2o-docs/src/product/data-science/algo-params/monotone_constraints.rst|smart-link]
[http://docs.h2o.ai/h2o/latest-stable/h2o-docs/data-science/gbm.html?highlight=monotone|http://docs.h2o.ai/h2o/latest-stable/h2o-docs/data-science/gbm.html?highlight=monotone]
[http://docs.h2o.ai/h2o/latest-stable/h2o-docs/data-science/xgboost.html?highlight=monotone|http://docs.h2o.ai/h2o/latest-stable/h2o-docs/data-science/xgboost.html?highlight=monotone]
h1. Extended Proposal
To avoid multiplication of algo-specific parameters, and to improve customizability of AutoML internals (at users own risks), I suggest to expose all algo-specific constraints through a single {{algo_parameters}} param.
For example, in Python:
{code:python}algo_parameters=dict(
monotone_constraints=dict(AGE=1)
){code}
will apply the given {{monotone_constraints}} to all models and grids that support this parameter.
Whereas:
{code:python}algo_parameters=dict(
XGBoost__monotone_constraints=dict(AGE=1)
){code}
will apply it only to all {{XGBoost}} models (more precisely, to all models created by the {{XGBoostStepsProvider}}, itself registered with name=XGBoost).
This can be used in combination to constraint multiple algorithms:
{code}algo_parameters=dict(
monotone_constraints=dict(AGE=1),
ntrees=100,
XGBoost__ntrees=200,
GBM__grids__ntrees=[50, 100, 200],
){code}
will apply given parameters as follow:
The text was updated successfully, but these errors were encountered: