docs: def silhouette_score(self, data,  metric='euclidean', sample_size=None, random_state=None, **kwds):
          """
          Computes the mean Silhouette Coefficient of all samples (implicit evaluation)
  
          :param data: The data that the clusters are generated from
          :param metric: the pairwise distance metric
          :param sample_size: the size of the sample to use computing the Silhouette Coefficient
          :param random_state: If an integer is given then it fixes its seed otherwise random.
          :param kwds: any further parameters that are passed to the distance function
          :return: the mean Silhouette Coefficient of all samples
          """
          return silhouette_score(data, self.get_labels(self), metric, sample_size, random_state, **kwds)