diff --git a/__pycache__/__init__.cpython-36.pyc b/__pycache__/__init__.cpython-36.pyc index e366269..1293b61 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..306ba11 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..f32bcc0 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..8d6f14f 100644 --- a/q01_k_means/build.py +++ b/q01_k_means/build.py @@ -1,18 +1,23 @@ +# %load q01_k_means/build.py # Default imports from sklearn.cluster import KMeans import matplotlib.pyplot as plt plt.switch_backend('agg') from sklearn import datasets - digits = datasets.load_digits() - X_train = digits.images y_train = digits.target -# Write your solution here : - - +def k_means(X_train, y_train, cluster=10, random_states=9): + kmeans = KMeans(n_clusters=cluster, random_state=random_states) + clusters = kmeans.fit_predict(digits.data) + centers = kmeans.cluster_centers_.reshape(10, 8, 8) + fig, ax = plt.subplots(1, 10, figsize=(8, 3)) + for axi, center in zip(ax.flat, centers): + axi.set(xticks=[], yticks=[]) + axi.imshow(center, interpolation='nearest', cmap='viridis') + 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..3fb47b7 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..2a3a5a3 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..3e9769a 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..9915575 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..38da838 100644 --- a/q02_hierarchy_clustering/build.py +++ b/q02_hierarchy_clustering/build.py @@ -1,15 +1,39 @@ +# %load q02_hierarchy_clustering/build.py # Default imports -import pandas as pd +import pandas as pd, numpy as np import matplotlib.pyplot as plt plt.switch_backend('agg') from sklearn.preprocessing import scale from scipy.cluster import hierarchy +from scipy.cluster.hierarchy import dendrogram, linkage from sklearn import datasets digits = datasets.load_digits() df = pd.DataFrame(scale(digits.data), index=digits.target) -# Write your solution here : +def hierarchy_clustering(df): + Zc = linkage(df, 'complete') + Za = linkage(df, 'average') + Zs = linkage(df, 'single') + Zw = linkage(df, 'ward') + plt.figure(figsize=(20,10)) + plt.locator_params(nbins=10) + plt.subplot(141) + plt.title('Complete Linkage') + dendrogram(Zc,p=20, truncate_mode='lastp',leaf_rotation=90, leaf_font_size=8) + plt.subplot(142) + plt.title('Average Linkage') + dendrogram(Za,p=20, truncate_mode='lastp',leaf_rotation=90, leaf_font_size=8) + plt.subplot(143) + plt.title('Single Linkage') + dendrogram(Zs,p=20, truncate_mode='lastp',leaf_rotation=90, leaf_font_size=8) + plt.subplot(144) + plt.title('Ward Linkage') + dendrogram(Zw,p=20, truncate_mode='lastp',leaf_rotation=90, leaf_font_size=8) + plt.tight_layout() + 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..3377b87 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..3462f60 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