function score = CalculateInversePurity(true_clustering, test_clustering) score = 0; num_clusters = max(true_clustering); for i = 1 : num_clusters clusters_for_current_label = test_clustering(true_clustering == i); majority = mode(clusters_for_current_label); n = size(true_clustering, 1); union_size = sum(clusters_for_current_label == majority); score = score + union_size * 1 / n; end