code: def score(self, X, y=None, **kwargs):
          
          y_pred = self.predict(X)
  
          scores = precision_recall_fscore_support(y, y_pred)
  
          # Calculate the percentage for the support metric
          # and store the percent in place of raw support counts
          self.support_score_ = scores[-1]
  
          scores = list(scores)
          scores[-1] = scores[-1] / scores[-1].sum()
  
          # Create a mapping composed of precision, recall, F1, and support
          # to their respective values
          scores = map(lambda s: dict(zip(self.classes_, s)), scores)
          self.scores_ = dict(zip(SCORES_KEYS, scores))
  
          # Remove support scores if not required
          if not self.support:
              self.scores_.pop('support')
  
          self.draw()
  
          # Retrieve and store the score attribute from the sklearn classifier
          self.score_ = self.estimator.score(X, y)
  
          return self.score_
docs: Generates the Scikit-Learn classification report.
  
          Parameters
          ----------
          X : ndarray or DataFrame of shape n x m
              A matrix of n instances with m features
  
          y : ndarray or Series of length n
              An array or series of target or class values
  
          Returns
          -------
  
          score_ : float
              Global accuracy score