class_docstr: Confusion Matrix visualization.
  
  It is recommend to use
  :func:`~sklearn.metrics.ConfusionMatrixDisplay.from_estimator` or
  :func:`~sklearn.metrics.ConfusionMatrixDisplay.from_predictions` to
  create a :class:`ConfusionMatrixDisplay`. All parameters are stored as
  attributes.
  
  Read more in the :ref:`User Guide <visualizations>`.
  
  Parameters
  ----------
  confusion_matrix : ndarray of shape (n_classes, n_classes)
      Confusion matrix.
  
  display_labels : ndarray of shape (n_classes,), default=None
      Display labels for plot. If None, display labels are set from 0 to
      `n_classes - 1`.
  
  Attributes
  ----------
  im_ : matplotlib AxesImage
      Image representing the confusion matrix.
  
  text_ : ndarray of shape (n_classes, n_classes), dtype=matplotlib Text,             or None
      Array of matplotlib axes. `None` if `include_values` is false.
  
  ax_ : matplotlib Axes
      Axes with confusion matrix.
  
  figure_ : matplotlib Figure
      Figure containing the confusion matrix.
  
  See Also
  --------
  confusion_matrix : Compute Confusion Matrix to evaluate the accuracy of a
      classification.
  ConfusionMatrixDisplay.from_estimator : Plot the confusion matrix
      given an estimator, the data, and the label.
  ConfusionMatrixDisplay.from_predictions : Plot the confusion matrix
      given the true and predicted labels.
  
  Examples
  --------
  >>> import matplotlib.pyplot as plt
  >>> from sklearn.datasets import make_classification
  >>> from sklearn.metrics import confusion_matrix, ConfusionMatrixDisplay
  >>> from sklearn.model_selection import train_test_split
  >>> from sklearn.svm import SVC
  >>> X, y = make_classification(random_state=0)
  >>> X_train, X_test, y_train, y_test = train_test_split(X, y,
  ...                                                     random_state=0)
  >>> clf = SVC(random_state=0)
  >>> clf.fit(X_train, y_train)
  SVC(random_state=0)
  >>> predictions = clf.predict(X_test)
  >>> cm = confusion_matrix(y_test, predictions, labels=clf.classes_)
  >>> disp = ConfusionMatrixDisplay(confusion_matrix=cm,
  ...                               display_labels=clf.classes_)
  >>> disp.plot()
  <...>
  >>> plt.show()
class_docstr_tok: ["Confusion","Matrix","visualization",".","It","is","recommend","to","use",":","func",":","`","~sklearn.metrics.ConfusionMatrixDisplay.from_estimator","`","or",":","func",":","`","~sklearn.metrics.ConfusionMatrixDisplay.from_predictions","`","to","create","a",":","class",":","`","ConfusionMatrixDisplay","`",".","All","parameters","are","stored","as","attributes",".","Read","more","in","the",":","ref",":","`","User","Guide","<","visualizations",">","`",".","Parameters","--","--","--","--","--","confusion_matrix",":","ndarray","of","shape","(","n_classes",",","n_classes",")","Confusion","matrix",".","display_labels",":","ndarray","of","shape","(","n_classes",",",")",",","default=None","Display","labels","for","plot",".","If","None",",","display","labels","are","set","from","0","to","`","n_classes","-","1","`",".","Attributes","--","--","--","--","--","im_",":","matplotlib","AxesImage","Image","representing","the","confusion","matrix",".","text_",":","ndarray","of","shape","(","n_classes",",","n_classes",")",",","dtype=matplotlib","Text",",","or","None","Array","of","matplotlib","axes",".","`","None","`","if","`","include_values","`","is","false",".","ax_",":","matplotlib","Axes","Axes","with","confusion","matrix",".","figure_",":","matplotlib","Figure","Figure","containing","the","confusion","matrix",".","See","Also","--","--","--","--","confusion_matrix",":","Compute","Confusion","Matrix","to","evaluate","the","accuracy","of","a","classification",".","ConfusionMatrixDisplay.from_estimator",":","Plot","the","confusion","matrix","given","an","estimator",",","the","data",",","and","the","label",".","ConfusionMatrixDisplay.from_predictions",":","Plot","the","confusion","matrix","given","the","true","and","predicted","labels",".","Examples","--","--","--","--",">",">",">","import","matplotlib.pyplot","as","plt",">",">",">","from","sklearn.datasets","import","make_classification",">",">",">","from","sklearn.metrics","import","confusion_matrix",",","ConfusionMatrixDisplay",">",">",">","from","sklearn.model_selection","import","train_test_split",">",">",">","from","sklearn.svm","import","SVC",">",">",">","X",",","y","=","make_classification","(","random_state=0",")",">",">",">","X_train",",","X_test",",","y_train",",","y_test","=","train_test_split","(","X",",","y",",","...","random_state=0",")",">",">",">","clf","=","SVC","(","random_state=0",")",">",">",">","clf.fit","(","X_train",",","y_train",")","SVC","(","random_state=0",")",">",">",">","predictions","=","clf.predict","(","X_test",")",">",">",">","cm","=","confusion_matrix","(","y_test",",","predictions",",","labels=clf.classes_",")",">",">",">","disp","=","ConfusionMatrixDisplay","(","confusion_matrix=cm",",","...","display_labels=clf.classes_",")",">",">",">","disp.plot","(",")","<","...",">",">",">",">","plt.show","(",")"]
docstr: Plot Confusion Matrix given an estimator and some data.
  
  Read more in the :ref:`User Guide <confusion_matrix>`.
  
  .. versionadded:: 1.0
  
  Parameters
  ----------
  estimator : estimator instance
      Fitted classifier or a fitted :class:`~sklearn.pipeline.Pipeline`
      in which the last estimator is a classifier.
  
  X : {array-like, sparse matrix} of shape (n_samples, n_features)
      Input values.
  
  y : array-like of shape (n_samples,)
      Target values.
  
  labels : array-like of shape (n_classes,), default=None
      List of labels to index the confusion matrix. This may be used to
      reorder or select a subset of labels. If `None` is given, those
      that appear at least once in `y_true` or `y_pred` are used in
      sorted order.
  
  sample_weight : array-like of shape (n_samples,), default=None
      Sample weights.
  
  normalize : {'true', 'pred', 'all'}, default=None
      Either to normalize the counts display in the matrix:
  
      - if `'true'`, the confusion matrix is normalized over the true
        conditions (e.g. rows);
      - if `'pred'`, the confusion matrix is normalized over the
        predicted conditions (e.g. columns);
      - if `'all'`, the confusion matrix is normalized by the total
        number of samples;
      - if `None` (default), the confusion matrix will not be normalized.
  
  display_labels : array-like of shape (n_classes,), default=None
      Target names used for plotting. By default, `labels` will be used
      if it is defined, otherwise the unique labels of `y_true` and
      `y_pred` will be used.
  
  include_values : bool, default=True
      Includes values in confusion matrix.
  
  xticks_rotation : {'vertical', 'horizontal'} or float,                 default='horizontal'
      Rotation of xtick labels.
  
  values_format : str, default=None
      Format specification for values in confusion matrix. If `None`, the
      format specification is 'd' or '.2g' whichever is shorter.
  
  cmap : str or matplotlib Colormap, default='viridis'
      Colormap recognized by matplotlib.
  
  ax : matplotlib Axes, default=None
      Axes object to plot on. If `None`, a new figure and axes is
      created.
  
  colorbar : bool, default=True
      Whether or not to add a colorbar to the plot.
  
  im_kw : dict, default=None
      Dict with keywords passed to `matplotlib.pyplot.imshow` call.
  
  text_kw : dict, default=None
      Dict with keywords passed to `matplotlib.pyplot.text` call.
  
      .. versionadded:: 1.2
  
  Returns
  -------
  display : :class:`~sklearn.metrics.ConfusionMatrixDisplay`
  
  See Also
  --------
  ConfusionMatrixDisplay.from_predictions : Plot the confusion matrix
      given the true and predicted labels.
  
  Examples
  --------
  >>> import matplotlib.pyplot as plt
  >>> from sklearn.datasets import make_classification
  >>> from sklearn.metrics import ConfusionMatrixDisplay
  >>> from sklearn.model_selection import train_test_split
  >>> from sklearn.svm import SVC
  >>> X, y = make_classification(random_state=0)
  >>> X_train, X_test, y_train, y_test = train_test_split(
  ...         X, y, random_state=0)
  >>> clf = SVC(random_state=0)
  >>> clf.fit(X_train, y_train)
  SVC(random_state=0)
  >>> ConfusionMatrixDisplay.from_estimator(
  ...     clf, X_test, y_test)
  <...>
  >>> plt.show()
docstr_tok: ["Plot","Confusion","Matrix","given","an","estimator","and","some","data",".","Read","more","in","the",":","ref",":","`","User","Guide","<","confusion_matrix",">","`",".","..","versionadded",":",":","1.0","Parameters","--","--","--","--","--","estimator",":","estimator","instance","Fitted","classifier","or","a","fitted",":","class",":","`","~sklearn.pipeline.Pipeline","`","in","which","the","last","estimator","is","a","classifier",".","X",":","{","array-like",",","sparse","matrix","}","of","shape","(","n_samples",",","n_features",")","Input","values",".","y",":","array-like","of","shape","(","n_samples",",",")","Target","values",".","labels",":","array-like","of","shape","(","n_classes",",",")",",","default=None","List","of","labels","to","index","the","confusion","matrix",".","This","may","be","used","to","reorder","or","select","a","subset","of","labels",".","If","`","None","`","is","given",",","those","that","appear","at","least","once","in","`","y_true","`","or","`","y_pred","`","are","used","in","sorted","order",".","sample_weight",":","array-like","of","shape","(","n_samples",",",")",",","default=None","Sample","weights",".","normalize",":","{","'true","'",",","'pred","'",",","'all","'","}",",","default=None","Either","to","normalize","the","counts","display","in","the","matrix",":","-","if","`","'true","'","`",",","the","confusion","matrix","is","normalized","over","the","true","conditions","(","e.g",".","rows",")",";","-","if","`","'pred","'","`",",","the","confusion","matrix","is","normalized","over","the","predicted","conditions","(","e.g",".","columns",")",";","-","if","`","'all","'","`",",","the","confusion","matrix","is","normalized","by","the","total","number","of","samples",";","-","if","`","None","`","(","default",")",",","the","confusion","matrix","will","not","be","normalized",".","display_labels",":","array-like","of","shape","(","n_classes",",",")",",","default=None","Target","names","used","for","plotting",".","By","default",",","`","labels","`","will","be","used","if","it","is","defined",",","otherwise","the","unique","labels","of","`","y_true","`","and","`","y_pred","`","will","be","used",".","include_values",":","bool",",","default=True","Includes","values","in","confusion","matrix",".","xticks_rotation",":","{","'vertical","'",",","'horizontal","'","}","or","float",",","default='horizontal'","Rotation","of","xtick","labels",".","values_format",":","str",",","default=None","Format","specification","for","values","in","confusion","matrix",".","If","`","None","`",",","the","format","specification","is","'d","'","or","'.2g","'","whichever","is","shorter",".","cmap",":","str","or","matplotlib","Colormap",",","default='viridis'","Colormap","recognized","by","matplotlib",".","ax",":","matplotlib","Axes",",","default=None","Axes","object","to","plot","on",".","If","`","None","`",",","a","new","figure","and","axes","is","created",".","colorbar",":","bool",",","default=True","Whether","or","not","to","add","a","colorbar","to","the","plot",".","im_kw",":","dict",",","default=None","Dict","with","keywords","passed","to","`","matplotlib.pyplot.imshow","`","call",".","text_kw",":","dict",",","default=None","Dict","with","keywords","passed","to","`","matplotlib.pyplot.text","`","call",".","..","versionadded",":",":","1.2","Returns","--","--","--","-","display",":",":","class",":","`","~sklearn.metrics.ConfusionMatrixDisplay","`","See","Also","--","--","--","--","ConfusionMatrixDisplay.from_predictions",":","Plot","the","confusion","matrix","given","the","true","and","predicted","labels",".","Examples","--","--","--","--",">",">",">","import","matplotlib.pyplot","as","plt",">",">",">","from","sklearn.datasets","import","make_classification",">",">",">","from","sklearn.metrics","import","ConfusionMatrixDisplay",">",">",">","from","sklearn.model_selection","import","train_test_split",">",">",">","from","sklearn.svm","import","SVC",">",">",">","X",",","y","=","make_classification","(","random_state=0",")",">",">",">","X_train",",","X_test",",","y_train",",","y_test","=","train_test_split","(","...","X",",","y",",","random_state=0",")",">",">",">","clf","=","SVC","(","random_state=0",")",">",">",">","clf.fit","(","X_train",",","y_train",")","SVC","(","random_state=0",")",">",">",">","ConfusionMatrixDisplay.from_estimator","(","...","clf",",","X_test",",","y_test",")","<","...",">",">",">",">","plt.show","(",")"]
code: def from_estimator(
      cls,
      estimator,
      X,
      y,
      *,
      labels=None,
      sample_weight=None,
      normalize=None,
      display_labels=None,
      include_values=True,
      xticks_rotation="horizontal",
      values_format=None,
      cmap="viridis",
      ax=None,
      colorbar=True,
      im_kw=None,
      text_kw=None,
  ):
      """Plot Confusion Matrix given an estimator and some data.
  
          Read more in the :ref:`User Guide <confusion_matrix>`.
  
          .. versionadded:: 1.0
  
          Parameters
          ----------
          estimator : estimator instance
              Fitted classifier or a fitted :class:`~sklearn.pipeline.Pipeline`
              in which the last estimator is a classifier.
  
          X : {array-like, sparse matrix} of shape (n_samples, n_features)
              Input values.
  
          y : array-like of shape (n_samples,)
              Target values.
  
          labels : array-like of shape (n_classes,), default=None
              List of labels to index the confusion matrix. This may be used to
              reorder or select a subset of labels. If `None` is given, those
              that appear at least once in `y_true` or `y_pred` are used in
              sorted order.
  
          sample_weight : array-like of shape (n_samples,), default=None
              Sample weights.
  
          normalize : {'true', 'pred', 'all'}, default=None
              Either to normalize the counts display in the matrix:
  
              - if `'true'`, the confusion matrix is normalized over the true
                conditions (e.g. rows);
              - if `'pred'`, the confusion matrix is normalized over the
                predicted conditions (e.g. columns);
              - if `'all'`, the confusion matrix is normalized by the total
                number of samples;
              - if `None` (default), the confusion matrix will not be normalized.
  
          display_labels : array-like of shape (n_classes,), default=None
              Target names used for plotting. By default, `labels` will be used
              if it is defined, otherwise the unique labels of `y_true` and
              `y_pred` will be used.
  
          include_values : bool, default=True
              Includes values in confusion matrix.
  
          xticks_rotation : {'vertical', 'horizontal'} or float, \
                  default='horizontal'
              Rotation of xtick labels.
  
          values_format : str, default=None
              Format specification for values in confusion matrix. If `None`, the
              format specification is 'd' or '.2g' whichever is shorter.
  
          cmap : str or matplotlib Colormap, default='viridis'
              Colormap recognized by matplotlib.
  
          ax : matplotlib Axes, default=None
              Axes object to plot on. If `None`, a new figure and axes is
              created.
  
          colorbar : bool, default=True
              Whether or not to add a colorbar to the plot.
  
          im_kw : dict, default=None
              Dict with keywords passed to `matplotlib.pyplot.imshow` call.
  
          text_kw : dict, default=None
              Dict with keywords passed to `matplotlib.pyplot.text` call.
  
              .. versionadded:: 1.2
  
          Returns
          -------
          display : :class:`~sklearn.metrics.ConfusionMatrixDisplay`
  
          See Also
          --------
          ConfusionMatrixDisplay.from_predictions : Plot the confusion matrix
              given the true and predicted labels.
  
          Examples
          --------
          >>> import matplotlib.pyplot as plt
          >>> from sklearn.datasets import make_classification
          >>> from sklearn.metrics import ConfusionMatrixDisplay
          >>> from sklearn.model_selection import train_test_split
          >>> from sklearn.svm import SVC
          >>> X, y = make_classification(random_state=0)
          >>> X_train, X_test, y_train, y_test = train_test_split(
          ...         X, y, random_state=0)
          >>> clf = SVC(random_state=0)
          >>> clf.fit(X_train, y_train)
          SVC(random_state=0)
          >>> ConfusionMatrixDisplay.from_estimator(
          ...     clf, X_test, y_test)
          <...>
          >>> plt.show()
          """
      method_name = f"{cls.__name__}.from_estimator"
      check_matplotlib_support(method_name)
      if not is_classifier(estimator):
          raise ValueError(f"{method_name} only supports classifiers")
      y_pred = estimator.predict(X)
  
      return cls.from_predictions(
          y,
          y_pred,
          sample_weight=sample_weight,
          labels=labels,
          normalize=normalize,
          display_labels=display_labels,
          include_values=include_values,
          cmap=cmap,
          ax=ax,
          xticks_rotation=xticks_rotation,
          values_format=values_format,
          colorbar=colorbar,
          im_kw=im_kw,
          text_kw=text_kw,
      )
  
file_path: catboost/contrib/python/scikit-learn/py3/sklearn/metrics/_plot/confusion_matrix.py
imports: from itertools import product
  import numpy
  from ...base import is_classifier
  from ...utils import check_matplotlib_support
  from ...utils.multiclass import unique_labels
  from ..None import confusion_matrix
label_desc: Use image node_id 3 for calling the ConfusionMatrixDisplay obj's underlying member method code with example usage: obj.from_estimator(cls, estimator, X, y) and returns: cls