From f9b4e5e4c2cad039cf7274d23c17c1d43b11011b Mon Sep 17 00:00:00 2001 From: naitik1995 Date: Wed, 12 Sep 2018 11:26:10 +0000 Subject: [PATCH 1/2] Done --- __pycache__/__init__.cpython-36.pyc | Bin 0 -> 152 bytes .../__pycache__/__init__.cpython-36.pyc | Bin 0 -> 164 bytes q01_bagging/__pycache__/build.cpython-36.pyc | Bin 0 -> 1415 bytes q01_bagging/build.py | 30 +++++++++++++++++- .../tests/__pycache__/__init__.cpython-36.pyc | Bin 0 -> 170 bytes .../test_q01_bagging.cpython-36.pyc | Bin 0 -> 961 bytes 6 files changed, 29 insertions(+), 1 deletion(-) create mode 100644 __pycache__/__init__.cpython-36.pyc create mode 100644 q01_bagging/__pycache__/__init__.cpython-36.pyc create mode 100644 q01_bagging/__pycache__/build.cpython-36.pyc create mode 100644 q01_bagging/tests/__pycache__/__init__.cpython-36.pyc create mode 100644 q01_bagging/tests/__pycache__/test_q01_bagging.cpython-36.pyc diff --git a/__pycache__/__init__.cpython-36.pyc b/__pycache__/__init__.cpython-36.pyc new file mode 100644 index 0000000000000000000000000000000000000000..02c0c091bf0277aadbb50e52661c1be157a7357b GIT binary patch literal 152 zcmXr!<>lJ;eMU3`5IhDEFu(|8H~?`m3y?@*2xib^^jpbL1QJFNzg+b*@^e%5^Aa;l zGP4aWElu^q^NX^J3lfu4^^@~cQuR~wic@owa#G`SQ%f@PQ;OpYit@8klS_*Ag6YF literal 0 HcmV?d00001 diff --git a/q01_bagging/__pycache__/__init__.cpython-36.pyc b/q01_bagging/__pycache__/__init__.cpython-36.pyc new file mode 100644 index 0000000000000000000000000000000000000000..39d8e2b81fffc849e0579a266957daa809c8216d GIT binary patch literal 164 zcmXr!<>lJ;eMU3`5IhDEFu(|8H~?`m3y?@*2xib^^jpbL1QJFNzXJ6$@^e%5^Aa;l zGP4aWElu^q^NX^J3lfu4^^@~cQuR~wic@owa#G`SQ%f@PQ;OpYit@8klS_*A3k?k8 nlM>U@GxO5*6(OI}Pw9ZddG3U|YAg=Uf(`1-C(gr~UCmRytA z3JXrnmE!s~IkPZ-^34vZ+u<1m{UAcoBpe@VlPSG}nyv2g}^Sry5+;k0=f@tGz18o~|bjM`N{|%}8kn%sLv-7Ip zvyuuUE*?L9`uXftr7m<$Gd{~I#%H|LyqHU#7TlayOv4M+l4nNGE+0Kk=i3>W&98)H zC-qGm>@@cvxV8<8u#dfNhj@%5;GEqKaSSqS$I=9(7-)#qA>7*h3rigVH+@L_8peR? z)~Oje(if6bRh|@(olG^CkPOU|a=@3wd#izQ?SLfXy=q^{7QP8|k%dc&Ipl3Qc&7WR z$VM9NuR+~PWO|EmqTdLUokQK(g~d2joU#-~ne^?DFBB~}@r10h7Qb%sjY=Svva_nj tmP{-;u*4SGL2!pW09_k?0hL`z{*^6A9|N&J%I?S>H*yZ~0Y1i_`yZiPhs^*0 literal 0 HcmV?d00001 diff --git a/q01_bagging/build.py b/q01_bagging/build.py index 19f8726..10d3fb3 100644 --- a/q01_bagging/build.py +++ b/q01_bagging/build.py @@ -1,3 +1,4 @@ +# %load q01_bagging/build.py import pandas as pd from sklearn.model_selection import train_test_split from sklearn.tree import DecisionTreeClassifier @@ -12,8 +13,35 @@ X = dataframe.iloc[:, :-1] y = dataframe.iloc[:, -1] X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=9) - +n_est = 50 # Write your code here +def bagging(X_train,X_test,y_train,y_test,n_est): + dt_clf = DecisionTreeClassifier() + acc_train = [] + acc_test = [] + list_no_estimators = [] + fig = plt.figure() + for i in range(1,n_est): + list_no_estimators.append(i) + bg_clf = BaggingClassifier(base_estimator=dt_clf, + n_estimators=i, + random_state=9, + bootstrap=True, + max_samples=0.67, + max_features=0.67) + bg_clf.fit(X_train,y_train) + y_pred_bg_test = bg_clf.predict(X_test) + acc_score = accuracy_score(y_test,y_pred_bg_test) + acc_test.append(acc_score) + + y_pred_bg_train = bg_clf.predict(X_train) + acc_score = accuracy_score(y_train,y_pred_bg_train) + acc_train.append(acc_score) + plt.plot(list_no_estimators,acc_train) + plt.plot(list_no_estimators,acc_test) + plt.legend(['Train Accuracy','Test Accuracy']) + plt.show() + return fig diff --git a/q01_bagging/tests/__pycache__/__init__.cpython-36.pyc b/q01_bagging/tests/__pycache__/__init__.cpython-36.pyc new file mode 100644 index 0000000000000000000000000000000000000000..633ce0ba9f99e4c9ce1a30f1aae3e8f4e66a130f GIT binary patch literal 170 zcmXr!<>fl@eMU3`5IhDEFu(|8H~?`m3y?@*2xib^^jpbL1QJFNzryu1@^e%5^Aa;l zGP4aWElu^q^NX^J3lfu4^^@~cQuR~wic@owa#G`SQ%f@PQ;OpYit@8klS_*A3k?k8 slM>U@GxO5*OHzx0BJuH=d6^~g@p=W7w>WHa^HWN5Qtdz%76UN@04kF%ApigX literal 0 HcmV?d00001 diff --git a/q01_bagging/tests/__pycache__/test_q01_bagging.cpython-36.pyc b/q01_bagging/tests/__pycache__/test_q01_bagging.cpython-36.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b3a5c215521daf4f0090f6311a3d2f5781afd2f2 GIT binary patch literal 961 zcmZ`%&2H2%5VrHP8|_cU0U?kO;dy>7N{Av)xqwp$w*6FVq0HH$PNj9FC?m&uTF9yOu=}4x z4FL9+#TQi};xf%meswe&y@@|p>PpYkOvG8mMJ!4!iis4g5ay!dn$1;p303HL@#=_e zg^LaJuN%)=%ZKxCc7R(uTo))c-Y=m6T|RE9cG!kxZ3z+HNcaqbwuBo2@lovMa>r{_ zU^&_=#l--t`#%ug4vH9Qih2tV|2RnC&rERJ;bcnH?~Om$%tb2T1*3&wsxX)qxGPhB%;s z*Q|`At_|ukH&~~__h`F$i7($YU0Q!q=aM%Mra91Rupwx=4Bl-@dXKlFk!3*PbN>P8 C;Ob`p literal 0 HcmV?d00001 From 7a8826b9037b74f09912a02d07431500247c27df Mon Sep 17 00:00:00 2001 From: naitik1995 Date: Wed, 12 Sep 2018 12:15:46 +0000 Subject: [PATCH 2/2] Done --- .../__pycache__/__init__.cpython-36.pyc | Bin 0 -> 169 bytes .../__pycache__/build.cpython-36.pyc | Bin 0 -> 1545 bytes q02_stacking_clf/build.py | 34 ++++++++++++++++++ .../tests/__pycache__/__init__.cpython-36.pyc | Bin 0 -> 175 bytes .../test_q02_stacking_clf.cpython-36.pyc | Bin 0 -> 2383 bytes 5 files changed, 34 insertions(+) create mode 100644 q02_stacking_clf/__pycache__/__init__.cpython-36.pyc create mode 100644 q02_stacking_clf/__pycache__/build.cpython-36.pyc create mode 100644 q02_stacking_clf/tests/__pycache__/__init__.cpython-36.pyc create mode 100644 q02_stacking_clf/tests/__pycache__/test_q02_stacking_clf.cpython-36.pyc diff --git a/q02_stacking_clf/__pycache__/__init__.cpython-36.pyc b/q02_stacking_clf/__pycache__/__init__.cpython-36.pyc new file mode 100644 index 0000000000000000000000000000000000000000..8384550e6e6870c00f1cbfebebc477e57ae5b177 GIT binary patch literal 169 zcmXr!<>lJ;eMU3`5IhDEFu(|8H~?`m3y?@*2xib^^jpbL1QJFNzryr0@^e%5^Aa;l zGP4aWElu^q^NX^J3lfu4^^@~cQuR~wic@owa#G`SQ%f@PQ;OpYit@8klS_*A3k{6o si%SxdvorJ3yw+Ke?Wgi|3&XT_Qq>Z`U}0Z!j1$g@r-5ccms|J5MmAF?)ZPrk>c z`jiks1Wiav8Kp+I5-YWtUF&w@q%L!7-ATN(!5X#hCe74meyw{+z*^|%C2iJ$)~qWU zx0G$b#;hki;eD`BZhf#O)_}0hHFUd1`aoe5`ob51Xx%x#IBbh;vmLezE+Xwa%J#rs zY5TPnh|ZnG2GD>#(Z#uevv=pR14Q;8Ade6kJU|}90X%}oQ=2^zo1*_4VTW)CPhbmn zU>kOCO{U%}GTd31VhyS8m6FF2>W}tQejN%Z%8P|S`1R0b-7!}X zVnT7s%UtSq_GzPZ%Qz^W76~ZrkMq1#Sb{?Pc|Kl-8o5YhMhBPCpW{-0qL`8!_xiLV zFUZ?3Z@kKzk&0HWxAHO99xn>W1Zzck7GWPU zT-r(`Ypm>~XZSkWOLGB<(v9=5zFWF6Unw3U*cR;}fM3@7bPtrKv3AU!wa&vapDtZk zZ_Q-sOlK@uSs0F;bpzu!i8G%3LF6Gu^Y5$CMV`Va<8c{Zo;-W@_2^A5FIB-K7)2Q7 z2r>ofIDs&Q@*)??Bs+tsRHJuaotg_5UE;+KqhvA~U&VPm*QE*-B=}2w4brp(`B$eUK0j$2X!{;Y z;tUsCR#KpNceBmTla_n3#+sRd+{w1->M%v{eY^W>;x3mwiLhl)y!ZZ&CZ^ zl};p2K|67hN1C2%I+uHBB?m_A8(|WbJ1Cef$`d0_Sz}z+>EvGdh@8n?V}4|W>B^dT tid)_M2GhAp;9HZbIz`dOIxc6EHtm4!(!RBC1*X21hqY}!kb%|g{txL3ssR81 literal 0 HcmV?d00001 diff --git a/q02_stacking_clf/build.py b/q02_stacking_clf/build.py index 7b1c5f8..4339c52 100644 --- a/q02_stacking_clf/build.py +++ b/q02_stacking_clf/build.py @@ -1,3 +1,4 @@ +# %load q02_stacking_clf/build.py # Default imports from sklearn.model_selection import train_test_split from sklearn.tree import DecisionTreeClassifier @@ -14,5 +15,38 @@ X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=9) +lr = LogisticRegression(random_state=9) +dt1 = DecisionTreeClassifier(random_state=9) +dt2 = DecisionTreeClassifier(random_state=9, max_depth=9) + +bg_clf1 = BaggingClassifier(base_estimator=lr, n_estimators=100, + max_samples=100, bootstrap=True, + oob_score=True) + +bg_clf2 = BaggingClassifier(base_estimator=dt1, n_estimators=100, + max_samples=100, bootstrap=True, + oob_score=True) + +bg_clf3 = BaggingClassifier(base_estimator=dt2, n_estimators=100, + max_samples=100, bootstrap=True, + oob_score=True) + +models = [bg_clf1,bg_clf2,bg_clf3] # Write your code here +def stacking_clf(models, X_train, y_train, X_test, y_test): + predictions = [] + for i in models: + i.fit(X_train, y_train) + pred = np.array(i.predict_proba(X_train)) + predictions.append(pred) + X_bag_train = np.concatenate((predictions[0], predictions[1], predictions[2]), axis=1) + predictions_test = [] + for j in models: + pred = np.array(j.predict_proba(X_test)) + predictions_test.append(pred) + X_bag_test = np.concatenate((predictions_test[0], predictions_test[1], predictions_test[2]), axis=1) + predictions_bag_final = bg_clf1.fit(X_bag_train, y_train).predict(X_bag_test) + return accuracy_score(y_test, predictions_bag_final) +stacking_clf(models, X_train, y_train, X_test, y_test) + diff --git a/q02_stacking_clf/tests/__pycache__/__init__.cpython-36.pyc b/q02_stacking_clf/tests/__pycache__/__init__.cpython-36.pyc new file mode 100644 index 0000000000000000000000000000000000000000..dbff713b5a9cbb01b99acd10f0612d115c7ab802 GIT binary patch literal 175 zcmXr!<>lJ;eMU3`5IhDEFu(|8H~?`m3y?@*2xib^^jpbL1QJFNzhd+=@^e%5^Aa;l zGP4aWElu^q^NX^J3lfu4^^@~cQuR~wic@owa#G`SQ%f@PQ;OpYit@8klS_*A3k{6o xi%SxdvorJ3pM9Pva|J(U9(>5p+q*h|1hX6&BHc5j3tqUXu8f*(NG`m$EH82~ZN89nQ{>v)_EPyV+>ee);>y zZ+~_z>rZRq!guQ~KGG+a#Vkg+l@LmZ#cWpMc2c4x)Gg+4Cn?ji(aXG&RB6@d749Y; z^^9KSwPcD;8Qtaeq(K`-_xLoOftkG~s|^XAh1tD1<}vTJjdJO=-LY3KIzM4uHkJjb z!aOXnI%}}$Bj-DZF485sOjlqEEi*@iu7Wq#E*P!BnnyOh2o1QvX7QfG**P|URH2v9 zwtCKX8EqHO*{;APxC~diCA#*|Vhe2XmBki;3`^8!-V>{}GSbksNbYWfRQEy&BfBuv zr3$0{IPC@z@1VnU7gVRuc__NF2N7DDN`!G5C=3i_kH-paOZOp)Wt^qk0^lAGrHnf< z2%MSwGV8`t#nEHv3P5|7qILH3u-nC-oVsoeR#>RQHqXK|=m}tPq|kRgk}pPBQLDRY zuHWvAJe{aby&{2l0C`=6Da(=oQ&-R;qCWOW!j}Pqp4v5*5kvEKt4!-@fVsy>s4^kx zl=hNg(&Hehx07W`;sSdngnC)F6UZnN5Ml7irLnq;kGz2bEJ~O~ZAO^=%AzG!8jlVu z7R(9{~EjDKa5{MidxGN+D|wr@+mAD z2=(B3Kje9dL)x-)M*{EUj;{SrmRLZyf8zFTmOwiVV-@e;x_$fO_BWZ>m%T88c9bz_ zLnrD2)ux&#m_k^4X%o6A^2efz;Vr#3h6G z&Lg@0M!*?tb)doa3M!M>7Rch}V4vVv+8UM6YjFDnLI$0%&z1iog~qZFi&|Sk@jgB$i#wBe1!qj+*HO`lD=fcqRC!o7 z0VLHXJ{fhq|55yp(!)g*(P{~x9ze5+N--5^Mj z89|WOf&lB^$0iT*dJyO>qnI&77FTtCn$8nRnsg1SOlSnYWEIZ<_@{G(2xZGj~5JD)Fh__RV=z aCzH2p*T@o?vsZAek-F{T?D(;3rT+k1On#gI literal 0 HcmV?d00001