code: def execute():
      train_df, holdout_df = prep_data()
  
      env = Environment(
          train_dataset=train_df,
          results_path="HyperparameterHunterAssets",
          metrics=["roc_auc_score"],
          target_column=[
              f"target_{_}" for _ in range(10)
          ],  # 10 classes (one-hot-encoded output)
          holdout_dataset=holdout_df,
          cv_type="StratifiedKFold",
          cv_params=dict(n_splits=3, shuffle=True, random_state=True),
      )
  
      exp = CVExperiment(
          KerasClassifier,
          build_fn_exp,
          dict(batch_size=64, epochs=10, verbose=1),
      )
  
      opt = BayesianOptPro(iterations=10, random_state=32)
      opt.forge_experiment(
          KerasClassifier,
          build_fn_opt,
          dict(batch_size=64, epochs=10, verbose=0),
      )
      opt.go()
  
file_path: hyperparameter_hunter/examples/keras_examples/mnist_example.py
imports: from hyperparameter_hunter import Environment, CVExperiment, FeatureEngineer
  from hyperparameter_hunter import BayesianOptPro, Real, Integer, Categorical
  import os
  import pandas
  from keras.datasets import mnist
  from keras.layers import Dense, Dropout, Flatten, Conv2D, MaxPooling2D, Reshape
  from keras.models import Sequential
  from keras.wrappers.scikit_learn import KerasClassifier
label_desc: Use image node_id 4 for calling a global function with example usage: execute() without return types