code: def test_explanation_automl_binomial_classification():
      train = h2o.upload_file(
          pyunit_utils.locate("smalldata/logreg/prostate.csv")
      )
      y = "CAPSULE"
      train[y] = train[y].asfactor()
      # get at most one column from each type
      cols_to_test = []
      for col, typ in train.types.items():
          for ctt in cols_to_test:
              if typ == train.types[ctt] or col == y:
                  break
          else:
              cols_to_test.append(col)
  
      aml = H2OAutoML(seed=1234, max_models=5)
      aml.train(y=y, training_frame=train)
  
      # test variable importance heatmap plot
      assert isinstance(
          aml.varimp_heatmap().figure(), matplotlib.pyplot.Figure
      )
      matplotlib.pyplot.close()
  
      # test that num_of_features is propagated
      for n_features in [1, 3, 5]:
          assert n_features == len(
              aml.varimp_heatmap(num_of_features=n_features)
              .figure()
              .get_axes()[0]
              .get_yticks()
          )
          matplotlib.pyplot.close()
  
      assert (
          len(aml.varimp(use_pandas=False)) == 3
      )  # numpy.ndarray, colnames, rownames
      assert isinstance(aml.varimp(use_pandas=True), pandas.DataFrame)
  
      # test model correlation heatmap plot
      assert isinstance(
          aml.model_correlation_heatmap(train).figure(),
          matplotlib.pyplot.Figure,
      )
      matplotlib.pyplot.close()
  
      assert (
          len(aml.model_correlation(train, use_pandas=False)) == 2
      )  # numpy.ndarray, colnames and rownames both in the same order => represented by just one vector
      assert isinstance(
          aml.model_correlation(train, use_pandas=True),
          pandas.DataFrame,
      )
  
      # test partial dependences
      for col in cols_to_test:
          assert isinstance(
              aml.pd_multi_plot(train, col).figure(),
              matplotlib.pyplot.Figure,
          )
          matplotlib.pyplot.close()
  
      # test explain
      assert isinstance(
          aml.explain(train, render=False), H2OExplanation
      )
  
      # test explain row
      assert isinstance(
          aml.explain_row(train, 1, render=False), H2OExplanation
      )
  
      # Leaderboard slices work
      # test variable importance heatmap plot
      assert isinstance(
          aml.varimp_heatmap().figure(), matplotlib.pyplot.Figure
      )
      matplotlib.pyplot.close()
  
      leaderboard_without_SE = aml.leaderboard[
          ~aml.leaderboard["model_id"].grep(
              "^Stacked", output_logical=True
          ),
          :,
      ]
      assert (
          len(
              h2o.explanation.varimp(
                  leaderboard_without_SE, use_pandas=False
              )
          )
          == 3
      )  # numpy.ndarray, colnames, rownames
      assert isinstance(
          h2o.explanation.varimp(
              leaderboard_without_SE, use_pandas=True
          ),
          pandas.DataFrame,
      )
  
      # test model correlation heatmap plot
      assert isinstance(
          h2o.model_correlation_heatmap(
              leaderboard_without_SE, train
          ).figure(),
          matplotlib.pyplot.Figure,
      )
      matplotlib.pyplot.close()
  
      assert (
          len(
              h2o.explanation.model_correlation(
                  leaderboard_without_SE, train, use_pandas=False
              )
          )
          == 2
      )  # numpy.ndarray, colnames and rownames both in the same order => represented by just one vector
      assert isinstance(
          h2o.explanation.model_correlation(
              leaderboard_without_SE, train, use_pandas=True
          ),
          pandas.DataFrame,
      )
  
      # test partial dependences
      assert isinstance(
          h2o.pd_multi_plot(
              leaderboard_without_SE, train, cols_to_test[0]
          ).figure(),
          matplotlib.pyplot.Figure,
      )
      matplotlib.pyplot.close()
  
      # test explain
      assert isinstance(
          h2o.explain(leaderboard_without_SE, train, render=False),
          H2OExplanation,
      )
  
      # test explain row
      assert isinstance(
          h2o.explain_row(
              leaderboard_without_SE, train, 1, render=False
          ),
          H2OExplanation,
      )
  
imports: import os
  import sys
  import pandas
  from h2o.grid import H2OGridSearch
  import matplotlib
  import h2o
  import pandas
  import matplotlib.pyplot
  from tests import pyunit_utils, test_plot_result_saving
  from h2o.automl import H2OAutoML
  from h2o.estimators import *
  from h2o.explanation._explain import H2OExplanation
label_desc: Use image node_id 7 for calling a global function with example usage: test_explanation_automl_binomial_classification() without return types