From 9d9c56503cced33a10a840a8d0840e6e131a5c38 Mon Sep 17 00:00:00 2001 From: Joaquin Torres Bravo Date: Wed, 5 Jun 2024 17:08:28 +0200 Subject: [PATCH] Redone tuning with f1 --- model_selection/hyperparam_tuning.py | 2 +- .../output_hyperparam/hyperparamers.xlsx | Bin 11064 -> 11071 bytes 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/model_selection/hyperparam_tuning.py b/model_selection/hyperparam_tuning.py index 3ebeeaa..d98dfb0 100644 --- a/model_selection/hyperparam_tuning.py +++ b/model_selection/hyperparam_tuning.py @@ -149,7 +149,7 @@ if __name__ == "__main__": print(f"{group}-{method_names[j]}-{model_name}") # Find optimal hyperparams for curr model params = hyperparameters[model_name] - search = RandomizedSearchCV(model, param_distributions=params, cv=cv, n_jobs=10, scoring='f1') + search = RandomizedSearchCV(model, param_distributions=params, cv=cv, n_jobs=15, scoring='f1') search.fit(X,y) # Keep optimal parameters best_params = search.best_params_ diff --git a/model_selection/output_hyperparam/hyperparamers.xlsx b/model_selection/output_hyperparam/hyperparamers.xlsx index 42016d3cea2f580a75dba07f0fff08367558f5dc..928a1299d2ff1c4feea5113e8ab992a74efbd959 100644 GIT binary patch delta 6592 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 delta 6603 zcmaKxbzD>5|HnrP5{?`xHH3k5w<1Wlj1K7(1`-mEkdPDxD5a7P5Tr{|8fiv%h=hPN zlD~nU`1<`m9>4vub9W!-eRp>r&%Ms`oZASkh7xJ2U}2L3002CIo=;00Q6U`N=u2z~ z>TIA-e#HO)NYJg7i>0QUi>o`2rHh+2x3{xXPMn%X3ol{lWp{$_#&cCHc@ysU>7g%L z!N4l^ok}}3GS-Ki7gF{U;=pOq_U)yP$|3gtM1o_ww2phYOBTh>pqgDrPw*}sV?K)^ z^`6{Q$nX4Tw_mp4gdI;$1&5U@)GN(}&F)*2~5$z0F(P_|&8Z9P| znbxBqf%6cUpYgh59gP%c%I8Hjr)tn@H_;cpx#3bgGu;kA)&uf3siZCEZbk_3HBEMUm)ID0H!~1;jBAHM*GD`+9^)$KG1v~Q zaPK_}mQQ2s(Tg>18JmIIQ^>3&@zQsDHbx%UjL+@c7#lp*{=d}3$yK+O=< z8ga7Z&gQr~_wj;PG3c)98M_*mOsAiW6g)&G>|vrP%LPbURl)8Nrg`);!(C&u!g!0) zalvRKHOqqBRNdFvFnGJ$;nNGZ()ad>x*4;ZoTgu15|bwZ7GxnaaL-+`aO6 z!Hm)E&w*h(qTS5&l?p&1-r&&4@Zv>lE>oMf&-DhL3)c1Cxy(QhA3p5j`WPdnJ$t%! zAr>CS(fA8-n|EF1u^`*xZ$fuWXWUn24TuJWwvzDtXtG<(!{jbpqt?JN@=N1db$q+R z#t_qFo0k=oFWv?$N%ZMX4aygA&FwY*0lj{?2Z9ocW?cXm0H6XO_}FRS{%G14c?r?9 z=kwI1jSjt|jWwicjD4y?w*XF0rfaU}M5WBk!c0F6Y<-Y@Ya2(j{Z z4<(@97D6L%P!+xj#_RDRh)*UMk$oVMI26y6TuZE45a>M31PNj%EW5`)du+YncT{^9 zbsNWJ-qhEIhjo}o00>{_J?OajY}vfQC9a@J$yKm`@zYD?MkisdBrSIapRv%}P=|H1 zShlk1bXSsCI^q?pO#?p89M93?lH`*NYfKEsatM|GTXSOBaaFn9Bd)wlSf13g+UFYZ zjeWA&2A?tGi`~_sLz-CPQ7b zKP!;AlryIcinxF$_DV5BeTmvn^8ET5N7I<|nnn%wLSrv(0Xyhnl8SZJn=CQ?r0~oD z+zJP?P-H4=*CKpBSJ~)NG%6H{h!LlLE(X=XS(n~lzIy^{-H|_TcYfp4_HvuRJ?+(Y zQ@JsXRkp+84F6+uMTN;V#Ty>R{U_jTTUI>tTBZe+ULc)Il3BDo(gJK#5~Ud zCO-YjMdUFc9B{~)Q!Mb~>5mJxZoNOzqxE#Y+l@xA>&6v&0D!j>kC%&^BZ3!?5H4^v z7yS{tkCsK0{z+YoA` znMLRD7o2?!!^Vm35+#Lno>u*+6b9)QC7u0HxVIX)K@YZ!zHFpPPo+;W>O<8cOsvo& ze=D)cAmV#o8)@0ZxdzuRu?gHzwkbYGyou zOT-6_qF$KTA|n@b+%nEhfhn(Ah{XiW=pjGnGh-#_mM;QUqi4vfz`8AcehkSE_UXfs z{CRl!DTX31lz7*|#p&a;I=+=^$O^ItVvq>k?8nv`*u@QG_*Jr<`&bZ0CbHUmq)oP- z{UDu63+}gWoqi@#AaOXvbWaSI7*5#eDW3Z;eO7zpWAEQU!m;+Alm&I(V#1)yujnyy zM+DX)8i6&oXFRtzj9)4hgbcJV4=n?+7*96mJgojarORL}jyL9sm8t#-r#Ay?Lq6=0 z;liiDX}OFecW3QWCBV`I&d``Pm^7yEbI_C{Vas)|s#=2iC+rnvFuiQe64izhop1Y~ zW}Q97lWOfchcMPkL!b{v-?pe;dWJ7_tR4i%_>+EV?VNlB9~}dt9(V(8gw_l4jz;AK zkm(&aCQuNjw*82+wgl6phi@dI7#Nx^TBZg`Kb-NRvs3gE*Og4}?j)#u=cq&f{BErw< z;8b&J&i&7Y?%HeRkIwfDg_678SoaMkE8chtb2Gfp1^L80#Z1aAc6#4k zSADa@`CBoQQErmo5l&3XmutPaOW_B%#pm)&D)O)_(sOCclDOhLp-C%ZBX5E(yOi>p z^JMXxar>{z+HVDWkerW&gBti2N6t?fZ`{0$I@%6&qSCECG`ApvDheE15pnFMIR_vM z(RT5sVYGpgT#Bz5Z5MHT+~4M71AS0hu~De68`A582J2p6oWeZ(&+tA?P@CE}*(s?x zA*LJjZsxP%+VfxJ8N6JRPO&mYp2kkcKO&MS@i#xLa8{5@RFc;mX{`kr@pj=!P-keh zx7BIf_l91(MLK@w`!@O;Fj5~=-kU+NC^L=rna&q99>_S7gYVx>M^_sSW->s}-ZDgy zj>TrO?u$@)@*eIsg5`LR2&;T7Wh}>vaS_!s zQFvWY`P<<3H@ z3#XxY(ye>`jxdar=dVA!7ZQx$Z6_&CuLUi5OY?K8wqk|U`-ym#zY+Q#J9%uVI&)6| zBRF~pf_EX+%*vZ9z|_^RqkZJ8Q@?wDEOcHm80+oGybxcuU9LHT>NWWgz%{{Fv3$zo zI+Rey1UDs-w;^jjiW#u5MMU53IoNtA89MxsVI-YYR0Sp@lp6e~F9=UN7?X*uK^83a z&E;oUS8ddwV|!$0%Fg=5HdrBIRdt_7qY^FCQ?wGZH1>5GF?xvaBb4Ej_^&2oJ8aKr z@AHw~(wE543aYxXU4`Q_e*aeC0GjsI1%p*nIFP`*OxBuQh7&Z&ked-LzJ;_r?O?H1 zN-e!5B^`Nz!AG^s_C#qtiP}sQ@8r#36uv`9AVC{(urT^2c zvZuKWXp!c%3)H~XU1_sN+69hA#9@UeX7hAlMlq+Icza1sN_G)7|FCYnd1=Bh;D064 z3}~5-G;U^WNg?fMhY6CqM0X15MU2_#KW@ayz;b>5wPu}grn;6=`V{L=*cBbc^YzfM z3*sUQiKyYiSG4;lPCcRF1BRMeSBOkM`VlAvwljc$BMkHMnC*sDtjzU49v4@Hy+W>k z_Hv3>Gvx9O{2A3DFefAYzyq~1xP`&%og_P9P_5wfLCZ?S_f=1f2SJ3V=cHn&Rmz>x zLX66TuYE$gr(0?!Ygjjn=4Y`F8R4t~Jnp~~Q3Axz-jey=+x0B@1xZ51 z*k^-782nk>{YfgCNsbg$5P@?NRq)s%e21Fe86$s3K|RfuTB{3 zUjh-Zvu@{Pr;wwzrO4YWQGNbMB0rDMD%%>+elU(QINJ>5pWXJWqp)pw&E9CVI_w@x489*zzX-e# zH&xG5@f+jN?m|&)p5)i3n-WR6U0@h}WLYMAeEj(BW_IB1BoXaB=SvOF6JFmwjxufQfctvXSAvvY5`HYlZ&$t9yXkq9KDB}!qWQHiN&FFevi;4gFF zAWQ2dE?imjCgztq-(-`qs2f~wOpeZ`>G=5~?pE33`&EhjxGv&Px+t#$7fZdKTV2V~ z4*V^e#asZ!6EygdS0bw8DsY9+flKi{)@QdOt-8Sm6W1~40r1Q>NX1-LK{o!~hxc1w zGkm^p?6@C0W-;tQ<-V}m&e`YXzfAqCj!#=^>Ck*+HlGc7cE1kJ9HH6~v`wGUrrzNw z^=552+WYB;XmxbpRx9sF3Z(}=>Px#0+>W=h;QHmlov`NG@CEnQ$N?I3;5xrzksn_= zw`DYXNby#RN-UUSh)`NAIOWXnNdPka$}glX%?KjizA<;69ttJCFbvO%5iKRS;Qp^O=skAm*bw`JK6`GCeZ<3X_%S z&{ale~oq#e!On(ltIC<{oaieHPf;wmS6XJeaJYN@oOabWhA@$5bD-} zkoQ&S+Eu^A<1`&ypn%p*rT!AD%LMiBV`i#vhX5*vpV<}I8OWAdEdwkdYc4vzHQXIX zV>ZPrL{O9Ay{>w_*v2PMs^sQBGt%SIV(*4gkH(97MlQ+ij3Te}!a0;e*Z??*F(#5$ z@FerI?pW1_OTeGdtBX*&w4GH#RQqMIRYUcHg`w)-U9^+*+96pzxM$i~=P`{EUF8uQdY-F3au77 zXtm(kKSvdy)naY@c*R0|!7d=$Ii#( zZT#qfVmGZqlg*+jc9y|o=$r5xH+_HE{IKKW>|?0d`G<6!zeu;eB0YO+BiHBK)Q-x@ z|4X`j-Cv-?|0aDV+MDo0v~<1%t83EYa|dy(yfiVAY+M}K7^x6NpKhb2TL=&8me*0B z456iw^G2l@@`dEpIjjl(eAn&fPU?@ZY<_l8qn4l5U}SotSBy(L)R%^uQLR{`>UIh9 zn~#5XVA6XG#8LRbW^T}@qZ79zKt$!y!yR}Tdb#*GVH~*>BVGxYES(v$nF_o8P97dc zMR<;0FM529>StJCNXDYSl8gW0{G-PGzvbeZbK5wE>|_Qu7~P%cqYoIYg;C`X)C!R@ z(nqDam%Zz^f_c04nr@Y5c4lRFs(&z(E#QC?hD(=r$Oovi0+RG|D0mKf^VyRk)U-#H zx%1zxv;Aa|CjS;45l#3{(ba%@fI%EPS^YHIw}gTK|_8wD4--^f2@Q(81uvITsj6s zso+$(5qDb+G+=V27W8Pf2!3?I+Y&+AQF*NvtrWl2qUu^LTCUWhvKCkRoZt`8%QzYO zF|p8_(};7Xm8-UFh4~}K^+6(-`1e6BtL^mx0>~zT_xEN$LWfP{x-Obc`oA`}$JxXf zuDboX1&H2=`Rf%Bh>zf9XS=TYXRiif#V*EpRduy~?LzvU==&l2 Rqaq$b#(4+#