code: def silhouette_visualizer(
      estimator,
      X,
      y=None,
      ax=None,
      colors=None,
      is_fitted="auto",
      show=True,
      **kwargs,
  ):
      """Quick Method:
      The Silhouette Visualizer displays the silhouette coefficient for each
      sample on a per-cluster basis, visually evaluating the density and
      separation between clusters. The score is calculated by averaging the
      silhouette coefficient for each sample, computed as the difference
      between the average intra-cluster distance and the mean nearest-cluster
      distance for each sample, normalized by the maximum value. This produces a
      score between -1 and +1, where scores near +1 indicate high separation
      and scores near -1 indicate that the samples may have been assigned to
      the wrong cluster.
  
      Parameters
      ----------
      estimator : a Scikit-Learn clusterer
          Should be an instance of a centroidal clustering algorithm (``KMeans``
          or ``MiniBatchKMeans``). If the estimator is not fitted, it is fit when
          the visualizer is fitted, unless otherwise specified by ``is_fitted``.
  
      X : array-like of shape (n, m)
          A matrix or data frame with n instances and m features
  
      y : array-like of shape (n,), optional
          A vector or series representing the target for each instance
  
      ax : matplotlib Axes, default: None
          The axis to plot the figure on. If None is passed in the current axes
          will be used (or generated if required).
  
      colors : iterable or string, default: None
          A collection of colors to use for each cluster group. If there are
          fewer colors than cluster groups, colors will repeat. May also be a
          Yellowbrick or matplotlib colormap string.
  
      is_fitted : bool or str, default='auto'
          Specify if the wrapped estimator is already fitted. If False, the
          estimator will be fit when the visualizer is fit, otherwise, the
          estimator will not be modified. If 'auto' (default), a helper method
          will check if the estimator is fitted before fitting it again.
  
      show : bool, default: True
          If True, calls ``show()``, which in turn calls ``plt.show()`` however
          you cannot call ``plt.savefig`` from this signature, nor
          ``clear_figure``. If False, simply calls ``finalize()``
  
      kwargs : dict
          Keyword arguments that are passed to the base class and may influence
          the visualization as defined in other Visualizers.
  
      Returns
      -------
      viz : SilhouetteVisualizer
          The silhouette visualizer, fitted and finalized.
      """
  
      oz = SilhouetteVisualizer(
          estimator, ax=ax, colors=colors, is_fitted=is_fitted, **kwargs
      )
      oz.fit(X, y)
  
      if show:
          oz.show()
      else:
          oz.finalize()
  
      return oz
  
file_path: yellowbrick/yellowbrick/cluster/silhouette.py
imports: import numpy
  import matplotlib.ticker
  from sklearn.metrics import silhouette_score, silhouette_samples
  from yellowbrick.utils import check_fitted
  from yellowbrick.style import resolve_colors
  from yellowbrick.cluster.base import ClusteringScoreVisualizer
label_desc: Use image node_id 1 for calling a global function with example usage: silhouette_visualizer(estimator, X, y, ax, colors, is_fitted, show) and returns: oz