def soft_predict(
        self, embeddings: np.ndarray, quantile_proba_threshold: float = 0.8
    ) -> np.ndarray:
        """
        For each input, predict which clusters the inputs are most likely to belong to.

        Parameters
        ----------
        embeddings: np.ndarray
            Embeddings of inputs.
        quantile_proba_threshold: float
            The threshold at which to compute quantiles of the group scores.

        Returns
        -------
        np.ndarray
            An array of bools determining whether an input is predicted to belong to a cluster or not.
        """
        probs = self.predict_proba(embeddings=embeddings)
        quantiles = self.compute_quantile(probs, quantile_proba_threshold)
        return probs > quantiles[None]

        For each input, predict which clusters the inputs are most likely to belong to.

        Parameters
        ----------
        embeddings: np.ndarray
            Embeddings of inputs.
        quantile_proba_threshold: float
            The threshold at which to compute quantiles of the group scores.

        Returns
        -------
        np.ndarray
            An array of bools determining whether an input is predicted to belong to a cluster or not.
        
fortuna/hallucination/grouping/clustering/base.py