Computes summaries of measures using the discovered collections.

        :param no_singletons: if True, omits collections of length 1 from all measures
            and includes "no_singletons_" in the measure name.

        Adds the following measures to the self.measures dictionary, prefaced by
        COLLECTION_(similarity_measure)_(collection_type)_:
            - count: number of collections
            - size_mean: mean size of collections
            - size_max: size of largest collection
            - switch_count: number of changes between clusters

def compute_collection_measures(self, no_singletons=False):
        """ Computes summaries of measures using the discovered collections.

        :param no_singletons: if True, omits collections of length 1 from all measures
            and includes "no_singletons_" in the measure name.

        Adds the following measures to the self.measures dictionary, prefaced by
        COLLECTION_(similarity_measure)_(collection_type)_:
            - count: number of collections
            - size_mean: mean size of collections
            - size_max: size of largest collection
            - switch_count: number of changes between clusters
        """

        prefix = "COLLECTION_" + self.current_similarity_measure + "_" + self.current_collection_type + "_"

        if no_singletons:
            prefix += "no_singletons_"

        if no_singletons:
            collection_sizes_temp = [x for x in self.collection_sizes if x != 1]
        else: #include singletons
            collection_sizes_temp = self.collection_sizes

        self.measures[prefix + 'count'] = len(collection_sizes_temp)

        self.measures[prefix + 'size_mean'] = get_mean(collection_sizes_temp) \
            if self.measures[prefix + 'count'] > 0 else 0

        self.measures[prefix + 'size_max'] = max(collection_sizes_temp) \
            if len(collection_sizes_temp) > 0 else 0

        self.measures[prefix + 'switch_count'] = self.measures[prefix + 'count'] - 1