From c790443b0aed89a9f2c7a92a6a5c47c95ebce1e6 Mon Sep 17 00:00:00 2001 From: SL345 Date: Thu, 26 Jul 2018 06:30:22 +0000 Subject: [PATCH 1/2] Done --- __pycache__/__init__.cpython-36.pyc | Bin 147 -> 140 bytes .../__pycache__/__init__.cpython-36.pyc | Bin 159 -> 152 bytes q01_k_means/__pycache__/build.cpython-36.pyc | Bin 1217 -> 1011 bytes q01_k_means/build.py | 29 ++++++++++++++---- .../tests/__pycache__/__init__.cpython-36.pyc | Bin 165 -> 158 bytes .../test_q01_k_means.cpython-36.pyc | Bin 980 -> 973 bytes 6 files changed, 23 insertions(+), 6 deletions(-) diff --git a/__pycache__/__init__.cpython-36.pyc b/__pycache__/__init__.cpython-36.pyc index e366269077e983833ef48c5fa9aa4663f810fe01..dd3c51de42d423a2791d4d8faddd3b03c09412cb 100644 GIT binary patch delta 47 zcmbQt*u%(S%*)Hgkrf#|k;7ctQa>XTjn3tC;DZVjkB8Rz>kA6meZmNEIQEFvkNq(-rOMY@`Zfaghv3@{NepYI7 JN%6!eI{?QT5@i4Y diff --git a/q01_k_means/__pycache__/build.cpython-36.pyc b/q01_k_means/__pycache__/build.cpython-36.pyc index d257235cdbea3a54ce2218792e4a1f25acdd0fa9..021b4ff42d4678e3d4b323a7b1126394e0887049 100644 GIT binary patch literal 1011 zcmYjQzmF6*6t+FTXJ_{UQh=jM6=@qb5s4B-5kesyaEe56#8EWzuDx?J>-llE7Y^j9 zhBp5~`bhjS)KkzK$h1S|r31g75uSX3c{EgCS7w`9P* zZ-^z<N7j9QjUQ=?G4_< zp7F?uWwR=?iJhH7<`_Yg`G7FG?0y3~N0&dIgTx?Ga(2K_<&w~}$v1MZjZk{b6l-`} z=h`qM4qpO6Io50M(NABEgk6nZyWJlCgSK4INC|zxIx%`uG>QO^dfU>B0R$<;7<8&^ z42>jP3#s$b>!hLKwk-Avj%cIkjB%dp{koH_p+37RH4V#JU$if&?{IlCM$dDjSlNux ztK)=5*U2h(TO)o>!(HuenZ}SsE=vsw$g+k!@P-Cu%?d$%BkFF%rE*v9k}SsH1(SR6 z4^nqv>EB;g7i}$8&z{`>?)%kwt9H6$8?oB79N;KU*%W!F+DdH9>hha!^IblDcD3G@ zlHcoIjnVbW90KaE0T8|k-G}}KPVp@q!x)1XL(gC*#S5Hz>Mk&sM7f8k0yjUQCweCZ zQ_a0kwNB#RsF`t6$#M=V$xu1>BWXpKY%c3-T z43DFe8}!lY1~A6ZFjWYnZh|vqHEHu1oH|zgbKUa26c1cfy#UCdk`!koCLs>V|Eqfm AkN^Mx literal 1217 zcmZva-HH=26vuOBrZdy&$9}M|ET~uB6m+}dt%&H}h`5MeC<9W`CT*uXA2msFS5gqF zmx6ELwJ+k0Z;)F-=qq@mC)p7kaLWAuC+C+*PET^T*Gt}g|C0U;2>C(&d3=l?;44p2 z7-5i;0#X1Qd%3sp(*PqsZxvx00^#8z+K@En@uHn3sGYRSVivOK1Ef9Xy&!}37FQwz zFyWJ@oR;zo!zt=d)jB- zC#**Y8aCd#rHKaSpL@Es2&_LKM_4BdK6*!F9Xbj%MQ_l^(N;~-8#Hz_tSNefwjGUX zir%1!qj62q8?@tSyQb(3+I2LkDSCtU9PQK;y+Qkqc58~>pgR|(4t1ns-PVcj=&tVR zzTTN8r{wkX_3p(()nYz&e0PJL#oWnyPvJSU9t-pygF~|MfnX+P{SDp>jM{ov?;YU@ z0r?DX-oLcDWJBC2e~EVo@4@cb77vpQJd>28NxqVb3u(H7maHm9Qc)b+3EKlJo)vo; zxAtCaTUJ6Vk(C%l*qpG`_|$HRG5@Zn7GORB13cv?+X1uvBx zJ`>e~PcW!A%gWhkd6gT!Ik_`BAGtk;<5iZkP#Qkl{Zlc?85=v`0wukS%Op? zi=%+jKJm*xD$AAB(>)&2MmF-fVjd3^EukgynA+C`|^;g24SK7%d%0?`k zWePj`*Rz7oxD?lLh6xoFGp@vS9Jnf6L;jK5c2<0^sMsp!_iYWbi_*oqyMFA25C(q$ DfnzX2 diff --git a/q01_k_means/build.py b/q01_k_means/build.py index 925feb4..1c6e322 100644 --- a/q01_k_means/build.py +++ b/q01_k_means/build.py @@ -1,18 +1,35 @@ +# %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_state = 9): + X = X_train.reshape((len(X_train), -1)) + kmeans = KMeans(n_clusters= cluster, random_state= random_state).fit(X) + len_list = [] + limit = 21 + for c in range(0, cluster): + print('C: ',c) + image = X_train[(kmeans.labels_ == c) & (y_train == c)] + temp = len(image) + for i in range(0, temp): + if(temp <= limit): + ax='ax' + fig = plt.figure() + value = i+1 + ax += str(value) + ax = fig.add_subplot(1,temp,i+1) + plt.axis('off') + ax.imshow(image[i]) + plt.show() + + else: + break diff --git a/q01_k_means/tests/__pycache__/__init__.cpython-36.pyc b/q01_k_means/tests/__pycache__/__init__.cpython-36.pyc index 4d0c118d68771df511a87c0588c414b923551d0b..c969bdc61222b03e7824c9e3cffa9a5241a08e45 100644 GIT binary patch delta 47 zcmZ3=IFFITn3tD}Gb=KBB8R!Ow|+)`ZmNE;kFklVet3RSc5y*sa;koEeoE@ZL>B-n C1P&qq delta 54 zcmbQoxRjB@n3tF9hU2`bi5%uiLHZf_xvBc;MX8mECHcAfF8Rr&xv6<2#rgq7`B|yS JCB+k?Tmath67m25 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 c05e1f0ef8aeea197101004748188aea8859b7f8..45a8e6052c748b7f2fb65dfe2ffa8c3a63aa5f1a 100644 GIT binary patch delta 50 zcmcb@ewLlXn3tD}Gb=KBBS!FJ{zY0suqy6m|dr From 85c5f28739c30b728f9a6cdce70475d36311af1d Mon Sep 17 00:00:00 2001 From: SL345 Date: Thu, 26 Jul 2018 07:30:05 +0000 Subject: [PATCH 2/2] Done --- .../__pycache__/__init__.cpython-36.pyc | Bin 172 -> 165 bytes .../__pycache__/build.cpython-36.pyc | Bin 1157 -> 1209 bytes q02_hierarchy_clustering/build.py | 43 ++++++++++++++++++ .../tests/__pycache__/__init__.cpython-36.pyc | Bin 178 -> 171 bytes ...st_q02_hierarchy_clustering.cpython-36.pyc | Bin 1088 -> 1081 bytes 5 files changed, 43 insertions(+) diff --git a/q02_hierarchy_clustering/__pycache__/__init__.cpython-36.pyc b/q02_hierarchy_clustering/__pycache__/__init__.cpython-36.pyc index 8510bd51c2c00789a8ae41393d8b5fc04b3bcb7a..31fb3ffcad8a89fcdb727483dffdc19c2268dcc0 100644 GIT binary patch delta 47 zcmZ3(xRjB@n3tD}BP%j`B8RzjkbXvfZmNE;kFklVet3RSc5y*sa;koEeoE@ZL~j5t CI}SYn delta 54 zcmZ3=xQ3C#n3tC;DZVjkB8RzBq<%(zZmNEIQEFvkNq(-rOMY@`Zfaghv3@{NepYI7 JN%6!eZvf6}5}5!1 diff --git a/q02_hierarchy_clustering/__pycache__/build.cpython-36.pyc b/q02_hierarchy_clustering/__pycache__/build.cpython-36.pyc index 5171cbfb15b7e89076727cb2db0d592e444b292b..5be736d55954a610f719e4d57a10c96e875d108f 100644 GIT binary patch literal 1209 zcmZuxO^?(#5Vf6jlKy0duf6WIFVhHiZ)i2UAWn!qj0B?g5V>Pd+CAR1AF%JuP-qn|B;;sV{(YEU7`_0 zP)&da&z2FyGG6us+feG)BAu*KNCS>_w(3Ja;GQ0=hA^Z=4ws`1fw82^iA?2qd1FJ- z?uq1r!M;dE_MX5^L669^e~J0XGl+OuPHEe-1=kWmf1#w|rdXU~kO}U%mCkyGs)Rf% zsNaT9uX`V%x1Z5C@)oP#u)k?Q3=s<`LKFoQBZ?heGI2+w7uXZxNMyb{7r&*VF9u?G z5rz4l7=?MyzPrO7cWiczJ?Yqyz@Ec-(KW{26=T0+#Mc-%J4PaIbto0LJCtpR*BX`k z=^3Q_HHuWqHnFNIwQRGZUNu@e3Gpd6;_?OxaydXVrH~%0(yBL7eL(F>oFnAj^TRD5 z+2NGISWAAKo7!=w>Ix>7)4$_uEvf>csaGHQGUf1+NX}wd;AKYX<`%D`D!=@KxJ$ z%4rG7ndWn;Avxdr*e>eRX|HAC7!JS`ztksqL9&hgN82Wjn^HP6!7ZWYp!bg1!-Y0`xT?ik%isLT)=y(}|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..0964ae9 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,47 @@ df = pd.DataFrame(scale(digits.data), index=digits.target) # Write your solution here : +def hierarchy_clustering(df): + Z_avg = linkage(df, 'average') + Z_single = linkage(df, 'single') + Z_complete = linkage(df, 'complete') + Z_ward = linkage(df, 'ward') + plt.figure(figsize=(15, 10)) + plt.subplot(411) + dendrogram( + Z_avg, + leaf_rotation=90., + leaf_font_size=3., + ) + plt.title('Average') + + plt.figure(figsize=(15, 10)) + plt.subplot(412) + dendrogram( + Z_single, + leaf_rotation=90., + leaf_font_size=3., + ) + plt.title('Single') + + plt.subplot(413) + dendrogram( + Z_complete, + leaf_rotation=90., + leaf_font_size=3., + ) + plt.title('Complete') + + plt.subplot(414) + dendrogram( + Z_ward, + leaf_rotation=90., + leaf_font_size=3., + ) + plt.title('Ward') + plt.xlabel('sample index') + plt.ylabel('distance') + + 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 c783cf0b7f8a400d695fec777f93740e2e0a699e..2274ff04625a8704ad155c1ffb7e23993a0dba50 100644 GIT binary patch delta 47 zcmdnQxSEl}n3tD}BP%j`B8RzjgnmYTZmNE;kFklVet3RSc5y*sa;koEeoE@Z#6SQs C9S&6h delta 54 zcmZ3@xQUU&n3tF9hU2`bi5%ui@%kD0xvBc;MX8mECHcAfF8Rr&xv6<2#rgq7`B|yS JCB+k?0s-bf6D9xv 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..4397d4e3f8544cee2607cd82b638d9c15df4c405 100644 GIT binary patch delta 50 zcmX@Wv6F+tn3tD}BP%j`BgZU8>0JGc{M=OiU>{=>Q~mJ#qU_>=#N<@{%|{q( Fm;i9256b`m delta 57 zcmdnVae#xvn3tF9@#*bvA8m*%GCl@#j-6y;~7 NCYKa%-pg3S1OQP=6*2$-