From 7facda065698173dde0a304b4b0397303afab456 Mon Sep 17 00:00:00 2001 From: sannidh Date: Sun, 11 Nov 2018 03:08:45 +0000 Subject: [PATCH 01/22] Done --- __pycache__/__init__.cpython-36.pyc | Bin 141 -> 155 bytes .../__pycache__/__init__.cpython-36.pyc | Bin 155 -> 169 bytes .../__pycache__/build.cpython-36.pyc | Bin 414 -> 359 bytes q01_load_data/build.py | 9 +++++++-- .../tests/__pycache__/__init__.cpython-36.pyc | Bin 161 -> 175 bytes .../tests/__pycache__/test.cpython-36.pyc | Bin 1525 -> 1539 bytes 6 files changed, 7 insertions(+), 2 deletions(-) diff --git a/__pycache__/__init__.cpython-36.pyc b/__pycache__/__init__.cpython-36.pyc index b0c3719c2f46201b3baa3fcef746c16a601c9e9f..d3743f9956edf8179161f95949cf6fcf5827c497 100644 GIT binary patch delta 49 zcmeBWoXyB#%*)GlYR>cMi5%v#9{L&ixvBcaiFtXMDH;0V`9;~q1&PV2`pNkzsT2L| E0g@#V82|tP delta 35 qcmbQu*vrUa%*)I5Qh!m@L=JO)EB%c8+*JMaqSVU7lKk9>G4=qqQwvf6 diff --git a/q01_load_data/__pycache__/__init__.cpython-36.pyc b/q01_load_data/__pycache__/__init__.cpython-36.pyc index 4596200714efc1a2bd21ca0d0f36671155da8439..437254c69dedd8b51f0a57c6909564981d3edfca 100644 GIT binary patch delta 49 zcmbQuxRQ~>n3tF9)STzh6FJOf!}K%qb5r$;6Z7&iQ!@0!^NX^J3lfu4^^@~cQYZTP F0sxsa5m5jD delta 35 qcmZ3xCE?7)ltj7;6|(7*m*fnQ9qp7=sx!nf-n-T5B>z z38iJ`q!uKWWW?te#V3`frKJ|#;!H`+$;{0xNiEW3y2VtG62(!JnwS!wTwDg^vw#%e zVoFI{$xy@&H2YVuenx(7s(x`|US4KOhJJW{QFd`bVsff}a(+sx{$w6TH!l{TItE5Q w#v)E2t;u|gtspTkC9${&Bn}n>n}kGg03~j5*yQG?l;)(`F#&nSAcBJl07X7K?EnA( delta 278 zcmYk0zfQw25XOCWNRzf<HG65-&KB46ywjMkLqWYU%l-MA-rf{DF{gR@)efQNK%y0PA?lp zDUEs<=(Q-b%MBct5R_xHhUi?6qLeZu_ZIKM)Z&6VT|1ASZ%U{VvYjcDAPrSx%Sg4y z+m=J>P@9&ki9KY;zJ6Q~KMyem{k+NvJ;p%IU&2me!RBl>?=;UIEWe=d^y>TkB8^-{Iw_z2mF?&zuI(_y}oQ8M)hh%8GM diff --git a/q01_load_data/build.py b/q01_load_data/build.py index 7cd3700..20bd332 100644 --- a/q01_load_data/build.py +++ b/q01_load_data/build.py @@ -1,4 +1,9 @@ +# %load q01_load_data/build.py import pandas as pd -# Write your code below - +def load_data(path): + df = pd.read_csv(filepath_or_buffer=path, delimiter=';') + return df + + + diff --git a/q01_load_data/tests/__pycache__/__init__.cpython-36.pyc b/q01_load_data/tests/__pycache__/__init__.cpython-36.pyc index d07fd2f92eb40b45050574e400ae0ba39249b5e5..42c59a551b1b1699e82118f68488564fcae6871b 100644 GIT binary patch delta 49 zcmZ3;xSo;2n3tF9%$(=Z6FJOfWArofb5r$;6Z7&iQ!@0!^NX^J3lfu4^^@~cQYZQa F0|1iwhEyQ}vVcQ&KlE HePsp!-NF*_ delta 38 tcmZqX`O3{<%*)FqWWFeBBgacdelPuu{M=Oi^rFnE~Ak3|asH From b4b8b4747f41ff6ef701d6ef24b752485f583931 Mon Sep 17 00:00:00 2001 From: sannidh Date: Sun, 11 Nov 2018 06:30:17 +0000 Subject: [PATCH 02/22] Done --- .../__pycache__/__init__.cpython-36.pyc | Bin 156 -> 170 bytes .../__pycache__/build.cpython-36.pyc | Bin 660 -> 665 bytes q02_data_split/build.py | 14 +++++++++++--- .../tests/__pycache__/__init__.cpython-36.pyc | Bin 162 -> 176 bytes .../tests/__pycache__/test.cpython-36.pyc | Bin 3134 -> 3148 bytes .../__pycache__/__init__.cpython-36.pyc | Bin 159 -> 173 bytes .../__pycache__/build.cpython-36.pyc | Bin 924 -> 1144 bytes q03_data_encoding/build.py | 15 ++++++++++++--- .../tests/__pycache__/__init__.cpython-36.pyc | Bin 165 -> 179 bytes .../tests/__pycache__/test.cpython-36.pyc | Bin 2197 -> 2211 bytes 10 files changed, 23 insertions(+), 6 deletions(-) diff --git a/q02_data_split/__pycache__/__init__.cpython-36.pyc b/q02_data_split/__pycache__/__init__.cpython-36.pyc index 5d17273741a726a430cdf3ccf2eb63426483d618..56c8c765873dbd037b39df21b994e9d2741cd8cc 100644 GIT binary patch delta 49 zcmbQkxQda(n3tF9)STzh6FJOf!}T-rb5r$;6Z7&iQ!@0!^NX^J3lfu4^^@~cQYZTP F0RWk_5mf*H delta 35 qcmZ3*IERtLn3tF9rT(I*i5%wqp86U2xvBc;MX8mECHc7%WBdTSYzvM6 diff --git a/q02_data_split/__pycache__/build.cpython-36.pyc b/q02_data_split/__pycache__/build.cpython-36.pyc index e6bd2ebf2f76eee17541ce631c667ecb332558ff..c62c808c0ef8186724f121e3552fd83a0c7e0ca9 100644 GIT binary patch delta 364 zcmYk2ze)o^5XN_Q_x=!)6jr85VX9zpNGc_WU>^iU!zqO0c8{E1Zo}>c6!u6F?6e56 z@r49m;aWk-E7<5e}-j->)ybZo^)3L zWPN?HK$*9i@5bjyDtN95m7KdlgL8Oa>;(^HfZO8>Ju2Jc?xyDY6x_GBcb7;4nnFw^k}5VSB8VU=2v#D3jRf&H+)Z+l%gOErjO<~R(jvqr zf{mTEf5FDTu&q`634-X`fRK6YFf+UlcIrR+wPv}z^uGPldImy1$pR?q1AJ<0Tx*Um zPwxXXhb}lqGUS?YtPw@_N3>0=B!`7Gm?u<&0Yf?E9%m2ig5_S$az77@XPEI#&}L_( z9-hqbI_W%39X|GFo9OD)7PU}1QpugLCE1PpJWC^`V=ZRC2w9kSwOG>2uB7KoXen=7 zIJYpg;ccX4ob+vg0{7T(_#dFa;FZW_9QriwhEyQ}vVcQ&Klu IF|lv~0NNH2rvLx| delta 43 zcmX>ju}^}-n3tF9i20(ZjU38M0^a%=`MIh3=|!oPi6!~D`jZcE%WuwLdcp|+D@P7* diff --git a/q03_data_encoding/__pycache__/__init__.cpython-36.pyc b/q03_data_encoding/__pycache__/__init__.cpython-36.pyc index 884722b9e5eb21d01be2d88d202ca11e74eb4609..8c7771a9803442722be39d4b55b9f9304a7c209c 100644 GIT binary patch delta 49 zcmbQwxR#N_n3tF9)STzh6FJOfqx3WKb5r$;6Z7&iQ!@0!^NX^J3lfu4^^@~cQYZQa F0sxyg5n%uT delta 35 qcmZ3>IG>Tjn3tF9rT(I*i5%wqKKdE?xvBc;MX8mECHc7%V*&xZaSNIN diff --git a/q03_data_encoding/__pycache__/build.cpython-36.pyc b/q03_data_encoding/__pycache__/build.cpython-36.pyc index 302366cb1c8d346c67f347e326ce7abc487c2dcb..887ff35c3c0230be587b60d2419cfa8f914c6e55 100644 GIT binary patch delta 708 zcmYjOPixdb6rY(SlbG(x(!*j=R49nKbPGyBSQf$J(Mu02k+Q^O(q=cAq%*VPmRa_& zeu1)Azd$d34?*xgU%;;*J^3c9wHe-T-oM{_Z(hFozk~2aw;RrW{Q7Y1T!r6P0Yb^LZ0WzGCFGwMU6`49~yvE09jh6&0cj{TxWY2mWMb~KQYBcrX_B3v9`uR{h$LRF= z(%0@Z&`A3>TYK6cqSk}|dZ_iRF5Zq21ZhrAP~^NzF^ph80^)(3fXK%HXGo*d{t_!R z#TxISjLfKTHNGMjuB95U;Ogk5@$<4yK#7R3d_e&sVn~)7nyE#@q_qwX4Nk6+*x!Nh z&3JHLS8N~?&Wr4PFs{W+Hc83`X`Qjb<|lcwIU)~NH{q}>q)O|m8Fhds?T{2*J}r}v zteh}z(+`GaohGFmf$}dox@SC*@H1wdl5yb!P1wa7KdsAo#ia?eBF~wC5=_|NVcfKC z7I8N()IqiJA*0<4&5W|5o?za3bDm`E9)_ z?rm$_cBo)`+bY8DWefJDrUO-;-M-NVY5QcZ>K5~XcBZ?>r1_a?mO<|)Dv`_>a8w({M;mq!t3-{&jMU0$Sh-fR< z3WA;ZOZ*GlTKNye%2^drmU)?Z_MP3CcjvxTUa3~gORJBqSGX&`T$+Rs3u6;Q-lAmW zid?|iSwuIkt^6DhwQ@0jGl?iVvrlY=2TAR(6hgo!Hnx){+~1nx=K04&i^iY z`4=_G$>cuCNlty(Bd&Sw^0<>QF6&vB*W)B!iu(~4L8pG|g?){a`VSElM}O0@>pDU& zr7Ypa$6Q&m>!n;loGLqzf_q`h48o+-s`^3J-p;_ zjAHH9)JE}OEEhM%U`AQEMLG};UMM^DV&+K&DO14wV#b_X(;Z(Q|B;$DJIyFz{gAKg P&E+skh3ezz12y;rs~Cco diff --git a/q03_data_encoding/build.py b/q03_data_encoding/build.py index bb4c8ca..2a9a1d8 100644 --- a/q03_data_encoding/build.py +++ b/q03_data_encoding/build.py @@ -1,3 +1,4 @@ +# %load q03_data_encoding/build.py from greyatomlib.multivariate_regression_project.q01_load_data.build import load_data from greyatomlib.multivariate_regression_project.q02_data_split.build import split_dataset from sklearn.preprocessing import LabelEncoder @@ -7,8 +8,16 @@ x_train, x_test, y_train, y_test = split_dataset(df) -# Write your code below - - +def label_encode(X_train, X_test): + numeric_features = [a for a in range(len(df.dtypes)) if df.dtypes[a] in ['int64','float64']] + cat_features = df.columns.difference(df.columns[numeric_features]) + label_encoder = LabelEncoder() + X_transform = X_train.copy() + X_test_transform = X_test.copy() + for feature in cat_features: + X_transform[feature] = label_encoder.fit_transform(X_train[feature]) + X_test_transform[feature] = label_encoder.fit_transform(X_test[feature]) + return X_transform, X_test_transform + diff --git a/q03_data_encoding/tests/__pycache__/__init__.cpython-36.pyc b/q03_data_encoding/tests/__pycache__/__init__.cpython-36.pyc index 7d18c185f615d8dacd541c2aac10e2127c6a6058..626b4f037628ab15651c30745409515264ab924e 100644 GIT binary patch delta 49 zcmZ3=xS5f|n3tF9)STzh6FJOf6ZA9kb5r$;6Z7&iQ!@0!^NX^J3lfu4^^@~cQYZR_ F0|1^q5qSUr delta 35 qcmdnYxRjB@n3tF9rT(I*i5%wqLHZf_xvBc;MX8mECHc7%W5NNxdkeAv diff --git a/q03_data_encoding/tests/__pycache__/test.cpython-36.pyc b/q03_data_encoding/tests/__pycache__/test.cpython-36.pyc index 8ade2b73d89dd5f9591f59a4f4d14aa50d93bd2e..2b12e72f9bd696bfcd3b8530ce330c30fed907fa 100644 GIT binary patch delta 57 zcmbO#xLAiwhEyQ}vVcQ&ROO Nzhsx+9L{9N1^_6$6Kntg delta 43 zcmZ21I8~6tn3tDJ*J4rBMh*og0YCkW{M=Oi^rF Date: Sun, 11 Nov 2018 06:33:11 +0000 Subject: [PATCH 03/22] Done --- q02_data_split/__pycache__/build.cpython-36.pyc | Bin 665 -> 816 bytes q02_data_split/build.py | 3 ++- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/q02_data_split/__pycache__/build.cpython-36.pyc b/q02_data_split/__pycache__/build.cpython-36.pyc index c62c808c0ef8186724f121e3552fd83a0c7e0ca9..4016a95cf43e5a935755763ff04b3793a616eaa2 100644 GIT binary patch delta 405 zcmY*VF-rq67|nN=TysZHK?K`H&`t&E&>}h%Tj-#Z3Ob#_ahhB?Ok266B62s?)uG(v zzi{+VIJtEdluqJ5Fu6%z$Rm$@dGC>D^5Qf)zVFrFzAgq9LLcZ4v_^fs<zQCf-UuG0R delta 274 zcmdnMHj`D^n3tEU=GgP-lZ*@uj~S2v6Oioy#Kkrfl@%4DSW_8OSehB5*iu+i*jgB( z*i+e4*_s&{8B&;o88q1^7Kl!qX3E6^)Zh%# Date: Sun, 11 Nov 2018 06:33:36 +0000 Subject: [PATCH 04/22] Done --- q02_data_split/build.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/q02_data_split/build.py b/q02_data_split/build.py index 0e0007a..30a43b2 100644 --- a/q02_data_split/build.py +++ b/q02_data_split/build.py @@ -10,7 +10,7 @@ def split_data(df1): y = df1.iloc[:,-1] X_train, X_test, y_train, y_test = train_test_split(X,y, train_size=0.7, test_size=0.3) return X_train, X_test, y_train, y_test -split_data(df) + From 1a9af9e4e960eb9617981e7bd7d3eed97ea5b9fd Mon Sep 17 00:00:00 2001 From: sannidh Date: Sun, 11 Nov 2018 06:34:39 +0000 Subject: [PATCH 05/22] Done --- q02_data_split/__pycache__/build.cpython-36.pyc | Bin 816 -> 806 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/q02_data_split/__pycache__/build.cpython-36.pyc b/q02_data_split/__pycache__/build.cpython-36.pyc index 4016a95cf43e5a935755763ff04b3793a616eaa2..b6b8e330fcf6ca7430545e7bcec4e52b68674251 100644 GIT binary patch delta 62 zcmdnMwv0{Ln3tC;>Fo1pQziz6#|%gS$Y*c>;$nx1%Jv(xwlVQ>0eL)(AjrYU!2|$r Ca0zt) delta 73 zcmZ3+wt-FAn3tDJ^6c|yXC?-Q#|%gS$Y*c>;$n}9%Jv+ooT(hmjEoE$leRGl@BoE* N7(tMOk%NhY6#(0_3bOzJ From c5b71b65d4c238ef7e7c5116462b082f4f17e521 Mon Sep 17 00:00:00 2001 From: sannidh Date: Sun, 11 Nov 2018 12:05:46 +0000 Subject: [PATCH 06/22] Done --- .../__pycache__/__init__.cpython-36.pyc | Bin 157 -> 171 bytes .../__pycache__/build.cpython-36.pyc | Bin 1006 -> 996 bytes q03_ohe_encoder/build.py | 12 ++++++++---- .../tests/__pycache__/__init__.cpython-36.pyc | Bin 163 -> 177 bytes .../tests/__pycache__/test.cpython-36.pyc | Bin 1478 -> 1492 bytes 5 files changed, 8 insertions(+), 4 deletions(-) diff --git a/q03_ohe_encoder/__pycache__/__init__.cpython-36.pyc b/q03_ohe_encoder/__pycache__/__init__.cpython-36.pyc index e4ec35b27b6016dd979d13f661e08f8147e0e802..12e854a025017b498aed3530f7821d094b3207b3 100644 GIT binary patch delta 49 zcmbQsxSEl}n3tF9)STzh6FJOfBlI)!b5r$;6Z7&iQ!@0!^NX^J3lfu4^^@~cQYZTP F0|1&e5m^8L delta 35 qcmZ3@IG2&bn3tF9rT(I*i5%wqUiumNxvBc;MX8mECHc7%WBdWT!wZrC diff --git a/q03_ohe_encoder/__pycache__/build.cpython-36.pyc b/q03_ohe_encoder/__pycache__/build.cpython-36.pyc index 1433b7bfe437842ddac619a606d8eb33eef1b873..f020a1bee37632c517a8aef062893f85d7a7d392 100644 GIT binary patch delta 295 zcmaFI{)C;=n3tDJNcu(e`;DBwjB=s+8Tq-X`o)QPd6_90`r-LS*~JBk$*KCu`6;RT zlR25?C$}=H*7GnhFcdQZ2{wizULcjs3?x8+6^L1Y*cph64S+-mLl$EVLl#pFlO#h5 zV+vC*Q!O)Cj1fhQrG~kNC5M+2YO!(@OJ+`fvL@>-#)v4ki1?D!;*wi@$%!SY>G?&K@tJuksTGrxnXCl)LC#~inwjw^DK-A=HW@k15APXqEg;`M&am-R5CM=00A~2W&vVnATHJb5+w{ZOeu^hOubCC%r(qej5Q3+jI}I47E=u) zki}ZVQp1|Y6wIK>?B}M*6eW_JSdyBaUzC}gm=m9tnpjd=lv;d?t+*hus5n)Vxd>!- z6t7fTW=VWWQDR4770yW g%CwF37E?jWt;vbZ&TN7}IiTPwW<^HE$!C})0O?9WM*si- diff --git a/q03_ohe_encoder/build.py b/q03_ohe_encoder/build.py index 36e4b90..bc6110f 100644 --- a/q03_ohe_encoder/build.py +++ b/q03_ohe_encoder/build.py @@ -1,3 +1,4 @@ +# %load q03_ohe_encoder/build.py from greyatomlib.multivariate_regression_project.q01_load_data.build import load_data from greyatomlib.multivariate_regression_project.q02_data_split.build import split_dataset from sklearn.preprocessing import OneHotEncoder @@ -11,9 +12,12 @@ category_index = [x for x in range(len(df.columns)) if df[df.columns[x]].dtype == 'object'] -# Write your code below +def ohe_encode(X, X_test, category_index=category_index): + X_transform = pd.get_dummies(X.iloc[category_index], drop_first=True) + X_test_transform = pd.get_dummies(X_test.iloc[category_index], drop_first=True) + return X_transform, X_test_transform + + + - - - diff --git a/q03_ohe_encoder/tests/__pycache__/__init__.cpython-36.pyc b/q03_ohe_encoder/tests/__pycache__/__init__.cpython-36.pyc index 8c87a88f1c4ac0875da221298faa5cf1f1990908..cefcf584f8d8bd7e6ffcdca73df9470061c18f9e 100644 GIT binary patch delta 49 zcmZ3?xRH^=n3tF9)STzh6FJOffh$KXZc=gLM?~P5#8x!6-Pnn%R(1 zX!2TSX;Bf7oG4rYSSjD+yUclpVjw|DR2hggNK61ofOy3$K!SsbgQZAdat+HL6=9Gh T7l;rC5g=s{tC1ZshgAyzlj|}A delta 215 zcmcb@eTR;*+w;$vW7_~oOYk)NBY zpI($&nOKsaJ9#x@7^A>sCZ^BaAZf6gBK}Ft9gISgJDCj`g(vT3mKGHSNr}Pb!7BMD zzh=%e6bA`Pp~^s{L1KbHf)|L3S%3rw69-F?;N&irKPn<1NiGl}0U|)kAT}epVe%?g FEdZyWD#HK( From f5db1e3f412d3827b49cc06ca9c6d86205a5359f Mon Sep 17 00:00:00 2001 From: sannidh Date: Sun, 11 Nov 2018 13:31:22 +0000 Subject: [PATCH 07/22] Done --- .../__pycache__/__init__.cpython-36.pyc | Bin 164 -> 178 bytes .../__pycache__/build.cpython-36.pyc | Bin 921 -> 997 bytes q04_data_visualisation/build.py | 16 ++++++++++------ .../tests/__pycache__/__init__.cpython-36.pyc | Bin 170 -> 184 bytes .../tests/__pycache__/test.cpython-36.pyc | Bin 1259 -> 1273 bytes 5 files changed, 10 insertions(+), 6 deletions(-) diff --git a/q04_data_visualisation/__pycache__/__init__.cpython-36.pyc b/q04_data_visualisation/__pycache__/__init__.cpython-36.pyc index d44a511ba9fc7f538b045ab1a267d7e0fc7a3439..6c1b67761b22b0c460f4ba8582e6bd6dea04c841 100644 GIT binary patch delta 49 zcmZ3&xQUU&n3tF9)STzh6FJOfE8wq*?6;Lm|lnVz`ccqmV8`eu=r?D3#M8zRJ z^|lI^J^|uMs=h+52#IH?REf#1D&f(5{^XhQd^5kiCvS77(FnTH^VhcyLXYUxae*Iz zo1fFotzqI(41I{d){@%U?Wr%=(tkkRm zSagGO{GC`lCON|BhQJ5-D0H#~h?Y(oTk4vTz6zbv=Vt?(F{w&7Wp+f}G}iV3WdUUV z?MEY>h{!OdBp*d5I=e6_I~CEX<|0Zav6Yvs_=69-*K;|INLO)gX-TRsN!T(v9m0I{lmD%W2D)#H)6MZ8HeWA6`p+1I;{bghS zbZk_as6J0I~r>XoZ`IF6@w$tDGc0)m5PtvPaD>y zcFBdKNrU;*5tHVH=f>WRkQVot8%~(-kVyIE;23?WP5nd`fHsRnWGDqQW^(}zsmG)6 z${|wcEMZhhO;{jaP*elj-=H-L1JQCLam|u2$R2TjCl=?5TZVaT0U&JQ8n$t?3AIy~ zz3h`Tvjg&+?P*)vC1}d(lubB`n^Qkb5^v(>Z-}Ze%I4Z`H{Z++*PyNzt!@zVnJiwhEyQ}vVcQ&ROO nuVSzj`MIh3=|!oPi6!~D`jhuE%WrOH+Q}$$OE5RF Zq#!51BquXTub>jdy2S>iC&#eN1pxnh9HsyO From 1b6691d084b1ae99799bf0132d96b9760d37233a Mon Sep 17 00:00:00 2001 From: sannidh Date: Sun, 11 Nov 2018 13:34:04 +0000 Subject: [PATCH 08/22] Done --- .../__pycache__/__init__.cpython-36.pyc | Bin 169 -> 183 bytes .../__pycache__/build.cpython-36.pyc | Bin 810 -> 799 bytes q05_linear_regression_model/build.py | 9 +++++++-- .../tests/__pycache__/__init__.cpython-36.pyc | Bin 175 -> 189 bytes .../tests/__pycache__/test.cpython-36.pyc | Bin 1588 -> 1602 bytes 5 files changed, 7 insertions(+), 2 deletions(-) diff --git a/q05_linear_regression_model/__pycache__/__init__.cpython-36.pyc b/q05_linear_regression_model/__pycache__/__init__.cpython-36.pyc index 06a2a9b901d2940b1616332fc3af2e6292737630..5decaaf7419e6b5ab4ef449e7923fdb14e44543b 100644 GIT binary patch delta 49 zcmZ3n3tF9rT(I*i5%wqVfq>QxvBc;MX8mECHc7%W1<1S*9*b` diff --git a/q05_linear_regression_model/__pycache__/build.cpython-36.pyc b/q05_linear_regression_model/__pycache__/build.cpython-36.pyc index c40d112c5d846cc979296e4912c2f11a9f286eee..e9e3618b5a41a69a85aedc846089d993b530930c 100644 GIT binary patch delta 234 zcmZ3*HlK~tn3tDppZ<&Jq=}r*>sc5W7?^?B8HkI;fJ6yHGea#?4O13l4MPoMGgB>d z4RbJqCZnGwQxQmU6mwc;i6+Y}#)w;tmA6=P^HWlDqL^}WS27fF0;PW?>SyHVrs@|b z=H+FkWax+I7iAY0BqpcoCj(XL=a%M_WR@isWhR!S#uufgPoBrbKe?09nU9T;hp~to zXn>z4-!1#e3QT&FIhbBrf<(aPA`x6bv0EHAK$}Z*Qtg<4ykb5e!NbVI1i~Cl0!(~N E0M4#B5&!@I delta 223 zcmbQwwu+6@n3tF9y~U!a%!!=O>zNrC7(mz=h>N9wLiwhEyQ}vVcQ&ROO N%dpCCp3XFv82~$R6Sn{W delta 43 zcmX@avxSGln3tF9y~U!ajT{L~0ulNd`MIh3=|!oPi6!~D`jaQJ%5PrEG?y6wFs%-B From 8c39eda994ae53573f4a4b4f0498e9daf04ed09c Mon Sep 17 00:00:00 2001 From: sannidh Date: Sun, 11 Nov 2018 14:40:37 +0000 Subject: [PATCH 09/22] Done --- .../__pycache__/__init__.cpython-36.pyc | Bin 162 -> 176 bytes .../__pycache__/build.cpython-36.pyc | Bin 1086 -> 1157 bytes q06_cross_validation/build.py | 13 ++++++++++--- .../tests/__pycache__/__init__.cpython-36.pyc | Bin 168 -> 182 bytes .../tests/__pycache__/test.cpython-36.pyc | Bin 2082 -> 2096 bytes 5 files changed, 10 insertions(+), 3 deletions(-) diff --git a/q06_cross_validation/__pycache__/__init__.cpython-36.pyc b/q06_cross_validation/__pycache__/__init__.cpython-36.pyc index 9a1c3aaa4d67dd0ebf5ed2b2e34d7c0807004b94..ff7cdf082e6fdc199b2991a60f7fa9d91a017693 100644 GIT binary patch delta 49 zcmZ3)xPg(wn3tF9)STzh6FJOfWA!ugb5r$;6Z7&iQ!@0!^NX^J3lfu4^^@~cQYZR_ F005l25p4hf delta 35 qcmdnMxQLO%n3tF9rT(I*i5%wq{`wjDxvBc;MX8mECHc7%V?qGEb_=Ee diff --git a/q06_cross_validation/__pycache__/build.cpython-36.pyc b/q06_cross_validation/__pycache__/build.cpython-36.pyc index 2e1c378d0210faf52111a997f473e84d10da11f6..bade45b4bedf9e065fa26ba0edd60a062484baa4 100644 GIT binary patch delta 566 zcmZ8cO>5LZ7@m2PY_i#GH(RYpMS3VGOQC@lJQZ6|dMS8OP{%@uJ5!rBAInU(xRBx@ z_6IDvc=IT|_uT#f|3R)^^e<=+eJ5T@XPAfQ8QzcQxpdCDtDF74`)2$1hd%}(zsRj) zBHzKMzRg!(zIW3e>rui9w-Yz@nAdVA>9YkvdAFi$APh06=)TE(He`$Jp0I^4h866C z{t*_c#R}Mc?(*JO!j`!6nvA^p#onXkvCNeUPogB|Q4!}^D8(l!l*;A&dh3gYF0`8$ z+RYP$k{pqO7El2tg;A1{mQWd|MqwUVrBTsSvovuweKqPZ;~*{?`*T>xD9##t_Mb=_ z$25>ln3;+w8(EE&=3FEVeb>+#>!@*#`&nOZgeuTH)Me*H4zTYp3l8&C1S-n1m>&jj zb9t;L(O6(57eW0KR_dp)vgY57wWI?$2!wigT`GsjM-Q6q`U=+TAMg*@uBOY+!n?ie zAE$A`WvBjbJTA3+sRuPyHcclp+0z{Of$VD1!MH*d(rpDs*1|*4?rSsL0$*1-TbO^E Yi06PxJw!lO{P1P2ob z3kP!%-(+UCSiUIMywco)$|5VW;sRyA)s^-NDYJ#ogB(?$Ltn+NosLPW?uR&;l$$N)S{C3#GKsx;*$8(!qUW? zA_<^!O~xV&t?8^q7GfZyWI%)x+)yOrL1O$sLK29J*?<{9 From 3c08ad339f3de458bae5e92102dcf5662e87785a Mon Sep 17 00:00:00 2001 From: sannidh Date: Sun, 11 Nov 2018 15:07:34 +0000 Subject: [PATCH 10/22] Done --- .../__pycache__/__init__.cpython-36.pyc | Bin 161 -> 175 bytes .../__pycache__/build.cpython-36.pyc | Bin 1168 -> 1272 bytes q07_regression_pred/build.py | 15 +++++++++++++-- .../tests/__pycache__/__init__.cpython-36.pyc | Bin 167 -> 181 bytes .../tests/__pycache__/test.cpython-36.pyc | Bin 3674 -> 3688 bytes 5 files changed, 13 insertions(+), 2 deletions(-) diff --git a/q07_regression_pred/__pycache__/__init__.cpython-36.pyc b/q07_regression_pred/__pycache__/__init__.cpython-36.pyc index 3e7e4674f103511456d5015475ef0cbf23edade2..30ef39111a018c31230f8b3a5d2294c098c3c843 100644 GIT binary patch delta 49 zcmZ3;xSo;2n3tF9)STzh6FJOfWArofb5r$;6Z7&iQ!@0!^NX^J3lfu4^^@~cQYZQa F0|1;k5orJb delta 35 qcmZ3_xR8;pr@jwMxai|Mc+v+#=*Zd9{#9 zA9r#$=?r!xkxsNQs){Nl;K*W5MGai2<#g8)bv)W=^1j)XbS^LlxRH z&Bda0rFTWdk}M5Kw>V+hn2I8cxz;W(Z=-TW}d895>;Op zv5e>J!b%HsRY>i*vNN7pSs}BB7Cuk6yN=+)Fr7MQd#MV-cpllJ1sPM`sN>w zN8l$x9EbAI|2kI3$w{ye{{C2kuQ&Ny{hqC@ESaAuV2B>)qnZciDwF!9IBEL zHZ~4Ps*Lm0#^w!F4Diz+n)xd;#;epex5W?W{xgDgj+888YGL0P>?IdjjV&;bmH9Jy ClzMUi delta 418 zcmYjLyJ`YK6rH&<`}FOqjf4nRHnA{GK!Zt_myO*Z1YyTK&`sjlh6rpdl^OQziHR0Q;-aqGtZ^f8p zxy7?F9#EEJc~)RW?(iJX$1nix@RU-87?{U1+}m)%O1|wo&xnU3o$eLJ=K|ew2a0-YwK@+@^e%5ixczmGE*}2!}E)>iwhEyQ}vVcQ&ROO z$MDE+&SGX^WQ>}e&+?y9YH~j7Q#M%!28JRKQ*m-N+hGJ(YI7X>X+}mFpp4XH11|Q- z-ke9-R6&a6p+aXMTty&PVX_i;riwI3Rt`icfCwcJp#mb*K!iGo(3rfQyO=R*vog Date: Mon, 12 Nov 2018 00:49:40 +0000 Subject: [PATCH 11/22] Done --- .../__pycache__/__init__.cpython-36.pyc | Bin 158 -> 172 bytes .../__pycache__/build.cpython-36.pyc | Bin 1359 -> 1353 bytes q08_linear_model/build.py | 13 ++++++++++--- .../tests/__pycache__/__init__.cpython-36.pyc | Bin 164 -> 178 bytes .../tests/__pycache__/test.cpython-36.pyc | Bin 3958 -> 3972 bytes 5 files changed, 10 insertions(+), 3 deletions(-) diff --git a/q08_linear_model/__pycache__/__init__.cpython-36.pyc b/q08_linear_model/__pycache__/__init__.cpython-36.pyc index b91b141617b95b635e59b43a1e9967e108638c18..ec156676c0305fcc200870c768f84d44a7b2aabd 100644 GIT binary patch delta 49 zcmbQoxQ3C#n3tF9)STzh6FJOfBlR=#b5r$;6Z7&iQ!@0!^NX^J3lfu4^^@~cQYZQa F005e{5nTWP delta 35 qcmZ3(IFFITn3tF9rT(I*i5%wq-ufB&xvBc;MX8mECHc7%V*&uY8Vi;H diff --git a/q08_linear_model/__pycache__/build.cpython-36.pyc b/q08_linear_model/__pycache__/build.cpython-36.pyc index 438fb9485b4b16efb7c4d78b935df99cb4da3c8f..7c117805afabdd8d0400a0ff3ed9a39a43548654 100644 GIT binary patch delta 357 zcmW;Gze@u#6bJCUTyocj7F$IJ7X|UhA$X|ZXxLWrQ3I|k?&rGok-?N^&a>* z5nLyERy!$=4Jxj&Jo2ITqI^6_Gj-}WYntXF9*0gp(VnxFI*xatR|W$rHGG*iUTzid>+ap5@fD z;ox4}dQy}sKqwFTK;zwTF~^>b@1%OjnU1gMBq9y)FqJ+#5k{P9QK-C89YLq7YcWb@ zgQ-?hXK|TF)C2lyF&oJ7(0EoFVahk8H-i1$+q<3=YHy^~OqfYgJwtDOEd*ukk1&S@ tv|$Na@Uege-d_%;Zbhs_tOj^iOr#10LJQrF?!U{`58cMN>aZcMjT~{za?$!3`MIh3#ff=&nJF3i;rT_`#RZAUsrt$JDXIFC aWqIW{Pi4;JWQ^MUpGTC5F>10Xe0i5F1- delta 56 zcmZpX|0c&_%*)H=Yqcn9BS##wfUkZ=er~FMdQoa+Vo83k{^UYl`OS-&GdUS=ZRX__ MWn#QFS(!f(0PEusY5)KL From d40fcec60a453f0447653a72c5d2c3500cd593ff Mon Sep 17 00:00:00 2001 From: sannidh Date: Mon, 12 Nov 2018 01:04:42 +0000 Subject: [PATCH 12/22] Done --- .../__pycache__/build.cpython-36.pyc | Bin 1353 -> 1353 bytes q08_linear_model/build.py | 3 ++- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/q08_linear_model/__pycache__/build.cpython-36.pyc b/q08_linear_model/__pycache__/build.cpython-36.pyc index 7c117805afabdd8d0400a0ff3ed9a39a43548654..848d98f3256a21f38a7bffe4bf7569fb657e0799 100644 GIT binary patch delta 27 jcmX@fb&`wIn3tDp{>2y3XE$=5V`3EEe1oZgiIE8aiNXmd delta 27 jcmX@fb&`wIn3tDJ>fDRy(;GR@F)<2lzQI($#K;H$fDj0q diff --git a/q08_linear_model/build.py b/q08_linear_model/build.py index 30fb3bf..7ac35af 100644 --- a/q08_linear_model/build.py +++ b/q08_linear_model/build.py @@ -12,9 +12,10 @@ df = load_data('data/student-mat.csv') x_train, x_test, y_train, y_test = split_dataset(df) x_train,x_test = label_encode(x_train,x_test) -model =linear_regression(x_train,y_train) +model = linear_regression(x_train,y_train) val = cross_validation_regressor(model,x_train,y_train) y_pred, mse, mae, r2 = regression_predictor(model, x_test, y_test) + def linear_model(x_train, x_test, y_train, y_test): G = model.fit(x_train, y_train) y_pred = model.predict(x_test) From 7a4bf246b76a40906da3fcb008c47e5bdc2bc2c6 Mon Sep 17 00:00:00 2001 From: sannidh Date: Mon, 12 Nov 2018 01:13:56 +0000 Subject: [PATCH 13/22] Done --- .../__pycache__/build.cpython-36.pyc | Bin 1353 -> 1353 bytes .../__pycache__/__init__.cpython-36.pyc | Bin 170 -> 184 bytes .../__pycache__/build.cpython-36.pyc | Bin 1339 -> 1407 bytes q09_advanced_model_q01_lasso/build.py | 17 ++++++++++++++--- .../tests/__pycache__/__init__.cpython-36.pyc | Bin 176 -> 190 bytes .../tests/__pycache__/test.cpython-36.pyc | Bin 4099 -> 4113 bytes 6 files changed, 14 insertions(+), 3 deletions(-) diff --git a/q08_linear_model/__pycache__/build.cpython-36.pyc b/q08_linear_model/__pycache__/build.cpython-36.pyc index 848d98f3256a21f38a7bffe4bf7569fb657e0799..1f1ead167504f8ac05ed5c7f95d77668e4fb6ab2 100644 GIT binary patch delta 15 WcmX@fb&`wCn3tDp+vSaH&a40?HUx|S delta 15 WcmX@fb&`wCn3tDp{>6=K&a40>q6BjQ diff --git a/q09_advanced_model_q01_lasso/__pycache__/__init__.cpython-36.pyc b/q09_advanced_model_q01_lasso/__pycache__/__init__.cpython-36.pyc index b8b8fc73c23c3602d2cc8046c670d9178deb30ae..680ba21b7e91a3bf5f784e636e81deb19a754aed 100644 GIT binary patch delta 49 zcmZ3*xPy_yn3tF9)STzh6FJOfQ}r|Qb5r$;6Z7&iQ!@0!^NX^J3lfu4^^@~cQYZSw F005xE5sd%< delta 35 qcmdnNxQda(n3tF9rT(I*i5%wq;rbc*xvBc;MX8mECHc7%V`2cnE(^v0 diff --git a/q09_advanced_model_q01_lasso/__pycache__/build.cpython-36.pyc b/q09_advanced_model_q01_lasso/__pycache__/build.cpython-36.pyc index ad763a5d1b8809864ca92cb9383d06dcf0025f16..e179040d88df6b41f45d195714a5076ce5772453 100644 GIT binary patch delta 777 zcmYjO%We}f6dilslS!Jk>4O#oQYA!?P(<0%3W*9f5erx#Ohsg3H<@%^vRy=_8CBJ= zWl`lPV9k<$fCXaX4GT8#3vA#zY-;Ns-+Od?b$tCf`Wx-sYqz8Rw_h*6JC^m+y0oCS z9ze(s7dv}rSwtdaF^hR=D~n0I$o;fUI>7nq66wMjq|4a~SwR->%vNVT7B&cS#G(d~ zHE#2@1|2$NootXza)rBmoo_Vw5F3VdSj^h*5ZPk>GpoP!+c@bX9i|0kBX;q1?>5%% zkV;wT?l8$Y6;Js@a4C}_2VI;lxKUOxp3Zyd;LP|pD~9kO9zw_|fU+vPLA6skGgMg> zZgA~Fjw=MLr|imEuy*Y$&{RmdjeY3UULDk79Vu_-SAG>%K^0A$31Wz0W;18vF!w#K zTa{aRRqMz;gI9P@NOvp>DMxQ;nlP%stF|-B0VLO0?1FQDT%;#iF8hHnHi>YYz z*fcSnwGDHNkx^s`_U5HQ2u#6m=+lyNSfyfn+~2A;#ih+%m-r_@nC*# zU!VWLH+OX_HJ|c-@SAW^nr0RXP>dpo9=d_VHDLNkw9K*n>5jdRZV4X>?aSj7zA_hq zsoeY|D^E4fOYN03XH<&i`MEPh;rxrU{$dq0qGw>uK-YljyzqMot^%in`|#+Kl<#Ax X3p3^o?Q3ddWL%B>Y1J8>`W$J_Bh zGTD>;6&Vv75iQXW&5t*$kJcBrAfECMDb0v~o2C8<%uN$4=!{eic-qc4n+}wL9}lU|I%cD4frZVCPu4 zSEOn{g;zGtDDd%?rz7PtVES(gZYZ*C)y_vk@iE&g~ zNJCRD4N(siw&gI>bS~uk$X9j>L(isKd0;6!pdq<1!74s z-miZ?yQaccHOb}z6(9QqC=s7@ HNt^xyqvM+R diff --git a/q09_advanced_model_q01_lasso/build.py b/q09_advanced_model_q01_lasso/build.py index c832d59..63706ab 100644 --- a/q09_advanced_model_q01_lasso/build.py +++ b/q09_advanced_model_q01_lasso/build.py @@ -1,3 +1,4 @@ +# %load q09_advanced_model_q01_lasso/build.py from greyatomlib.multivariate_regression_project.q01_load_data.build import load_data from greyatomlib.multivariate_regression_project.q02_data_split.build import split_dataset @@ -5,7 +6,8 @@ from greyatomlib.multivariate_regression_project.q03_data_encoding.build import label_encode from greyatomlib.multivariate_regression_project.q07_regression_pred.build import regression_predictor -from sklearn.linear_model import Lasso +from sklearn.linear_model import Lasso, LinearRegression +from sklearn import linear_model import numpy as np import pandas as pd @@ -18,6 +20,15 @@ x_train,x_test = label_encode(x_train,x_test) -# Write your solution here - +def lasso_model(x_train, x_test, y_train, alpha=0.1): + model = Lasso(alpha) + G = model.fit(x_train, y_train) + y_pred = model.predict(x_test) + val = cross_validation_regressor(model,x_train,y_train) + y_pred, mse, mae, r2 = regression_predictor(model, x_test, y_test) + stats1 = pd.DataFrame([[val, mae, mse, r2]], columns=['cross_validation', 'mae', 'mse', 'r2']) + return G, y_pred, stats1 + + + diff --git a/q09_advanced_model_q01_lasso/tests/__pycache__/__init__.cpython-36.pyc b/q09_advanced_model_q01_lasso/tests/__pycache__/__init__.cpython-36.pyc index 80296f75275fe1779be1cb1510cdcbebf24a3c57..adc720a22cfbd04d719b80bb2a64dc473eaa3fa1 100644 GIT binary patch delta 49 zcmdnMxQ~&;n3tF9)STzh6FJOfv-LCbb5r$;6Z7&iQ!@0!^NX^J3lfu4^^@~cQYZQ) F0RW@O5v2eC delta 35 qcmdnTxPg(wn3tF9rT(I*i5%wqvHBVLxvBc;MX8mECHc7%W0C;EI1AnY diff --git a/q09_advanced_model_q01_lasso/tests/__pycache__/test.cpython-36.pyc b/q09_advanced_model_q01_lasso/tests/__pycache__/test.cpython-36.pyc index 3d92981a85fdfdd93eb4850d6b323ecab8bd7161..e184e766788708cc45f4204a936d14b614917787 100644 GIT binary patch delta 192 zcmZoxn5e*E%*)GlYR>cMjU1lLvg!I6`MIh3#ff=&nJF3i;rT_`#RZAUsrt$JDXE(i znDv+$qc-=my;8_wqL5ZB zMCgDBJrJP}A`CX$@g8Rsi(<_y%`K=bQU;1eu@xldr6d*?sZEyVpTej*c>{ki02DGY A`~Uy| delta 196 zcmbQJ(5%2=%*)I5Qh!m@Mh;JAfk^#~{M=Oi^rF3Jdz?}17HeK Date: Mon, 12 Nov 2018 01:17:13 +0000 Subject: [PATCH 14/22] Done --- .../__pycache__/build.cpython-36.pyc | Bin 1407 -> 1488 bytes q09_advanced_model_q01_lasso/build.py | 4 +++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/q09_advanced_model_q01_lasso/__pycache__/build.cpython-36.pyc b/q09_advanced_model_q01_lasso/__pycache__/build.cpython-36.pyc index e179040d88df6b41f45d195714a5076ce5772453..ce012ed7fffe71cf47979dff877ae6fc2b3bb9ab 100644 GIT binary patch delta 299 zcmey*b%9&in3tDp!j%`%s;mqQj~S2v3y|#q#KjvXD%;jGGNdr1u;p;&az}B4+3Yzy zxx7)lU^Yh%Ulc!3o+C#fN)SkM<_P5qM+q}Br1EEpWQnG5H8TR)j49mBj8S5#%&B6{ zj4>=x;!zS&l2KBrtf}Iu63t98OdydI{uJI6z81zP=@gD&22FvNAQx#ePQ30a$asr2 zC$YFVUlYji0Wmh4F|si-vQM^U`pqac*^*hAQD$>2kYtMTn;g%qr(_wQm{OLQmzFZJLNBQ_Gbg2pZE`J()Z{rVM-^m%w(u~4AtR7v{hv$On3tDJ^YV-6t1Ju*j~S2vkk8-%#KkKnD%;lQaz$}5GNdr1u;p;)@(%9kaaC6dC~%m`#Nrf@YgMv0~}r;0W+#;`<* zMTtjAL`kNyri!JCH#5aBfkaaHQg~8$TNtCHQrLqTH2GhGT%yT%i!&!bF(p1_;&WRm zrdzB&iN(eFw*-7L^HLLwf>P6qQj3c-^Yb>FGO{r;vQ4&O`pqaY*@9V_S^Ad! Date: Mon, 12 Nov 2018 01:21:34 +0000 Subject: [PATCH 15/22] Done --- .../__pycache__/__init__.cpython-36.pyc | Bin 170 -> 184 bytes .../__pycache__/build.cpython-36.pyc | Bin 1339 -> 1444 bytes q09_advanced_model_q02_ridge/build.py | 14 +++++++++++--- .../tests/__pycache__/__init__.cpython-36.pyc | Bin 176 -> 190 bytes .../tests/__pycache__/test.cpython-36.pyc | Bin 4079 -> 4093 bytes 5 files changed, 11 insertions(+), 3 deletions(-) diff --git a/q09_advanced_model_q02_ridge/__pycache__/__init__.cpython-36.pyc b/q09_advanced_model_q02_ridge/__pycache__/__init__.cpython-36.pyc index 222893d6c4bc0f716c4fdbff600e66340545b3cd..3423a97a89dc00709eb9461818416f66700af2dd 100644 GIT binary patch delta 49 zcmZ3*xPy_yn3tF9)STzh6FJOfQ}r|Qb5r$;6Z7&iQ!@0!^NX^J3lfu4^^@~cQYZSw F005xE5sd%< delta 35 qcmdnNxQda(n3tF9rT(I*i5%wq;rbc*xvBc;MX8mECHc7%V`2cnE(^v0 diff --git a/q09_advanced_model_q02_ridge/__pycache__/build.cpython-36.pyc b/q09_advanced_model_q02_ridge/__pycache__/build.cpython-36.pyc index 29083a5660093320a13d952ea9eeaf0c4458cabd..6a8cae9a7e50bb232b48325c38cae5530049b05f 100644 GIT binary patch delta 722 zcmYjNJ#Q015WU^|^xfHU5+@-B2_#EME{H{F5klgtA)%l^ED_emyRpyQolm=KM5H@K z(a};w$4^K@O-aKqprhFa2^xL_6|=6gr}t*|X?Et_diRQFE0j9SQe28SQsbvQ~{CM=Y!n>2aI)YINj~ zEwW8^$TjZrExujjBWx7bVKHleL}ZuwFRkI)#rGGkNZ6D&5jr?C^Ua9?9^er`&VZCv z+BK@2(wU>uDshb~7jj%8P(5Xr&Puf_UqMZYlv~?JPUTfW)v7|}&Hd6ZTV+s&Q)h}8 zVwl;?nL5n@#rW9g^-uETkO2r)k2dN*1}cGs=M^*I4Wik@hExbeZLH z7ziKS5&I-j#4iMA$wY|&Bmt|nw0AmITq=zVrdyAxqE7|Q_%PP~hp`eg$+ZWGsqmpv zyfunT(_%)on=KemHF{>6n9kY;L&9uEM26Zx#FL6DdH0JY`f&YsJen;sK9V%g6E+*Y zT8MYDpc6itK(kSEZr^Nv;oJKm7T5 zFga{S_FnTF_k+FTWs)-CH3v?A*X%&M`7$d`HO>p|6*Om5if(i6JV!zE!`Xhl0X1UN sP|whsAv0oS{0dzMO$YbE+A`%2Fx;g1wHU8HFc*W(07Jw9?&1#q4&fEsY z=uRn2n<8>UL50##Q}P#(=(nZeH&8L_fRtO!%$v72J8$N)_PyGDP_I`nAAN~S*KvM1 z*FMaheYE`3MfdrexF#LxC1G60=qHV|88?ZeYLnLFh71-2F_D!8iPscUYYWnM<96JM z*W;UttG4PaXrEd})@4nGA4$9+z1L3ExcKpExl3N0@qe8|j2_xk+gYO1PT@)-sbuG@ zJ=EtC;Nof4jfd(>Zg+SAGX{~;-Li4W<+{WzBVee>~s@@3H zTiwhEyQ}vVcQ&Kl4 zFiSBrMs2QUd%?u0x;cfDm62PEfq|h&6+~!HPT-K5+{bkvLu?ZF9SpI_JQeaPAZ_X( zLK8&jfCxPhp${SqCNJa{-|Wb{fl(}qHLo|6ZQMn3tF9rT(I*jU1lL{E_+@`MIh3=|!oPi6!~DoAa2Zm>F+v?qqwx#G}T* zz;KJLEHS4vwRmzNhxp_voR7J+fr3RKnIfIZc^p!c=WyM}5L>`~2SaQjPldcHNSg+T z&;k* Date: Mon, 12 Nov 2018 02:29:55 +0000 Subject: [PATCH 16/22] Done --- .../__pycache__/__init__.cpython-36.pyc | Bin 165 -> 179 bytes .../__pycache__/build.cpython-36.pyc | Bin 911 -> 827 bytes q10_data_missing_values/build.py | 10 ++++++---- .../tests/__pycache__/__init__.cpython-36.pyc | Bin 171 -> 185 bytes .../tests/__pycache__/test.cpython-36.pyc | Bin 2358 -> 2372 bytes 5 files changed, 6 insertions(+), 4 deletions(-) diff --git a/q10_data_missing_values/__pycache__/__init__.cpython-36.pyc b/q10_data_missing_values/__pycache__/__init__.cpython-36.pyc index 9f50df257f7dadafbe3ce884c55c000ecc154d68..95f62d2491e1eb75140900538fe90aeac744459d 100644 GIT binary patch delta 49 zcmZ3=xS5f|n3tF9)STzh6FJOf6ZA9kb5r$;6Z7&iQ!@0!^NX^J3lfu4^^@~cQYZR_ F0|1^q5qSUr delta 35 qcmdnYxRjB@n3tF9rT(I*i5%wqLHZf_xvBc;MX8mECHc7%W5NNxdkeAv diff --git a/q10_data_missing_values/__pycache__/build.cpython-36.pyc b/q10_data_missing_values/__pycache__/build.cpython-36.pyc index 5c075f43b94e582040d94a38ff22b71e81107625..a4976bdac3070a59992311ab6450934e1a9681c0 100644 GIT binary patch delta 219 zcmeBY-_53M%*)F)U8S50Y?aJh;Rx7(GP(XEqy z2EWO3^jipmFBQSbcf9}m-|xZQ|E=|C_6{AV9iA?N2hP|B`%?z_6YAn+-cv`8hD#o} zK}T$eP2p-F?P$;(7!kVHGhX?b^#)jM^qJS5FS7nU8-wEGhK3O*24|juRxFC4Oa=m* zQJzmq>t>5M9R(> zNQd;UyZ3K-Th%*!9V3rNXx@fOMoEe-GNMpumcM`uf#r(`5yAkQxlB@phAMOM)adR) X{qZ)54fU~>ZSi$jb2SGQNR diff --git a/q10_data_missing_values/build.py b/q10_data_missing_values/build.py index 582edbb..dba5573 100644 --- a/q10_data_missing_values/build.py +++ b/q10_data_missing_values/build.py @@ -1,3 +1,4 @@ +# %load q10_data_missing_values/build.py from greyatomlib.multivariate_regression_project.q01_load_data.build import load_data from greyatomlib.multivariate_regression_project.q02_data_split.build import split_dataset from greyatomlib.multivariate_regression_project.q03_data_encoding.build import label_encode @@ -5,9 +6,10 @@ np.random.seed(9) import pandas as pd df = load_data('data/student-mat.csv') - x_train, x_test, y_train, y_test = split_dataset(df) -x_train,x_test = label_encode(x_train,x_test) +x_train,x_test = label_encode(x_train,x_test) +def describe_df(df): + return df.describe(), x_train.apply(pd.value_counts) +describe_df(df) + -# Write your code below - diff --git a/q10_data_missing_values/tests/__pycache__/__init__.cpython-36.pyc b/q10_data_missing_values/tests/__pycache__/__init__.cpython-36.pyc index 2fdd38ba92c3ca5f1d29fa65d48fd61e792f83c8..1f88dde4193a78aba3624a9d6e3764b1f970d04b 100644 GIT binary patch delta 49 zcmZ3@xRa5?n3tF9)STzh6FJOf)ATd)b5r$;6Z7&iQ!@0!^NX^J3lfu4^^@~cQYZSw F0sx^y5s?4@ delta 35 qcmdnVxSEl}n3tF9rT(I*i5%wq5&9YVxvBc;MX8mECHc7%V`2fog$v36 diff --git a/q10_data_missing_values/tests/__pycache__/test.cpython-36.pyc b/q10_data_missing_values/tests/__pycache__/test.cpython-36.pyc index 17019265bc29ee0e0ca9f98bf98dfee0d9486c8d..c5e6206ac6b72e4a1ca40dde254a1c09ff62b0e0 100644 GIT binary patch delta 58 zcmdlcbVP{5n3tF9)STzh8#ywVWRvtW@^e%5ixczmGE*}2!}E)>iwhEyQ}vVcQ&KnA OGYPOUMopf;u?zrIP83oA delta 49 zcmX>iv`vV^n3tEU&t*~6Mve?7fe`(S{M=Oi^rF Date: Tue, 13 Nov 2018 15:59:35 +0000 Subject: [PATCH 17/22] Done --- .../__pycache__/__init__.cpython-36.pyc | Bin 177 -> 191 bytes .../__pycache__/build.cpython-36.pyc | Bin 1081 -> 1226 bytes q11_feature_selection_q01_plot_corr/build.py | 22 +++++++++++------- .../tests/__pycache__/__init__.cpython-36.pyc | Bin 183 -> 197 bytes .../tests/__pycache__/test.cpython-36.pyc | Bin 1488 -> 1502 bytes 5 files changed, 13 insertions(+), 9 deletions(-) diff --git a/q11_feature_selection_q01_plot_corr/__pycache__/__init__.cpython-36.pyc b/q11_feature_selection_q01_plot_corr/__pycache__/__init__.cpython-36.pyc index 35c8cae903f3144112ac43723fc1b6346aa0fe84..bea9d3cd1df786374039e59939b91a594bcd3a85 100644 GIT binary patch delta 49 zcmdnUxSx^3n3tF9)STzh6FJOfbM!Ovb5r$;6Z7&iQ!@0!^NX^J3lfu4^^@~cQYZQ) F0|2B+5vc$G delta 35 qcmdnbxRH^=n3tF9rT(I*i5%wqarzngxvBc;MX8mECHc7%W0C>Fj|<`e diff --git a/q11_feature_selection_q01_plot_corr/__pycache__/build.cpython-36.pyc b/q11_feature_selection_q01_plot_corr/__pycache__/build.cpython-36.pyc index 35748ec9368f7249043702f94546923c07c4c418..ae9e3d3ec658fc97807baaffa61db0e1c7e574b1 100644 GIT binary patch delta 732 zcmY*XyKdA#6rDSMjh)@iZr+4062&&VMOr{e)PMv+fgw^f?96U#{8)_#6e3%ZaM~cD zZTSH{fnVSYkf{(=D5$7Xac9#6kM6l=?mgFYC^BJTCGF z807~9NhG8s0Zy09;Vx#HlFZ{?=5s#_c#tv9z$%?I%px8wxtp$J9o|`TFYRVM-UFf{ z={LYvRY%=fZQ#)5eLmo8d|mZaUkw_1NNq(%lF9HK_{OKt=VuYx@Gu@)PahEssfZn} zY3*8ZYss+W?R%OoA$~%rFz0 zs0xym1{$zgdeXmeu+uT&+5fGE;wVeHayeRs&&ZHHz67*21n!EHxWpVx<5?M>D(=5b zpXjIZl3(|kE{rg7k)Ljl#&ITQsvJvU#L<$E=J{;c(*bH*I+v|KDe{TfHmy4;wAS`s zT4$abZNCOz{Di$-O)U*d@lN59!>FZl+Pe1W#Sdri9%piTWVDEL-LpamMVyM0FGSzM z{Z%|ZE;2PPMV`mLe#ghJ_H@w zwAl_aVdiOJ()jgg{@ya~UuV6F3fzcXic)tLm-NqpUdNi=w6JAi+ro|o`_`qu8?cMD dmfg(?`8HMe@s}m#8bXAQcA!J;VzduE`VU~+sR#f7 delta 591 zcmZ8dJ#Q2-5cSyJJ@4M$M*>19fRNH{!xd>L0z!}u2_&d6*DTnV?8?rbeCFe#J*C)C zra=1-5DhZA}Z{qAi~zXdGluM8T(7}nVs&9M(Njs58OoveM1)(_57Z< z)rkjz1SnJi$DUz@G~q;3PIbg19rGAM1yKXdIO{o8iB5Ui^GFSK#xp>YiMRzmlBpcE zFsFRXZ%p`&rbbZDAsq{0@@{xQ-!z4*kdcgLnBggmhkpP$V27Rn diff --git a/q11_feature_selection_q01_plot_corr/build.py b/q11_feature_selection_q01_plot_corr/build.py index 0427922..62c72fb 100644 --- a/q11_feature_selection_q01_plot_corr/build.py +++ b/q11_feature_selection_q01_plot_corr/build.py @@ -1,13 +1,12 @@ +# %load q11_feature_selection_q01_plot_corr/build.py import matplotlib.pyplot as plt +import pandas as pd from matplotlib.pyplot import yticks, xticks, subplots, set_cmap from greyatomlib.multivariate_regression_project.q01_load_data.build import load_data - from greyatomlib.multivariate_regression_project.q02_data_split.build import split_dataset - - from greyatomlib.multivariate_regression_project.q03_data_encoding.build import label_encode df = load_data('data/student-mat.csv') @@ -15,12 +14,17 @@ x_train, x_test, y_train, y_test = split_dataset(df) x_train,x_test = label_encode(x_train,x_test) +def plot_corr(df, size=11): + x_train, x_test, y_train, y_test = split_dataset(df) + df_train = pd.concat([x_train,y_train], axis=1) + corr = df_train.corr() + fig, ax = subplots(figsize=(size,size)) + plt.set_cmap('YlOrRd') + ax.matshow(corr) + xticks(range(len(corr.columns)), corr.columns, rotation=90) + yticks(range(len(corr.columns)), corr.columns) + fig.savefig('./images/data_image.png') + return ax -# ============================================================================= -# To visualise data, you need to pass training data only as the assumption holds that test set is unknown data and obviously,you cant not make decision based on unseen data :-p -#Remember to concatenate training features and labels if you want to check that scatterplots which I would prefer.You are free to explore labels to labels, features to features ,etc scatterplots as you want by passing arguments -#============================================================================ -#visualise_data(pd.concat([x_train,y_train],axis=1),"../images/data_image.png") -# Write your solution here: diff --git a/q11_feature_selection_q01_plot_corr/tests/__pycache__/__init__.cpython-36.pyc b/q11_feature_selection_q01_plot_corr/tests/__pycache__/__init__.cpython-36.pyc index 6c1c50906ae58c0e40cda01d8a521348eecd4898..7060b2800e2a855d9d9e8d73be3c1408d9dc3b5b 100644 GIT binary patch delta 49 zcmdnac$AUDn3tF9)STzh6FJOfi}W+{b5r$;6Z7&iQ!@0!^NX^J3lfu4^^@~cQYZRl F0syB^5y1ce delta 35 qcmX@gxSf&1n3tF9rT(I*i5%wqDf$`txvBc;MX8mECHc7%V=@86nG5;= diff --git a/q11_feature_selection_q01_plot_corr/tests/__pycache__/test.cpython-36.pyc b/q11_feature_selection_q01_plot_corr/tests/__pycache__/test.cpython-36.pyc index 93b5347767868d7c98b1b5816f63e3fa98466c9c..308db54ed5241994f6298559226a3fa8965bf177 100644 GIT binary patch delta 64 zcmcb>eUF>Nn3tF9)STzh8#zLliwhEyQ}vVcQ&ROO UFJzJ5+|Bfmkuhp>E=w{a0OObzh5!Hn delta 50 zcmcb|eSw?9n3tF9rT(I*jT|9N0txyV`MIh3=|!oPi6!~D`jgkQ$Zwv>^pKJ9*5+!K GWJUn26cJkh From 49c905e1717df68308bb1d0f21e8cae5fd53ea64 Mon Sep 17 00:00:00 2001 From: sannidh Date: Tue, 13 Nov 2018 16:02:33 +0000 Subject: [PATCH 18/22] Done --- .../__pycache__/__init__.cpython-36.pyc | Bin 183 -> 197 bytes .../__pycache__/build.cpython-36.pyc | Bin 1715 -> 1533 bytes .../build.py | 10 ++++++++-- .../tests/__pycache__/__init__.cpython-36.pyc | Bin 189 -> 203 bytes .../tests/__pycache__/test.cpython-36.pyc | Bin 2604 -> 2618 bytes 5 files changed, 8 insertions(+), 2 deletions(-) diff --git a/q11_feature_selection_q02_best_k_features/__pycache__/__init__.cpython-36.pyc b/q11_feature_selection_q02_best_k_features/__pycache__/__init__.cpython-36.pyc index cce1771df2aeb4fe480a861dd0b34c2812778bf4..0d149650591ab49877137e807b4c4b1940552407 100644 GIT binary patch delta 49 zcmdnac$AUDn3tF9)STzh6FJOfi}W+{b5r$;6Z7&iQ!@0!^NX^J3lfu4^^@~cQYZRl F0syB^5y1ce delta 35 qcmX@gxSf&1n3tF9rT(I*i5%wqDf$`txvBc;MX8mECHc7%V=@86nG5;= diff --git a/q11_feature_selection_q02_best_k_features/__pycache__/build.cpython-36.pyc b/q11_feature_selection_q02_best_k_features/__pycache__/build.cpython-36.pyc index b0c88c740ec407a51b8c32a0e223d58ea3040313..ffb3986495088698797d51821838c9721fb12cbf 100644 GIT binary patch delta 625 zcmYjO&x_PB6i(8#o$buHt_ZrzfS@S!G8GmV56gPcvj`&yRVm#jvzwW;iAiQzrDYDI z-sT|v3q0;o_P@!+v);Wd2&RLe3E!7TUS7WU<8t`BAMFo^(dyUF*FW&LsD#T90N^`3 zbT+MA&o)Nq9$aJEMf@z$`x1QY)wFxdF+HmLC~sPPIpZ?HzszzR0L z31>Y52>66*e~NZN6PT?!m_@Vx3Qj;AK96Af!}H9joK-1iToe{}zuT}7d{I`~24^{6 zP#uT1H>J5*xDXrg{FriW;oSB#ebkjAl)Bc5Mw{w3GU;_AWH!&FqONc5h5lEq+HNJ@ zyLH=z=z${u2b+Bt-hgVQ|3l;VK_S;%lDm?27gaaa$}#g-~I9BfxiQN i)lHy%5$xR?IpaU6uKjA;k?kFpf-E>a^4fK9AEG}vP_0J* delta 805 zcmYjP&1(}u6rVTynau~SS}|%5t%wAqtrWyV>B(M;P!DB6!e)1pZn9s_PD&#ia!94= zK~VN4c=6^@`o{e z!sy$9(IoF_lZ?$Xf_^iwPVK^cNv1HiM5XV{$RcKf1{)1kOkJBom7K#2Prp7Tt0))N z0cqL$J|Hmlshc9*M#^nuh>bJ}2EqO}WD-JTX6~n)<=nx5D{u2CjoD_8vyms#crzYG zB0TnZ=n2;5<+Z+Cexchd(%y-@xD$B04^?g?^6p7_N!KO|>+2Sk+JKFu#o00AIlEL? z{sL2=bfh`3yD0P!*qg=}uu&XelYF9Y^#d}8ga|D^jfQcOV^X@Y#jE&0fj^x4c^%a& zXD14C;ir0>?XH$T>GMg0t0i$&%B^=p(H7iG@@~pwsjFDmTJ+t<0i;~8KpGg(V^WJ) zB8~jW%b27|CQWZ)H=?xnY|FK?V=o%Aye+lZJ84z;9jqW>Bw-+pI1O0jYWbiuah;5_ zAoNAbbGItetUYLlNx)9rrG@gJyK<;pp?|Z57M&;MHPwJ>Pp)K)`z#S*#4t^ld18nw zQ+2(Py>fPgi7ZM*6m~YUk&>i&b6>pD_n;!J k6E&eQDL)(cAFbn?#dOtQ@o&z!cWiMOv0YmJFdhT^0oUZ!T>t<8 diff --git a/q11_feature_selection_q02_best_k_features/build.py b/q11_feature_selection_q02_best_k_features/build.py index 95002c5..139a442 100644 --- a/q11_feature_selection_q02_best_k_features/build.py +++ b/q11_feature_selection_q02_best_k_features/build.py @@ -1,3 +1,4 @@ +# %load q11_feature_selection_q02_best_k_features/build.py # Default imports from sklearn.feature_selection import SelectPercentile from sklearn.feature_selection import f_regression @@ -19,9 +20,14 @@ np.random.seed(9) -# Write your code below - +def percentile_k_features(features, labels, k=50): + selector = SelectPercentile(f_regression, percentile=k) + selector.fit(features, labels) + idx_selected = selector.get_support(indices=True) + idx_sorted = [idx_selected for _, idx_selected in sorted(zip(selector.scores_[idx_selected], idx_selected), reverse=True)] + top_k_predictors = x_train.iloc[:, idx_sorted] + return list(top_k_predictors.columns.values) diff --git a/q11_feature_selection_q02_best_k_features/tests/__pycache__/__init__.cpython-36.pyc b/q11_feature_selection_q02_best_k_features/tests/__pycache__/__init__.cpython-36.pyc index 3a1830b270d6d769e5565023aecb9be5259bd743..e01916aedae06872198066a43cc581202285e138 100644 GIT binary patch delta 49 zcmdnXc$$&Jn3tF9)STzh6FJOfEA%t+b5r$;6Z7&iQ!@0!^NX^J3lfu4^^@~cQYZT5 F0|2U35!nC$ delta 35 qcmX@jxR;T`n3tF9rT(I*i5%wqS^63IxvBc;MX8mECHc7%WAXvUqYM%N diff --git a/q11_feature_selection_q02_best_k_features/tests/__pycache__/test.cpython-36.pyc b/q11_feature_selection_q02_best_k_features/tests/__pycache__/test.cpython-36.pyc index 7c11282368a691d1031e0ef3e349d85d1d4b9116..6d61c54d2e5c29368ab2cd10ce4272ce00ff9c0a 100644 GIT binary patch delta 77 zcmV-T0J8tA6uJ}$GYt(2%ADt0u?VdK9&|5gZ*65Sb75|7X=G?GS8sA_b8ul}WiMlI jWMwatPYEBh Date: Wed, 14 Nov 2018 01:02:12 +0000 Subject: [PATCH 19/22] Done --- .../__pycache__/__init__.cpython-36.pyc | Bin 163 -> 177 bytes .../__pycache__/build.cpython-36.pyc | Bin 995 -> 1407 bytes q12_feature_selection/build.py | 20 +++++++++--- .../tests/__pycache__/__init__.cpython-36.pyc | Bin 169 -> 183 bytes .../tests/__pycache__/test.cpython-36.pyc | Bin 2699 -> 2713 bytes .../__pycache__/__init__.cpython-36.pyc | Bin 160 -> 174 bytes .../__pycache__/build.cpython-36.pyc | Bin 556 -> 1266 bytes q13_plot_residuals/build.py | 29 ++++++++++++++++-- .../tests/__pycache__/__init__.cpython-36.pyc | Bin 166 -> 180 bytes .../tests/__pycache__/test.cpython-36.pyc | Bin 1475 -> 1489 bytes .../__pycache__/__init__.cpython-36.pyc | Bin 158 -> 172 bytes .../__pycache__/build.cpython-36.pyc | Bin 2166 -> 1991 bytes q14_benchmarking/build.py | 14 ++++++++- .../tests/__pycache__/__init__.cpython-36.pyc | Bin 164 -> 178 bytes .../tests/__pycache__/test.cpython-36.pyc | Bin 2092 -> 2106 bytes 15 files changed, 56 insertions(+), 7 deletions(-) diff --git a/q12_feature_selection/__pycache__/__init__.cpython-36.pyc b/q12_feature_selection/__pycache__/__init__.cpython-36.pyc index 886fe32a654f75efb74de32eefce46b1759dcd99..bc334e43736406b961f6380d2cd3de657829258e 100644 GIT binary patch delta 49 zcmZ3?xRH^=n3tF9)STzh6FJOfh~X`cgk3NNq^FMNp{{-F1Tyl3QuyjGc5+&!e_eT9m8;%kmX$ z_$6;yl|O(L*OSmz0trQ8M)rN!KKJ_GB2d>+m) zT^E5^pW$<#w&@1lq+22sZLu*U=frt-N=JJ{A_&UnO`VPLd$ zArn(tS{QINCF=_ri7d{!0DG$tDi)bZq=+t~fna8=gmy56%uN*MN`bMySctTcA~s2$ zeb{sny4s96oZd^B*^l-0{Q)EqdoC6DsxT@rj$vpHlYx3o&;$<&$DG`esW*a0og^Pko&yCgF7;+%`lvYm0dKgn7TupkeN3PCIM8U zdU}r`7G&+Sn?zG`a;Ti+b%&@rNLphWZp@Qx*lAc&a2v#V7BgdgcUu*}9_tm-P+wo< z@2xKrZLBBrm^O5-OmxlUSZG^GGA?eEyI`kkt2dEREXi#3cA?-)8uG#1P%Rg@nMIPR zp(v|LS1+T!(B`4$Uy<5^T|dvd7kMhWnq^tSFS_q?b*T#$i>~WfHyulpTr-t0BO)b+ z&@2t@hzgaDpfla8-obCg$7Xf=<3#fP;?}l`Bz|mj8{+8|m=JE`u>7ClCRRJ(>0lK) zv18YvxsD7n=>vq*Y%rI~owctZiCbp!)NS}je*0I?d(i_y_shH#aVSU2p&XQ)j!Jqj zU>xo2@p3SSbC~iu03jAg?xEYWrI32PKg%9nJwKTD__5@R2#z)O?f;0-iyj{80^1Ro zo-Bv`7t$=y+#`m5vy3yX8qOempd52-0GtN~tBukC-aEr_rzG-|Y1?fGU!*x7OYzdR TTRT@BxYi`)57O~(4X==2Q#!Gn delta 432 zcmYk0&q@O^5XLjf{_A$Pw#7$Kp$F-~t4KjS+Dko1D3rydT1~oTcMC17cvxRRiZ@T* zJbU#?a_z}i@S>9ip$YTNFJF?G`3<-J(@7kM_ZRPc#0c4vo#h}8F!B|OAOaN8zyT~% zMK$BBW~LnNa<^tjdD`cG&8`Y`gEwmSRLGkWgkJ%VB$H7EV~5AQ#gF!QTe>oqt%{DR zwM0`iMEDH6BfJsmMc>$-ynJ23aB~O;BRiIjbBw%=Qjn6AP|}J$vXbEs81^7@@uue( zxHhmh@W7p^Oo|VZHPQdM?BAtY_HQ$}PKs1--ss@CV;?LtImxAxH^nTS@7oTx6@dt{ z7&F%OZR&pZ*()rJw@Bt9$qiiyL&enit4Wb1v$^pQWL_A5{cj+kQCF#F*pUcJn&4EY XVyWaA#Z%rzi6El&W&s4W4K3#n$!K2w diff --git a/q12_feature_selection/build.py b/q12_feature_selection/build.py index 1bbe2b2..3d14641 100644 --- a/q12_feature_selection/build.py +++ b/q12_feature_selection/build.py @@ -1,4 +1,5 @@ -# import matplotlib.pyplot as plt +# %load q12_feature_selection/build.py +import matplotlib.pyplot as plt from greyatomlib.multivariate_regression_project.q01_load_data.build import load_data from greyatomlib.multivariate_regression_project.q02_data_split.build import split_dataset @@ -7,12 +8,23 @@ from greyatomlib.multivariate_regression_project.q11_feature_selection_q02_best_k_features.build import percentile_k_features from greyatomlib.multivariate_regression_project.q11_feature_selection_q01_plot_corr.build import plot_corr - +from greyatomlib.multivariate_regression_project.q12_feature_selection.build import feature_selection import pandas as pd df = load_data('data/student-mat.csv') - x_train, x_test, y_train, y_test = split_dataset(df) x_train,x_test = label_encode(x_train,x_test) -# Write your code below +def pick_features(x_train, y_train, k=50): + df_train = pd.concat([x_train,y_train], axis=1) + corr = df_train.corr() + plot_corr(df_train) + plt.show() + n_large_corr = list(corr.loc[:,'G3'].sort_values(axis=0, ascending=False).index)[1:] + k_best_features = percentile_k_features(x_train, y_train, k) + return k_best_features + + + + + diff --git a/q12_feature_selection/tests/__pycache__/__init__.cpython-36.pyc b/q12_feature_selection/tests/__pycache__/__init__.cpython-36.pyc index 199811ee773001ca0c605ea752dff30b16fe2a41..2f5ecec793f56e26cda50d5ce276864930aa459c 100644 GIT binary patch delta 49 zcmZ3n3tF9rT(I*i5%wqVfq>QxvBc;MX8mECHc7%W1<1S*9*b` diff --git a/q12_feature_selection/tests/__pycache__/test.cpython-36.pyc b/q12_feature_selection/tests/__pycache__/test.cpython-36.pyc index 3a7de81e6c075362fc5574bc7cd7fa1084aa1fb6..dfb10bbdcf2f015f9a3b99e7f88b2cf0943eb7e3 100644 GIT binary patch delta 114 zcmeAcohiy;%*)GlYR>cMjU20)iwhEyQ}vVcQ&ROO z@8gu;{D|oaGh@`|?Q9N=j7pP#u*WM!3Fao26y)TWy-n3tF9)STzh6FJOfqxCcLb5r$;6Z7&iQ!@0!^NX^J3lfu4^^@~cQYZQa F0RWr05oG`X delta 35 qcmZ3-xPXzvn3tF9rT(I*i5%wqzWN#YxvBc;MX8mECHc7%V}by@$P1nT diff --git a/q13_plot_residuals/__pycache__/build.cpython-36.pyc b/q13_plot_residuals/__pycache__/build.cpython-36.pyc index b3cfbafacaf9b3c23302f194e7c40a3e8bb72751..94e037aa6fd81701f0eaec9d0fede41f060ea545 100644 GIT binary patch literal 1266 zcmb7D&2Aev5GJ|5l4V=ARoh9E^sGar#J&be0HZgo?|&r-{f+KC1oRj1**`&W z#IZy(Oi9!dn#MJwd0Y!x#V>?g?$i4iiFEek>;W%V81!AdQ4b1quX+ER$vG z@B%N$io78Kab$&-*&>@IfF>(~5$Gw{@iKSWEMKIHoMTRS@+rm06|-`MLTjN_>B(;% zpN$F4rM`k6rCF_|HshXIgS2K4M5u%&ZyQI84w}`}&L_6Dv#qPP0m$McXntLVpno8<2WdXPo}OzZrk1sB!_TL$w0UPc zR*Pw9-Bit`Yc82-m=l%xHX4YaXQFn~izkOws0VCN*_=r`J)Jj_Pr7SA`j4TyWO6R- z4&<~OAP^qn4V>cv?&EE2?g29X2}sIZI3}A@2oW@ze_72CJbc#96@(^j=kt!WoLNsg zP75p8sWz?I3{EKoIS1^W1pc)qTr2~(4bjb8XrhEOO>IpYOj$TH`f9q%+BgUkxM9j5 zdcpHK@bj8EtwN3e)1S%3<0sWOrcPpOOg}_<@qJMaBDt%`^V=|iF8=8I!W@1H6YoXS zp4~0MW GW%(~m$#aYV literal 556 zcmY*VJx@Y06m8#kh=?r4(e*997~*D(i6JHq4C?e2Qs@;*`gqv(p%|QSHU0-T|58^c z{(_UY@Di~%_uP~F)zfyG&BjOfGe4t*e3PByA-_b|hX|Z-D#?WA9{0HaMslCiJCX)# ztdZW(cL7g;?)VkDzDHP+B|RdqzQI`@bN`)Eg51Nrzw$QR=fP^54R~0ykViF(mR`-` z6``mDZ%umZ7Vcgr2r0GkgBWS?0x!*5(1KS?9?xWH^6*+Q4tdm7s#H4llzWkK^3ufm zGihvula&G+>mf4+lnsqA5^VG=*#M-C7TXwWHV5prfgYDnX@G^k0c~=OGX>lRQ&vFU z0(Vni)hhHCQBLR2O*SqI$VLhl%#=k|RMLn!Q-T@5Zp>>f$|Yk0qrE0LD~ diff --git a/q13_plot_residuals/build.py b/q13_plot_residuals/build.py index 9cdb3e3..8003db4 100644 --- a/q13_plot_residuals/build.py +++ b/q13_plot_residuals/build.py @@ -1,5 +1,30 @@ +# %load q13_plot_residuals/build.py +import matplotlib.pyplot as plt +import numpy as np +import pandas as pd +import seaborn as sns +import math +from sklearn import datasets, linear_model +from sklearn.metrics import mean_squared_error, r2_score +from sklearn.linear_model import LinearRegression, Lasso, Ridge, ElasticNet +from greyatomlib.multivariate_regression_project.q01_load_data.build import load_data +from greyatomlib.multivariate_regression_project.q02_data_split.build import split_dataset +from greyatomlib.multivariate_regression_project.q03_data_encoding.build import label_encode + +np.random.seed(7) + +df = load_data('data/student-mat.csv') + + +def plot_residual_values(df): + x_train, x_test, y_train, y_test = split_dataset(df) + x_train,x_test = label_encode(x_train,x_test) + model = LinearRegression() + model.fit(x_train,y_train) + y_pred = model.predict(x_test) + sns.residplot(y_test, y_pred, lowess=True, color='g') + plt.show(); +plot_residual_values(df) -import matplotlib.pyplot as plt -# Write your code below diff --git a/q13_plot_residuals/tests/__pycache__/__init__.cpython-36.pyc b/q13_plot_residuals/tests/__pycache__/__init__.cpython-36.pyc index 3aa40f003ac9ed7ca53d9580f2b40524a62da90c..1cb77f5f82bef36013cabb1255c13c992ac4c974 100644 GIT binary patch delta 49 zcmZ3+xP_6!n3tF9)STzh6FJOf6ZJFlb5r$;6Z7&iQ!@0!^NX^J3lfu4^^@~cQYZRF F005r85q$sv delta 35 qcmdnOxQvm*n3tF9rT(I*i5%wq!TK5bxvBc;MX8mECHc7%V$1pM_g@^e%5(~D9o6HD@Q^(XIVmfw7nNsNi{*5nT? F4*{B~5yt=k diff --git a/q14_benchmarking/__pycache__/__init__.cpython-36.pyc b/q14_benchmarking/__pycache__/__init__.cpython-36.pyc index 453edefacf2fed8cd72ca5b14c268f798bc1dbac..a7426240543854e3c37ea341fa76b947e94bc850 100644 GIT binary patch delta 49 zcmbQoxQ3C#n3tF9)STzh6FJOfBlR=#b5r$;6Z7&iQ!@0!^NX^J3lfu4^^@~cQYZQa F005e{5nTWP delta 35 qcmZ3(IFFITn3tF9rT(I*i5%wq-ufB&xvBc;MX8mECHc7%V*&uY8Vi;H diff --git a/q14_benchmarking/__pycache__/build.cpython-36.pyc b/q14_benchmarking/__pycache__/build.cpython-36.pyc index 28c02f81e980cbbac2a50fb3e6c6400240d89583..97eb425a62e8e6b77ae5c48397e5102b469029ed 100644 GIT binary patch delta 514 zcmZWjO-sW-5Zz5SZJK^*tzrccY(;Z1pyI`%f=9uNpiqSnlI@4KP2Jr>4_gZM4=DK+ zp8XN}8=^P8h&K-&JUJ;9s_rmv-n@Ck&gaxawz!#28=81O>%|dzK@*Pv--qPSx5cMm z4u1^N&}ondk$MdvkVI1P@KEg&V5EThn#7|T6BraM6{!x%x!R9I=%8sb_Df3$<)6<0 z?XNE>)SU|=b(xTcOxDN{_fs-;j7;U|Z39j*HI{(Fj0lndq0;ffnCrJ)N0{m0RaqW{ zdX+k&%P6lHJzFrR(YC9ik^oM*02*SulH|e>+-^FY`<2W@6IsVY*6?cdXE+;Ak!Waug3bb2qxf#($d1j-gw;wOrASS& zxPk&9I%ui*0{+32RI~^oL4lZYSTK(n&6#_T&OLV??>b-X!KGHK{`~Gs_hB8O52!Ru z8Q+kLeLfz%@52UMfQzsWgQeka!WL{!x0e{BYb{10ChmZ)(}@|v$Nby1g5eGLg!uXg+&uZC!f)^D!|znZi~N7!7S8fhhM zrM1)^8%r#@Y4;v-j636JPt|z4@8H}dVKN~f_vB$6lgg_j+E7rFkZXybS4Qz{M7Yz- zUTf;6V6T&8u(-QOIL6wx>eFV0K(@Kyf9$g?UdZT z863KHxq~-bNUB$A;~nrq)+u%Sqi)43r=MjjVpW#6M{$&dz`-j#Umen{TOAS+Bjr6{pP0hlVsiGdHYm#+#^8Ku9?7sP`U)Hgm z?N+bcR&shu!D$6&6ew+uNp2=InDN|X6Our2f)ezV$hs=udmh4dEHk!~y{K***10zR E0cZKec>n+a diff --git a/q14_benchmarking/build.py b/q14_benchmarking/build.py index 4a4557b..01d7b23 100644 --- a/q14_benchmarking/build.py +++ b/q14_benchmarking/build.py @@ -1,3 +1,4 @@ +# %load q14_benchmarking/build.py from greyatomlib.multivariate_regression_project.q01_load_data.build import load_data from greyatomlib.multivariate_regression_project.q02_data_split.build import split_dataset @@ -25,6 +26,17 @@ x_train,x_test = label_encode(x_train,x_test) -# Write your code below +def create_stats(x_train, x_test, y_train, y_test): + features = feature_selection(x_train, y_train, 50) + x_train_ft = x_train[features] + x_test_ft = x_test[features] + _, _, stats_lasso = lasso(x_train, x_test, y_train, y_test) + _, _, stats_lasso_ft = lasso(x_train_ft, x_test_ft, y_train, y_test) + _, _, stats_ridge = ridge(x_train, x_test, y_train, y_test) + _, _, stats_ridge_ft = ridge(x_train_ft, x_test_ft, y_train, y_test) + complete_stats = pd.concat([stats_lasso,stats_lasso_ft,stats_ridge,stats_ridge_ft]) + return complete_stats + + diff --git a/q14_benchmarking/tests/__pycache__/__init__.cpython-36.pyc b/q14_benchmarking/tests/__pycache__/__init__.cpython-36.pyc index defa63dc0453c646fc0d879d36fc778a5d140e09..2d5af14721032eba189903090b77e5a9ff8d3282 100644 GIT binary patch delta 49 zcmZ3&xQUU&n3tF9)STzh6FJOfxUO^>@1(b%+ljpMc F0|0-UDEj~a delta 99 zcmdlbuttExn3tDpxBsH3jU3mQ1bp=~@^e%5(~D9o6HD@Q^(Rkcliw`O9Lr*Si#4w_ wx1jPCQ(i$7TR~!8N@DRXrh=4Pg1Lz$1v&X8Ihjd%1(hJyEjB1Uc{O`K0M9lht^fc4 From c996ef1f7e49ae189b4a514bfa52771e1dc01b03 Mon Sep 17 00:00:00 2001 From: sannidh Date: Wed, 14 Nov 2018 15:08:13 +0000 Subject: [PATCH 20/22] Done --- images/res.png | Bin 0 -> 26762 bytes .../__pycache__/build.cpython-36.pyc | Bin 1266 -> 1472 bytes q13_plot_residuals/build.py | 24 +++++++++++------- 3 files changed, 15 insertions(+), 9 deletions(-) create mode 100644 images/res.png diff --git a/images/res.png b/images/res.png new file mode 100644 index 0000000000000000000000000000000000000000..cd2259e78dedf19db11797643b809253f331a163 GIT binary patch literal 26762 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 H2TuJ3EgJ6F literal 0 HcmV?d00001 diff --git a/q13_plot_residuals/__pycache__/build.cpython-36.pyc b/q13_plot_residuals/__pycache__/build.cpython-36.pyc index 94e037aa6fd81701f0eaec9d0fede41f060ea545..ce01601fd4f9f6564066e2d66983b10a8818aa1b 100644 GIT binary patch delta 683 zcmYk1yKfUg5XSd$FFUqlf&vy&h-2qi8M!!0 zD5BJenwo-^zk=dgsz_86)XbVg;YK(6?YBEKzx`GCw$yx3E*GCa{Q3HmL&y*E--mm0 zfWQ8I+5C76tbbn?Q%VWcU@fIbj#w9Uu^}3857wccvLj|4xRnyogl2ye-Hnvt{bqj) z&#Bm!OS1Hih#lC025if6$|;fbB?&8+-@ncUk9xfh&k5{ws}C)~D@-#oqc!rD8`7uJ zm;3{wpl0ZEI|enEjs-;JNHg(tf@UC$5$>=O}GVh{gU`rb-#tLNS45I;vWl(CQS}G^epNU$%de4rZR4mht zUqc36#YAX8OBlsG)LrzZ)xG_A5cNRsW2e3Guov!Lt?>g_a6Qyt+We5tGbX#DqR(Q} zIcc?{&KnrY%s+1#6~)8MLjg$VBc?Uf3bxJM!ARnxcsDk}x72aRsM~n5n5tH-x=D9z pN$?13CJ8)dxYN6sibx#LhD}wB+5*4CN-Us7R;3l{EuIq;{s1iJr=0)* delta 477 zcmYjOJxc>Y5Z&3muY9QS1EZj^u(~>}NFcQ~3d$J_A-ihA>4n{mF>ptUv$c>ER{j7R z8w*>1h8%WwmR4frY>4O%^Y-l<=FPyq6h3pC)tQ<6!S~0}DeIjpqtQSp71-@4 zjHI8F1)M932Fxk}JL%}a?McBqZJjZ7p@N(gs>6F>gzsLc152Gn1K-UkKgryyrk1VF zMdlz8N@woyS3qI}`#j Date: Wed, 14 Nov 2018 15:09:18 +0000 Subject: [PATCH 21/22] Done --- .../__pycache__/build.cpython-36.pyc | Bin 1472 -> 1472 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/q13_plot_residuals/__pycache__/build.cpython-36.pyc b/q13_plot_residuals/__pycache__/build.cpython-36.pyc index ce01601fd4f9f6564066e2d66983b10a8818aa1b..4391aae8f335fbda24b154e990c869ac7363e5fa 100644 GIT binary patch delta 14 VcmX@WeSn+Qn3tEUb0h0+RsbH21M&a> delta 14 VcmX@WeSn+Qn3tC;a3kw(RsbD!1G)eJ From ed9dc191983c49d16c950dd6ca792a03a3ef6b50 Mon Sep 17 00:00:00 2001 From: sannidh Date: Mon, 19 Nov 2018 16:03:46 +0000 Subject: [PATCH 22/22] Done --- .../__pycache__/build.cpython-36.pyc | Bin 1407 -> 1191 bytes q12_feature_selection/build.py | 18 ++++++------------ 2 files changed, 6 insertions(+), 12 deletions(-) diff --git a/q12_feature_selection/__pycache__/build.cpython-36.pyc b/q12_feature_selection/__pycache__/build.cpython-36.pyc index 8b9873082e89266d14a5f6161649a1accf7de5ce..6d0a012d154dc6ce0132f56a980e3cb3a24694e4 100644 GIT binary patch delta 376 zcmYjM!AiqG5Z&2Ln=~eAZL4^%BE^FTuSEneg5X62Sqm}kZfk8#%O*vO5fAYPN-uta z;#u%x_S!%22Xs~tI?FuXykXyCe%$v`&*CV`$!)={07K1h6~G*Wu`fOaHL%3{+Ox=J#QyE zm8Hna>9}L*Tv$J?$}};SrIk|3#~$m=3&WXyUcIoa$h5IuQKh`2D`n#Iq*zF8TUjaO zQn??F0~;)3qmrz&!OK6vG0b=&1zk|1^@!dGl&jb~>sQ|4Cq+NQnf2#MDH5$Zu0X{^ wxdqn81CdP)HUN)wV1z&o|2KQCA-sK7iA5n#C?f4r5mI*PM$o%6c3_MC0;p1xyZ`_I diff --git a/q12_feature_selection/build.py b/q12_feature_selection/build.py index 3d14641..71b1dfb 100644 --- a/q12_feature_selection/build.py +++ b/q12_feature_selection/build.py @@ -1,5 +1,4 @@ # %load q12_feature_selection/build.py -import matplotlib.pyplot as plt from greyatomlib.multivariate_regression_project.q01_load_data.build import load_data from greyatomlib.multivariate_regression_project.q02_data_split.build import split_dataset @@ -12,19 +11,14 @@ import pandas as pd df = load_data('data/student-mat.csv') +X = df.drop(df.columns[len(df.columns)-1], axis=1) +y = df.iloc[:,-1] x_train, x_test, y_train, y_test = split_dataset(df) -x_train,x_test = label_encode(x_train,x_test) - -def pick_features(x_train, y_train, k=50): - df_train = pd.concat([x_train,y_train], axis=1) - corr = df_train.corr() - plot_corr(df_train) - plt.show() - n_large_corr = list(corr.loc[:,'G3'].sort_values(axis=0, ascending=False).index)[1:] - k_best_features = percentile_k_features(x_train, y_train, k) - return k_best_features - +X,_ = label_encode(X,x_train) +def pick_features(X, y, k=50): + k_best_features = percentile_k_features(X, y, k) + return k_best_features