class_docstr: Test ConfusionMatrix visualizer
class_docstr_tok: ["Test","ConfusionMatrix","visualizer"]
docstr: Test that visualizer can handle sklearn pipeline as model input
docstr_tok: ["Test","that","visualizer","can","handle","sklearn","pipeline","as","model","input"]
code: def test_pipeline_as_model_input(self):
      """
      Test that visualizer can handle sklearn pipeline as model input
      """
      X, y = load_occupancy(return_dataset=True).to_pandas()
      classes = ["unoccupied", "occupied"]
  
      X_train, X_test, y_train, y_test = tts(
          X, y, test_size=0.2, shuffle=True, random_state=42
      )
  
      model = Pipeline(
          [("minmax", MinMaxScaler()), ("svc", SVC(random_state=42))]
      )
  
      oz = ConfusionMatrix(model, classes=classes)
      oz.fit(X_train, y_train)
      oz.score(X_test, y_test)
      oz.finalize()
      self.assert_images_similar(oz, tol=12)
  
imports: import sys
  import pytest
  import yellowbrick
  import numpy.testing
  import matplotlib.pyplot
  from yellowbrick.exceptions import ModelError
  from yellowbrick.datasets import load_occupancy
  from yellowbrick.classifier.confusion_matrix import *
  from unittest.mock import patch
  from tests.fixtures import Dataset, Split
  from tests.base import IS_WINDOWS_OR_CONDA, VisualTestCase
  from sklearn.svm import SVC
  from sklearn.naive_bayes import GaussianNB
  from sklearn.preprocessing import LabelEncoder
  from sklearn.tree import DecisionTreeClassifier
  from sklearn.linear_model import LogisticRegression
  from sklearn.linear_model import PassiveAggressiveRegressor
  from sklearn.model_selection import train_test_split
  from sklearn.datasets import load_digits, make_classification
  from sklearn.preprocessing import MinMaxScaler
  from sklearn.pipeline import Pipeline
label_desc: Use image node_id 16 for calling the TestConfusionMatrix obj's underlying member method code with example usage: obj.test_pipeline_as_model_input() without return types