From e8585bb335352cc2ed1fb9dd5d3dcdbdddc6f585 Mon Sep 17 00:00:00 2001 From: vincent d warmerdam Date: Wed, 24 Apr 2019 22:23:42 +0200 Subject: [PATCH] documentation for meta models: groupedestimator (#117) * first step for grouped model docs * tons of images! * added grouped model docs! * added dist to makefile --- Makefile | 5 + doc/_static/css/custom.css | 2 +- doc/_static/grouped-chick-1.png | Bin 0 -> 17101 bytes doc/_static/grouped-chick-2.png | Bin 0 -> 16356 bytes doc/_static/grouped-chick-3.png | Bin 0 -> 22779 bytes doc/_static/grouped-df.png | Bin 0 -> 45555 bytes doc/_static/grouped-np.png | Bin 0 -> 49887 bytes doc/conf.py | 2 +- doc/index.rst | 1 + doc/meta.rst | 167 ++++++++++++++++++++++++++++++++ 10 files changed, 175 insertions(+), 2 deletions(-) create mode 100644 doc/_static/grouped-chick-1.png create mode 100644 doc/_static/grouped-chick-2.png create mode 100644 doc/_static/grouped-chick-3.png create mode 100644 doc/_static/grouped-df.png create mode 100644 doc/_static/grouped-np.png create mode 100644 doc/meta.rst diff --git a/Makefile b/Makefile index a771b8261..c97980c94 100644 --- a/Makefile +++ b/Makefile @@ -30,3 +30,8 @@ clean: rm -rf dist rm -rf scikit_lego.egg-info rm -rf .ipynb_checkpoints + +dist: clean + python setup.py sdist + python setup.py bdist_wheel --universal + twine upload dist/* \ No newline at end of file diff --git a/doc/_static/css/custom.css b/doc/_static/css/custom.css index a297bb320..fd3a43e83 100644 --- a/doc/_static/css/custom.css +++ b/doc/_static/css/custom.css @@ -1,5 +1,5 @@ .wy-nav-side{ - background-color: #f2f2f2; + background-color: white; color: black; } diff --git a/doc/_static/grouped-chick-1.png b/doc/_static/grouped-chick-1.png new file mode 100644 index 0000000000000000000000000000000000000000..88026828ebbf83b5d612c56548c6d6d9d95a25ae GIT binary patch literal 17101 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 literal 0 HcmV?d00001 diff --git a/doc/_static/grouped-chick-2.png b/doc/_static/grouped-chick-2.png new file mode 100644 index 0000000000000000000000000000000000000000..11a2d1d6e3e5351d3aedb78aac15d262801c07ec GIT binary patch literal 16356 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

nHn;vLY8vL(4hIW-7v_WM3)k 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 N002ovPDHLkV1iIgzMudA literal 0 HcmV?d00001 diff --git a/doc/_static/grouped-df.png b/doc/_static/grouped-df.png new file mode 100644 index 0000000000000000000000000000000000000000..cb2fdc274765e14e345eef236c58bdd470945d0a GIT binary patch literal 45555 zcmd3Oby!qe+c%6LjWp6jcQ?{0QU={!GIWE$NC+aWgtSNr(w(Cq-H3E|rwCHt9>8;a zp7(wK|IT$CoY}MTuJyZP?XbtH3Rvi*=m-c1Sc(s2pCTY2zeGR)ZJ>gHCn(s}$G|^` zE>9Jt5sLcA*MTo+jt_NQ5D+l%;r}Bdyid80fN-b4MqS%gTSZyK%mKn-V(wsS!QlyU z1X?2?hqH{H{Gs@akEBIfTAKQ4(2wN zUa}^x7UDcy+`{Z!eC#}Y>O9;cTznz|T%w%+)#l$FUiX%9wlHyZa8`G4uoHi5<7r_B zfqw<_atLv7-}L>v#b2G_`w&rcwy^*R3@4*F(ENWq`|tKL4iHCY3l|r7d;Z(@e?R;0 z_D?Nb9PHfS!)w^vxQg@KcKNTz|J_UH-`~Xr|MdC$;eU6~{@*(M{qV02a7Kt+Q%YOb z24Z1remPRmQ>2!TFh^iJ1kQV%J^%di39|uP4&^cOpSPfxqYZ>zCV} zqMUGX{!6@Xbm#ghpgiK}08{@cqB#1(W+ny#f+T{XtdzPZ;@0%``{}&MfWhI5ql;PR zD7+lPcd+|rO&2Q)QPo(|x}No1xv{64v;J2XRQ@=U2#84k@dtVd^8ZEk68AqIUblf7 zf$U@)slWjUAk@GAz`%%A)OV$LG5_;1(5eLMi`aj+MgRpOjfLDt>gD>6LEvM;1dx9H z*Vw>UOgv*UQyjjQzo)!uHHkBI=YI^s^)LVuDm8!^_&-Jh7Ju)54D$c&;#H6?e_!M( zGQIqJ$uLi7^X0{_+5IdY8h~JrnZT3STI^oF2Az(S|MC%PfqbbWz>6n?0FA;h7XXWM z$ejK~r!7{PgUr?g5A#SED|9cmd4-eUt%GD?(p5oNChuQ7RKVDCkRcaqBzOf&l|03` zGWcjY>hP>g?_PC8a<&}!Z?Unah8cBPXFkM4awm!w^g1(@sD8UtC7qI%qF9xZESg38 zmlVK0BTV8{%koLieGX{iYA+skkVzjg%B)~(ef#pxUxW7H%yC+za7U>_VP?>uvwNfc zd)y)ve~INu129l}Gcv*&oADK~pU;%n*x8;EJ?(m(ul+A@1$5KXNSOVv_L9bFK!?LE z5)wot4kXv``Gwz6!%?JHYn>>6O^b7%118Yw=zLce0s1gwN04+ZAQUVN{a2b`8-N-V zipwm$f+0Zb3<6Zc#3uATzt=qb8YK6ZGC`dIt?2q}9R_;>YJgGkrxN@nkuU~e3_G4D zA8S7&IGjzYQiT0YAxR&g>qIgh?!PR({S*syqtg)z`*$_BpSF?5LaZGg$^N~OYt?>; zUV;^4K2HZieS=?e#4y%=~f+Vyh8_T6m$ecKr2@VZ;W=wIVn)7HiV~*AtA>{Da{^z2${rd0duON(CC#`3FBo8^SnM;=icb1{gE$ zwxlQ61SPv0wB0U?UG=U)&-R~gOV>taG70P8deJ?c*Dk8#ea%vsYWbJ8719FYB;q2) z@BppGLswhh6u0MUbD6?7!r?&j45e%q+_cUSytPm*da7D*I6j<_FCEnH&$j(mGF^ zpVD?nl|`^ik-dtm-iFLhnh{S`-qU&zF(zQwA0@-!mLdz^^U;3;^$RF~?FVr~F(p68N942nXY zI@{a!$-&In%su$BP_j5`C}Nt@Z1|e>HCa2PsBf%TWTil$X#fna*E3{zh=`mxoD5%wq%O&f4pKSAi)&9Dm&fR)vmeK&R6r_z zn42}e7k${KSXIGTj8_6Vs&Nce;O6)A1-A&lD(I-vF^P4r8TfX$R7+SM0osUU=$F7d z%}U8x?V2=ifA%Oa_U)sPj*8NRMP|J6K0WE==v56Fn^se4|ANV{eJ$#_sZSZjv_ScHGmTy*eV+EP1zT|Y6Rx(a+ z5I~!#t+V64_EAlP%U`I1d#&=c40;aC`Cd}eozS0UyeG#8nlILU6Mb565`<>)@nRB-iOZhV@v&cdZUQKaxee&xmq1;vZ`@ zqQB@GX0>7NtU1yzF0iZA@tUa48ydb&qxsN}TKI!%0qPc)_H)mjocWh~GW z)cHMglB(8UfQ5r3_9dOg#hI;&`kpU7&ibs*DJD`wvG#DfTSh&qC6bqd&|9JF@konU+&{0{nwRb7Sxu8e{Y8bsBLO;k*MqT*TnO;mky zd906jgX(rTP{e5hU}T6F;n|jGC_Mu}ny?NtqY+KYs{Z4086sRuPfd|ZpD>>H~a8@MtJFSW8 zg>q2rhgis#BFax5m#`fF*i4p?DuY;VR@FzbgpF%20h3zD3>>C~!kp&8FjOez=0{ww zU4alG&Kh6L@@8YxdKJ!7ngMy(3zFtjU&?20^Srg9B!V8DWYQCFQQpwD$~1%#wXecm zCob)P*^v8~eU7N-%?KEw{WIuFDvfmbm%i>IOyp2Pq$#BwUskP-PtUMBtyB-pGA#qoXJ7ihKRl@^D8!2^|bSf)0%Do3|UfsXxQ)$J(n9x?;J z07Fe-lwdhI$YT6~nHj3!+SJu!a4cja1i&fRjW&TcrI+L})Hh#mI>LLu0!~w>4%w%7 zZ+|FcHufKv^1JuaC|KL&eFr+6oW_ZOEo#XlLA|Ce@aKfu*n`PWe@^BRY-dg~0dIjE z=w0#(Xywy`uR{Z06tHF!P{Tus_mAsQ_VZ{X05pb(q=^sM=SmW4sy|CbfKq|Bq|WE& z?!X7Ag-Il@s{Q`6IG7)Z>PiE3T9e6XpiQKgzOjNE<@&b*G+;9mZ=&zrt{LoDCfV@W zQ3Fy&?}MYIp906d?zn*4x5e{p=^rO2g&}&%8dZ*gvlPW?f^5% zJ0+Le+~V%g)23y8`TMQ{K+4m?Q#;C*X8Z@sBOQswCD z^;rCyIb@K=0`7n90bfs80LWu$m$EO{z43QUMxKQBCT~&B!JebB7>s$(v0VaZXMFT< zrZu^VYvC>=J zQ2=w!HH|vhTN1NKaA@H&5tmfcSL@VHj_Nw6`$F3CiJ|@Idq6B8^>-AJy+2HX=6;o} zvL#d2=4q^Q#eNp4%^O$_XlgH6bt-p=!^_nlJ;?N0tee;X)9veZtT5VF@YUL>4G5U5 zf*Lr)1+!2*+tn_Je5alqy$}7RgS5oa>R}{PGWRZA>Q9qVGo6E|fWi(IzIo`v! z|2rXGyVJWL!ERFC{tcf$cz{|K+K2a3CtgwW;($;^@#dJ1Lc`ktU8w|=O;2rBD>lmL zei2JEq_h9Twyq#DiiA|sCl6axgD5)`QgZvy0{@LYki%mi^Z3eM08%D49;V)H(fCK>5s@a) z&!+{*2jNDT0{O_ns)V(4@#r5317?zkTR!=?N{>$sD~;*RU;K?EbCr2km(MSbu04Q% zf{n5P5LA00*aNpmRDSwGzgkd~#65WOG5;7UNn13&Z!|H__%X2 z03m#>%a{qFZvuAs&u83E1czgl0O5lXAigLV4P>@4zdK@p=M!zyPk*!RCT3VO)_$*- z#7A3$unpED>R=U?JMvHzlcDKfw%U})#V2c14<&bH#H-HP%jMr>&#$MdnT}CXi}CstU?ig_}99X%UDE`fWepDD{KuJ1VGcOe!GR z_La`>xGZt)BLdz$f_AFba*0Os+KVZQHF4Gc=$oE6+Cbk>IfeyR8$Nv@0n8CaBOXkD zk#CG_AS0q^&IH!0URERWUgXt(J#|S|z{2P%;#pO|lC>fcYbUBneMF6|Lpt=cIi z(4_&)psgv{G&%Z`vS3J{D=W0DKe3!yHjokNHz?n;yS3;+0lfe68 zhJ2nymHTLLI0R7B6_^8#wZ3DF(dSQZTp#k>$=0rQr%;zMrxPh(&)4diJ1eOliPR{uMr%4@=j2p~Kwq~< zx}y1S$ome5bABZg`+aQ^$=Lu+`4V^bZAkkNEA8i1{I4r)%IbE61|ts z*UD6d1DpimHWU1c_2=&|Luk>I`%Ol}=yva+@}0VmfsZ$@5G5YT&P4@W(3}f*(BMJ>6ity_aH(w8JI5!>hdr&(gmc4wt!lAuPK4IE zXLxPw@KyuiPUNUj373&8;|4jNEpMh8JjVR1^0{-NgboUigQhUzO0 z&TVdR4D3E2=WRl~UGtz|rTzlTLaBSr5=_PAun|F4VY`D(OIkWIIvJ<3%z)IF=Grz~ z7Pbpc4$o9p9Mn{qTNz+*&k`_cE`Tf~ZuYNDVl)^IlQ@9WCP}Maxgu!zUSefe>8uy~HiU z7ekTR!s-fHx3(-74y-nMb_}%UH`w{gyPGI27~{fFBKm{O?S2&qhz(KVmz$#>Knm5o z`ie$)3DU&!1`go{Cfg;Y8AKL5#}TqFP=obo!^O5ygkN1f7@fT67NW;$OmCVq5ool zbc5yqUq}Mj*6(q=)6cN&uiShCm6nzb13Bj0x_IoE>UivNL+A-z;g#bX4INSjNXQi? zN|Cde#O)4b?5$cUo;5R8B3Pdv2{fftP%REEeRA*N`yoIreUcZ$ADR}1ve456vOi8I z`cU1j(XM=lqHgI2i%ne57X~n`X1n6u)mwb32Zymgk6!S3)h7;*m}`aa(;lzX_#56ft$etDLNxv5&mLCxwhpEskf-Xlq~5MT`=d;KRHAfxA!FXsd!W2 z=r=VYJ)s~hjWK#*az-n(w>|Gumo>d++Sn8eHF#R3u7Ud81CYOet~!gDA-LS|yV9v# zZaqumSE_6mtfO-xlvrOL|NJM1SH%kwR!2kKcPN$xUM1XNpApl!JW27NMsL2Nd(~$& z#4)5CMMmk0KFK8`9YO5q5iG8DkYvp}DmJTBZ0jM`@+ZZ>2gF%FpwUWAppLyW?fl(e zb&q7saOaagx<9(hySA!q+3-6PcUvM2NFCZVqOWpKb({^%-B|md)vtwCzmQ3ov?O&5 zzSAi{M}9f^Ap7f+1Pio!p4RlmP5_n~moKs8Q{k_3RTE$5~N)lvc}RQ>OqP*SVtMyEtclFXr)0 z_ZsuOjX0H%VX!mKrTXe&Ue=rC3C8?I%c6v{wU?sXJ0CtD4{B(|rfr)>Wf!+NX+idu z=+}2>tP{-79DjZa*LQ2=VRr*#i?hz{#8+WA?`&ON)^r%OyP56Z9(l!p>$hJ?B9S{& z^}JQ+eF~btDUVKN8)LN){*OteY~5GP&&t&ad*hhR6$J{~!XC`baCIV4+B8J%SqqUC z(;DZBH~o@M+xMC*fUx6@BS$GXJfMLiQNWg+6axDLuzwc1$Mbey2&YzjR9lyo^Tr5+ zY*bEuXQ)AL%ezJKHkkyz(8-RZ6LX5lBWH@~cA?dC5*6ipKAhTcM)4|EfIA&)Qgqw1=3T$`>*(AEi{j{7VTqfS zWdXgPKUREzR>X*xQE=>`R>G(D-^L1pPKwYm z9q(X?;O)5HSjKH_9@#RLxHzpZ#eK8bw!Hm(k;(K5Z`9f-T9}-=d)7LYc4_HaoSmOR zmr~;!6l2*RXi!AaGmlH~*q@v*A+8_fiQRbkI6~S0mJDR{=pLH-&1qQu%?f?9B8FGW zjyHmBJI(-zfwqUB2$Y)hV6~ItcWIg{G>AA%c9in5+O3OhD0H9jyls1PZ;L5d>(D?t z+7GQ=F@%?1$Ka=m{Cy*7aj_y*+?qzLk5V}ijpk96@kXisSA)FtC_`BvNg%g~AVYO7 zz0Uqf+Bh+w;e72immlts64qf%;=UxFgcncBZj5}(>)*lXnnmZVc?Wz&IT@l~-^M@n zOrz0v6E8}r-vCY2P0^1&(QUJ`^YHPVJop4n@vs>yac0vh{#_UEdtNBH!q7QuK$GJ! z3IPs+q(bSuSX_rd(cag`H&`Ww8aS~?4n5Tg_v=)M-xu}8YGiCaJ>iyZBCY1?PDiud<90}{_P~=Z%XWqc3T7t4NFIzr6CC34!&O4Lh<6v=;Iy!~w z2r9YAtlA}+P65Bp{VeiFAkFGhqRn@zqop&+PdX`dZT{S{O4GikUc7JQW@p~XE7Z_Wp zPewv7ZU&gcO7=yw_2l)m+K-t?nm``i5vMKzsg%ON=htA>(tW4`$eGjWff!!aEqY-^ z1)ONO`}z_2>%vpRS6j=utg7pm72y+=ou zE%b95XR)OfDvCHZ_)$f;3xTnTPMkNM@tH_jFOzATa!@4Tv^xB3?{=KzN$_Y3rg8R3#YC)E?|BC$on zMczE0{a|Im?R4z3+Bz=Qr%tHpRp6$Bo!i0L*~|5jk~9O+drPcg_6MRpeJ))j|%r-#_+LI{4Qr)qEZXH53e2XOj-H9bk#p>beVvCYR{8{8~$_Qv@cIlk0p zk4I;eKgALy@8$hm406Sk0KjcUf<_p=+a48Foiuzm z^bwj?+CIE$z?*P%_YQSUFQdd1kydh|-IIKk zr;JYd2QobGlU0Ps>+N{i7n@RUKnQ%4L{@-E`d1DSJ2T|^`&yiMr-mFIBkcuqTH6m& z9iA%XPO*HYeB4JPD35%3#*u29P_ok&9c9Aiaak2~aJ-?ze7CceFCF<2CprG6RD79?-xs0G!P5}{Lm`UF@G8)5|SI!dJ8NNptx{H z_OT@VC}vtl2w>n3@^#c!}cnD=H|S&8@Icb#67^iH!^4Z5g3xT@>+Ja z4Zsbx@0vf>3N{`@7RW@;R)KcXlz%)K3P~1LY=@^ifN5s{<=dZ$hAR}T4RlaM*c`i_ z)RUZ8HMqbVQHh0udW0Xk+bL)kY&|vNfVm!iEo72U0X3q-0CGwQ(0gcf9yHPy%e!t3 zpI@v+>J)!JAp2>vVJcVz+{w4He^^a&nDK`2&JZaE=&nc45b2Lqk4=W zp9h!dLA+C^_5GZu#b8*qO|T9a1<4YCbKFX4PPm>7IK?69KdEL!(n}geo=Y`LW4Gik zj|Y_Jtmwp7$b(t;Rs^tLY?squ(p$|0^{#ZwA&FCG7_l~~q$fJOmIVXx7#f=SRz~C> zSIkUGh8IbVCj?@>E-%i%eKGL%o}ZaLd=ZY*_=6n^I-oQE?TJJio` zkE_Bl=R@M7?zAy8y|QLy-Bs)D##9A_Bf$lgL_Ki!qZM=*EK%Zc|EDAH(vQ^ zxMv0h*awx785CTLi;RO29nUrc>O=9`FvfOqjXvyOz6t#&*rtp#hcbh7v`M|KE33=> zU{t-9^+#{aN}UrH^fS`d3y!eJ`j)Kp!ir3Ll1SlFHY|4^W9bup{ZS%&l5hKl2 zdnjc{cX>U>X`8_zqY#i3VVz6E+^OXjf(X`iLmYW9UtLQM%n;}b-?JVk_<8FR&maeV z9M;CGb3?W8(~94MFVZ9Be1M3bDoiY0%hR-mTt8$IEshHW03y!9i^Kd0W+EV;IToUA zLe!C2EP28mN8Z9t69*9zmXoxEbk!tdqmSm`D@+7~cCd|(2e%K{3L`Cn1nEgV{ypM! zlc#{Z766iK;DsixBk7l?f1w|vu~mjK-f4RnVkQ56tYs`H2E2({(|+>Q!!zYgw>yPA zkCZV0@;8V1TZ~x0&icn@VX87D-C@K%c?*+B{}gZ9ObeEG=;Rx&G%@M5O@(V8=9A@`Hw1+GQ2Z)m~ge>XHluqakF*;J4x&@bts^-IGVB z=O-i*!xx(8i_cFdLOW|0m5wSWjlCQ9U(_6^Fx8F+EqgB8<*IQ2>1#vS3;LfJ-PLaA z`dl<18o=^be@O!Eyy{Jo^UGi%LJ4HlNwClUn+C`FFkpb~kf~OO|yGCDU&vjw!&0lu{ zl@@vnGBCa=ART~qLV5(7>R6=Sx7NN+7w%7>4{V`FQaAn~sE$8Z@QHvN%q0g{Pv$Mm z*DyvTfc_ru-D0%Fag*Yclw7*akK&Myae*bnDIW)u^!RJ0PnGqRg^*P#7ycvDqf1XZQ(E&Euu%@@~%9w z&hHS3od(~xLQ&G+aNnoI9KCO)Mg^hr5tQ6RY5Is|f)*?p2B-x6qY5bmr~rudD$z)| zTI9l9&V59KSks#y?WvduMHI28YaspZp<{yh>tTJjoweR>YVgfTaEo>U>DU7iV(b?r zpi|X-TYY_`i#aJ4a-V^uU{ghY)9~&cU-^ukyJv0*M(6QTKR?ezowJPi(c%FGwQv~n zZ!&*Q8Br(PY6fTOk=XEoaw@TgaGlT)dyc9KYWB8)xfs>GFC@Tu`gYcMXlOcx$J^`I zulyPLhnAj`;dcX(7wVblO1?MpjeQ(;d=vp;H2F$X@=sAsNw#DIPD1cQXS5F(Zy#Hg z^~NJj$3{ZZv6pFTn4_(CFyju?6OXGwJCyYh2eK_UnMc_^^mh3Yo;|+&Nk>b>qF!a4 zj!`ei_)hG_KLC!&F7k;I$u3qHV9EtS`)VF%syzNd(z*#&0B7 z?8)OK51;fERvW+YAP^tc#G9+8)_fn4)XT32@gF(6{@4Bxgv}?VK?3uSfb5%fq zs)Ek5->8-ZO)G+%aT>>1SbkJ-mRSA5azQ#Va1spG*uNSqwpsMtkJ`Dxx1pqkg1fzQ@tqQ&ho>>2;5#k`R+8_! zo%@M=TNzH-)i$k)bLr!8cUtFi-hqf}W|3TDE4wXP9IAb1Xi7r678&;d4Tiv^59Y%n#&5$Mi-AmZ=? zGAf`im60U5yZR<#mTevD&U(w#^5uclXjrvq;flY8u}LF6EfMy-{MJP&9ji^&&CA( zAK}K9w=54+L<2-9qWLH6;>$Yc=i7v(;D2)*;+(MKG_&d^p2%^`&Kw)83Ke}Yu|J*r zO7Cw+CLGVpiC@Bvac6>~b8yz&0^{wRR^|e^e!ID;8{=XJ2kWS$c->vM#Ua28_6B@} zLA}J28)yjLvq3z|;ajG#>B{KMJ+DIFoN_?o&dcgyF@`fPloqYdgmCskv|WxJLi@SKlxz*@8PhlW#e@Z*pbv zEaS9v@Ul^FtVOLYeqTMb>j6XkYCEapNc=O;T&#}Q)c+Q#-uirVpJBruY1NB^{#4Kt zilHWx5RnA|rIAsV#ssI;8AqhFo9mAgQzph z7M$xkCSxk7=g(PAk2AB5$XMS>$6dNAv34q4$6o=BYE#)F(FJ5YRO~xH8Io4yY8@&f zirwh(-6*p`!cBI(3w1+|m8cq3N$7!}VHnU8v5gNV z7weOwA(MB1nhm@7LwC<%l}7TXPu~*wolSQNmdK0^I_#28?pHY(+#%FvFRgQ43x<_} z{5g|J!l(lzaY`h*x4GffUkE_Wz9@UKxlnTxEFfW95Ot@Uu#CN5cy!Q(cV<=e0_Ybem}i9a}agx>{Lh^qxK`-PY}bWy6W51GWE`Yd?iUX znUW`i>-;j@KsvMP0`-}vAoqMHze;t$?8pZcH-DMilh2r+rpf#?Tk23&SVtZ^2wKh( zbEp3KRH&HBK+b!{ElR>tx2|=e$-6CrV--R;(L-S#5+8qBz(D{=?VKiXLg~?v0`BoE zq(_=8R0~3l>N#iMNmhdAzbB^k3;pvao@K1(0C?+$K)@Al!#0qYa?i4;Sbox`4&j$Rvy2r14&Q`;bJS3y!^lkGnhLWOCZmU< zfkt{2g_^szr%St3aN8vh5Ev6Xp$;{racxT~MEjnGDV##I$eu4q^Dq1gJ?}`H772tE zEFY$&0%3|h3ixsEvGV@WjqYmef=_p=lN~0hXf&v^glqPL1i&*Zqus0KnTXpq&>Eo9*9z zblywz2)QojJjnr6XEw#-(8cWT?t|%dcKTz5u5lsk{YG+ZkXirlvq3dQ+^&A3?z5Ff!+Eu z%Joxa?j5Jn!31udRQwKtzT46wae813cwLG=8Xa-?Kn3BL{rm&CA!O!*d@p z%Ub1`e=_9y?#KHp7Vgj4kv>)3{g)6Gr(Y+`CV^v&At^@ZJKnmfpWgx|7H*P(Dkp(f z!PN^^jrM|;Vs-Hn)$kPm%KM1~GWsZw8=q*akfHRUAHlWVUo~QqLJMy zHMa=b>E4y0?;52VEdylU$l_i&tvBN=3ZEQ$}4{~XDg;o$adk7 zKgRiFa(*NBqZU3?;hD`YbZM>Ay1LOW@1&NIn@X-^kd%^9Dei=I=|_pOG<84#aHZqd zNe>}Ge-JB4A1xRFFpgv?Y_NL)%;gwo1jk&~rw4g-io_8~>{1UZd$YzpJXE>72&C$3 z9?zS}>iENmOZe<}TYS%?zkq&!0 zqeyOdaM}?Fd_tK)$H{5F3}bhn@t8kGa)%edwCm7X0dfGtsHuDsr!fe@5zOlk>o>v+ zbqJX}Tg8o%4SzMj3uzxJ(ITm$*s&$(1Fk>Vf_#5zCF359YXMt(vAPr8V^LY%$NM7R zyf1NXa^#%EqDb@G+uiSPrL^L%?8Ns48{02%Oxw)R>cw=pE4I_pTVKze2HXbl=K=vz z`#KJ-Ca`ta9Pk_Mx+Xlz@hA;ktkN7RCwSJ6MoXx!@+E~attHz^)VgSvIPLT{X0UbYH`y4C>>Gt5*a^+(aTOE|~MV#|sPv1hI zf8p7{(*XV#O1*Z4qHdmg-PN5TS1zTe;j`%jwKC#I(Sj_UVr9CFX#>6*a|XM8s*iE1 za^b!98`A^6&2`ZRND@Q$W(5-l6yCV0*cVk-ZD)ktZ)iw^4rORf(2fgmzn;b)`B_*m=CD#h~=d;Z-L^ z#@L(i5(4xoa0Wcewg%#jgusrg=HI+{ z>3E<{!8Y0Y+1wfH$=z-Z-##iZ&g>I4hh(9zh-_~G!MdjVE*t|mJPhguLN<29!~4?0 zDWwqU;3A7DV_wvui^PDbQtx}+Uy{kjevXt>e<)gn_>lJCg{~g0Pt~HT)%UZcINeH* zaR6Ym?nINAQbS94+&34^{i-1!5ivIDrgIp#-%tsZH+FZnu0AhY9R1=)EPa{8%)z{8 z@hg_v`cGbk3~ld<*$lpyYS8|~Z;0$~DmvrYx9+tXc76NmzZ@Mp{=5sIV`Pu9iErx- z9hV*3U2jgXhoA2uZ`iI0JlJu)D@}k)K;D#!1025Y8T`Vt_pL`ALUCwr|6a}Sh4#hd z`ta55nj|y2n`6QqehHwOgm%^gWTFAlnsiU4=xc|3O{`k3XS4P0UVC3f-lLL}gYX+b zfL}qsJqO8WCCq0O2FwA2coQIsgZlzD0{PkMbGA-){gaDBH5Ksl+Z{ht5d0BD8Bni6 zdwLTZFNs6A5@=N|mn#BRD#;36>b5GF>ux)>97$S#__72g26ypKP5mFw5Psl`A$c~+ z!e;XKDT7WV&BLxQm%*P?0xEa(nEp1ssf0oI3mo5I8QiWD0g4W&1%Ii31HTX5 znGAR)aL%tvvNWpkQ+oz8@@@SeA8@pMpk@Go9-N?wY|*}7R@`(g>6zow*|$N)l&=eJ zh6XC*IW0sNJ~;6r8cZt6#(VT?qXFqV9mKPxPJyYPre%_8rC(#;GN-R3On0MvpuZ7Z zBY348M!9mt^&p0G4GD)Q8alS3#mW*fS>o*tS@M?TH+)mYhrdNYAnW_J`t0#Tm&ka? za1`Sm9S9a`Q0L7|W{anTzTYP6Zfi1b6NJKuzdn&4oUIf%$9`2Edq!kK)&7=OZE=kJ zk5mEh`tF|>R@9@na&{hsocAUyC4N=0rBEsx-PX3Z{!?)mKnR2e3-7k0vay2;ObpJt zq@0}^ToLI2`=)|?1kHHTe5xHv0eZ+9fzuv=CtgJ=Z50ieYB=$lfb4E7v1JnJwE>C5 zb1ZJnth(2P$4DWYg%aHQ=2aZ8SewX(W%m7>_B6n<KMlm{aCer!WdE2??@M9f*I|D9Z z#uA8L`>IVoyIP%_Z&CxdP?g6C90ThL4Yd>zZdR%auN7Vz&lZ4x1;Pfg#Wg$pCjmT4 zj~oeHaHrNds$-pRjUY@AFvlk=4bS)iaoCeXJe#TMRx(S;RX4#n?UNOGO^Bn9&C#-} zjP>runC!vd2?FH!Zf?LEM+Y~dG888TJ&?P0dex?T$ z1vU@GJ9Wy1UH;@+S%6#*6Ecbs!9Z{prSB8yd*H?@33RF4y0Uubi*BE}N(6s7spvDz zS1>Qo!MRgZ#-Z&;8l)Tm)o=%=O5G5D543NpWoR#P>9?uuKImw3mb3!g@3EtY33?Z- z(~OG&=5@?0tpf;GwxNzCkjGP)^^nLREm?-|3i=58J?l(j!!Gmmo^1%uBfaK{3c&pz zDa2)@bU2z32eXb`*58R+#zdz<7jo)#0P<9ZE_samjaxAYI@qSI32MOk%mCOe+~w^*4tZIMNEDMgJ?^l5t^||2h5|<;bsE159)OL?BgLu zIll$65Qr=Hbstf`NniriSIt;Y?B$eh_-KemH>)}xSdtT&Cmh-80mOHNft&UG$R`s; z@Ozz-mGIUo3JORosAE^DDt;`2Mp^y&ub<$a1V}oQ^lAz59)5N-J$1~{I9Eo~{{vy* z1$ARVyf=1^k0^9D$O|Ph%q+X6H;eZ)!1-Dj&Izb?+aEk*kG)e~?LQb1lvnEb^#(*CT?dRNJ>^)he&Y$_Bu6CIG2!oGMM zV}W1bYAe9cd?1eAsf_6NsrS2;9nxL&F;1TX592WWS7mpw3LO?RaV9+v9#Y(}ml2*a z2Cnl7;FWB;{YZ^?j0PM|E=XH<*v(;PkUr(N5v2WEIug1!H68(yynvd%e}Z=%{RFJ) z{sVR&9J1*EGTXg`~AAFZEcg?wW^gZlDXIu8U z#8HU{3*AfWejfuGW!k3V6nF&K9$9`-eRQ4Hh1LT0y630WQ81FWBO4#d$Ct1J(0*5< zRmVZxG3^(`Lkovk#Fh)DsC&i8|Btx046CyF-auswN=qmmo9=FD3_wzllJ1a}kYF(|`8}NO9@Be&0*ZJbLW$$O6nKf(HtXb<`_tfojIpk0++z$P2 zLb0H9lNh?G>g)4mJL7gTLhKi3UD+C|0m%FShIN>odw}`m1$sk4v00J{pM1*fi*_3x z>-!_vwD=i5wE3d8!Z-lO3l0o6AMOiW*0rO0K80qP>dw(|@ML39E}(OozC0Tw)?I(I zX`UF-LdyZYGv#@+EY32#%!xD#pfI|Xf&6=L!j&&a%YZ>Un6r)j(y=q+PgFvM>c_9a zw;)pi36)B9tw@tjk+=4ZO|Ue{L<#3+!P^Kx;lGShV;Bu`qvdZ` z&twW0S#wVs8cU3BSsxhjr0td7Ee)%iG7;~ZO=%@bGj$_r&Bb~l+jPe=njx08VBLh9 zvb7;GI^^wAqt^-^qKx-1)6AtOR7%LGQ#Wz@*b3uBy_>WzxTxZw?|Jsf0srKP5S(^t z)`a0cT0B{g>^uIcnv&Srn{EB0sJ2dLF(G7e_vpWKd5~Garc!9vC@gV+<7NaD*TKBiw4rXjIS|B~2a3ZrnB0T=?QSS#_AyVzrn%>wjMD>nIOO=uvA-bO z8S3FR=5@RpUQ>43FRCxry(+2UC;;XRteK`cdy7fF#GxVa#odGif_mUVV8WC{(YarEc?Ad(J$&(pbPaA)^w_mK zbyl-CsIIxv_lzFhtTlCron%b0K@De+izgw7{(%n4pPn@sc_Y>qeHQtbgS^h2r)yRC zG-3e21!5d0m|;G~NC(FG*M*UC=tCuMOgp^Yc~R6poK6MVdgqu_b840m8t23@T@v6 zTHH=v_1v=4qgZ7LMfSx1;knPdGs{pV=?t{n(xQ(lLkxDNfG#EhUEF#WxNnEDdM7ekTxudc|D{jK>QGq( zmZN!I{x8~3M#4y5+@sCT+@2OGYvDF#iL+Efa@CWiFD5L{maEPn%iYed9&Vn*7Wchn z;7@-qf4%LjJd%hAfgp`1Cux@VO9zATcsp})WJ=1Ou__K(h2FYyuu`}T%{MXpgaQ3baxwx6 zvY6n(F}k$=J!XHA>Q33Bz`;?YhS|iLNArH+o;$iS`(Cukft>OZkMHLRR-%QJarD{ZVp?0)I$+azOt(a7QMxrKG-ad1DUjT99p0&4ncB=D^SDeUyl2*0tX z*hk$tR6)6qU6Z)YkY^%Fwl&x#SlPS>XW2qcRxl9cRw9hy&QQHo^e4=BV$>aqHQlhP z7K9_vCs%U&sG2`-RJj*Q`I8m`N;Fasq z^B0jRLpE}2hHr**oT2zJf}b5n6_s_0gm2pD6W=c^BNWyh>5@sn#@EPZy^Jz5;RNV9^?_hi>W4jAuSJPZWM1>?h zZ;G!hZBf!%nA#)MwJE_c}od#suJlBLJmD-Y-=jF-iqxsPNDJJd+u0ROxc zq|v9NKHNfOWl%l{cP`_W0gl*56lQ|Hw|Vh7KUg5;<|FJc&R(f7TX7`N$5Cy{q%{9r ztj=%{6TKBA?dC+Ede=v--LLeAtK0oZLK(S#u(N}BsN!D;PSMH<@P|Q+%N!=qJ~#U3 zzUXw^Y~}cK@$7Q^jkUsFI44X%Kt)%-EEYrfNx|W7!i&1~0yC?`-7xn8O(Md7yf!-I z!|%BbyrIYteZ0l9q1d8TTfuA`zQBR~`HvZP!_P(u6bp@!XM=<6X2O=mUS(=%&xwjN z#@?P<9z?j+BY~m)gjGT@N!zQ?6V|8e}vMR4Z zDb5(Jb@+&l5s7``E-xK6$nK*~^4Y@iGUsg!>=d8Wu7Q3G*|y05(+?CbsP^ky1I_#r z;=}uGUn8>X152kTT1m~;zYz}m+wa|)ey0`^!_y=I&$uD5sT2~N9Cjx(cm|gQHV2MH zn%*B}E=_;|7HpKx<49_U{}0K%i~>dup79!Z*5T08*;m;y3iPSs0?81mIN;|qL)MY% z`ivv}sY1R33nxEkzS)SJp5sKgbLez`AJnMM^p(_wPuJv@I;||#_INULg^Cdl7C(3MEct4?Ly)-3a}Hga<1kv-E3Srq=?7e zVvMrata4EXWr1*7*l6?@*;p8QDUExN2_aRsnk6F#RYA@oB%a}3@u15k|I|twH3Yfhi zM?Rb^ca5QQ{I?7Te2d@`9r8wJ0zWsGDI& z&9A>k_>Q~hy2|}vTezJ5>wi)ZK{sl8lIv6Kb;l4Z;U5}A&?5sqiC~kE|9$!|^q_VLVtYrbt)FLAIzjB{&sDJL z1|$*zx_Kg4ekF>~;TNH2A2x4a0|5}?0=URG{cs`}7V>Q4qYA?lXrmg7RV-8hW-kF3M;iBU5t*)|vpLe&I0t6@N(}&}x|m8# zU~c7Zhofg=85CqPET~gLiZaho`Dx+=@vnkSNXW$?@M^TOM03P}-r^BlJ=FrM-uLWz z9fzx_CQ%b}Y*Q4QPi)9nPQh@tL$f?K7w>Ro>;B&nsHsH$Bkm5fhM@6^cG;b<(2-AP zAMn^mu6m;k$}1nDkm%yXFr~*6AY=OTZ=c1i-Fn%1SyC^9NT7lT zRPqGJJpOnoWlcSa39}qMi@hM%BkJlHXu(dSR)!g3uKo!W=CB!PL}_f?dZ8iV0*G>w zC0>mTEhv4XN|@66WA(WI2-i}CqeC&1mq$naLxbl3*6ov!RQ4 zlkY*`Kqh2N8iAaObuG>Y#2o$;&I`l|bsd>~@w0NhEg6?Mf$woITSC@mWn5fA$2VZG z5k0#uuaLP?sb|omau$tnj{cE=oA(&UEWVBUe=yIW4o+|TTQdFu5q-FYx=LHS?K*7@ z6UV(c{5+>C;609|)*jSc6 zH8yKL+0e+>en=3<8r^Zn%7dnJqc9V+K=odVW``%g8*sB9bND|-q;$b@22}{+Pmi`p z;eB(>?QKdgl|?||7ZnbL!WM>$V7(tphsr9=Ld7)g!lT~B`->zcv|3ja+Kq^BHl@6| z-0cBnp2T*VMqNJfXH}8V zBG7+t$ti(s+;qs&;<^$i_j;EwI~q0RZ7=Gi4{-wV`C^IfevPoO=A{URALM^14(uJb z)|A32>hCoL_Sw4;G<_z%nt)`GU7l9$Q^>oV4qfEgxtBvH3s&*C=p#zCkAn5j`QC5c zcHm|o-D2XpuC4nEKG4%g(qhfmTa}Y{LKcH^&T)ke2NFFNo5vd4YVyO*Jg`a;q>J8B zlLn{@#B75&dNEbC(8e>-HP@KW0B7rm(p2Nw#8F$vVu{&K8!J)IM4{f&p5P%|DIWsZ z=%A1q%AgsFkQjg$xQ35`JWK1V?Nt?0h%w5%n3Bn^3B>T1s6<`Rg#8Q@d#;H@S@#Hs zy+rV6Te%P*MzSHEq7~bCWH3DN<|h%?85oIAwORc?J#G)^&?RdzSpsl#ww3k03$KJd z9#4H5TwrK`0!`H@K%$U8*)i((;xUduIT6WDq!!G)Z#Tq05+oA!O5K1l!zM9SeZqA; za`rq#6vx+PL#V>kv6Ra3NFLLJ%EUitn?JJ@A+TOPmCmeI9D+BaZ25%>~M~CKTLYy(g5pF6TIt}@QtMj=J#H-7BI)9LT)NT5NnP35v#bcAv|~EoT@;I7}bg3Fyp0X-L>L8 zMbgsFIbtWt{}_Ef)e(^}W8$8Q8$w-T76KDEE~-gNf&`aJ@hQ)eZetB?W;-c7zxCI$Y|>0~GETeV^Sp zK^1NSWA6Erg9E*X)0DYczsJ_0cW*g#TEC$ecpE_3Txo;jiXc6x#I-o*%2+DG8!x}vs6N8l{rL4+rmTNCEaOY~t6zq2WpQH8}m3)!i7 zUGt>8g7-=JSg}LVF3~jqZIUYk1?sFuaWE9onJ%~81e)A-Q1{PMF*wh8d(LiqV}UhR z!g(n5bc6ZgLcIS|yKwQ(Z=N~;7>ihEx%uE(mM-iv0F5+3Izj*BnHHNsSwD!ro1{fr z!{01)M!RFO-5-y8#G!b;O#0fyL?iAbW_6qXHb87$n&rQhpEcAeFO=1j^4z@Qn_>$aIuCNDn)H-uK zpfb4}cjt)&G6{Oaq*#^nj2u=o-6fa1gbF-)R!fn3lL?kNx0iv#$j@XDoiWBBORYGM zGFzPI`m}m$TBBYA{)0^DVo})fp1A{ZudoVy+1ArZj*{sCqS#Y{0l-MV;Io2V0nQ7{ zbY8Y}_WnvC98WXJyILCm1Y7|2CDqbHC41Q$sx*{FnmsY@2rvFm!(aMYtFL@~V-6rlsWU~{~z4WIPHL^m;h;Aey=m-I&%avPO%Yt;Ex5Yfb zow&EQXz4uSV9OMc%0&q4nd2`l$4{CVqKhfvnz^+_ED*}u&A&gyH-jKi;?w|MGJ;I% z(wrp&hlbQkKrkO};;dok)Q1u_tl0Gt(5Ryx*m#D&;n~=*BGn4cfsB~ZacivcJcxLM zWy5=@Ry_APuJDhib>Sn&0wx48wg&Kqb^hK)0n>vh=wVJUMC-JT=C+!i+2r6*4G-Q* zc1)1>?tGSU$oUQZO$Bwe;cTEz{zCGEcy>jw#T{!;553?AkS$r)CU1F{Jgn^C8Q!|s z3_AVB96`zqz#+1b9%~QQSP8-*yTY5hqO3ZaPybk{z_(YQTPMhO9gL8Y!wco#N)EHu z&7;$GFF|{|OY!y)0M#~3%A&1f*S}UhbMze5b(Bf}{L79;rag?GgtM^AsZ}RmGLAAj zP`fwX%?KInei?{VohsMJl@ax=O_MnHTFM{&gE3WQI@ggonWfHdwVbeUD`x=E&gzBZ zuE~$n8;mvw@jdfoif>E~pd+`z_Ho}AVQ&4gaM%En%27Z*g@0%X5at#jJM&crAFbu? z6_P(oc^4F)a5q{$U*SmBYlmqg|9N{^->05#Qog?VK2tpM7!l;b zaF@k?682|5?13R+{8~Q_RaONv<(fTzu&7H_U0PT$zl`T9_0Usv`~YJ_Eyz0rq9HI2 zc4gPUxp6IK%nxjFhw8TJ2az6>TWL9Z4`KMFdTEd6nmjR)iXTmAe?X_L*Jvl)-uihV zsgn8BQr%fOwt_1>W{s|MwK>#9m;1S+qXj7s*{B&6RuCN9x_w(N+jRSDCo^v-PwZ5f zBqD2z5B98>4_%1(#|?-+VGGA}^GZVifI4-!8_K9J=;;n5;C8l|jvBj2b$o<{Ri1Hs zl9YY>6J-%YDoZ~h(a)G||)36|yNKH3hV6Xov zfxa~Ro^mPnxEE{@Zv9PtTe~(k66?nkX}90{jYOB!vG;c#2dQZ~XCkA&$56)Kh*ICP zqHF&bF$ls%KSn#u0w9ecPQoKcVpJDAX>Pw8`mn_K#3& z-FAEW;qzi%!XNA{YmBkC;%W~+^JqDs!6Jc#HQiiVE-~$Jd`SKq)2(Cw*olmm41v_@ zcWm0zeIMNksgDY!UT8lbwWuPd^JZ!K_-y9$T!)MAy|;ZRumhlxl>)R7$PDr{<*S({ zGXVFqV20~SX;$+0dy!?W^cB6>Y);!>>fYjuUi$YYMhOoM2!XSMz%Bnxtg}PbgTAb=JRF4UIuW3jvpyef81oXu zthUwpE;^YypBx!Wo8)3Dn*!aWP|hrsk^g` z3e@-}xxVpj2PGea;IE^j&HN$`+$Xt{?Zq-Z^*ev&#ui3TZPQqF2;6S={$I9=wFB;FTPB*NJG!g)iXQ8a7U zZ${Ymkf;`+F?KhE>-{AMQ}DvE1fYJ0c<( zzNH&7zNp(wEeL78yo^Y^@$TUTgiidZ7Lgkpzzxk9*viyn$~~ypdQTKGTv6z}-tWib z&){$x6fw2-DUfZru_RhbJzJ7qt!%b@wAyhs+lo;r+0L#1DfLh=N$xZhzd0z$Qj3dS z7ml_#Dd=BAxyuVHtxCxA zV@@Gkbg+OwUv8asBUKG)*R~=gZ%nj2;bJeg@%%ysI6ZurW@5gl0(g!E2NZ+6?g`_qC#aQ|?qKxcVa?xr~hc=pSd)J-H9uWwb zL6GPq+z`LxcwYxtOFrbWaArMt_9wFf*5L1hoe`Otv4pU4v{K>-hiV~z73b58hq~^% zeC;}*E@Z|tgEzabjr`u^Gtp&gdWZ*t31HCklTFYKr3(_iW3aaxLG(Q$Y&3FcD|LSd zjL*oW&gjvPH`A%;h@nZowB3p=d-TRrCu~EtEuyu4N|XZ^8vzt0&1Ps4e(V zZ&cdkd&%$=8Dwf;GO6(t6IgIALGD}A6gXRhyAE2^Bg7&R^ZYr3m2qyxh=8vz$ZFOa~lLVh)H5JtD|4{0U*fsZksLthdq zdfr+rSJmoo-@4&i@(H95?qa-2jz3CH+Tx))T4baMe}_tjKvYoS%Mt^0c?fKjomZkZ z`yO`n+ikgT;GT{9&(q|M*{g8vOD4DGvnK?c5|5iyp+Y&yE(};8lp=8|uZ*9B`Q#T8 zgc(GYzTYJS$`@A977EB92rVN3^TQk^Bi)tmk zbZ+MhC^~;ma!`Y~hA0Dhy7?KSell7sLsP~FMgkau_Bh)_&?ngUoKr9(l{m7LGL7=7 zGfUvsX7D&2R3lmOp%}c+f}K)~x?8>03yH<{@ZAw@jj*RF2|7MHpt~M3W{wE;)LGRe z7ozD_LX?gHw>|@HbJtFeBZGkq=PAwCRmHjMvctR*W3)6rKpO7dr}p1kNme!hLb zJC=xz9I9sIqHx3g%Ex}+$N;GlKw7o<6dFWXj7- z=T*@{(qP2JM5Pj^F(2{g%Rr6md^^HOyX|*ni5A$46u@oOsD^`z>Fp~$nG#au3k1y` znJK(}7I?D7UT15r9^93Ls$my%2JJ4k&vbVVDI(vxs`}A`?6;;U;dwabIJOYLCP16J z1oU7-NjkUL>sR%uZi6LR3lB7Z{cdmn?Xm5>X2tgbmK+WuDiZ7H!i0`GUde&-74CqK zuj%QVaB^k8E-4|^4i_<7UlM}X z8*va11)w8pzxuQ)6ivS3xEl4aBSK&MqJGVvR>?%>3Lj5t6=#pM;D*_ljM8c-uuYm$M(DS`N{W5*j$XCC9DT2b}#r z_85BD=6HIhskHEDM1c6fYyS2_`$G;xo5JYN*txnH$RO*>r+;#5>8Ay5((m9~ZX=(r zsZ*eT1M2)Z1`1lDvgHwWM&Ej@0qv{_&*)oY2H%*QM~Bi!io@Dc!83NlTMvs(G7T|G zY*yX=@`C=ufCbVHw$V#2UdeXW+V9$OM%vv*HG^}W+d>6J8d+H6?u#(pN?_gG;^^s* zHrmeO1o7cZ(Vl|5!D~{G;kt!3tB*O$oYPrlPR*2%OsLSh&$jx-ONa=HRJHM6tDyUrh62l zA;6BUm91@0X z;1q&Spse{U6N#FM;#GIz0@ON2`V#I~Og@m!$mcBO?+dmQS6vcc>VKF@HTr`E1EiYm?Tpa^x#Vg z^I!kT+<^EjFwet)CW!^T1TqtQ2Tb+PmP%U{hJ z8k#+04e5+(o~E=)(N5ZM`e zoqGkR3*hglnn#s`f))6L+qCs8TT2z{xQoA^=TwIQov_YPpiKLAlYUGQ-wUUgCJXMJ zZ(9Er+x+DPWJDgoJ3Ra7zEjgsPMBJRu1QZC5f%IK0iGelbf|wSf+`Qpd@&vzSbM8- znf)T)%EqO9ZR}UyJ!p?3Scdh^*1B7xihpGp$FHHwzVlRXF&PNtT$e*Cb6eGA>zSo- z{UfJV{x=?hxG;pmp@#?tsN_8#^$3_BY=4d5n0b+)dM9in=<`t8V)nf2oZB$h!a-82 z@Q8bT=KT7^3h@vLm|uQc|hzSSQWVQeu6_?b@~5}r9bP*6o9J8gwiQewpg z*0yFtxFv0~=ZrJ7RtU>jaDV*`QznBlt%u^;)F8j0n9?V#WZPnsugrD;z)ESi(ZwFyE{Q+7T$pR7i(UCNQf595)&d^DUV<;G=F^$ zvCrLwGJJ)(8Z-?-dx2|s@1O8v=uS8BKTH2=Q#`VjZdqdt8IvK;wu!dC?Z-~FVz5@_6d4u3N-5{A`)KBL8nSiDKg{=`o_$@y z{d%|IMC6PSffn_<@HwkSEvgJq&9ThrGrbkgpj$Ahi|?h&BgW2%)1|v(ZoK1*!5#MZ zhrw}+kTJvdEgCIgHyy;GVDQ46-d2c);z;r?cS5CK_)`Q<}|zksW2 z%?4$eIcQ(`i6V3E2bp@y`Er4JF^}B6s}8avYKT?(9A0s| zz$#jnqweib9gxkP-G#rqSo)O#YRQz_=N={X`#%)Af>?n2W)N1hII$cHzvM!0b!?D| zSoCyQ`BMa#M8JEn{i^WhkaUS?*WWTzs4@dMYbTOcUD@2jj}m)|Z^nDRVQ=3vUA~G0 zzt-e5+KEKUs$|rLl@W$2%gZ7y zPDQA8l8UeT?tuliUi-_i9gsu7}sH z1W)$<>>mi&M{Mb;tdpp?TBC~2r(ZsFNA;Ah75y~3RJe`5w>%ZwG0dk}3~HlPnXdYK z2KJssb2$^_5e(MqX*+#RaOMAXD5NUjxfUs^(u=Dxd6beJ06701eif?#Ic8?rIJdDi_^!8EV8mzU zEtNjm-w93Iy#MHU*Btw^!-ulW_O6)7TXPa2@}^{k9p*^iBjC882dFrQDZa)Z?kJXr zq2U~UkvMu?_#>A$AV)3JrZ+y*u*yB{;f(&^9qjzZ-1{?@L0W!U9wXbcdp0+V7Rv6% z(-Bm!zVA+ok3vQz!*3DmX@0%<$X9|MPDFikiw+4QjNF#o=`t#O_?u5*Yh~54{iX4I z70ajkukPw@S)(=BOO2<^UBv=QKb}&)h#ip8up8U3jH*=*_}Nfcd;AmmQw| zH<|nl1OI1}5*jGdxjr>79vf|mzQE4SEY?2onBV?66kz`@*~?8Yl@8v;FHV}!rTV5F zg~XiAx;a{W4_PYS-OpI5fL1ujk+mdEBUUA9Cl-E;cNigYJS>|d{x(GuvVp%@LNy_f z!8~%8@!)N|g6I&zVilU^bbMAn@i+K;=^%?pv&cg&F|Br9vwg;u#r7?fC}R1A!myXt zQJo%@`b!?GJvKMVO8~=meUKu*Bq9H|g z{*-)%GFZ9QYFYZ}yu`h!&i4yQB{|Mo1Fcg(Zu|UF6qj^OkNbX1OQC0Q-&+-WHtVe_ z(T_aA43FlXxL>e*Tp}@}l+&G+H`lDC5m`qse124_RI|OZ?J(AF*51b{oi{x2D9vM- z4l714nr%E*2AbHGOX0%i@6pzw@&rGdHgxYt;p!Hn-1e}E`&~x*OH~+RffE_!#OxQK zn~?s}d_0ER6mZz`h*|jr>G44B zO{TU~^Zt@bqCFVfOE9nQdT<9LR9rq|MizF+)kQGXnrmKe9@~I<&?GYEupzOx|2aXD z`}@KY)8!Z!so-{?!28}y5||?)QSrO>WJ{~iMLCqZ`|>O-gI348r_T4sV)J?h7YgvE z9ALRbzq8&e9&J3aOyDbHSyObX!-Il#55q+!dl1Np;YjodI{q_#uxmbgU1y_z0iEgat?c4Rd_ukl7gb#||l>uW7ot?7fq&#X;QKwz_t3W-16fmtHwC%zYLw&96xo#bEdf@Q&yACmB*rv{w9#e2c}54D$8O6Qo6sux{Z3E2$z*IxKhEx>L(AH^a_J7oyRN7>rINKArenU=s1S3M zUatr4Ui|CMXKR?*1qn>OF_{kZl4TRr-TBH7;&;2)+=yrCAP#e5s$JY;-0G#aWV~xd z;LcVY@%QJ$27Id)0)1D|c?GHzn(}$mS8J6+9;Xn5+Imv`0ijAwL6 zKrdAi+bP6B2L~F81{MTnLo_*xCrb^o>zm})G_&?-^8tQuLbQ)FRMQwVq*`)Sjp}~0 z*suLSl`C|JWM_-M(A^~w{w>G0Qw4GOl;t8)=Crc%6Ei8hpDsCHAy7+G>ik zJuq2{)U8V_R48R1O%=18v9FmBT+=N3Z4|}k!(W;zN8CUT0r028QJku`jSTkc@Y*hT z!GrZBN`C50A9dq5QJDwh3D4o1g%s;UelIrfJP!$L^i+rHIzI3sNHUGJ*yVhYi68xY zHP100bvSw{WyzU{r8tmK4x&{M(?4)F1l8lc6}Z;dqBS{`Ug?vifjQ*(6nmssjue8- zP6*rvc7}WQx(25kCsXeyePz>`(!`SnBc;oQHHv9kb(7^x*_lIJ<{Z=#bp7;34^ilJ zFt(>H46|oS2J8)&^+g5+B8sz;OTR?nhWyNQGPO0;V;_vt)9#_DO!jXqSBxsS$6qm- zvni;Y^=(p<8b9WFEkI+qADbyml*~8928ee^c~}Hl>M|DZ>c`i_K?ce0vwVoM^o}Xer?@e{=JnZvSrEq46Tk; z%Z{=M)|E&vVn36E3U4?1sce5V#cQvjZ9!%EK=@ z99)i$Z5%#!asH@{mO0mDMWzXU<&0C|w?7Lo_il>O;unxJ=P9bHqLGppk9dxm2Q;32 zN2$v%$*srC_C9S5EGw?B%=$eDvn~+4ZFVXVeba3j4>`XT-4(7)guDz~yJfK?J$jrP z$>xA|DGaCYwYm6(aYHTQ^BVZoPTA)yL$Onj%}#TuJ-l&|EO$-L$%PM_%MQnn*Vvfv zMoN3AWgS%+t*zDb>ehM4hH|fAXgno8olUGNOIzc~Zu=T8%Rb(B*q+D=lY5N&rnVip z9+lQokvopCeM;-OJB=E>tIP$ucI{S!_S%xSD#aaj+q3q5a|TgncX31_nQJ|HfR-v} z%aRwxuk8hHNG5Ap`0|ubf-j8!mbIlicDZZyesPX@B)Sf1nV9VnZ)d9K$jtA8z5Q=8 z@(@w*F5oQfl+Rm#40{F=b9TTy7lCJ1cNcHHF*Zb57X_+P7bt;RNZoStrbF*~HX2T;dM#H& zQPLM&sC|jVNt2PYem=|ieqL0r$LPkB`MM^Wg|d#37Gga?Tq!SQgEvLvG4)4wpXU$w zVNF7!p-P&!_TUSHtzD?%FBw;UEa(*5RfeaJSbk`d=cVCH1bV!bE?)-@TX%CG38EfY z2o&ryUf}pqzM3PV-Wa5Fn6Hni{#k{cZY*iu;gjAk#zYm=-;^oP=Wu5>xiJtopG>OY zkTEc3?|$rq5z(sOw-hLgbdpymxZm(2)8hfj^q9y-UV0OrQc#b%#pgSn8@D14(y~p( zNJYGiMZ#Nk+%?p^9%uC)Y-U);zU^ODR8$`Da{i$CbU<)IiDMbJH>xTp+B*7zoFQ{U zEkG#+vC+MrxjJYF^kB%#&yZ&sxBFe!+gmY2wMSaqMN3P-n^Q^s~19Q|nsn|ZW4 zDySuwKxeQ@%HFnaifwtaTE3dZXL0H{m=eUrM_d`c+T~0~6Rb)`Dm8lJ*mK zFEK|tsSqjVdN-#G3I4JL!u|==Jg>^q;!|D2m7szQ7<=Dno5)IO|LVwzVYlhnoKFbK zg;HRR++>qc2v#Z~Obh6G2e;}r?WIRWi6>YvV`uVQ57U;&f-gCvNmrq%GaTYqsmU%^ zo)>jfsQGZq$T=&jNY_r)tsGOAzh#~5n{83lE1m$#jS~G-rnJE|+(Oz-dZe0&t@Pn% z7*}29{N_s-BFQlC^n9*^!rK&!yxk%L|CHQ7qt0@Mdun%S12*`a_c3F9WNX%2pZN)z zzGM0CkLkMUH#;~U6wjsKyJ}@q7iK-9SM4nSa3}pay-^KSzqMKY2UXTTtZO?$?|pB- z-jy+S?!7ZxOu|qRJ4cz!UT-6+8|VClX&(N%77mfFHpSEn+eJh(fXD8NYI1VuCa`Wv zwWGcj{K(nx-cljEVMfdt>l%}zZE{go`IF|Iwnz-08wVRRCL*Jg=6@RRm-b z?^UznSw}@%$-Ku8t9HvohqB)>JA&=AF?x&6Su=uf+uzi>A)*$QpHUG`EpQDuV5_Ef z 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 BRPO)) literal 0 HcmV?d00001 diff --git a/doc/_static/grouped-np.png b/doc/_static/grouped-np.png new file mode 100644 index 0000000000000000000000000000000000000000..16ae6a744341c8dce1934dfba2f344378dc949dc GIT binary patch literal 49887 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 QHQ=YJtf^F@Xz}uY0K$DM-2eap literal 0 HcmV?d00001 diff --git a/doc/conf.py b/doc/conf.py index 5ea428896..273c6360a 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -19,7 +19,7 @@ # -- Project information ----------------------------------------------------- project = 'scikit-lego' -copyright = '2019, Vincent and Others[tm]' +copyright = '2019, Vincent, Matthijs and ManyOthers[tm]' author = 'Vincent and Others[tm]' # The short X.Y version diff --git a/doc/index.rst b/doc/index.rst index c55ea0e57..c37d7a515 100644 --- a/doc/index.rst +++ b/doc/index.rst @@ -62,5 +62,6 @@ Usage install contribution mixture-methods + meta preprocessing api/modules diff --git a/doc/meta.rst b/doc/meta.rst new file mode 100644 index 000000000..3a2e31522 --- /dev/null +++ b/doc/meta.rst @@ -0,0 +1,167 @@ +Meta Models +=========== + +Certain models in scikit-lego are "meta". Meta models are +models that depend on other estimators that go in and these +models will add features to the input model. One way of thinking +of a meta model is to consider it to be a way to "decorate" a +model. + +This part of the documentation will highlight a few of them. + +Grouped Estimation +------------------ + +A kind introduction to "meta"-models is the `GroupedEstimator`. + +To help explain what it can do we'll consider three methods to predict +the chicken weight . The chicken data has 578 rows and 4 columns +from an experiment on the effect of diet on early growth of chicks. +The body weights of the chicks were measured at birth and every second +day thereafter until day 20. They were also measured on day 21. +There were four groups on chicks on different protein diets. + +Setup +***** + +Let's first load a bunch of things to do this. + +.. code-block::python + + import numpy as np + import pandas as pd + import matplotlib.pylab as plt + from sklearn.linear_model import LinearRegression + from sklearn.pipeline import Pipeline, FeatureUnion + from sklearn.preprocessing import OneHotEncoder, StandardScaler + from sklearn.metrics import mean_absolute_error, mean_squared_error + + from sklego.datasets import load_chicken + from sklego.preprocessing import ColumnSelector + + df = load_chicken(give_pandas=True) + + def plot_model(model): + df = load_chicken(give_pandas=True) + model.fit(df[['diet', 'time']], df['weight']) + metric_df = df[['diet', 'time', 'weight']].assign(pred=lambda d: model.predict(d[['diet', 'time']])) + metric = mean_absolute_error(metric_df['weight'], metric_df['pred']) + plt.scatter(df['time'], df['weight']) + for i in [1, 2, 3, 4]: + pltr = metric_df[['time', 'diet', 'pred']].drop_duplicates().loc[lambda d: d['diet'] == i] + plt.plot(pltr['time'], pltr['pred'], color='.rbgy'[i]) + plt.title(f"linear model per group, MAE: {np.round(metric, 2)}"); + +Model 1: Linear Regression with Dummies +*************************************** + +First we start with a baseline. + +.. code-block:: python + + feature_pipeline = Pipeline([ + ("datagrab", FeatureUnion([ + ("discrete", Pipeline([ + ("grab", ColumnSelector("diet")), + ("encode", OneHotEncoder(categories="auto", sparse=False)) + ])), + ("continous", Pipeline([ + ("grab", ColumnSelector("time")), + ("standardize", StandardScaler()) + ])) + ])) + ]) + + pipe = Pipeline([ + ("transform", feature_pipeline), + ("model", LinearRegression()) + ]) + + plot_model(pipe) + +This code results in a model that is plotted below. + +.. image:: _static/grouped-chick-1.png + :align: center + +Because the model is linear the dummy variable causes the intercept +to change but leaves the gradient untouched. This might not be what +we want from a model. So let's see how the grouped model can adress +this. + +Model 2: Linear Regression in GroupedEstimation +*********************************************** + +The goal of the grouped estimator is to allow us to split up our data. +The image below demonstrates what will happen. + +.. image:: _static/grouped-df.png + +We train 5 models in total because the model will also train a +fallback automatically (you can turn this off via `use_fallback=False`). +The idea behind the fallback is that we can predict something if +the group does not appear in the prediction. + +Each model will accept features that are in `X` that are not +part of the grouping variables. In this case each group will +model based on the `time` since `weight` is what we're trying +to predict. + +Applying this model to the dataframe is easy. + +.. code-block:: python + + from sklego.meta import GroupedEstimator + mod = GroupedEstimator(LinearRegression(), groups=["diet"]) + plot_model(mod) + + +And the results will look a bit better. + +.. image:: _static/grouped-chick-2.png + :align: center + +Model 3: Dummy Regression in GroupedEstimation +********************************************** + +We could go a step further and train a DummyRegressor_ per diet +per timestep. The code below works similar as the previous example +but one difference is that the grouped model does not receive a +dataframe but a numpy array. + +.. image:: _static/grouped-np.png + +Note that we're also grouping over more than one column here. +The code that does this is listed below. + +.. code-block:: python + + from sklearn.dummy import DummyRegressor + + feature_pipeline = Pipeline([ + ("datagrab", FeatureUnion([ + ("discrete", Pipeline([ + ("grab", ColumnSelector("diet")), + ])), + ("continous", Pipeline([ + ("grab", ColumnSelector("time")), + ])) + ])) + ]) + + pipe = Pipeline([ + ("transform", feature_pipeline), + ("model", GroupedEstimator(DummyRegressor(strategy="mean"), groups=[0, 1])) + ]) + + plot_model(pipe) + +Again, we show the predictions: + +.. image:: _static/grouped-chick-3.png + :align: center + +Note that these predictions seems to yield the lowest error but take it +with a grain of salt since these errors are only based on the train set. + +.. _DummyRegressor: https://scikit-learn.org/stable/modules/generated/sklearn.dummy.DummyRegressor.html \ No newline at end of file