From 31a0f52b4ecac628a57d2f0601dd071cdc00cf7f Mon Sep 17 00:00:00 2001 From: vp999 Date: Mon, 19 Mar 2018 04:57:27 +0000 Subject: [PATCH 1/3] Done --- "D:\\output.pdf" | Bin 0 -> 11183 bytes __pycache__/__init__.cpython-36.pyc | Bin 147 -> 140 bytes "d:\\output.pdf" | Bin 0 -> 11183 bytes "d:\\output.png" | Bin 0 -> 11112 bytes output.pdf | Bin 0 -> 11183 bytes output.png | Bin 0 -> 11112 bytes .../__pycache__/__init__.cpython-36.pyc | Bin 159 -> 152 bytes q01_k_means/__pycache__/build.cpython-36.pyc | Bin 1217 -> 884 bytes q01_k_means/build.py | 22 ++++++++++++++---- .../tests/__pycache__/__init__.cpython-36.pyc | Bin 165 -> 158 bytes .../test_q01_k_means.cpython-36.pyc | Bin 980 -> 973 bytes 11 files changed, 17 insertions(+), 5 deletions(-) create mode 100644 "D:\\output.pdf" create mode 100644 "d:\\output.pdf" create mode 100644 "d:\\output.png" create mode 100644 output.pdf create mode 100644 output.png diff --git "a/D:\\output.pdf" "b/D:\\output.pdf" new file mode 100644 index 0000000000000000000000000000000000000000..87edd3dc1ed9327608628595c133c2c08f7bf95e GIT binary patch literal 11183 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 Icw&?h0Is1C+5i9m diff --git "a/d:\\output.pdf" "b/d:\\output.pdf" new file mode 100644 index 0000000000000000000000000000000000000000..79597bedc9f31e47d2660312a3bfef4b8d99b131 GIT binary patch literal 11183 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 literal 0 HcmV?d00001 diff --git a/output.png b/output.png new file mode 100644 index 0000000000000000000000000000000000000000..41f1b6a04744f077c0eba9d8d2c18690d0405b22 GIT binary patch literal 11112 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 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 5901df3..5b92c7f 100644 --- a/q01_k_means/build.py +++ b/q01_k_means/build.py @@ -1,6 +1,12 @@ # Default imports from sklearn.cluster import KMeans +import matplotlib +matplotlib.use('Agg') +matplotlib.rcParams['interactive'] == True + import matplotlib.pyplot as plt + + from sklearn import datasets @@ -10,8 +16,14 @@ y_train = digits.target # 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 + +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 4d0c118d68771df511a87c0588c414b923551d0b..09f901d9082ebd95a79a93152004341df0af8b26 100644 GIT binary patch delta 46 zcmZ3=IFFItn3tDpf$92*>=x4A`WgATsrqFFmX?w3U B4%7eu delta 53 zcmbQoxRjCIn3tF9hU2`6>=sHv`WgATsru Date: Mon, 19 Mar 2018 05:12:19 +0000 Subject: [PATCH 2/3] Done --- q01_k_means/build.py | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/q01_k_means/build.py b/q01_k_means/build.py index 5b92c7f..324374e 100644 --- a/q01_k_means/build.py +++ b/q01_k_means/build.py @@ -24,6 +24,27 @@ def k_means ( X_train, y_train, cluster = 10,random_state = 9): 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() From 65c700789596419f20d64ceb9e18b41c1740ffdf Mon Sep 17 00:00:00 2001 From: vp999 Date: Mon, 19 Mar 2018 05:24:40 +0000 Subject: [PATCH 3/3] Done --- .../__pycache__/__init__.cpython-36.pyc | Bin 172 -> 165 bytes .../__pycache__/build.cpython-36.pyc | Bin 1157 -> 1150 bytes .../tests/__pycache__/__init__.cpython-36.pyc | Bin 178 -> 171 bytes ...st_q02_hierarchy_clustering.cpython-36.pyc | Bin 1088 -> 1081 bytes 4 files changed, 0 insertions(+), 0 deletions(-) diff --git a/q02_hierarchy_clustering/__pycache__/__init__.cpython-36.pyc b/q02_hierarchy_clustering/__pycache__/__init__.cpython-36.pyc index 8510bd51c2c00789a8ae41393d8b5fc04b3bcb7a..5b44a5e9f8a43b16d4509ad53970da923fe71ea7 100644 GIT binary patch delta 46 zcmZ3(xRjCIn3tDpf$92*>=x2N`WgATsrqFFmX?BX5~*drgs zQCyl-kdt3he2cj%v!IBXfq~%`M{<5{K~8E(YSiS#Oh)2SEX5i5<(izgm{QWBn1KdH zF(+0SMooUhq^QmhRKJp;NE}H0^4HJE&rQ`YE3mY*)DO=u$}TQQOitBL&QD35Y|Wgj zF9}qnDHO$4keHW}SbU4AASFsLH?ag{droGOUO^>@1(XKUMFNwrGZ#pS0`(MuG=i-_ LA|xg!vZw$6wv0#{ delta 247 zcmeyz(aOng%*)Fqac2HT_W6urx7gD%(~C2!Qg1OO8v?Nr5F6i`yob@6@z&%Yj6L$V zIEqV?3UcyGif=JjWfl}MGcYjR;z-WVEyzhNNxe0BF_V$_EtcYp{BljsTTCfwx0rzj z-eOLyFuXPS4U?jtC{X=Mh9YGk^(#z2BR@A)KfNfmGO;8-SKlQ+ximL5ucTN%peR2p zHMyjCvI%ppzA8|yrce}HL1JD?V(~4ef|Of=xrrqpN91HC=@nFhShv_9bdlKP3(N&l TazH&rAdO&~kO-B@Q7kF|46IWH diff --git a/q02_hierarchy_clustering/tests/__pycache__/__init__.cpython-36.pyc b/q02_hierarchy_clustering/tests/__pycache__/__init__.cpython-36.pyc index c783cf0b7f8a400d695fec777f93740e2e0a699e..70d12cc478137d5095e8af648cb111d3fd04431d 100644 GIT binary patch delta 46 zcmdnQxSEmOn3tDpf$92*>=x1y`WgATsrqFFmX?=sJ#`WgATsruW=cekX7o}DvmgMK^yW}UA=BDPA6zc~R