From b1cc82e95c6b880d4c3d7c9b88aee140021b89d2 Mon Sep 17 00:00:00 2001 From: rushabh-mehta Date: Tue, 1 Jan 2019 10:11:08 +0000 Subject: [PATCH 1/2] Done --- __pycache__/__init__.cpython-36.pyc | Bin 147 -> 148 bytes .../__pycache__/__init__.cpython-36.pyc | Bin 159 -> 160 bytes q01_k_means/__pycache__/build.cpython-36.pyc | Bin 1217 -> 1231 bytes q01_k_means/build.py | 28 ++++++++++++++---- .../tests/__pycache__/__init__.cpython-36.pyc | Bin 165 -> 166 bytes .../test_q01_k_means.cpython-36.pyc | Bin 980 -> 981 bytes 6 files changed, 22 insertions(+), 6 deletions(-) diff --git a/__pycache__/__init__.cpython-36.pyc b/__pycache__/__init__.cpython-36.pyc index e366269077e983833ef48c5fa9aa4663f810fe01..1c1079a24e42c235cbbcf5058777b53a70f2e2e7 100644 GIT binary patch delta 55 zcmbQtIE9hJn3tC;&PF?CB8R!MqkcwyZmND!X>mqkQig7BYDP(-et3RSc5y*sa;koE KeoE@ZL?Zya3=!G@ delta 54 zcmbQjIGK^dn3tC;DZVjkB8Rz>gMLPSZmNEIQEFvkNq(-rOMY@`Zfaghv3@{NepYI7 JN%6!aBLKo05=8(2 diff --git a/q01_k_means/__pycache__/__init__.cpython-36.pyc b/q01_k_means/__pycache__/__init__.cpython-36.pyc index 5030f097226e11b9daa4858e72ab4f9657255062..511f9b969a5732514e1a2f3250da58dc8c82eb8c 100644 GIT binary patch delta 55 zcmbQwxPXzvn3tC;&PF?CB8R!MuYN{;ZmND!X>mqkQig7BYDP(-et3RSc5y*sa;koE KeoE@ZL^}Y&@Dd6D delta 54 zcmZ3$IG>Tjn3tC;DZVjkB8Rz>kA6meZmNEIQEFvkNq(-rOMY@`Zfaghv3@{NepYI7 JN%6!aI{?Vq5_JFo diff --git a/q01_k_means/__pycache__/build.cpython-36.pyc b/q01_k_means/__pycache__/build.cpython-36.pyc index d257235cdbea3a54ce2218792e4a1f25acdd0fa9..f926d100add5fdad59802ab2fcc25b37a10261df 100644 GIT binary patch delta 491 zcmYjN%Sr<=6iqVYWcpH+ZrrL1i_{|GPDF5JMK>;#i%`=^=uDe=kW5iQ>7xF@e1Qu; z#4m6u%t~e38{7pnBZTWSWD^ZX*p|6zed(0oP({ z1?XijS1d|^-u;t6j&&}SqDG{|mrxu#dz)(}`0jSXG!`8-HmUkyI~HNiIv1%L>5K)U z6Qo=e&(0366>m;^vSBR~WqO3vg5?cZ(jzIDO1A%V{2E=3S#B-LsK1@v{hIY=yK0($ zu&8gMJP3Pz7K}u~O-VBqW!nv2#uCnSNiq&KnKItv(ICq8Vd>3?vPP6GU=G$zSo-^M V%EwY1SRq|EP{&m>>)0ng`2oK)fv^Ao delta 515 zcmYjNL5ou{5YD{3Ca>LgMK50TsubK7@hXdly@)7+mn8@#ZQ|?eChwI=iq=aHdJwPu z0se;l37$Q8pX-9)Ul0V7T^BZxZ@w_!Oum_){qOzVlhJ7K@y9pyt7Png-8ek)XX%EM z1cn)K%!2~Ryl};et1>a}dR{02%!-x##8hRgRbLGf9;l(Ij4<*usF5k&uyOx)>cqxC z;>Am=+wdyU^RIsaX#b^nyCaDFGxUb{##Z02j% zMJn}&CXi@+Sa$EJ%s9S7@^ltaH!aES6;X2GHX&NXDmR8x5@$ZUAkYMJg8hO&c=#yg z{yd*9J8!2o+O3YApPqD!jkj$K)7RLo>>`H!Ie!d?`wM=wo8*xSOxt7F%luH?3TMu0 zY$w-0UXF6x>zEC@WL#Y)u4ChMZ3Es*3KCIc nZI2_~PcO_iFuT72M_E=q^_|%`dz?*#VS*tHV92XNfGGa~%e0gJ diff --git a/q01_k_means/build.py b/q01_k_means/build.py index 925feb4..f36f773 100644 --- a/q01_k_means/build.py +++ b/q01_k_means/build.py @@ -1,18 +1,34 @@ +# %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 - +import pandas as pd 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_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, cluster=10, random_state=9) diff --git a/q01_k_means/tests/__pycache__/__init__.cpython-36.pyc b/q01_k_means/tests/__pycache__/__init__.cpython-36.pyc index 4d0c118d68771df511a87c0588c414b923551d0b..16ea746e87463e5a467d0bc0f1df7f2261956108 100644 GIT binary patch delta 55 zcmZ3=xQvm*n3tC;$woV7B8Rzhuzp5mqkQig7BYDP(-et3RSc5y*sa;koE KeoE@ZL>BuV&O@0suwc6ovo* From 72e21571aea2537a5a04f0435d30e96115076abe Mon Sep 17 00:00:00 2001 From: rushabh-mehta Date: Tue, 1 Jan 2019 10:21:26 +0000 Subject: [PATCH 2/2] Done --- .../__pycache__/__init__.cpython-36.pyc | Bin 172 -> 173 bytes .../__pycache__/build.cpython-36.pyc | Bin 1157 -> 940 bytes q02_hierarchy_clustering/build.py | 14 ++++++++++++++ .../tests/__pycache__/__init__.cpython-36.pyc | Bin 178 -> 179 bytes ...st_q02_hierarchy_clustering.cpython-36.pyc | Bin 1088 -> 1089 bytes 5 files changed, 14 insertions(+) diff --git a/q02_hierarchy_clustering/__pycache__/__init__.cpython-36.pyc b/q02_hierarchy_clustering/__pycache__/__init__.cpython-36.pyc index 8510bd51c2c00789a8ae41393d8b5fc04b3bcb7a..f538941965ed2bd9b4c8769f6422d9b974a49e3b 100644 GIT binary patch delta 55 zcmZ3(xR#N_n3tC;&PF?CB8Rzhlzv8jZmND!X>mqkQig7BYDP(-et3RSc5y*sa;koE KeoE@ZL~j7fXA(XD delta 54 zcmZ3>xQ3C#n3tC;DZVjkB8RzBq<%(zZmNEIQEFvkNq(-rOMY@`Zfaghv3@{NepYI7 JN%6!aZvfCL5~%m=LYM<}@E2CQj4WGUbxq3tmo z4z3=qV_fDVf+abPPO0UYi$LPxw3Li=bm953Z;PMI`#yZs!wj zNn0Ii9GKd&*%Ul zjx=_ZG=Y-k3iUN^tt|6V*jhu=v(hSH{)OTTP|V-l?tO75i+Lui&SR%>#Im967ttdO z_vdVuRRzrS+GKo@y(l2Fe0Empm8p3Gv!oITcV*6NUFDG2+1Hn^=68LY|8tlv)>4VX zdea>I&%B2z%>e?TL!A9?dep%gI=Z#S51C){QgG8awP2Hi+gept$pr>&8JfFYN9fJQ z=3Lq&n=g2>!cy5Iv%)LXwI*N;c1O2whmA}k>&@X#Yuh|>bqZDw@JOe*yUBYnMne<6DJrp6@V1R?_7TFa+P3bY K6Vk_SIQ$FuANs8T literal 1157 zcmZuw%Wm8@6eabRJTrbIHoPc`q7NXm@g#PZL69OwRz*-CK?4vjR9d7pQYcX&If-pZ ztLZl1&~<;I-_UI~+;%m;&{Z#ICXYoW+;fje-phLrsk8AoJO29*^1(;wAN0i&0Dl6e ze*<8MVSxx(}|A{PIS$Ueg_&@@@WF6j9b+fWx&a3JZt;)<$beghu~qlRj3v|CZNj9(YnMZlAS zjliCQ>AwIBsxiaNV~4Pjf8h=IA{e~EAA%vgo*U2jbrz~STY{bTF!gl+F?Y&Qj_zii5dausd{t{!< z`@jy?EC6dZ93~4*{OAW2BR;hiH!uk=sf;m7BTZ zdM*Vc6T#_KekEIzyIskcRoc+D;JKE{SdU)c?md-FC%EC?{8Y8CX~}PQe|!rER(>9s zyr|kzeEKHAE2`MkQwdb3+_6nZ*6)O|iC$cGLKh{+*C$z8$cWHrm6MVmGwb7>(lE84o(TcnS+Nm7MsFJT!@7> zT&Y7y^Cwc@f&2HD*<3b!Rw{l&jcjJ;vRE{rn4bNtWX%g8+b}39?>1wzH}_BTPxm(e zykK^@s02IdZtUIvn;yfC`WOJ=ue<<%i!*$T_wWJu&8vQZx#5 diff --git a/q02_hierarchy_clustering/build.py b/q02_hierarchy_clustering/build.py index 724237c..cf7e9d2 100644 --- a/q02_hierarchy_clustering/build.py +++ b/q02_hierarchy_clustering/build.py @@ -1,3 +1,4 @@ +# %load q02_hierarchy_clustering/build.py # Default imports import pandas as pd @@ -11,5 +12,18 @@ df = pd.DataFrame(scale(digits.data), index=digits.target) # Write your solution here : +def hierarchy_clustering(df): + Z = hierarchy.linkage(df, 'average') + plt.figure(figsize=(25, 10)) + plt.title('Hierarchical Clustering Dendrogram') + plt.xlabel('sample index') + plt.ylabel('distance') + hierarchy.dendrogram( + Z, + leaf_rotation=90., # rotates the x axis labels + leaf_font_size=8., # font size for the x axis labels + ) + plt.show() +hierarchy_clustering(df) diff --git a/q02_hierarchy_clustering/tests/__pycache__/__init__.cpython-36.pyc b/q02_hierarchy_clustering/tests/__pycache__/__init__.cpython-36.pyc index c783cf0b7f8a400d695fec777f93740e2e0a699e..3b6f5e063f80fe9f5a1d15ec46040d411bfcf249 100644 GIT binary patch delta 55 zcmdnQxS5f|n3tC;&PF?CB8Rzhf__GRZmND!X>mqkQig7BYDP(-et3RSc5y*sa;koE KeoE@Z#6SSe*%DR& delta 54 zcmdnYxQUU&n3tF9hU2`bi5%ui@%kD0xvBc;MX8mECHcAfF8Rr&xv6<2#rgq7`B|yS JCB+ky0s-g$6E*+< 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 180ff269145194c281510a377a4f864a43da4bd7..17c4bbe378a1cfc4dc957f1a666a5c959a56f352 100644 GIT binary patch delta 58 zcmX@Wagc+5O{M=OiqSE4w#H0+}+|-PcME&smqU_>=#N<@{ N%|{q(m;f7#6U+br delta 57 zcmX@eae#xvn3tF9@#*bvA8m*%GCl@#j-6y;~7 NCYKa%KFV0b1OQVq6+!?2