code: def _logistic_cost_loss(w, X, y, cost_mat, alpha):
      
  
      if w.shape[0] == w.size:
          # Only evaluating one w
          return _logistic_cost_loss_i(w, X, y, cost_mat, alpha)
  
      else:
          # Evaluating a set of w
          n_w = w.shape[0]
          out = np.zeros(n_w)
  
          for i in range(n_w):
              out[i] = _logistic_cost_loss_i(w[i], X, y, cost_mat, alpha)
  
          return out
docs: Computes the logistic loss.
  
      Parameters
      ----------
      w : array-like, shape (n_w, n_features,) or (n_w, n_features + 1,)
          Coefficient vector or matrix of coefficient.
  
      X : array-like, shape (n_samples, n_features)
          Training data.
  
      y : ndarray, shape (n_samples,)
          Array of labels.
  
      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.
  
      alpha : float
          Regularization parameter. alpha is equal to 1 / C.
  
      Returns
      -------
      out : float
          Logistic loss.