h2oai/wave-h2o-automl

Expand training interface to include advanced and expert options

ledell opened this issue · 4 comments

The current training interface is pretty minimal. I think we should expose all AutoML parameters, but hide most of them in the "Expert" settings section. We can expose another set as "Advanced". Here's the full list of AutoML params: https://docs.h2o.ai/h2o/latest-stable/h2o-docs/automl.html#automl-interface

Basic Data Parameters:

  • training frame
  • target column
  • classification (vs regression)

Advanced Data Parameters:

  • columns to remove (or conversely, x)
  • validation frame (? not very useful)
  • leaderboard frame
  • blending frame
  • fold column
  • weights column

Basic Training Parameters:

  • max_models
  • max_runtime_secs

Advanced:

  • balance_classes
  • class_sampling_factors
  • early stopping metric
  • early stopping rounds
  • nfolds
  • etc... all the others until include_algos

Expert:

  • preprocessing
  • modeling_plan
  • monotone constraints
  • exploitation ratio

Current look:

Screen Shot 2022-07-22 at 10 48 29 AM

Comments on the UI:

  • Original Training input should now have two buttons. One called "Advanced Options", and one called "Run AutoML" (currently "Next" or q.args.next_train). When you click on Advanced Options, it will bring you to another form, with those options, and another two buttons: "Expert Options" and "Run AutoML".

Will need to edit some these hash routes:

    # User starts training
    elif q.args.next_train:
        await train_model(q)

@akashbk314 Once you get the interface working w/o breaking Wave, then move on to actually populating the H2OAutoML function with the extra options:

aml = H2OAutoML(max_models=q.app.max_models, max_runtime_secs=max_runtime_secs, nfolds=q.app.nfolds,
                    stopping_metric=q.app.es_metric, stopping_rounds=q.app.es_rounds, seed=1)

Also can look at Flow for ideas on input: http://localhost:54321/flow/index.html

Some feedback from @tomasfryda:

Completed #45