docs: def savings_score(y_true, y_pred, cost_mat):
      #TODO: update description
      """Savings score.
  
      This function calculates the savings cost of using y_pred on y_true with
      cost-matrix cost-mat, as the difference of y_pred and the cost_loss of a naive
      classification model.
  
      Parameters
      ----------
      y_true : array-like or label indicator matrix
          Ground truth (correct) labels.
  
      y_pred : array-like or label indicator matrix
          Predicted labels, as returned by a classifier.
  
      cost_mat : array-like of shape = [n_samples, 4]
          Cost matrix of the classification problem
          Where the columns represents the costs of: false positives, false negatives,
          true positives and true negatives, for each example.
  
      Returns
      -------
      score : float
          Savings of a using y_pred on y_true with cost-matrix cost-mat
  
          The best performance is 1.
  
      References
      ----------
      .. [1] A. Correa Bahnsen, A. Stojanovic, D.Aouada, B, Ottersten,
             `"Improving Credit Card Fraud Detection with Calibrated Probabilities" <http://albahnsen.com/files/%20Improving%20Credit%20Card%20Fraud%20Detection%20by%20using%20Calibrated%20Probabilities%20-%20Publish.pdf>`__, in Proceedings of the fourteenth SIAM International Conference on Data Mining,
             677-685, 2014.
  
      See also
      --------
      cost_loss
  
      Examples
      --------
      >>> import numpy as np
      >>> from costcla.metrics import savings_score, cost_loss
      >>> y_pred = [0, 1, 0, 0]
      >>> y_true = [0, 1, 1, 0]
      >>> cost_mat = np.array([[4, 1, 0, 0], [1, 3, 0, 0], [2, 3, 0, 0], [2, 1, 0, 0]])
      >>> savings_score(y_true, y_pred, cost_mat)
      0.5
      """
  
      #TODO: Check consistency of cost_mat
      y_true = column_or_1d(y_true)
      y_pred = column_or_1d(y_pred)
      n_samples = len(y_true)
  
      # Calculate the cost of naive prediction
      cost_base = min(cost_loss(y_true, np.zeros(n_samples), cost_mat),
                      cost_loss(y_true, np.ones(n_samples), cost_mat))
  
      cost = cost_loss(y_true, y_pred, cost_mat)
      return 1.0 - cost / cost_base