Ejemplo n.º 1
0
    for centroid in centroids:
        distance_from_centroid = centroid.distance_from(candidate_email)
        if distance_from_centroid < minimum_distance:
            centroid_to_be_assigned = centroid
            minimum_distance = distance_from_centroid

    centroid_to_be_assigned.add_to_cluster(candidate_email)

while calculator.check_all_clusters_homogeneity(centroids) == False:
    expanded_centroids = []
    new_centroids = []

    for centroid in centroids:
        if calculator.check_cluster_homogeneity(
                centroid.cluster_data) == False:
            new_centroids = centroid.split_cluster()

            for candidate_email in centroid.cluster_data:
                minimum_distance = 12
                distance_from_centroid = 12
                centroid_to_be_assigned = None

                for centroid in new_centroids:
                    distance_from_centroid = centroid.distance_from(
                        candidate_email)
                    if distance_from_centroid < minimum_distance:
                        centroid_to_be_assigned = centroid
                        minimum_distance = distance_from_centroid

                centroid_to_be_assigned.add_to_cluster(candidate_email)
            expanded_centroids.append(new_centroids[0])