code: def classification(fname="classification.png"):
      # Create side-by-side axes grid
      _, axes = plt.subplots(ncols=2, figsize=(18, 6))
  
      # Add ClassificationReport to the reft
      data = load_spam(split=True)
      oz = ClassificationReport(
          MultinomialNB(), classes=["ham", "spam"], ax=axes[0]
      )
      oz.fit(data.X.train, data.y.train)
      oz.score(data.X.test, data.y.test)
      oz.finalize()
  
      # Add DiscriminationThreshold to the right
      data = load_spam(split=False)
      oz = DiscriminationThreshold(LogisticRegression(), ax=axes[1])
      oz.fit(data.X, data.y)
      oz.finalize()
  
      # Save figure
      path = os.path.join(FIGURES, fname)
      plt.tight_layout()
      plt.savefig(path)
  
imports: import os
  import argparse
  import numpy
  import pandas
  import matplotlib.pyplot
  from yellowbrick.features import Rank2D, RadViz
  from yellowbrick.model_selection import LearningCurve
  from yellowbrick.cluster import KElbowVisualizer, SilhouetteVisualizer
  from yellowbrick.classifier import ClassificationReport, DiscriminationThreshold
  from yellowbrick.regressor import ResidualsPlot, PredictionError, AlphaSelection
  from collections import namedtuple
  from sklearn.datasets import make_blobs
  from sklearn.naive_bayes import MultinomialNB
  from sklearn.ensemble import RandomForestRegressor
  from sklearn.cluster import MiniBatchKMeans, Birch
  from sklearn.model_selection import train_test_split
  from sklearn.linear_model import LassoCV, RidgeCV, LogisticRegression
label_desc: Use image node_id 7 for calling a global function with example usage: classification(fname) without return types