code: def plot_boundary(model, partition, f1=0, f2=1):
      r"""Display a comparison of classifiers
  
      Parameters
      ----------
      model : alphapy.Model
          The model object with plotting specifications.
      partition : alphapy.Partition
          Reference to the dataset.
      f1 : int
          Number of the first feature to compare.
      f2 : int
          Number of the second feature to compare.
  
      Returns
      -------
      None : None
  
      References
      ----------
      Code excerpts from authors:
  
      * Gael Varoquaux
      * Andreas Muller
  
      http://scikit-learn.org/stable/auto_examples/classification/plot_classifier_comparison.html
  
      """
  
      logger.info("Generating Boundary Plots")
      pstring = datasets[partition]
  
      # For classification only
  
      if model.specs["model_type"] != ModelType.classification:
          logger.info("Boundary Plots are for classification only")
          return None
  
      # Get X, Y for correct partition
  
      X, y = get_partition_data(model, partition)
  
      # Subset for the two boundary features
  
      X = X[[f1, f2]]
  
      # Initialize plot
  
      n_classifiers = len(model.algolist)
      plt.figure(figsize=(3 * 2, n_classifiers * 2))
      plt.subplots_adjust(bottom=0.2, top=0.95)
  
      xx = np.linspace(3, 9, 100)
      yy = np.linspace(1, 5, 100).T
      xx, yy = np.meshgrid(xx, yy)
      Xfull = np.c_[xx.ravel(), yy.ravel()]
  
      # Plot each classification probability
  
      for index, name in enumerate(model.algolist):
          # predictions
          y_pred = model.preds[(algo, partition)]
          classif_rate = np.mean(y_pred.ravel() == y.ravel()) * 100
          logger.info(
              "Classification Rate for %s : %f " % (name, classif_rate)
          )
          # probabilities
          probas = model.probas[(algo, partition)]
          n_classes = np.unique(y_pred).size
          # plot each class
          for k in range(n_classes):
              plt.subplot(
                  n_classifiers, n_classes, index * n_classes + k + 1
              )
              plt.title("Class %d" % k)
              if k == 0:
                  plt.ylabel(name)
              imshow_handle = plt.imshow(
                  probas[:, k].reshape((100, 100)),
                  extent=(3, 9, 1, 5),
                  origin="lower",
              )
              plt.xticks(())
              plt.yticks(())
              idx = y_pred == k
              if idx.any():
                  plt.scatter(X[idx, 0], X[idx, 1], marker="o", c="k")
  
      # Plot the probability color bar
  
      ax = plt.axes([0.15, 0.04, 0.7, 0.05])
      plt.title("Probability")
      plt.colorbar(imshow_handle, cax=ax, orientation="horizontal")
  
      # Save the plot
      plot_dir = get_plot_directory(model)
      write_plot("matplotlib", figure, "boundary", pstring, plot_dir)
  
imports: from alphapy.estimators import get_estimators
  from alphapy.globals import BSEP, PSEP, SSEP, USEP
  from alphapy.globals import ModelType
  from alphapy.globals import Partition, datasets
  from alphapy.globals import Q1, Q3
  from alphapy.utilities import remove_list_items
  from bokeh.plotting import figure, show, output_file
  import itertools
  import logging
  import math
  import matplotlib
  import matplotlib.pyplot
  from mpl_toolkits.mplot3d import Axes3D
  import numpy
  import pandas
  from scipy import interp
  import seaborn
  from sklearn.calibration import calibration_curve
  from sklearn.inspection import partial_dependence
  from sklearn.inspection import plot_partial_dependence
  from sklearn.metrics import auc
  from sklearn.metrics import confusion_matrix
  from sklearn.metrics import roc_curve
  from sklearn.model_selection import cross_val_score
  from sklearn.model_selection import learning_curve
  from sklearn.model_selection import StratifiedKFold
  from sklearn.model_selection import train_test_split
  from sklearn.model_selection import validation_curve
  from sklearn.utils.multiclass import unique_labels
label_desc: Use image node_id 11 for calling a global function with example usage: plot_boundary(model, partition, f1, f2) and returns: None