code: def _get_conditional_probs(self):
          
          # TODO: Extend to higher-order cliques again
          self.c_probs = np.zeros((self.m * (self.k + 1), self.k))
          for y in range(1, self.k + 1):
              Ly = self.L[self.Y == y]
              for ly in range(self.k + 1):
                  self.c_probs[ly :: (self.k + 1), y - 1] = (
                      np.where(Ly == ly, 1, 0).sum(axis=0) / Ly.shape[0]
                  )
docs: Compute the true clique conditional probabilities P(\lC | Y) by
          counting given L, Y; we'll use this as ground truth to compare to.
  
          Note that this generates an attribute, self.c_probs, that has the same
          definition as returned by `LabelModel.get_conditional_probs`.
  
          TODO: Can compute these exactly if we want to implement that.