class_docstr: Summarize given model performance on the train and test datasets based on selected scorers.
  
  Parameters
  ----------
  scorers: Union[Mapping[str, Union[str, Callable]], List[str]], default: None
      Scorers to override the default scorers, find more about the supported formats at
      https://docs.deepchecks.com/stable/user-guide/general/metrics_guide.html
  min_samples: int, default: 30
      Minimum number of samples required to calculate model performance. If scorer is per class, then
      this is the minimum number of samples per class.
  n_top_classes: int, default: 10
      Number of top classes to show in the label graphs. The top classes are determined by the show_classes_by
      parameter. if None, then all classes are shown.
  show_classes_by: str, default: 'test_largest'
      Specify which classes to show for label graphs, as the number of shown classes is limited
      by n_top_classes. Possible values:
      - 'train_largest': Show the n top largest train classes.
      - 'test_largest': Show the n top largest test classes.
  n_samples : int , default: 1_000_000
      number of samples to use for this check.
  random_state : int, default: 42
      random seed for all check internals.
  
  Notes
  -----
  Scorers are a convention of sklearn to evaluate a model.
  `See scorers documentation <https://scikit-learn.org/stable/modules/model_evaluation.html#scoring>`__
  A scorer is a function which accepts (model, X, y_true) and returns a float result which is the score.
  For every scorer higher scores are better than lower scores.
  
  You can create a scorer out of existing sklearn metrics:
  
  .. code-block:: python
  
      from sklearn.metrics import roc_auc_score, make_scorer
  
      training_labels = [1, 2, 3]
      auc_scorer = make_scorer(roc_auc_score, labels=training_labels, multi_class='ovr')
      # Note that the labels parameter is required for multi-class classification in metrics like roc_auc_score or
      # log_loss that use the predict_proba function of the model, in case that not all labels are present in the test
      # set.
  
  Or you can implement your own:
  
  .. code-block:: python
  
      from sklearn.metrics import make_scorer
  
  
      def my_mse(y_true, y_pred):
          return (y_true - y_pred) ** 2
  
  
      # Mark greater_is_better=False, since scorers always suppose to return
      # value to maximize.
      my_mse_scorer = make_scorer(my_mse, greater_is_better=False)
class_docstr_tok: ["Summarize","given","model","performance","on","the","train","and","test","datasets","based","on","selected","scorers",".","Parameters","--","--","--","--","--","scorers",":","Union","[","Mapping","[","str",",","Union","[","str",",","Callable","]","]",",","List","[","str","]","]",",","default",":","None","Scorers","to","override","the","default","scorers",",","find","more","about","the","supported","formats","at","https",":","\/\/docs.deepchecks.com\/stable\/user-guide\/general\/metrics_guide.html","min_samples",":","int",",","default",":","30","Minimum","number","of","samples","required","to","calculate","model","performance",".","If","scorer","is","per","class",",","then","this","is","the","minimum","number","of","samples","per","class",".","n_top_classes",":","int",",","default",":","10","Number","of","top","classes","to","show","in","the","label","graphs",".","The","top","classes","are","determined","by","the","show_classes_by","parameter",".","if","None",",","then","all","classes","are","shown",".","show_classes_by",":","str",",","default",":","'test_largest'","Specify","which","classes","to","show","for","label","graphs",",","as","the","number","of","shown","classes","is","limited","by","n_top_classes",".","Possible","values",":","-","'train_largest","'",":","Show","the","n","top","largest","train","classes",".","-","'test_largest","'",":","Show","the","n","top","largest","test","classes",".","n_samples",":","int",",","default",":","1_000_000","number","of","samples","to","use","for","this","check",".","random_state",":","int",",","default",":","42","random","seed","for","all","check","internals",".","Notes","--","--","-","Scorers","are","a","convention","of","sklearn","to","evaluate","a","model",".","`","See","scorers","documentation","<","https",":","\/\/scikit-learn.org\/stable\/modules\/model_evaluation.html","#","scoring",">","`","__","A","scorer","is","a","function","which","accepts","(","model",",","X",",","y_true",")","and","returns","a","float","result","which","is","the","score",".","For","every","scorer","higher","scores","are","better","than","lower","scores",".","You","can","create","a","scorer","out","of","existing","sklearn","metrics",":","..","code-block",":",":","python","from","sklearn.metrics","import","roc_auc_score",",","make_scorer","training_labels","=","[","1",",","2",",","3","]","auc_scorer","=","make_scorer","(","roc_auc_score",",","labels=training_labels",",","multi_class='ovr","'",")","#","Note","that","the","labels","parameter","is","required","for","multi-class","classification","in","metrics","like","roc_auc_score","or","#","log_loss","that","use","the","predict_proba","function","of","the","model",",","in","case","that","not","all","labels","are","present","in","the","test","#","set",".","Or","you","can","implement","your","own",":","..","code-block",":",":","python","from","sklearn.metrics","import","make_scorer","def","my_mse","(","y_true",",","y_pred",")",":","return","(","y_true","-","y_pred",")","*","*","2","#","Mark","greater_is_better=False",",","since","scorers","always","suppose","to","return","#","value","to","maximize",".","my_mse_scorer","=","make_scorer","(","my_mse",",","greater_is_better=False",")"]
code: def __init__(
      self,
      scorers: t.Union[
          t.Mapping[str, t.Union[str, t.Callable]], t.List[str], None
      ] = None,
      min_samples: int = 30,
      n_top_classes: int = 10,
      show_classes_by: str = "test_largest",
      n_samples: int = 1_000_000,
      random_state: int = 42,
      **kwargs,
  ):
      super().__init__(**kwargs)
      self.scorers = scorers
      self.min_samples = min_samples
      self.n_top_classes = n_top_classes
      if n_top_classes and show_classes_by not in [
          "train_largest",
          "test_largest",
      ]:
          raise DeepchecksValueError(
              f"Invalid value for show_classes_by: {show_classes_by}. Allowed values are "
              '"train_largest" and "test_largest".'
          )
      self.show_classes_by = show_classes_by
      self.n_samples = n_samples
      self.random_state = random_state
  
file_path: deepchecks/deepchecks/nlp/checks/model_evaluation/train_test_performance.py
imports: import typing
  from collections import Counter
  from numbers import Number
  import numpy
  import pandas
  from deepchecks.core import CheckResult
  from deepchecks.core.errors import DeepchecksValueError
  from deepchecks.nlp import Context, TrainTestCheck
  from deepchecks.nlp.metric_utils.scorers import infer_on_text_data
  from deepchecks.nlp.task_type import TaskType
  from deepchecks.nlp.text_data import TextData
  from deepchecks.nlp.utils.token_classification_utils import clean_iob_prefixes
  from deepchecks.utils.abstracts.train_test_performace import TrainTestPerformanceAbstract
label_desc: Use image node_id 1 to create a new TrainTestPerformance object from inherited base classes: TrainTestPerformanceAbstract, TrainTestCheck with example: obj = TrainTestPerformance(scorers, min_samples, n_top_classes, show_classes_by, n_samples, random_state)