code: def calc_confusion_matrix(self, printout = False):
          
          if self.labels is None:
              raise DataError("Cannot calculate confusion matrix before data "
                              "has been read.")
  
          if self.preds is None:
              raise DataError("Predictions not available. Please run "
                              "`scores_to_preds` before calculating confusion "
                              "matrix")
  
          self.TP = np.sum(np.logical_and(self.preds == 1, self.labels == 1))
          self.TN = np.sum(np.logical_and(self.preds == 0, self.labels == 0))
          self.FP = np.sum(np.logical_and(self.preds == 1, self.labels == 0))
          self.FN = np.sum(np.logical_and(self.preds == 0, self.labels == 1))
  
          if printout:
              print("Contingency matrix is:")
              print("----------------------")
              print("TP: {} \t FN: {}".format(self.TP,self.FN))
              print("FP: {} \t TN: {}".format(self.FP,self.TN))
              print("\n")
docs: Calculates number of TP, FP, TN, FN