Exemple #1
0
def run_example():
    """
    Load a data table, compute a list of clusters and
    plot a list of clusters

    Set DESKTOP = True/False to use either matplotlib or simplegui
    """
    data_table = load_data_table(DATA_3108_URL)

    singleton_list = []
    for line in data_table:
        singleton_list.append(alg_cluster.Cluster(set([line[0]]), line[1], line[2], line[3], line[4]))

    #cluster_list = sequential_clustering(singleton_list, 15)
    #print "Displaying", len(cluster_list), "sequential clusters"

    cluster_list = HW3.hierarchical_clustering(singleton_list, 15)
    print "Displaying", len(cluster_list), "hierarchical clusters"


    # cluster_list = HW3.kmeans_clustering(singleton_list,9, 5)
    # print "Displaying", len(cluster_list), "k-means clusters"

    #draw the clusters using matplotlib or simplegui
    if DESKTOP:
        alg_clusters_matplotlib.plot_clusters(data_table, cluster_list, False)
Exemple #2
0
def experiment_10(a):
    concatenate={}
    concatenate[111]=DATA_111_URL
    concatenate[290]=DATA_290_URL
    concatenate[896]=DATA_896_URL

    data_table = load_data_table(concatenate[a])

    ##for the hierarchical
    singleton_list = []
    for line in data_table:
        singleton_list.append(alg_cluster.Cluster(set([line[0]]), line[1], line[2], line[3], line[4]))

    for ele in x:
        singleton_list=HW3.hierarchical_clustering(singleton_list,ele)
        distortion=0
        for cluster in singleton_list:
            distortion+=cluster.cluster_error(data_table)
        if a==111:
            y_111_H.append(distortion)
        elif a==290:
            y_290_H.append(distortion)
        else:
            y_896_H.append(distortion)

    ##K-means
    singleton_list = []
    for line in data_table:
        singleton_list.append(alg_cluster.Cluster(set([line[0]]), line[1], line[2], line[3], line[4]))

    for ele in x:
        singleton_list=HW3.kmeans_clustering(singleton_list,ele,5)
        distortion=0
        for cluster in singleton_list:
            distortion+=cluster.cluster_error(data_table)
        if a==111:
            y_111_K.append(distortion)
        elif a==290:
            y_290_K.append(distortion)
        else:
            y_896_K.append(distortion)

    if a==111:
        plt.plot(x,y_111_H)
        plt.plot(x,y_111_K)
    elif a==290:
        plt.plot(x,y_290_H)
        plt.plot(x,y_290_K)
    else:
        plt.plot(x,y_896_H)
        plt.plot(x,y_896_K)

    plt.xlabel('Number of the clusters ')
    plt.ylabel('Total Distortion')
    plt.legend(['Hierarchical Clustering','K-mean clustering'])
    plt.title('Distortion comparison of two clustering method-'+str(a)+'counties')
    plt.grid(True)
    plt.savefig("HW3_"+str(a)+".png")
    plt.show()