diff --git a/__pycache__/__init__.cpython-36.pyc b/__pycache__/__init__.cpython-36.pyc index e366269..361f643 100644 Binary files a/__pycache__/__init__.cpython-36.pyc and b/__pycache__/__init__.cpython-36.pyc differ diff --git a/q01_k_means/__pycache__/__init__.cpython-36.pyc b/q01_k_means/__pycache__/__init__.cpython-36.pyc index 5030f09..e469c93 100644 Binary files a/q01_k_means/__pycache__/__init__.cpython-36.pyc and b/q01_k_means/__pycache__/__init__.cpython-36.pyc differ diff --git a/q01_k_means/__pycache__/build.cpython-36.pyc b/q01_k_means/__pycache__/build.cpython-36.pyc index d257235..365a50c 100644 Binary files a/q01_k_means/__pycache__/build.cpython-36.pyc and b/q01_k_means/__pycache__/build.cpython-36.pyc differ diff --git a/q01_k_means/build.py b/q01_k_means/build.py index 925feb4..dfa70b6 100644 --- a/q01_k_means/build.py +++ b/q01_k_means/build.py @@ -12,7 +12,35 @@ # Write your solution here : - - - - +def k_means ( X_train, y_train, cluster = 10,random_state = 9): + model = KMeans(init="k-means++", n_clusters=cluster,random_state=random_state ) + nsamples, nx, ny = X_train.shape + X_train = X_train.reshape((nsamples,nx*ny)) + labels = model.fit_predict ( X_train ) + plt.scatter(X_train[:, 0], X_train[:, 1], c=labels, s=50, cmap='viridis') + return + +def k_means_ga(X_train, y_train, cluster=10, random_state=9): + X = X_train.reshape((len(X_train), -1)) + kmeans = KMeans(n_clusters=cluster, random_state=random_state).fit(X, y_train) + a = X_train[(y_train == 0) & (kmeans.labels_ == 0)][0:20] + b = X_train[(y_train == 1) & (kmeans.labels_ == 1)][0:20] + c = X_train[(y_train == 2) & (kmeans.labels_ == 2)][0:20] + d = X_train[(y_train == 3) & (kmeans.labels_ == 3)][0:20] + e = X_train[(y_train == 4) & (kmeans.labels_ == 4)][0:20] + f = X_train[(y_train == 5) & (kmeans.labels_ == 5)][0:20] + g = X_train[(y_train == 6) & (kmeans.labels_ == 6)][0:20] + h = X_train[(y_train == 7) & (kmeans.labels_ == 7)][0:20] + i = X_train[(y_train == 8) & (kmeans.labels_ == 8)][0:20] + j = X_train[(y_train == 9) & (kmeans.labels_ == 9)][0:20] + for char in (a, b, c, d, e, f, g, h, i, j): + for index in range(0, len(char)): + plt.subplot(10, 20, index + 1) + plt.axis('off') + plt.imshow(char[index]) + plt.show() + + +k_means ( X_train, y_train) +#plt.savefig('D:\\output.pdf', format='pdf', dpi=1200) +plt.show() diff --git a/q01_k_means/tests/__pycache__/__init__.cpython-36.pyc b/q01_k_means/tests/__pycache__/__init__.cpython-36.pyc index 4d0c118..2f58d05 100644 Binary files a/q01_k_means/tests/__pycache__/__init__.cpython-36.pyc and b/q01_k_means/tests/__pycache__/__init__.cpython-36.pyc differ diff --git a/q01_k_means/tests/__pycache__/test_q01_k_means.cpython-36.pyc b/q01_k_means/tests/__pycache__/test_q01_k_means.cpython-36.pyc index c05e1f0..7de2e12 100644 Binary files a/q01_k_means/tests/__pycache__/test_q01_k_means.cpython-36.pyc and b/q01_k_means/tests/__pycache__/test_q01_k_means.cpython-36.pyc differ diff --git a/q02_hierarchy_clustering/__pycache__/__init__.cpython-36.pyc b/q02_hierarchy_clustering/__pycache__/__init__.cpython-36.pyc index 8510bd5..c3eba09 100644 Binary files a/q02_hierarchy_clustering/__pycache__/__init__.cpython-36.pyc and b/q02_hierarchy_clustering/__pycache__/__init__.cpython-36.pyc differ diff --git a/q02_hierarchy_clustering/__pycache__/build.cpython-36.pyc b/q02_hierarchy_clustering/__pycache__/build.cpython-36.pyc index 5171cbf..60bd18b 100644 Binary files a/q02_hierarchy_clustering/__pycache__/build.cpython-36.pyc and b/q02_hierarchy_clustering/__pycache__/build.cpython-36.pyc differ diff --git a/q02_hierarchy_clustering/build.py b/q02_hierarchy_clustering/build.py index 724237c..4143125 100644 --- a/q02_hierarchy_clustering/build.py +++ b/q02_hierarchy_clustering/build.py @@ -13,3 +13,18 @@ # Write your solution here : +# Write your solution here : +def hierarchy_clustering(df): + fig, (ax1, ax2, ax3, ax4) = plt.subplots(1, 4, figsize=(50, 18)) + + for linkage, cluster, ax in zip( + [hierarchy.complete(df), hierarchy.average(df), hierarchy.single(df), hierarchy.ward(df)], + ['c1', 'c2', 'c3', 'c4'], + [ax1, ax2, ax3, ax4]): + cluster = hierarchy.dendrogram(linkage, labels=df.index, p=12, truncate_mode="lastp", orientation='top', + color_threshold=0, leaf_font_size=10, distance_sort=True, ax=ax) + ax1.set_title('Complete Linkage') + ax2.set_title('Average Linkage') + ax3.set_title('Single Linkage') + ax4.set_title('Ward') + plt.show() diff --git a/q02_hierarchy_clustering/tests/__pycache__/__init__.cpython-36.pyc b/q02_hierarchy_clustering/tests/__pycache__/__init__.cpython-36.pyc index c783cf0..411f53f 100644 Binary files a/q02_hierarchy_clustering/tests/__pycache__/__init__.cpython-36.pyc and b/q02_hierarchy_clustering/tests/__pycache__/__init__.cpython-36.pyc differ diff --git a/q02_hierarchy_clustering/tests/__pycache__/test_q02_hierarchy_clustering.cpython-36.pyc b/q02_hierarchy_clustering/tests/__pycache__/test_q02_hierarchy_clustering.cpython-36.pyc index 180ff26..8154ef8 100644 Binary files a/q02_hierarchy_clustering/tests/__pycache__/test_q02_hierarchy_clustering.cpython-36.pyc and b/q02_hierarchy_clustering/tests/__pycache__/test_q02_hierarchy_clustering.cpython-36.pyc differ