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)
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()