old_contents: from .costs import *
  
new_contents: from .costs import *
  
  import numpy as np
  from sklearn.utils import column_or_1d
  from sklearn.metrics import roc_auc_score
  
  def binary_classification_metrics(y_true, y_pred, y_prob):
      #TODO: update description
      """classification_metrics.
  
      This function cal...
  
      Parameters
      ----------
      y_true : array-like
          Ground truth (correct) labels.
  
      y_pred : array-like
          Predicted labels, as returned by a classifier.
  
      y_prob : array-like
          Predicted probabilities, as returned by a classifier.
  
      Returns
      -------
      dict(tp, fp, fn, tn, accuracy, recall, precision, f1score, auc, brier_loss)
  
      Examples
      --------
      >>> from costcla.metrics import binary_classification_metrics
      >>> y_pred = [0, 1, 0, 0]
      >>> y_true = [0, 1, 1, 0]
      >>> y_prob = [0.2, 0.8, 0.4, 0.3]
      >>> binary_classification_metrics(y_true, y_pred, y_prob)
      {'accuracy': 0.75,
       'auc': 0.75,
       'brier_loss': 0.13249999999999998,
       'f1score': 0.6666666666666666,
       'fn': 1.0,
       'fp': 0.0,
       'precision': 1.0,
       'recall': 0.5,
       'tn': 2.0,
       'tp': 1.0}
      """
  
      y_true = column_or_1d(y_true)
      y_pred = column_or_1d(y_pred)
      y_prob = column_or_1d(y_prob)
  
      n_samples = y_true.shape[0]
  
      tp = float((y_pred * y_true).sum())
      fp = float((y_pred[np.nonzero(y_true == 0)[0]]).sum())
      fn = float((y_true[np.nonzero(y_pred == 0)[0]]).sum())
      tn = float(n_samples - tp - fn - fp)
  
      accuracy = (tp + tn) / n_samples
      auc = roc_auc_score(y_true, y_pred)
      brier_loss = brier_score_loss(y_true, y_prob)
  
  
      if (tp + fp) == 0:
          precision = 0
      else:
          precision = tp / (tp + fp)
      if (tp + fn) == 0:
          recall = 0
      else:
          recall = tp / (tp + fn)
      if (recall + precision) == 0:
          f1score = 0
      else:
          f1score = 2 * (precision * recall) / (precision + recall)
  
      return dict(tp=tp, fp=fp, fn=fn, tn=tn, accuracy=accuracy, recall=recall,
                  precision=precision, f1score=f1score, auc=auc, brier_loss=brier_loss)
subject: add binary_classification_metrics