From 660eb14f24a41dc79ad32e401eb9bcca97a1dbc8 Mon Sep 17 00:00:00 2001 From: gaurav-barclays Date: Sun, 12 Nov 2017 16:52:20 +0000 Subject: [PATCH 1/2] Done --- __init__.pyc | Bin 160 -> 154 bytes q01_k_means/__init__.pyc | Bin 172 -> 166 bytes q01_k_means/build.py | 31 +++++++++++++++++++++++-- q01_k_means/build.pyc | Bin 1576 -> 1502 bytes q01_k_means/tests/__init__.pyc | Bin 178 -> 172 bytes q01_k_means/tests/test_q01_k_means.pyc | Bin 1079 -> 1061 bytes 6 files changed, 29 insertions(+), 2 deletions(-) diff --git a/__init__.pyc b/__init__.pyc index 6c0d88a7171e4be2074406a0d928e57729c2e27c..19ce758ff92b06cedf1dcad24181d984db3e1da9 100644 GIT binary patch delta 80 zcmZ3$IE#^k`7eC(xSvN-K4~#= i#N<@{ delta 86 zcmbQmxPXy^`7v@#i>QbF^NeTnZ+5Y*)cAu#n~nK1u^MG jsg;Q(`MEI#Mfq8&$t5w#IiG3e3iIs`~400d( diff --git a/q01_k_means/__init__.pyc b/q01_k_means/__init__.pyc index bff55bc80ad251cbd5d9670d4d6b73042ccc9fef..db0846a1df5282db205d0dc9b49eb4d61a428030 100644 GIT binary patch delta 92 zcmZ3(xQvm5`7eC(xSvN-K4~#= u#N<@{KhrpPQPPSFAs=TM+v@#i>QbF^NeTnZ+5Y*)cAu#n~nK1u^MG vsg;Q(`MEI#Mfq8&$t5w#IiG3e3LIcD2?D*W&#Ju8|iLHtNw{Ik& diff --git a/q01_k_means/build.py b/q01_k_means/build.py index fca565c..f2c9421 100644 --- a/q01_k_means/build.py +++ b/q01_k_means/build.py @@ -1,16 +1,43 @@ +# %load q01_k_means/build.py # Default imports from sklearn.cluster import KMeans import matplotlib.pyplot as plt from sklearn import datasets - +import pandas as pd +import numpy as np +import time +import seaborn as sns digits = datasets.load_digits() X_train = digits.images y_train = digits.target - +print(X_train.shape) +print(y_train.shape) # Write your solution here : +def k_means(X_train,y_train,cluster=10,random_state=9): + X = np.reshape(X_train, (len(X_train), -1)) + data=X + for i in range(cluster): + #print(i) + + km = KMeans(init="random", n_clusters=i+1) + #y=km.fit_predict(X) + #print(y) + labels =km.fit_predict(data) + #end_time = time.time() + palette = sns.color_palette('deep', np.unique(labels).max() + 1) + colors = [palette[x] if x >= 0 else (0.0, 0.0, 0.0) for x in labels] + plt.scatter(data.T[0], data.T[1]) + frame = plt.gca() + frame.axes.get_xaxis().set_visible(False) + frame.axes.get_yaxis().set_visible(False) + #plt.title('Clusters found by {}'.format(str(algorithm.__name__)), fontsize=24) + #plt.text(5, 10, 'Clustering took {:.2f} s'.format(end_time - start_time), fontsize=14) + plt.show() + +#k_means(X_train,y_train,cluster=10,random_state=9) diff --git a/q01_k_means/build.pyc b/q01_k_means/build.pyc index fa56657ea75eb9643051d8e13ab8aed4a48ea5dd..e1074dd01b833f541070dda36f2fc8dd306998c9 100644 GIT binary patch literal 1502 zcmcIj&5j#I5dM0`|MueDY*;Wz9FT~7Atv`ILLverAO{C2(MVy`p6T`Wc>Z>}9c*Er zmK!g@E$_t>An^cDRrW5+12FbfdO7?ndfmqq?tx5UM?%2sjpEub1Kb4Ix3Ftr-^S)o_z*i%Dm;Jl z2lgF!f)yYQLHKqZhWNn^f_)deF0wXuZT8*w7+lt6_?)MQU61uypUamR%F@RYY_(SqRZsv>#!0?*-Zaii zFW4_Nrnab#A;j0(V{7>-FKTLT|*m&b{Pui6*bcGxi_FvLp=`p*O~P z9-F1{@kVc~ldLpS@muTcg05#!U+bJyw|-mk<8XIX{XAtjlIC^n8*NLGxA){DcYZ{U z2U26_HNj>)uLTFsu^g@Nvnr&dTrW)S~PgF;phm&v|e5Ph}8mS9)5l%12=Ev-|%8hQy$Hy#(rk;_Z(7w(qpW6jp z&XN>#5a%2z36J4(nK=IXYZ^%HgrGW=!pn70Z|7_i7QHRZA=Kza)s%CdAZch`=`>F5 z(t0Pk?uoY0OXKDfc9olSL&Grth|k=68PWM8lKy4*f1b%7 literal 1576 zcmcJPO>fgc5Qb;%e19}a0aX=TD)kTvse%g!K&VoCL-gPZwM41HCf+2Q_#^dhL@JU~ zxbe&QA^ZYPoM2`W%RX==ttan}AMei2zK;8=S(9IXe;UF5h41XnSPiWnZ@MVSk{%qs_A4KTww1c|Mn z!p9DYO%bd^%dK7TU04^eLI*dnF2Y*C)`3ll9zl&2&Jn|1V5zLnk9Sp{Y|1H9$}y}n zrjjz{9K$+eswq>+F|0GDmNL~G!#ZQ?DO1ZatTU#OGW8t8I%AqC)5tNbGv**=nmLAb z#{j-z zB`zM1yLJ4w1SHB#&rxw4 zbDVITa?~7WT*+uE6W)Z5e6{N0^uWQ;mM>oSKN@UyUk<0*Ox3)9sm$EQi~b~057NeA zf04v9HM0GEl{%UX($xKnmxK9$%j^%AI`GdH54@v&l1|W^(u(4#I1#7+_eC(xSvN-K4~#= z#N<@{KhrpPQPPSFB%>T3k}BKXIZW05ZWM AZU6uP delta 104 zcmZ3(xQUU2`7@`7 Date: Sun, 12 Nov 2017 17:07:47 +0000 Subject: [PATCH 2/2] Done --- q02_hierarchy_clustering/__init__.pyc | Bin 180 -> 179 bytes q02_hierarchy_clustering/build.py | 41 ++++++++++++++++++ q02_hierarchy_clustering/build.pyc | Bin 1592 -> 1555 bytes q02_hierarchy_clustering/tests/__init__.pyc | Bin 186 -> 185 bytes .../tests/test_q02_hierarchy_clustering.pyc | Bin 1165 -> 1162 bytes 5 files changed, 41 insertions(+) diff --git a/q02_hierarchy_clustering/__init__.pyc b/q02_hierarchy_clustering/__init__.pyc index 9e9464ba38589dc79d0f25dd0ada24dc41801d81..88a8ec8dcbb194039eb211a3eb00e36c616ca15c 100644 GIT binary patch delta 105 zcmdnOxS5fI`7eC(xSvN-K4~#= y#N<@{v@#i>QbF^NeTnZ+5Y*)cAu#n~nK1u^MG zsg;Q(`MEI#Mfq8&$t5w#IiG3e3LIb1tjLg)c#G>Sk%6PDXnE3e2yv&mL bc)fzk5)PmZHo5sJr8%i~j6ilV5HkP(M%yn_ diff --git a/q02_hierarchy_clustering/build.py b/q02_hierarchy_clustering/build.py index 2ba8b26..a00e23c 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 @@ -5,8 +6,48 @@ from sklearn.preprocessing import scale from scipy.cluster import hierarchy from sklearn import datasets +from scipy.cluster.hierarchy import dendrogram, linkage digits = datasets.load_digits() df = pd.DataFrame(scale(digits.data), index=digits.target) +#print(df.head) # Write your solution here : + +def hierarchy_clustering(df): + Z_single = linkage(df, 'single') + Z_avg = linkage(df, 'average') + z_ward=linkage(df, 'ward') + z_comp=linkage(df,'complete') + plt.figure(figsize=(25, 10)) + plt.title('Hierarchical Clustering Dendrogram') + plt.xlabel('sample index') + plt.ylabel('distance') + plt.subplot(1,2,1) + + dendrogram( + Z_single, + leaf_rotation=90., # rotates the x axis labels + leaf_font_size=8., # font size for the x axis labels + ) + plt.subplot(2,2,1) + dendrogram( + z_comp, + leaf_rotation=90., # rotates the x axis labels + leaf_font_size=8., # font size for the x axis labels + ) + plt.subplot(2,2,2) + dendrogram( + Z_avg, + leaf_rotation=90., # rotates the x axis labels + leaf_font_size=8., # font size for the x axis labels + ) + plt.subplot(1,2,2) + dendrogram( + z_ward, + 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/build.pyc b/q02_hierarchy_clustering/build.pyc index 59f6156d2f67bfe04690f16aeda7189548e60711..80bab7ebed4e717c0744cefbd4304e5a1d895553 100644 GIT binary patch literal 1555 zcmcgsOK;Oa5FXokHBFlI0SHb33CR}{#1SD>sTJbXgDZjX#oBl`&Zg@J-c8$7MIeQL z!9U?|@dIFHorgeGk9gzB%^Y*%(2)GnkQ2s@B=A?$)9+A!OLB_7ZN z;lQj9q5+}@vwc|Nk(GXcx)UA(Z^Cy(9#Kr^ehcH1zwtTq9aK%7f{vLImAQlFREm<7 z@pMs5(GJcG)52)qr9Ew$5g9M@q-3dSqN!wd!4hHJ$&8EZn7oto2EHfw>gPCP0B&t@ zmM(m8)}{+&x@*(3rnfe0)~tcSL|x!@;Fu*i4%r^?7Nu+rtnSXnKv;WYG=T2{?~q)2 z2yVhHmZ=MT4|orFAAzoQfj~t41w^m+0XrLy7~9>z>gX*HgT4cZd4T2n+&{o_of#^e zmRX{NtuVVpR+n{`Ev4FBL9*RO4n<)lAFRT7B(qK-M{y#O)mXc!(g0u=})qrR-v{_#uv1K+a zN`V>0LR0YqTmVC?>sS_x;VP@ZUL2N*YFA*pwf_1)KP-~ literal 1592 zcmcgsOK;mo5FSzz^{`~ic{ObVr0pd_4@P3=R1`r98*L9ofXXd`3M_~fcTKIlA{p)~ zu>=aSrc?QmxHn;~0&jRy4R-@l~PTy5~@SoU`ii6Ch^oSwsQ5w#am8)uUOj*4t$Iv>MQCK!F<2a)+)EYDg-e<%m>7 zYDmjnxu{y1FsfGjP#0QN zqDmK+wW$Y_6i!&>tasPBR2M0~&EB`Mj=V>YNShXIAaq#0YSGEBKT?b| z5pBD)?fJMp+TgVTM_Kks?vNak9Fg25xknOk?UTGk@;1pkB=3?Nki18m9?I$=$g6ks z5_y2W{D>=|i^O zVrvMJKB?JZ&5mmJ)J51cVy=vJ9H!Jmeq+R>TIZ>7Dp?g$`7Rk@UFmkPS5#W%PB>lU zz!<(o>Gr_W!W32F7L~G#!blAhxm^&W#949%@5I+OU^^#~+B%V^DzQc7d`;rQj2FDHyBL(iMZ6#ILGs6*Yna8 zm_IhY)#a3r?|0HBwMSFbDLqcsr}8P@AO%{A1E^e9MOKN`)C0l!f2!8X@gQTq6Q>={ z!Dc}6X2NEFPI=}tqg$Sfizf{~Z1_>bpZYpX4TG0cv$jrEQ*Q1At0p#qbo^EPvsIOi z#eAXdLY>Da%ATV=aaO5I;fhsUR>e}KE^eaWOv$zB)#JnD{imATIK=a{Hu9jnba#;B zzdX1*_C5#&Uxra|6zm0G1doD;!Kk?>eiC`wN|8$p68EQ+ZXawV9Jj*gIa09X(XPcQ zXLNT#>^X+0$`8s)q25$kZpRcG^(5I;mzM|E(D-KZ*U-E*<#c{@O(A3=b*9mJE~gQ> zFDLjVeTz=k?cyJl_i&=hl$$<;$Mg}%4dh<>UvTG%{Td(Q+NftdXZ{-*0_8E^;V}5T H(;xo}6dq{H diff --git a/q02_hierarchy_clustering/tests/__init__.pyc b/q02_hierarchy_clustering/tests/__init__.pyc index bb41aeac2f4798d6b05eacac8c9cfa79636836f4..3be2961d854e04583416b62f0e6384f8fc5ee45d 100644 GIT binary patch delta 111 zcmdnRxRa5C`7eC(xSvN-K4~#= z#N<@{?Be8L{>;mzSj7>wk;9b9rksI+K|douH&s79v9u_$OgAa9C^;vwvRFSnzbL!7 zATc>rKRG`INaU0jm!uYD=B39M6y;~7CYR_>p2sA?u3wT`TvDt*Igmwh@-C(%Y8t38 Mc?NSVH4U@@0MX1@Q~&?~ delta 316 zcmeC;?B(QO{>;m@bMnu~jU1*-F%=9949-?Dp~b01#W9IV8JWcyso60usm0kP`2{iQ zMX8mECHc8A1x5K;smUcV$vLIPC89cdqQs))jLLYhf|!!j;*#Q+ Y$$l(~lXo&D(b^J)$ExO02=CfLjV8(