From 817dc31878cc13a8d29e7599e3cfdcc8f738d708 Mon Sep 17 00:00:00 2001 From: sannidh Date: Thu, 3 Jan 2019 17:07:47 +0000 Subject: [PATCH 1/3] Done --- __pycache__/__init__.cpython-36.pyc | Bin 147 -> 142 bytes .../__pycache__/__init__.cpython-36.pyc | Bin 159 -> 154 bytes q01_k_means/__pycache__/build.cpython-36.pyc | Bin 1217 -> 981 bytes q01_k_means/build.py | 16 +++++++++++----- .../tests/__pycache__/__init__.cpython-36.pyc | Bin 165 -> 160 bytes .../test_q01_k_means.cpython-36.pyc | Bin 980 -> 975 bytes 6 files changed, 11 insertions(+), 5 deletions(-) diff --git a/__pycache__/__init__.cpython-36.pyc b/__pycache__/__init__.cpython-36.pyc index e366269077e983833ef48c5fa9aa4663f810fe01..1293b61918edafc42ac58d26a35ed0e006a97ce7 100644 GIT binary patch delta 49 zcmbQt*vH6W%*)HA=cpGmk;7cpT0bK{H&wqlF)uGOB||?vzbL!7ATc>rKRG`obz-6s E08P^mTmS$7 delta 54 zcmeBUoXp5!%*)G_6yF#%k;7ccK|douH&s8qD77-NBtKW*B|o_|H#M)MSU;dBKPxr4 Jq diff --git a/q01_k_means/__pycache__/__init__.cpython-36.pyc b/q01_k_means/__pycache__/__init__.cpython-36.pyc index 5030f097226e11b9daa4858e72ab4f9657255062..306ba115b0dc20cabe11f368bab3921036e3bf04 100644 GIT binary patch delta 49 zcmbQwIE#_Pn3tDJ&rvUCB8R!GyM9J~ZmNE9VqRWmN``)Teo=ODL1J>MesX?F>cm7l E08`%&i~s-t delta 54 zcmbQmIG>Tjn3tC;DZVjkB8Rz>kA6meZmNEIQEFvkNq(-rOMY@`Zfaghv3@{NepYI7 JN%6!OI{?Ru5@`Sc diff --git a/q01_k_means/__pycache__/build.cpython-36.pyc b/q01_k_means/__pycache__/build.cpython-36.pyc index d257235cdbea3a54ce2218792e4a1f25acdd0fa9..6118ade418e3fe0f348d02e1876b9e6684b0dc88 100644 GIT binary patch literal 981 zcmZ8f&2H2%5VoDv&StZ1fr>{!%B2fJ;)D>0-VnWjRAd!J-q_7Lo4?v#x~+Ck%XKAQ zgICIx(>?(bC&t|ssz@}SXROILGvDOpXcT{bcY67oAoL48cmnX>g4uHbi6pL2jXB2N zClx6J9;&cBkimL)7gn@poMEI`8Lbf?s6iR?Az;Esav+(EzGHqU$tRS?Ti`?~?&*h* zN;LMI2cjq-j-+tHDrdJbBy0x&dFXTD8G=!;_h9x1fI~~N3?$x=Rk#dG?4YSNULAn% z8zVA+=7JS3n86z1^LxQNk$eIQyoJmfEJIAL$0Dy0#Kdw+#>TT68HfUKr!K(~*Hq zB0jv*F6)evI(I#ly3o${p_i8*@B7Pg<+*Ie8C02yPW3@oIUd>hq^nxU5AJlw!z-xO z2e1`Rb#15Z4G%r0!=8P~oDsU|+3n8ZY|qU{4@ZZQX0=~5kN#=H_SJa+0&pT0@DD6> zPj}Zpk$DVb{5cy>+ggpSXc{f2q?$>w>{h6BtU6BFTx4D$M^*7DL#bLoWLyz>6c^vQ? jg8P>4Wq1Hjd{*?jZsojEZ#<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..b3c6147 100644 --- a/q01_k_means/build.py +++ b/q01_k_means/build.py @@ -1,18 +1,24 @@ +# %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)) + centers = kmeans.cluster_centers_.reshape(10, 8, 8) + 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 4d0c118d68771df511a87c0588c414b923551d0b..3fb47b77226b948501e8af8d3b1ac9c647d26e13 100644 GIT binary patch delta 49 zcmZ3=xPXzvn3tC;%uz39B8R!GuYN{;ZmNE9VqRWmN``)Teo=ODL1J>MesX?F>cm7B E09_>y%m4rY delta 54 zcmZ3$xRjB@n3tF9hU2`bi5%uiLHZf_xvBc;MX8mECHcAfF8Rr&xv6<2#rgq7`B|yS JCB+kCTmau+67~Q9 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..2a3a5a37fe7ca86df0e38b696fd435a6b083fc2f 100644 GIT binary patch delta 52 zcmcb@ex9Afn3tC;%uz39BS!FJ;tX0susC6nX#v From 043a21838e17a44b1f550d3c184432b1b482e903 Mon Sep 17 00:00:00 2001 From: sannidh Date: Thu, 3 Jan 2019 17:08:18 +0000 Subject: [PATCH 2/3] Done --- q01_k_means/__pycache__/build.cpython-36.pyc | Bin 981 -> 963 bytes q01_k_means/build.py | 1 - 2 files changed, 1 deletion(-) diff --git a/q01_k_means/__pycache__/build.cpython-36.pyc b/q01_k_means/__pycache__/build.cpython-36.pyc index 6118ade418e3fe0f348d02e1876b9e6684b0dc88..f32bcc03d344c7295bfe8fceac7a8963a19b13b9 100644 GIT binary patch delta 51 zcmcc0ewdxpn3tEU(orvF|3uDpj13ca*iU9>G-dSKY|FTnkyn5L2pD;QP=HZnG9&X9 E0BVs7 Date: Thu, 3 Jan 2019 17:47:03 +0000 Subject: [PATCH 3/3] Done --- .../__pycache__/__init__.cpython-36.pyc | Bin 172 -> 167 bytes .../__pycache__/build.cpython-36.pyc | Bin 1157 -> 1288 bytes q02_hierarchy_clustering/build.py | 28 ++++++++++++++++-- .../tests/__pycache__/__init__.cpython-36.pyc | Bin 178 -> 173 bytes ...st_q02_hierarchy_clustering.cpython-36.pyc | Bin 1088 -> 1083 bytes 5 files changed, 26 insertions(+), 2 deletions(-) diff --git a/q02_hierarchy_clustering/__pycache__/__init__.cpython-36.pyc b/q02_hierarchy_clustering/__pycache__/__init__.cpython-36.pyc index 8510bd51c2c00789a8ae41393d8b5fc04b3bcb7a..3e9769a73c965892544460ec68c70365e03ac57f 100644 GIT binary patch delta 49 zcmZ3(xSWy0n3tDJ&rvUCB8Rzbh<-+XZmNE9VqRWmN``)Teo=ODL1J>MesX?F>cm8E E09tGhzyJUM delta 54 zcmZ3^xQ3C#n3tC;DZVjkB8RzBq<%(zZmNEIQEFvkNq(-rOMY@`Zfaghv3@{NepYI7 JN%6!OZvf8P5}g15 diff --git a/q02_hierarchy_clustering/__pycache__/build.cpython-36.pyc b/q02_hierarchy_clustering/__pycache__/build.cpython-36.pyc index 5171cbfb15b7e89076727cb2db0d592e444b292b..9915575789325723e4d6c8bbb903610c24cc13b7 100644 GIT binary patch literal 1288 zcmZuw%We}f6dijWnY`2V#gZl2BnY+$fr?llR0(xa$wC@AV|U`z^T2i}t;&Y5E$|!s z0-rKlR+0DuR$RMjD55jE*T>iA+V^2U?si-B)%fj?!1I23w?3GA&p`AiP|RaUdIY%< z6W@)&JR}j1<_(6I2w9FVE=DsbMr{{^8pzkj}PWsOOFgW zns4(aAI^7{2=p#%Tw$`uV%GfZk$r}ayiscfad?Nsr&%^ab*NJ+Ie_L&a79%*J0Ib? z#dyI~nJJpr4JnFKnpsZFsG*u0Z5>6y_=gnP-QWvB8XyNC`WGnUT|%-;{1G{X0bz%H zK)yo(punIxW;Rer9k9f=n}DzwONOCS??-zYXR$TSc5eS-@)42 zu!d`ve+O%O!-5jR{?TRdAFHwS+{v*WnFmGPJFMfh%qz(aCk^@@Dw***(xS*DC&3w2 zY_$VLS+zio5NVu(I7A^({>pkwjzOFe5CDo={5$hXU-=Ibn=^C{t zQfhdTmyDCHg?B1mDOIGk2OB&A9!3b#d*hF(l7S(-XD!bq;{{U;qGvYAOF zJuerA1bSAUjlvqU6M{(!LP0dh*>_Lvfy3`NlUbSbiKay%*lcoKs#9IjluuGfc#_J6 zHe5mMNu|m;PtD}r!$-;H1}A?Blj%Z8Hm=U=ox7I%aF~7o%0sR7-$5ORhIi-~se8a3 z-6K&&3r2N~D+VoG(kJq^<-`e*7v5hw=xiY)%Km)F~RFQRP%aXE$iA)$>N7o~1 zzJPc9657S(}|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..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 c783cf0b7f8a400d695fec777f93740e2e0a699e..3377b874921cc9c66dea55509f369e4e5dc47fa9 100644 GIT binary patch delta 49 zcmdnQxR#N_n3tDJ&rvUCB8Rzblzv8jZmNE9VqRWmN``)Teo=ODL1J>MesX?F>cqrA E09|qq*Z=?k delta 54 zcmZ3>xQUU&n3tF9hU2`bi5%ui@%kD0xvBc;MX8mECHcAfF8Rr&xv6<2#rgq7`B|yS JCB+kC0s-c)6Dj}z 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..3462f60ccd7109a73a7face385b6aabd1a1b7e34 100644 GIT binary patch delta 52 zcmX@Wv73X#n3tDJ&rvUCBgZU8*?j$s{M=Oi;>5hX%#;lM@cg3e;)2BFRQ=@ql+?{f H7;BgSp;-}5 delta 57 zcmdnZae#xvn3tF9@#*bvA8m*%GCl@#j-6y;~7 NCYKa%-p^RW1OQRQ6*d3>