From 069a83dacef7a84eaf3a754d40328c135bf003fa Mon Sep 17 00:00:00 2001 From: Baptiste Bauvin <baptiste.bauvin@lis-lab.fr> Date: Tue, 24 Mar 2020 09:36:14 -0400 Subject: [PATCH] Example 5 --- docs/build/.doctrees/analyzeresult.doctree | Bin 153432 -> 2314 bytes docs/build/.doctrees/api.doctree | Bin 2684 -> 3019 bytes docs/build/.doctrees/environment.pickle | Bin 222341 -> 142891 bytes docs/build/.doctrees/execution.doctree | Bin 3180 -> 2370 bytes docs/build/.doctrees/index.doctree | Bin 6292 -> 6268 bytes docs/build/.doctrees/modules.doctree | Bin 2632 -> 2971 bytes docs/build/.doctrees/readme_link.doctree | Bin 38377 -> 38032 bytes .../references/monomulti/exec_classif.doctree | Bin 89955 -> 2370 bytes .../references/monomulti/metrics.doctree | Bin 21088 -> 2309 bytes .../monomulti/utils/multiclass.doctree | Bin 3987 -> 3345 bytes .../references/multiview_platform.doctree | Bin 9817 -> 4443 bytes ...atform.mono_multi_view_classifiers.doctree | Bin 282337 -> 6442 bytes ...view_classifiers.difficulty_fusion.doctree | Bin 10353 -> 4398 bytes ...tiview_classifiers.disagree_fusion.doctree | Bin 10335 -> 4364 bytes ..._classifiers.multiview_classifiers.doctree | Bin 4945 -> 4285 bytes ...ew_classifiers.double_fault_fusion.doctree | Bin 10510 -> 4432 bytes ...ltiview_classifiers.entropy_fusion.doctree | Bin 10212 -> 4347 bytes ....mono_multi_view_classifiers.utils.doctree | Bin 258993 -> 7389 bytes .../multiview_platform.tests.doctree | Bin 89921 -> 4488 bytes ...tiview_platform.tests.test_metrics.doctree | Bin 9592 -> 3347 bytes ...view_platform.tests.test_mono_view.doctree | Bin 29480 -> 3827 bytes ...rm.tests.test_monoview_classifiers.doctree | Bin 5749 -> 3926 bytes ...w_classifiers.Test_PseudoCQMeasure.doctree | Bin 5161 -> 3686 bytes ...m.tests.test_multiview_classifiers.doctree | Bin 5840 -> 4616 bytes ...ultiview_platform.tests.test_utils.doctree | Bin 91256 -> 4579 bytes .../.doctrees/tutorials/example1.doctree | Bin 6847503 -> 6846956 bytes .../.doctrees/tutorials/example2.doctree | Bin 6662567 -> 6664420 bytes docs/build/_sources/index.rst.txt | 6 +- .../build/_sources/tutorials/example1.rst.txt | 142 +-- .../build/_sources/tutorials/example2.rst.txt | 181 ++-- docs/build/analyzeresult.html | 442 +------- docs/build/api.html | 6 - docs/build/execution.html | 11 +- docs/build/genindex.html | 794 --------------- docs/build/index.html | 86 +- docs/build/modules.html | 35 - docs/build/objects.inv | Bin 3948 -> 1136 bytes docs/build/readme_link.html | 72 +- .../references/monomulti/exec_classif.html | 318 +----- docs/build/references/monomulti/metrics.html | 80 +- .../multiview_classifiers/classifiers.html | 6 - .../diversity_fusion.html | 6 - .../references/monomulti/utils/execution.html | 6 - .../monomulti/utils/multiclass.html | 10 +- docs/build/references/monomultidoc.html | 6 - docs/build/references/multiview_platform.html | 119 +-- ..._platform.mono_multi_view_classifiers.html | 909 +---------------- ...ltiview_classifiers.difficulty_fusion.html | 23 +- ...multiview_classifiers.disagree_fusion.html | 23 +- ...iview_classifiers.double_fault_fusion.html | 23 +- ....multiview_classifiers.entropy_fusion.html | 23 +- ...multiview_classifiers.fat_late_fusion.html | 6 - ...iview_classifiers.fat_scm_late_fusion.html | 6 - ...ers.fusion.Methods.EarlyFusionPackage.html | 6 - ...iers.fusion.Methods.LateFusionPackage.html | 6 - ....multiview_classifiers.fusion.Methods.html | 6 - ...ssifiers.multiview_classifiers.fusion.html | 6 - ...iew_classifiers.multiview_classifiers.html | 20 +- ...ultiview_classifiers.pseudo_cq_fusion.html | 6 - ...orm.mono_multi_view_classifiers.utils.html | 942 +----------------- .../references/multiview_platform.tests.html | 345 +------ ...multiview_platform.tests.test_metrics.html | 35 +- ...ltiview_platform.tests.test_mono_view.html | 104 +- ...tform.tests.test_monoview_classifiers.html | 24 +- ...ew_classifiers.Test_DifficultyMeasure.html | 6 - ...iview_classifiers.Test_DisagreeFusion.html | 6 - ...ew_classifiers.Test_DoubleFaultFusion.html | 6 - ...tiview_classifiers.Test_EntropyFusion.html | 6 - ...est_multiview_classifiers.Test_Fusion.html | 6 - ...view_classifiers.Test_PseudoCQMeasure.html | 18 +- ...form.tests.test_multiview_classifiers.html | 22 +- .../multiview_platform.tests.test_utils.html | 343 +------ docs/build/search.html | 6 - docs/build/searchindex.js | 2 +- docs/build/tutorials/example1.html | 172 ++-- docs/build/tutorials/example2.html | 229 +++-- docs/build/tutorials/index.html | 6 - docs/build/tutorials/installation.html | 6 - docs/source/tutorials/example4.rst | 2 +- docs/source/tutorials/example5.rst | 126 ++- 80 files changed, 741 insertions(+), 5060 deletions(-) diff --git a/docs/build/.doctrees/analyzeresult.doctree b/docs/build/.doctrees/analyzeresult.doctree index b9ccc7ba6c0a0a33dd12057c5418f9f893ed212e..114f47687daf4ee0fef02cd02c743931ebf025e3 100644 GIT binary patch delta 94 zcmcbyj<ZXMt$}6ge-4I;Y>68)ycjtXGh}P0Xk^I8PQRecB*mDx{k1YvI1^Jw*mid{ zrdiAi83q};#XX#PiMgpIl?AEAQ);JV82A-u$k$HE(9Pg3p5Cg%^nAK(IFmI1<BuR3 literal 153432 zcmZo*nVQAG$N&O8d@1?Kr6rj;#d>-9DXGO%dN@D=xv6<2QzlQ*Y@AX%MWctaD6zaa zzqBYhbxIGzlpc=cjLe*rqSU-8u~RY_df1ColS?x5^Wf?;SToo%*kh+?WH9uwmSmRX zq#{Z6hy|q<m*$ixB<3aNR2F9zE9B;<l;)&P0qMwK=wS&-tpHh#Q(fy6u%j|qGlY8B z3KEMzF3k|gV9a3dVS_r-uZJZkGcR?DUujZe4_9JINl|7}X-R4^*fY$TDaBJ_r}VHV z=Oh*vr-Iq6d5O6Y7Dq~H0fLj1n4Dddng&u++QVLwm=2PflEIfDmB9_NF+;j1PCp|* zH&s6=v7jWgxFl8IB|o_o6ne$_?wKX!`9<0KxurQJnPr)&<+{0v$r+h>sk%9-iA8yt zdFi_OxtYcKDf!98`Vg1vg9D{1wFn$UdPT)0Q!-?{nM#v-_=^iNGV?0*5>ry3@x+>$ zmy%k66ta*&&ycO1qLCpVJ0(Lgc1nhF?34`E*eMz6AP=YJl@w)yy{XZ|R-Boao|8JI z#~tpx_=23olC=DyT)o`<y!?2ucs$76@!*ikOv_9yD%OKIEgtMpQ0!?yqEB;5k1K?w z3)TqMM~;D0GT8h|rX-eTXlCdj1@i-ngBjCV`gr`QkLFLkf=Vk;M3od}=A|p-rzv0> zM@q2ify1vV)fbdDz`+ZOXvWf{3|&Z`gXJOOqBFy?Cl13z4NV1&%sgoJqR_pXQ+fiZ z@8c00(|)B%8QMK8DXGQD7#Ub2L%W9$BokkpnVy$eQd)#ke6GceXGl^l)=?-fNh~Rj z&n!tT(oslC%}dV6O)ScePb^9Ymq_s`nc#9d5mX51DC8x@r&c897UZNBgE={gNvS!- zI*^0{PLlC(q12M1%;aJn1+Z{tT4r)0sKAfU%uC5k25C>pEJ{r-$%hyWH8nmnrC1YO zs)KyQ3HA}V_=Hs}8LT~m7@h%Z$PmRQgDCjfGNdx1Amy)Lh772b$DK_$D{^zJiVG4! zbr(lLQEG8&QCaE~Q1KFxA(asVF{NiD6fclOCj^d&g2bZ4+|-iPqMXcPP;Cn<bb4kL zfvcXun3%vx1C*8^xdZM6q#V@44s||QZH6d<-wJOvfD%t}X;LE2B$JVmkqJs4g&9&A zxur=NMexAkLS!(Q1;|3Eb~KV_hdhCd3$vJ@I#k#6ljj<4q*4NAGm03hEpy4Ug)=V+ zTGqhqKoUW<VKsR+2!bmwaPfs^6BZd%8+VdtBYQ5S(1iI2&PO%<IC-XvfxUuJ62mOR zC5>wLRr2iSMk?)L7NUru+VYr8Tac;|xGl(HsJ470!Io5lSw9<5HDqLgYZxRwUWxFg zwO1m%b<LWV32Lr)_OL;k!Bcwdz-f;BhHwunIFhGiu=Q}HmFDDtE6<D=P|*~WA(i0| zsk)%<%h2xO0hjE_`FSOvE)k-Zh4u>=dN@HvW_nR#K?ZV>84y~WnxasWuTWBym{$yH z|10F@r7D!A78REkgPG7WRRPqPgtu1}V4{h6VBH0!NjaIt848&tu-Kx$!SE>0l4N9H z$dJks2T_a}%o);z+5x2*npvVC)zTS088Y6C8B$q7ATDDDGrp7q(k1{>haTQY=>ff; z#g>wvo0yq5rH84Ya!L<-eo|IRWkKo`P$cGo8(^S5c4~1lSTxIok%6IyJue^9o9hI{ zt}i%dL0wF+V?p&cxxIoIXag%gDHEKSsN5&;qb!NTdO<MPVek7vqBg@1Rt-bavqnZR zOrR$k-Ivg`Nkl6cQKRc9Kuc^L1*BpI)`E?MTgH!O87#SDh{IEB23v+ymJcWu5tUS7 z?T?5IsVon;uAY0tvj>cbdr(6@BL^PNUet?3a1?1EHROnECT7JmGBDsP9bhq4m?4!F z4OWX}2f+p!c)&}vhoCytbd(FWhp5&orkjvkt5EBag-~s(ro<+Aa|db-oR4ZpCna`p zBjr<Y6laL`popQ`HJxO;a2N8hn9oMZqghd)><UW92%TBZj0_C$76X(A9g@r9W@KRK z%;Eu60hG2DviLxDvt{u!GB9NMfxMcbnGuvBmE{T&2NygD=Vb{pGBCh$8nisk5<?Q} ziH5ZbQY%V|5|cs0wJ8dq#zA6<LP<s{y!Ove19MX{)6!BwL$M0bibf%|q9C;>6EqSE z9xEtTC`c^==}%43gT)n1?SRL9)^<<;NM&sWQQ&ZZR4BN!5UA3Jv=v4`p$l#bZGwhP zX;KD54_8`dYEDW#+Q<Mjm4Jry!SYB=NQ4wrE4ZbKXn^)`1;B<IieYh&ECi1#a7B3m zly>oS&q1+s4&+{`tkWP$8k(%V8IWC{l%G<G;lvDv9`2;loSf7W+`i)k`5QEbmW!bs zC5J?aFflMdt0)BxkS0w9U0sC`c-~L|i76DNmXsFdrKTt(Rf01LsCN$<l~YKqNCnNi z<mV}*l|q_@dJ1m&MGC2j$r(^dkS^FLo{j>jVV{_pSIm{Dkd~8}uArun2+f5GsX3{j zjHbs0vK=g$S*(z#P@Y%`YS(9`q~?`mrh(bz8JWo$h_OMilVF}mO3lg7OV@$s@)A&| zAS1IFY>E{Z*i>5u(AXkq*e|t0M<E*Aq6AM11mqWImSmQtB1Q;Pi~Lg46G39J3gww4 z8C<$ZdcoF$8@!;AbWm{uYKCPNmt-a<=780K%M31E;_Uz#k_j1(gqaB$y#$3@ab`+t zQEG}p0o0iapgv0;)O}pgm_hhPK?Br&=>Ely1<%>e}nxF3YnB?7m5!8*{!L^UC$ z8+e#12NYU~Iq}6MMfrK@NXZE?ECs6_p>Z$;H7k53kQI8kL6cJjsmY*$fGHiIobeHq zC8V<6f^}wy_An`Epcx94((d6YNX<*h%uA22C`wI3avdZ)XK42bz&wzeTab}hoLP*d z2sFb6nw?^gosuC6<)AvAmkEF43FKOCCU7^7gMiW=&Z5*blwK9c<Ea$|Iho0sB~v;< z;h6^MPJwDcu=0|`qV&{~DOvnX3=CO}ObiU*;9-MU2n_?#9!5><p(EPEs_>{`vH~vI z8=#y9iL~LB&k-K(8NPnZfMgJGHyb)~kipQy51y)yFG>ZsWRg*4U2GF5C;$^+m7X;P zh9E@@MaE=EWtoC90nsfXV~}br0VdkR0V~;&+=dXt63AI5Oo(P@4^IN9e1y~{@F3zs zh#{GZESe#e<q2{U6+ECtd_{!h7*cc*3<RwNVyjVj5NQyr1If+A>&cMHiltKUcEf@f zG)XwnwKBYN>KRnd!jeD`eMk5>Gqk@5sxrYH6RE6M;0hjpALa$5E$|eqH0vc&_YP9U zqqJvxYC%m?JTu0SMlL8CLG#GP@YXK4nVX-ckeHJLj&Im>bFo4JXnhTMa2V7&gBuTR z-GbIpz?#0r&{k8{CnQG_9vOkQo=6-)X(7<sK(rR1jj0B(2CR)Kh*TCkQn>~VTOK5# z9$r`=frAcK9iWNAQz*C_G!two{s@LPpQaH|3T_WUn@?FvObiU*b|Z1kr`gz=PY_>c zU}-+VWw17%;Idwz<`XPTC`>r;VC$i#sTopPAlD){5s1o{wFKe<l!ZylmlmMDQL$%9 zYLS9QW?l(A-{qC&CZ!gE@*_wAM&}88mf{4d1seuSgh(RrkOU{div)avkxkBmHDJvq z5GjJ$ggG-0K6?aaqq^uB*aD)m#A5<VDajHquw@B|53ywlxD3`T0hd(;WeLJ@3J;MU zA~j@4Wr6G<IU%1S5Q3y9<Y4Ih3Zfzbl>pF+#3L2bkAjYJfGP)2r2*3d>adq&q-GX@ zy7Ot7>7_;B5dy5$27IU)T0Ow|@UR1?Z#icC{ZoweEd|zqHGM;*2&Qj%fe-dLEC-^A zqPo%;Y$;J`-hhBoO47V3GnQU7#Mju;JX{8Anup6;gpeEU@IdMz-;4~YERah`&Kcqa z!WkoH;IB9yLt1GMz^yd=5q%G$6g2EvnuOoflMtoHz@}!MLTXk)+9w)W=aIyE*n`01 zl<?tMI3FI+;5<`Fgx8^Cvt`T-3>nB{vsw3%EQB}$wE_A8I&}b9A6^U_O$Fr@P_8cl z4Sp&lDu9|$nfZB%MU~)zIq-NXs8++M0reC@K;xH4>Y;@TXlxWoGz~iH$^{-UR7lRx zP0Gvz7cV*rMXBjU`K1N0;;1+|zbLgBVJ}+oq>z~hn&JTKg$*8-<SP{9<d-O<78T_e zf!0&NW|v_VbOu8Y8|Db1kd_u|aA;}4$_qYJ38Y>gx=e;t)&x*A5ZzVo1F4qE>H<+n znleOt9)pL&Ky}nGjt_WZ?|C#5QXghS<1bU7UC(wR3IS+I1u6unTvBmEN-72La4)om zM-hWZBDlobNrYpeCDt}jswb($5(DRj{4{WxR19j0gNhYMA&R9jkRjTGO9!f>&k=Am z1vNQN7a*ED&@u8;1RMdX=AbF!I1x&rDFPJ8B&7)aN%9D!nuE<>!q$P|*92M6g>_;a zx5g|((8M~Z_nc)6ny=@8ja^L1G6l)7urM%WnSti>(Ux#QW}C_0*O3BSZUi0}Ma(-< zc_mjE*krO7E5cWDp}7+Kimsk#!*neZhVNxSi}&!XT<gFUyWr>mPcX(qrkRR$6kzLa zD^YiPKpP=C3Mq*tiSbE^#i{Y233%|P4(JM*Vw5#)SoU~eE^`yd;WAh&1gAV|Q6|m8 zz<}Js#@)b$EvW%5dlQH28evHVvHUHc&M5#KugGiUgfJZdR+AyxgG~xG+VxoQcdlWP z4O%&;1y+l+a*h+8&|wxLiJ;nJ1J+A8QDL<QdFdOpC4nr2YLgcwHo=D=pw__osCGn9 zVh0~;_J;)>x-hDZX_VNAvJnL8GZZmYyGkgs3tEzac9p@rhG(r`6D4+G*%AWv9Tpi> zKTaUoUfeAXSRMhbF+>!IS(>1-5mc`rbY=;%Ag?im@St->G+SdR3-T&-jiCt0P2dhA z!g*NM7^3#~;miMWQxo&RQ%8sr2fDHe++PNb1A;16aJRY`I(w9w0-k(UKrB2gO3X{i z&js&+OocSTGei-~7-?Y#JnFMHfc!6&wGKpqg8|a$!(A@H8_&{N!XQnM9SN&JOrm!r zWMK<+M4~{SJOnpj!Fv+0H(*cVYQREW2x`fYyA2@$+L(ZjT!5C>6;ZhX8w5@~6gOaz zU5KOc`e=AIUQvAxDq!$!xyZ&Aqc9`jEmqLD9Be}}yi(Uu01vbkBlaU#Vzyn8ihInq zsW2AHVU+?_Ie1P5j|n`0W;0lC5qCC)6~Ul3=^ePPo{^IR5be=0+C(lm+K`)_{Al)o z6=aC^V2Go}>1R-FglE+-EG9t>!S`UbNDWTpRv)ycM;1c0iIJ7~rY(j|NDW!2MMxs3 z_V80;k03@CgM}j&8B}{^DX|y5wF&hkx-hDZ+LYLc(g=iFha!e*mnF$|;jU3(X$sUp zLzE6#??43wsQg6e%({lsK!fmT-9UQ;O6Jf8+D(v~z%3Jm^9VN3{9t=PAd?#4CK|M8 z2kiyTFG@)*0xd8H&u@TQY2Zc{OhrDVO^0Z?!BQZ#jfF>WRwOHUIdM3M0(+K(X4nl- z2tk@*AyEDJwtj&caL{o?Y+;LtdQzKVMXWf+5wjpJq@)=ZmRMSn4=x#~-1zdKwDARV z7xpF>BpUHGM^q6$1D!-ttfP=vp`%coT4HMm8Z1k(^~=vo#cW7$!nMH?Cz1#}U4a`7 z9neHUTBD%_uB+$9aBDUq;tW*SA?@6h!W{+RU`DR)S;1<-!Wp7HP#$W?&nBVBo(@)v zRJAiDR=^AgF;Puk306(G`3Gt=V3^DbPF*m=p*&Rcw^L$1M{x-x*}|+q2%y?>lw@0Q zmrlr48Y1mxO#>xkP%I;KX4SJIk2yeiw64;+KwgDbX^kK^flGOW^RQHD8mNN~>aaSk zpeQpBvXv1$sjmRq{ZtOF;*t`JpmXyXqCG^bhsR0QQ;@@?vL1sdu=^mz7w%*Rs!PB# zY0|^GkO1#Ad;krV(xj}TnCn3Zu2VtYHVAF(Aq&AH0bFGN0Hqc@eF9LpL+5_Kf}AA{ zO-P`fgxFTAJi&0V2EkR;YT)usL8G7&+)7GHEK<l%%1TX!uH*DbRX`*+4b<h&(83Vv zO(+l5hr(?5`yz-*UFcF~ey|3tYuF%CSf;JBP?j<aV)z7BK4FnTb*%>2a{T!Kx};f^ zfKuccaPXKG2}_!_*s!c+gZLiXS~j>0*0pSKSx(SeHb`8;ecgj3m?4z~Qj0tnhA2$Y z8;PKl2`&+&vUmuD1V|}#K`|#-DZwPEkXQjvkBJp1$uT2UA+ZAMqDoNZ2~CM0CftkQ zjFt$t7<a^CB*R#+2CT^tB1JG63P6(~+yk&wh$(^U)-tfwxZMg0PiP`6CZH5K5oX!4 zk+iP90$U=4_#Im!gv($}gm77Q&;l(`48r}~0~Z2q>|sNlj3p`oMiB@FP=Jw^0DX&7 zOTcT{Q`1w6!0Xu!6+m6bVsQ0al3HA%0Irikt@ymkk_^!5yVRWGRAfa(iJ5s2Rp5w6 zD>|8rQxOZvL2P(<fYa+b0$##MudBcsu%=gt6v6b$o|#ty@-Eo5po8gPd{mbm23tf_ z>O4R|DJ7}%D7MrI@hP^{375f|I^nW56h$*Upn51XCqpU=<RX#_;^hRwoAi7TP+XFt zpaJTcD&!X_Bo-AVR)TW_C=(Z#B<7_g7Nsbpq?TnuXTCBaBPz*>#i^jRX5hhf@V*e} zkPFs=o4L3o1(xW*Y<M_=v%+rzzQV`~-@zKNW(9~8!K}an@-fUw5Du!F1laMnYCs_k zEuwh|C?!4<^f2cqWlaIAhix4fV#m@@fO-<8O~e9<Ke&&;98@1^5^yGxkD%rg+EK;| zPA)Jzp*&Pet%$eOoPbhru)ubZkyz8&;0{G>WeLRpps@h(ietp;W^i(a%UY73N#LQ> zLxCX~QduCkkX(v<0cW2?oF@>1QUXeCiocGAZXRGG!c^!2Oi)jU$OV|6i0D5-7huA= zb+FMf{H}%$oMP+2<JJhCzXmt6u+LxjgVGr-7GOd~zvByvQp+;)ON(La@u)n6O6dYj z9IhmHKve^Wc^YWbbC_eQ;y84|$|{`l@O%l*=}XyB+p4&;3~bCQB10-`Azat6TR4a_ zSV7}*NTaV96Q$s88{!aS?D7OBSa%SpB4Duq8Y|sGq*~C#86w8AHiIG$<QqgGkTr)L zd6W^tqxC4`a**?(qm1)FZUT?uA)H5el(F3{zbH4cq!@CV6R4qvu{%k<7`nzuAv3Qe zUm+3PxzPu;2*HaRKvyfI<ri^5rq#g5uY*r5N=!+CbdzBFiPG@c0cj9si1u_6cF&`R znRIaxJeOzP00pg7)-@0X4q+0;Nr&44a@?64JZgFw8b(-0O*IH_??WCV1s4aRC}*<4 z;{;stz6K?K;)YFMfZQbw%^A3cO_9$Pi~yY`gI0woXn@*sMTzCm3{ea|f(%cxR>*|! z2L$(*(9Da@jEz=;E{czb3?wMUDu7Q!18vWN?i~ajN~VygP>`YrS~r^pIu4%;wi6I` z5-b-NHltxnlOQ=zDOLxvDKRm#1hOj;YI0tI9=MG@%%=Ttq*N;lD+P^k#~?pXKX-j2 zO$8_LF?*0b-Klvg#o*PN`K2Wai3&+MiFw%ypbL7e6-x6!=R_uh4x1~@1Dyz$SE2`x z1@QI<@cD9(f(&hths=tMfdhZ<5~Iia2b>?U_IM#u1be*vXbBwF6v7Zk&4{7|Tng$d zK>NW$1e79o;7A=W7w5pz4Tkz0r5ntoqX6?6h>7YMJpwL7@(k2$LS0}@ctXKi!6KCs zFjtYF1J&{N#5>-GfKud`$kO5<Y0%gacT8aGN<+dCS63P$n?-0+t0xj$8Az4l6&x+7 z)3Y?TEJL&>7K?WtHOxWv(4&UA<kc96;fkyb4)9{6Gy>@Xl<vV(J<?fEK((oiH*1De zRuU1qpu+_5V5KOtK0VG@JgG!ty@eS&Sv4RpK~8*h$6~{yhB>HqfP#@g?T8d$VAG|t z>cIZN-QB|sF!l_otSTaOp#&JBkAXh<*24xlBX&v;qb}&8pe*np3rh5W@(yU|r!)yQ z`HH}cB=ou~L$n9GB)p)>nhgqFsjQhGip2IXEa`A$NM#}1hTDtqFqF#r39jAn2RC%+ z2-Mmma_HzO*i^y|Q}{U(&{ip&4-Xb_lXMReu?wBa-w6snQktYaGhlfi-thuANI^4F z;4T-aPX=!zVjljW$;Ab32_jvI=Lp^q4sB>c51jx_Vu3nyi76?mDbUj(z^zwsBN541 zM9P8WK!OFdtCkkJ545xtG_*jC4q`o_1sTUdNzGZ;KtTz*$1$s)8R^_c5p4E>-I^iV zBY^G{L<Ywqmm!sPn~11|9!qfptQ5T=20r38Ln;d@%h1Dt?YLS!(t-o#9UW2v5y`8h z>C2GH`Uv(L{%rUj6d!PpqMp76I>{Cu2t;IjcyY#^A(eH72+N^`=S8qm)Y>LiOA9pz zfRi7wnLvxET!7q(%o65gU;q^u8mI|V2-6*~c;rKMAW}@B%VbDpNpRxtA%IFxXp$5K zE5(&0A+lK?IFNFWmKM<g19Q9vu{w~vMZBI2sVp6^FNjKf5HDqj_9$qA=V$PgUhpEk zN1k95OJzX}CMD(aWJqNR65(=`l#APftm&Y}IHMMpDj$?b&Vn)@5qtB%Z8@o|Q{a4p zKS-g~DyYUHsanPD2T;m{&d9)qj7XZ1!8Y27+cwCI45$x-eMY976US0^$Uq<2M`A>$ zr{={&GBl`Ort(CLFNJH_Q5{F_{EHl_F&d~1Ye;Rak%73Ch!0ggtmr@&hUZCev#J+V zjuO?>gpKZl=2$x6x_a&ov%xL&Km<)jAWg0Cp~eCvkP$O0SfxdK(1lUsU;%*=3>NZ* z8B$quh*S%jS3$&5)@)FOfxLpq%2_R($nz=?9<Aq9`a#Zz&a1S6+yqW~2<H)=S4o1c z-iC}qg4c_I3j*-jCzzX(GD{Rv)6z1NGgI?Qaw<Uw!lgo07Aq7dmZcVhv?MAd=p`4I zB`Bn2=A=SL8Z$(D!f0a`QXNez8#1J__Q8V}Qr4oLyv_#kFeLqo_OO7wkK`^0KSL_( zI4Hsh%mjc2^r04(CS{2But9?np331OP*tFQGjWv?xGI$%{)G&9if1=8#^^G|^MZ(o zh4!bPg4`ty&7`=dcnI}Tu^jgpQN+l=fLfj^Xn^KtKug;|H26F<*dz+%lvwn3aAHYj z9;japJ3$(HUkj*Fpr_zpl%ANES(TcikXWo>#f55Bv<;%04L&W&E;d>TT$04+=fUsA zhD{s6Tmf=gW?l(oGD9JeOIN{AAro=|7Q#3M45Q&!#H1D}l&3<ENr$>ehf7z%0AxsJ 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 Q0A8&+#SgShw=_u)0P>+QdH?_b diff --git a/docs/build/.doctrees/api.doctree b/docs/build/.doctrees/api.doctree index 9eec5a212889b5e9c1639a38f57782d7740d5ce4..a519589d82ea490801bcb81a06d45c30d7116f90 100644 GIT binary patch delta 431 zcmew(a$20Vfo19e?v1R<Op~pcG$yAo6)?JQzRGlpiLqhx0@m5gGEo`f#XX#PiMgpI zl?AEAQ);JVMEMnG$k$HE2%j9z`KmsHp@*-yvbZEQH$FGDxHvIAb;{%^nvGLxr)Xrb zX0T<j$4<#$=;16#EJ{o-N-W4glI?LU$xkjRN=;Qr&d)1J%*-oRC`wIBElSNxPE{z$ zSIEoHORdN(F3HSGS4hcEF3nBND^XC-&CkovEzK#(Ovz7HpHdIDK(xn|45J=3%s@8m zQNzqBty2&#m&&+Tnv|F!3-XD4?34_}*eMyxu~RZsW2a=O$4)8D(9F1#kt&sO6Q8Oc z)|}L`)SM~aOg${15S-G(9_|?A=jrD@rH3UaGcR?DH%kv&aeir0a_W=}Es&wtGo&)O XGZ-_NGo&-LGGzQplM*L8a#;fa<=Uid delta 90 zcmX>t{zrthfn{nT*G5)lCSIQ0{Ji|!(wvgal>Fq$%1pXU8P1afm<kv@Hy>m=#l+aO vxrcQ&vrJ4zWN{B?USe))No7H5@s!#r88Lpv8S=GLG9o8CbH189f!i7YaWx=5 diff --git a/docs/build/.doctrees/environment.pickle b/docs/build/.doctrees/environment.pickle index 6e49885ae9bbddf887a6bb940c995194e7f17571..546780e2476ffb25649182ab66ea45a1acf20fdc 100644 GIT binary patch literal 142891 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%0Ah zOQI77=%n6K&}cl?L_vW$kOU#3NSzKKM(x^TMSOyQ`w?ei5G2`|7>R+8Tq9_n7zmvB ziBw8}Qw{j=5Ui<z5`!Sg!Gh#KBDQ?6CO$bJe2FtXn3C*HjPzhct`Rg(4`g-GVo3H5 zu`x$P7cG)x%Q2!Oj9eqoql1k86{vFrN&k@6I~hhGT+u*or2}$BX;Ri&`gYOuT`LlE z3vyBw3>B;t+%k)bOB9MrQVWU|$}>wc6yWVug@ByI63~U;Q;?54&&q~()25Off7sI> z$oqu4X_H8{3nRJpgN>kLH;vsnKd&UUq68)Udf=jv<hKRvD#{z~7=hTsp_~l09~u;h z^Nu!>Y$?<TM5lKhxkeze&1$d_RPUY1dV-eMrIaRvn@}bB3MCnt#R?^*CHX~}i8-i| zK|n1eif(}2NsB0wQ_e(kt8PiYF37FAaJNE39T9O?Np=d<2t>qPBG(9_BaZCVK>Y5h zB_)}8=?cXqiA5!;DX4LUAq$C}KP3By$Wo|BKsg=a9$lDwpn-{qkDnx44mAQ1AK$=6 z(4|<?$WjGOR<P$}mZTOX=1iG91!)eXM=BvfOBZ%o7vy>}ExnAA+?<4jDX{4g@MMP= zc4ersg-a16(v*})?SnwWO+g8|vd9m7fSw=3I9af9Szy;O=_sJO1SEi>Oi>AC@~1}< zo5u_C($W1bis|oyymVB{aHxUUZw7WIDFq49zGhWO%u7M@I8+Q`H#CTd@_TY|84-R@ zE-oYJcaR#0{a&>2J1MO;VspKnGAs{3FRTM)0eHTEiWTIg>n7%<pbLY%3ym^F86ick z&k<#WIJrh3%4`v^5mc;fHL}ptk~AnEr4|+C7sbP_*o`-G(ZiCH#I<y>szXgrI8{MX zR0Y^aRLf1JVB;WV2sGy)w|je_Vi3EbiqS(r273sAQV@EElE4-OAcd%5fLj^FAw6JM zQ#lZ5k*y4s!7;82OBuRGDY~#+gee0K2#lOmM6PEMIVqo9Bj}owu%)A<#3F222{VB} z6%tBEFlCT*w2Rzu!CoP62OCFZW`Zh4&rGsdG84$rptOOWn<O!E6HFy)FyK)K35RoF zhf^&-LA*wb{A7%tpOO-baAhcv6e!d%55C<(u6GeRY9qNu&@e|~R87JO36Lp>c+e7f zy-LhREkBw(YP!LYg`}20<oX?ZuK7u_al|%i1VCc}X_@J|An)r|=H_4~g>NKV4lSP% zN#QfOM$j`Uh$kczCFZ5%=f)S8B$lM=6=Wu7=cJ++D8g9Ope6~dDj>;1OPQ*@8+DS6 zBQ{xxC_}sn>fn~7>Oz77Gij)h>;R0Up-8R~^h_FZ2?>U#W(M(wM)5|bx`w9lCPuni zx<3BydO7(Ry+JA5N>LLEK829<5<za@U@t~ONj8qy^unQ>lb^1elb?>6MuJGT6eErJ zlWPPm(+GG>LCQHNvA8%hEi<)9Hzl<oH7_MGuS5Y<mKLMMH6DeKxNaudlf*`jv@&>_ z5Y3g~5+BQv_YEYw10%j_$u$B!zDQ{wL0tiwIe`QyWc-W_BM`2D3`CP*1i}@N$ptcu zK)9j@JP=4m(-Y*1(xj{_^qobrg3TfsDOf3l=B1<-6_+IDrGSQSOEOXwGAavFi*yST zixP8FOHzvz@(W5bb2F>Ji(OFiOjad)Lg@s_2?~4O0EGmh38kYX+XYQ|h~~~Aun}|_ zxrOwkq&!dqwOAoDucR~+G|zz&q&@f)LUPS>u-i#VY(xfikF+vc)EDa_TnP<B#NgNy zlHCC{0uc=l$u$Cz_3nX<pyJ>dB);U(vPDs1W}ZIi>J5eBf}BjWc|k&oA@RnoLTb~J z*m#pyE=A77x+NgjLe}*`Tni0&MBH(Z>=vjIh`3`V*9fBHj_k=OE!4<EOVqf_vmR13 zLLyb4<WL|sQnk?{70nmAD5Wwqb`TM)L$bS|Mj#?s6Kn(>%SdkbqRbS9;?%^V<P6k8 z5k&?P@Bv`g(V`UOQBE()Owon90~#!dko6_mVyF>_ko6+h2t?L#2OB~4Vvjcn+`q;e z321VVXea@@gBH=i2k+oQ5(G395fM>Hvei%{5D}3_t`Rhk2nlc9wEUcuVuj?Q{NiHW zvc#Os6wC%#4{l|U=$S#X2Z=47B$cxvF4V<vAvBl~F*TKBS3r$G#MC5mji7l<@%pBg z6lEqWBxmGjCa0p7TWE5SIN3w8SBQ-hKIL4nTXdmrfrcU?B6gB&HPi@1L~JA12=s^` zqr(O2EkVK%Qa6!d1i}>r8jfT)K7>6I^HPd+^Yau^D+*GJGE?)=Qw3HP5P!WPIdq9l z8zRaXP<QDfxeFS-h!paYWCuWvK%|goU?b?*Zg7ToXZ1kKBK`95_F#1sGII+OlS>rx z(;#hmh2qRAw0uhy6Cp9mt4ga@zoT+0WHG3&k*=X`UcN5A7NRc1)4KU-y5KH>F4)u1 zxI;ug7s;-L8i9y@c5;nCWK9;Z5may7I3Usqc;KTrF+CNO3LpdNnN_JNcoU9-6>8y5 zxp9ybVhHvvEt*iaNGZffw-n@GPy#^s7jKfm94OW!*`*k%Lz`S9Xr4M$5UIl$G%N-R zEl}zJbq1jAVe}M0oEAtdhm!1ZtR?%@J-Q5F03I_$87b>gM2c=>M0A5ZfU`FfM6$Cm zqST*UBhaIijOrZGB7oF7WEg>P1*Anlh7kx?K*klxFaqI<{onyDQi=m;jDTEGnv}Jd zzGKNIuxta)G|0nH3ZSuM&_r!!aY<%!VvYiM=_+W%6Lsb#s~tXyJd5O{gf)|Z!vH03 zWMo1E2~pKeC)qBj5s0d83fKrbwshbd5Kxx4!9^h@%}%hZNJ&6M1|q&~3EN1v6eBb@ zlWPPb?`!}YfwSR2cAK8pBfngsBwwMlI8_0C@E1)E5(js|4xvRH@F{2HmxHz&loqGz zW|qKeSVX$MMY7cxF>xJi1U=I=v=BjUV6nqQAz}It>?&G>DF>|L#0<^fBwLCRnm@=j z0+Fu2f{nnLuE{<6h{FZCg&j5A5yFswS5l)+7Y0-_p_Ix!oXROM7eIpzk&fj_wiRjw zqI{Mi*9i2GC!<0K)y9zEgXAVMj6k>oQm&C<1i}@Nx{3@V5U!XAPKBgoKxmABTv3{o zb%wqz6V;H!Y|xZ8Xe(V&eh#=zpQ=!qUs|M)U!JFsl30>hoQgV=mo*jM6iFvJ?O?A( zL7qlQ^jMlADJ0tk4Om1{PXrr5$0A!KBqLQJDX}P3AulyKwYWI5Br_GYUDtzM2_#dr zf!#|=S|T!ddqkB>GE#LxF4IMJ88pNY<x4ZkE`S<=2=oSWjX>n7TCfpRFWE&wu>(!v z3dJQwrO73wMQDRuIMhJmXBF68w1^)uaQr~sri*YJG;|RWw47uoK#f2|&=PWupm_xG zd$_onDkSIUm8BLHXXfXj*1#CDkVrX4vUiBhGy=*QDQTv<NbZ4#B_cXblWaNE2t;(8 zAlC?*M~ALs3V8WbVoC~lO%ABHng`lI51w;V$j<|JW})M)XvG|fdLdEyiR7RlHY)X$ zL7o6@a)bLtHxuC(-TXXVPyq?|3pADx5&fQIr$LQCMD!bSjX;lRGTJMk#s(yeA$1}d zMj%`fN3KUet|(2)I!xatj|ToGPhw7beo<ygMlNa!&RPs_^=PY8r>PI}H=$OK2FZ3| zq%&2p5p-<zXa#42kKZUsEY4Q2Qh=2j3c2}t`DK}@<qC*(yr?BQDH<WE*9+`7%4=YZ zsOZsDE(ZHT7vu|FSZSdP^MfvuAD|(QC>-2Lb`{hJMB(5<t`UfA=?FH0>a8Y2-~6If zh2(rt6jvyKLI)*|VW$D&jASzOL*hCQ>>pahwSjVOeo?9})KBO!4)YP-D9<L@aTrma zL9P+#QBFo-4l0Qup$sW4$S?xo3MFzq0&+!ZQq~6g)(0|}Cju#iKu=Ras{=N|>wx7X z`w@H71mssjb-)sm?ZQY~3&BR<tOKZfJrCGVNZ0dd`1Odvj(jQB&&(?>NzBOsw;89j zP4VjyLdZeeTZTBqjc|w?;}AE&A#OUQZAvP}r9m25XVe)Ovd)2s3n1bWh`0hGuBkIH zq#|7^<jqLC8-)_6dZQ2`Y%}vxQY$d81=<Tv8Kjh|(8LAGtdJrDlDH@;GUid@iqfR4 z<@7Bwq&y*snBZYz`{4z~Uy^-@y}$tZlu&{3i)6c?af)bvd<PqWyTG9K1p^X3iKThT z8K9v^@Qi3`Noj#XNq#=sc~-cUL6V}326dX|7@^!Fshk6IA-HQ;4053^*oDx*L$v=S zNp=O)2t@dck!u8^8Wtwk2t>|?qyma^_7`wMBC~ucO)Bl-FUe1i&nwN12VEfw8a@SG zYO#xnfx(+GYa4_*3!yfFD5k7EAc`?-HHhNLIs~E^vz9@qgAi&xgxU_FPC}>y5NZX8 zV$V7UqS&(5fhgvz%OHw1YYl`t0-;VosI3rc2ZTBWqS&&|L#SgQiY4m;h~mh)1fp28 zj)EwjtW_Y2E$cXlV#(SEqFA%GK&YJ%YBz{t$=VO0KzFu#vw-iC_GSTJCF#wY1-hoh zn+1FdzBfDgq(yIT@Uj<g9`FpmH!FBb!J8G_&Gu#nx30Vy!6l|QQ)v$$D0quglOb2$ z6;G+10uf5fOh*zDD9KMQDN0R^hhCKjQl|k9{@5uRS$d%B@C?`(7*ex9aR3rp4H8-l zBG!Y&L6H(WB?}bBAZZUS28Jvz5a9zN{6Iti7svom@PkzB2MHYn3xT2nB=nA(fg$Sy zH%JvIT0lZSc^DY7euId=AmTrWVB}?B$YKT&tRRA&7o-6cEwNLwY=jsX62XxJ((NkD zz>wuG43Y;$21sa$1Or3XG7zx>M63c4Ya~D_Kv4oxaaWpwA?rSfcnBgMgNUaf;<+?P z8R%NL*eT#p2C2s1q$uqX0B^F5FUgNDN=+)w%t-;?*#ZjC{wa_Eo{$9!Sp*LhvLGHP zq$gy7f*8RAg*Ac)3S<xu6zCJcp^e~yf*rvFg+GD^iU<S`6cHdEC}JjLfno%~1H}l4 z2a2Hy;HW|HKv4tYfud>xIF1lJP-G!^pjbojK+%Wbf#MOt14Sr;2Z~t)4-~Z^9w??K zWPzd<!~^BS3E((J@IY}4;(_9P0ywe}JW#A7c%bM<@IdJR!2_iO5D%0tCV&$Jf(J?& z2p%YjAb6m(g5ZG?4T1+sEg&AK1w8@W5=HPpO;Q98)HX%%K#f!c57b(P^GbVoK^I=e zLo;ykl>R9_f{>h@nt~$Am6D&En3)HfbO0s79>!!a#h#y(m6}`v%JEqZpn`~@w1+b} zBQY;M6*MzgJ4K_19m<_jI|Z(UIk}(!te?9mKffftxH2~>KW9o-3ljrF4_h#V2S1<B zgqeZCuZJ@;B{i?azsSE}ieC?3NosCEPGU)F0BDPC@f5!v9+-$@Q96jvosycIlL$Fp zeu`fYdrE$CUSe+Q6u%z+%;KO_WZBLh&iLev%$$^>)I8AjpuF*kdHH$H2$9mH9#)WM z6kjrBfw&r3Q#BYEYNzzDL$2KeiNSrzlABnP0rDnH5pPCfaeQiFDY$zBQmT;!s;fG| zWo2g;sHW-!7m}Ueda4s#O?856sZMYu)tLpVqdK!dRa9pdsD|py0##6*;Igwb3zQ8z z!L?H-xN_<Q*G-+^s;M&zR5NvEfhwlXEKt4FnFXqrI<r8Tq7z*1b!LI;q)u>^)CsPU zI>8lEC%8W91Xo9$;M%AYTp4v{ff9IU7N{!f1lL5JS)huj6I>5<f~%oUa4pmcu7o<l zbx<d`3hDsYK%L+Us1scObb<@UPH^qhSqcwErh-bOK+M_*4sf_Eb5U^#vNS9eG8dPC zi_0GFf};F%&{n_vJW!Cs;({|dvjiRwJ-jepd{Jr|NLdeCPGVAO4v4AI!;zkv2ks$F z$vUM0x-hGUx40l9Gp|A~CqFqcCv{4XV0=hXVqP(%;~G$uUr{+_@)V7%(;5s6J^b-G ziB*;HB~S&aQzlR8VT0(O(!-vfng>3PvWL|Z)CZeVGNo}!)_DyEhO7%9;v$H+q`|<@ zKBa9+QakAK+WZuVTY9()DnSQ^LwFgPS!XpE7&OrI_V7S&%*1W_EhN*~pnLYR9)SIc z-AL|W@P0CdfW-7vtnPh?FtHTW9m&r_1SU8H!9+%8+mx&uAphM2Th=xOY%7=m$-z@V zDX2G|l3Ib@#*3W-&N#7Cz&R&&3OMV;P66kg*eT%56FUW*dt#@6vrp_4aQ=y%0?t6O zQ@}YWb_zHP!P_6;OcXl>oQq<ofU{BT6mUL@odV8Cu~Wb~DRv4tE5%L$=cU*w;LH>| z1)Q5=r+~9l>=bZ*ik$+^P_a|MIVyGvI7`J&0q3dMDd0>MI|ZDpVyA$!RqPaSzKWd! z&RDTiz&R^+3OH-UP66kw*eT%56*~o-yJDw+vsdgCaQ=#&0?uHuQ@}Yab_zI)#ZCd| zF?j0(oXcXTl=iS?<|d}67EkHnhNMY7(E0mQdIa1ub5cR2UT9usp-X0R3FN@ktS3wi z450c0bma1c9^RzHqImELcA(?grnF5d2FWRFGB8X?>S0gG0XJZ#WXWkVF!b=c<d^5= z<R_+pOfH5P*CUi)l$oBHmzWa|c1C<@Q6{LB$q6dX<Ds=p4|h>&T0CeG3g|rP+9{<; FdH}$j1{44Q literal 222341 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 a1>j;1#N#eXO#@v|44MU<QahzINe=-1u!1ZA diff --git a/docs/build/.doctrees/execution.doctree b/docs/build/.doctrees/execution.doctree index 0ddd3cede00bf34a5bc2fd119ca2fb23677d8ffd..344690a2bd66d72074452ebdf24b76afbf680750 100644 GIT binary patch delta 82 zcmaDOaY%@@fn};W=S0?|jTtG7oQWB-wNo@Q<YOl<VbNqv+<cBDory7Qvl;trW_g1Q n-Qph3yu{qplFEYA;wiOLG7S8RGvsThWawsa7jO3BR$>GIXeAp^ delta 755 zcmX>k^hScUfn{nU&qUTFMvaZ>DU4b@{KW+snRyj@i76?0`6;QzQ+il4^HNePrc9oq z**K+kibe)&23rPu?3Bs=Oj7misd*(unW@E7Vy9^IuoY+KrRSth=~2!t%_+$&%S<hg zFUUzONy{(F)l02NO)f1-RnW-IPbtkw)tu6!2w~~sRy-wx&97uiVrhnEhE9f526qNy z26KjVPn&*5er~FMQewg6Vn&O4O#S*$%k&B=ty1!ni%W_!^U@Xa(-bh3!rV0_L&lr2 zG%16jhqEBDC^5Y#u^<D<%ROcx8JWcjnZ*hv8L0{o<1_Q~6ms)Z>PvG{bredAQ&SX5 z@}W|xU}eeqDXCLHL6sqjM?Ze;ty5ru?vx>w;Q$E%zYH0_(xk);Sx|IL4rLPN1O<^D zC}<{UF*;H)L|~y_nv@E$O&%1{1Y(Z4v?O)%6-G_Q)Xo1G)0r5nH>a`8X08v-2rBO3 z%uCEoEvYO>EuK<4B_q_YI71%fiJ%PbjKB<r9=4LiqV&`fq>zUsHn`;(fr%N4u~RaX vW2a=O#!kslj|C;r;@td{DIK6d*b8%UhIEE4Bu-0vc+>LpOE#-<$S?u`9M>08 diff --git a/docs/build/.doctrees/index.doctree b/docs/build/.doctrees/index.doctree index dc7a3559cf520184fd2289a132dbaf552f776428..d11dccef67dcfa602307f365227ed9c84d765948 100644 GIT binary patch delta 200 zcmbPY_{V^yfn{ppMwa<3LQ3JOIm!9CsR||e3c;nmzMdhI53ooIsbC6!W67488j_J& ztWc1coSm4Ss*sVWkd&I5r;w6boSB|CnS(84@(EU6#^TA@Y?71Tv9ild$FDq@v3PSf vn=msY<K}u!e?}q2a)?`WOY(J#OLKEGOD4bOk`_{e3WJ;o5#FrKUC0Xn<}O4E delta 238 zcmexkFvXCifn{pvMwa<3!Mfq8Im!9CsR||e3cjT|C7ETJspSDVi6v?IMY-z53Mu)? zrManjC5a`O`FV;{GT39MWC--=<I^?y0ZX=UcSuHNu|h#&a&}^RszPS5LTT~jbk@Yl zCs`GQd$G!eOpavZ-<-)N%*@EVxt7zPQC6oM;x^rqeBE4_+X|p=n|zN;T2>dT0_1uO K6`Q%a3wZ%84Od72 diff --git a/docs/build/.doctrees/modules.doctree b/docs/build/.doctrees/modules.doctree index 50840cdfae62a8b4dafaf50c7c4c96842d54ce4f..91290c6725bee92a4029d0a2e8af32a109bd404b 100644 GIT binary patch delta 428 zcmX>hGFzOrfo19h?v1RHOoBZ;nR&@Mr75XtnK`M&Q(~uV_GVIGW~|zr!#bN;CL|-U zxQ8<@F*miOvLLm1O6`=45WnIK`PwNNfs>UvU)5(Y^zao|7MG;v#^<IM7bm8tPMJJK zvvEr86pakl47LpR*eMwdJ)8xJMTzM}i3J%*vOVr4`N<_ksi_Ld`FSOYnR&$uMX712 zMX7nosR||e3VHc?sTG;UC7F5Y3Mu)?rManjB?{`fr8y;;Wtpkv@dY`FCG~0fMY-xz zz}ATNc#~n^qlOu%MuJRy)G%{O>lB19q%v-lCM9Obf_x<(J0(Lgc1nhF?34`ENla`! zr5TzT*D|CsE|(@HPJYWM>DI%VlUkOVGsT;!hXoXDQ+n9L9fSNl{oJSYu;gUsrB3l? n>0v9*FD*(=osyvi(tj~SDuX+NF@rfnIzuZ%#t&o^FPAj{cod=d delta 92 zcmbO&enNz`fn};K*G5)JCPu%B3q-}+rX=?8WacI3l%}MnW#*(7Pl=t9VV}5JpGkq4 xv1W4s>uhG3u#Dj19?rbP+|-iFg4E(EwNo;}{E9Q=Yo}xcPiE(QH93LX8UU%3AbJ1* diff --git a/docs/build/.doctrees/readme_link.doctree b/docs/build/.doctrees/readme_link.doctree index 4924de8f4afba1f929258d733bf694678c0a8483..06f3708f9042a5c2c4fddcd502286d992f37a2a7 100644 GIT binary patch delta 8364 zcmaF4nrXsHCe{X)sjX8svQ{xO{+istoWfp^S&*8OnKxOGNo?{z=1>kOKXq~hizj31 z<Zk9jxX>h47l;TCOp#u3S^8uLX7SDYSos+l1vj5#Tg%8OJh_Hr#^h83`N_tdd5n^i z7jbT7l-?Y{#mvMimm!sLZ1O^R<;l%FPK<JskMXSLRLGFZSdhV(!900_kKE=Nyl<J< zlryBVL>VVHW~oiC6_we1R)Cpl@&qZC%~ynKnb=e_q_UQSB{$cKrZBOoWk_Y+gYbDJ znwc2YH&2wB!^EhuSx+{biA^&@Dyx|ZZq!5hHH?f}oBI@-nb@>5q_RGOr8e8D#4|DK zY@VxD$i%2SnP1a=@<vThQJpCn?6Ffa8Z;ZH)K1aJV9lDr%)l`Dk7f|#+{p{o<R|B8 z^)arS{8!7BS7%D=6sV#e-N}W@B9pbWCD?SPWJqPrnp~)+&8n9nl{IbhLN#Zu=!BBQ zq|%(klGMqJ%F-NgPQIqNQHnxIMyf(`eqLH>ab|v=LT+M7QD%i67n(bIqDVIbY=lOJ z4$Ln-1}J8j!Q7#5mk<wDn<3f*cN~)M5MmipSy!RKz`+R@o*b<zCk!`iN@<2>1}K~_ zPVQ0FL9zs5g)Aso<zuHH*_4=}7&|3H8Ch)dLpc$tXUq%?Aj2MHy!U3zkjlCU;wNQ@ z_GnEmR2Ejo5pqZl2dk68r4D2wIHL43q_WOV-l(0ys63h5Ac|3PG9#PZ<Q4->4ha?p zh774JvB?_@b(Q!sq_TuT0*o2V8PXZf88Y5RrAdgS(z9T4sG+i0szO3~W=T$Bl0s2x zL4I*&Nq$kKg3aV^W-oQSg!mW*9fivLQiZJ2;u3|7#IjU{l6-~I;#37IaPVkki1w(0 zjNwaFK=KG!$ShR>l(<yjPVmc+@heS2ir++BHrpe`upox(kSxL?nIV;>JNcq9DCu*E zW0Swv;|21aEIi^tE-X#TcnD8-z7YT0*@69-0Z#%@({vF5H3g9tppuACoIFudRLYJ8 zHBCV6677+g+-j(#*dv86fTgljCNr9wvYLQma`G#~c*aPu&oYgC1j0eV3W-%Su=E92 z5yqIww~S2GK~a>MS6q^qlcNw^>g($nqL7%EqL5iqtdNpgkeZj0nwOlJT0EK0Sd%G_ zWwN=h>f})4YR1aR7mbzc%R%N!W#xg~4NAL43MrXIsmb6}QIfAfgt>Z1@k6q1_F_Fy zqR9jM+Y0Qlhi)R1t4!<}jljwLhKW1J0*D*ufs(lhD4EX&2_TZW?c@y86O3yn8=A#2 zZU^~_V=G93RMwiwyUkn~*MJNcu+Nang6S(w%8HomW<HhiA}D+Vv(i}@7_u@zL?#OZ zLl0X)Wl2VU-ju9t76yjStQ-~whFVbS$wG<*M-<}_xh!HDBLl<a`IbTE2`Tx>rManj zC5a`Vg3~6Wq@=(~Uq30apd_=nBvmgdv9v5RPp=>`J+)XbC$m^LCoxGct!T0zqaw3i zLj2@^mOhieTVzeXW@F019y<k;^@2bK^B{#cSRfn}f)7DH1_ud7wu`2~CFV#ulNZH9 zNUlJW$dJl<1q#>6d0HG+=yLaZJV*!#7f`T+OKXt-P%^Ez0x2PCj-I#C+=a;3s1o3U z{x>LdWN2o<3VNtpM0<QD|FaBd1d+aC8B$pwaZsxvLmCnXSrsgsC9IVgnfO>IH|i;= zK=T?%St%&5x#@9*WTYyf1ncB$HYRe2nj41_bH<0DM9u03N`;djx`|GXwT)r4h2$7p zcTQ7QaK&KEI(eg^jw&e27=T2;=>uFd_#oE|5o(|`TW0r+k!$iQCx^|k_L7Xkj&Kcd z&rI%gILG7#_KP6YFCbN5zhqA~wATjf_hjlpa2!}Nq_P|*`}^olR&e5A^UILRGGLv2 z(N%bIk@I2BG>{!qSt%fAnn(wMB^ek%K?usBEDQ{=B6{*am+Z+uT<V#MK(@<Sk&|OX zz{Z2@W?VSg(an{T49aJh5U&TWEkN1Q6=WQ8wgd}+vt<*=hu~m`gd$RHNJ+M|ATL{X zgF}z1`4Z$o3i4$=dcI`NOff{%vKgweQ+iNy<dnn=_1GyrY(=SQrA3)jvgWX&*0@jy ziS{reS4@oHY6c_+N?ouFnwl{=!AAz1G9w|W<B?kdqYpS66}sDV9s<RlRMr7d`qTk8 zu=avP!0`#rMls0Qs3&f+zo!~=etF*HdmhTt(5g5&F%R5;$}E8-m<&-=b!u4D!SjFC z1(1DGS?545Fky?!kjmN%&OT;`tcnuLbu&tGb98f!imVcB5*0FvQqydeY?KsAGD~t& zZI!|^OEMG^O7aWh;Z^!%)?j6=g2a*xw*-a6qI7Weq-2+zp9`v|Z1fZD5@Hmr6m0Ai zG?bN<l@%sCdW%lx@iwYw=wU8OET1xY3M@nRn2}|F0yxiPi1w%v=U!+fQ?HT1O0<>? zsjNq!G?A1DZ^?lg@I5@p0X8KO)Sw3?FGy-i%P-1JESb{70t(S7h~lL*Lo@3ED?bAR zv_+keA(eH9b@JQbD6>1Dr~xMhXx3)v;RlC&d{JszYEf!law>9wu_u7TeR5ui3e#^; zK2$RO2{Hj>9s>io47G&E$)kq3D6xVXCkm<vmH1;%3{)+lJ2b0;W%374)5%W)R5+l; z_?^k`z2h10z{_cnH}|qm4vbWpyw1m3LXVAs0o3ozsz54}v-H>|Gy0}68c#kLtPC^A zVDiCWrO6ZIIa!l4q_T9tyaV#AOqy(y>qVs|v-vqn_+vH9pKWryUlC&nvSEQ>?I6Qa zGNiJ6!91v8{1P&gi~LhLHDMjm$?5(DT$<qIr2+C_L_iN?8M0wTlLZ15Ig8jpVGUAX z6*!5p3#0&6l|iI3M0><1AM_XF)r6)!P|^d7uxo<aSw(D<1GBVPQ!}Kp@?Z{P(PU#_ zn7olyeDa1MEylf*FM6p?{uw%xb1TTFQdyhXK(#Qq;kp4N0!}mF;v-}7?J!dw&x8bp za&TTv@SH3Y-tKb{t_qT}P=dXOGa(@?Gqv0^0iKyy!F(k5LIpCUvQB|~2#cJ9lcge5 z9q^mZnvj5GGNUJwsf?bW0Jw*0;;M*jrh{yg1AKHq#VBi5hE&#u$pMj>Jbyu+0JU2| zfqgVGfQgA6)ChvP<^N>Is92`|kkHJ{kjnZE3r(gUkhCHc9nGV{4oP_6D6NbRW6}g0 z!U;{bYV4E$M7J@jO%BM?X3fix%2Jx#kfjbY;9JaT9&cm=&c=o@1%M5Jxx#m{f1Et0 zFFPzzl*c(vKA5D!4>cbmks&&{KYsS)w)o|YzF?d3Go-RSk!;$$FyRCvQw7W9?4&TJ z9ux~Yz!r3%Sg<Hn1(xO@5*eaBDU;VGrc8dHT*3(v0tH%5iX+n&G}CUTv?8fUPqk(` zfu`bIsyt%{*qH?xQdun^XR`c2q)#<AP+)Ih1GR%D&re$*{0<aC;3Nr8Y?Fi1t(m@q z&4q;oNEN7zn*1<bV)Bi26{dIW@Hj7m#<}F=fQ;*)V9?AAW|H9m#WpOWBseCo%v{DK z!2!xVY^51eSt1;u0Wc;(j>!fs_FxgHn;5f?3OjK?T7emehV<l{*^W%!U_)V%=QP<Z zC!WcP1MZM=utOf?H1TAC41guRyxcIRd=#BIlRxBkGvz>BQ<Wi=l>u>0DhIffdY_lc zGZEQ@l>ErahDGqwa`NPt`3spQL$p_CNM-e-X#ZDm3=|5-3bUE^p;)_Xa%|B=rd<$y zH5pP_+rau*QaRwohZ-BmIgp@`uL1QA5)vSFQ+!HdNn&woiC#fvLV`kCW=`s4Lwn(R zQ1c=w71Y8=0gVGd)G8z@<d)`?WR_*7mMcK@DP-m;Btpjrbd&RQ3ld8*lX6lOJY3vN z!Nx(FC!qE$3&>uij1S>wNM$_%1qw=9iASmsdPK3h6<j7~i1r9V+=k>2BrC8;W=Lhd z1qYuPG&h252c^NDWUzZd-jAWC_u;KBBntwmX#qF{;i<I_oLYN|w+f&&Dl;YrmLxI8 zfLo!LN}M@mIKiDcDNax|!UpQhiE~a4D3z{{_s>gC1rOJON9rKqTauar5-NhlyACK> z6qV*dqh29DPa(4eq(UJtH5Hs@a`RI%(<<TPyqW3X;8jR0hQ%BXdt#|)5j^O#v>=|< z;GE1@W>GH=;xT40mnLOJAg45oyu{p8D}`vK%KXxzcu;1D2Z<=fa%pjanptU93Q8ba zza(EDq(mQ@36x-7BF+Gnk_=1};BL)e%aF=4<DA^6Cuf0ZF=l~>kXR}cb93+xAhl*l zWr=fwi(!F^y__B(pGsx9fg;(2ts5@Mbj)+|0!Q&6P%Nh9=j7y<gCh!M%s{<ZA)%zS zB)=##F{hZMVG%dDHvP=Jl++46Q1jO=As%E~PHJLN9@sL__-}riLTX}ihC)GNQDSat zNotWEI4D8Ig(cX9dLTWxT==MAW-;=Bu{l^vJw7e!#o*!O5Ky=v6*)*9=xj1Ptq(63 zb#oIZM>C4J;0OV*?=nPtIN|b0r4^E3hE!H8I0=Ay)n>>N_j+PT80m_D+k+Gn@X;?& zD4_JR<4KBUCv1kJ_q>tZju;Jt3r>C@Ct9D!iQ3nOI!m-i1r(D66AV1(5UD;xDhp%- zyvIKIZM`O2FC=S-)gA`V=gn(U<eURaBT`wjKzT<8+|Hg35&@?ga65a#WV;O6$*Rrv zeA|#pk*tlAi<&K&HiM#1i4!_xyq<G%W0n%AEz34JLn>=Eh^xl9VzPdV0|!U|Wb)(& z4yDO6TXZ>ZfUJ?qx`wd$GDrkr@idUdqT*UwF8R5cd6|W!sR~Z1d6}s>Ihm6a+l6z) zu*qm?ffHXAid)};3<gd8iS`I#8itfMvB_pgWxYr7<!g|)AikWLA(izU#8qQ@!Z|si z!(j3cCaK8>g2dQBGM70gAM5ZE0Qnjc4dC#cHd&$5g>k~<)Xs^Ff|Cp7Wi|_U{bgkI z-YnR&m|04di-93a2}DfcWMIge2qFYPgX_GL&-FLd?_g$N$l3}bK7fd~AYukcdMb$U z01>VrLYI|+AxjHHu!0CC5U~qHYzGk{AX5cF1P_Sd1Q9(Tq7y_^fQV8MAq#Sc6o?Q7 z5kg$b3=E|`oS@pGq_QBj7(9)d?Uw~|v|kp;!G2i+lkZFj0K2mz3*^R*ERg&BvOsR@ z$O5^`FAL<Rjx3OS{IWo9@yi0a!!HZu2EQzj{T*2#yZy32_WG4($b%*pGcvfrA(N2@ z4wj7mEMCyK{ep}a8IQ6|7#SF{^gu)eXgqfQ#H@O7Fs%oL5IC5ggIM5T0!{Q~frH5& z6jtD10?lq@frIG}NDLfIpkd#v#h?J23nIV)25N3(fddTG9nAs<7^tGn0tZ+=DAd3K zHk}g^Vhjvfpky%lng~-5UqNC~acX>SYH=}W-eOAZl*#Fn^y&><N(*u_lM_o)6;dle ztjrRHlEk9))Di_yNLwi=p;TB(kjf)Nw8w;y#zzfvP_#a3n2R*72d;vbbAhrfTYZL9 z))FpIZ5#mhabgc^PHI_d&J=IP9u`nsPw8Rt^mFr{(!*AqUs{x$Iwixohb1R7FLjEy aAZVOt5f`|f1qw2xv>sKOlsI|aRBHe_M9WS9 delta 8587 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 VpM%l~lFxlhlfXfqIyrQTH2}X;0=@tM diff --git a/docs/build/.doctrees/references/monomulti/exec_classif.doctree b/docs/build/.doctrees/references/monomulti/exec_classif.doctree index 20d898b1226e724b32a0219afd1180fee3a50045..0169d9454b5682ce10bfb734a7b9c67c471b309d 100644 GIT binary patch delta 94 zcmaF7kM)ocTLa5fb54edY>68)3K%&PGh}P0Xk^I8PQPKvsLYtS{f{MM0uxh4*!Dyl z##zh?83q};#XX#PiMgpIl?AEAQ);JV82A-u$k$HE(9Pg3p3dyV_<XuXJfk%L;prdo literal 89955 zcmZo*naaSx$N&O8d@1?Kr6rj;#d>-9DXGO%dN@D=xv6<2QzlQ*Y@AX%MWctaD6zaa zzqBYhbxIGzlpc=cjLe*rqSU-8u~RY_df1ColS?x5^Wf?;SToo%*kh+?WH9uwmSmRX zq#{Z6$UEmG78hrxWhN(rbSb1(q=FofpQn(UpHiBWIt8RPgQ15dB((zM2ErOzr+}TA z!I~k|!&Z=31af<ZKn7z5a}OKT*?v7NIhlE>Q~XMk5_`B3OG=6|lS)fci^1Mw&P*wu z5<8`bJsIS(R4|)0FEJOw;z%hiKyZ>0le3Fb(?DuUd)P}7(?L>GGWas2GPprDW=QuG z>1X8Urs^jp7L;Tbm!#^u<R_Pc!n0W4J+q`dzbIQjw=}0Dvn(^UTsJo{IU_SKRW~O! zu_!MyFI_i3H?vqjB|o`XAL4TTqSUn1qSU<P)MEYI{JeayR((*I#e-d&nWk4%Trwp? z#+#`$sfWL~AR{xcLN75T1sa>InRzLx6-eO^iJA=A+9?_t^08Ag6l14kD9298P>r3E zp$-a!)Vz|SOt9BAdf19H^U`xtr}Vgh?FBhGz91*DBrU%vR}bWzc(8apSOV&v%+#V{ zJ!A(eXh0%Xb4rgBgry7C1=d8eX;U)T{7R-ImS$*X=pY69b&3NW(@o$2$KgZNC@843 z0>xQLQD$DcLVlV8rddRXmR@2}VqSV`d~Rw<QD$;6C}tT;lQMK6SrL}Ch>O1r%bo~S z<1{oCG%{g1jS^>SPU-QYrZ2HYs$YhTUujZ?b`MKRYH>0~8rI0r?%@N;#206#=Ovbu z7NL|gs%Sok2B?k#gb`m*l$n>T2`+6wCUJsI0_SE}xtGD(!-r}JSapUdhA^T8V#|=q zh=ddb5a%c2jw;TI+#IXof<#cU%2801TAW%`mO2HLvcof^GJ+wd^bF&a4T)VLaL5-V z7A5AUmZTQtWEO*peOP+$5rxE8F>1ttV*(U!kQ4ydjg(4y*r7VXYBNL;eAMVFDow&2 zNg3%G8K4*`$dJm&DNV{Kgu9CeVmc%p!K^?PM75`Z1bb3(rW%-ovJgomBNLoako0&Z z!pn89M0nB8nwANwD>{4FAjR;M9%~A+@RS}_aEU)9gRO@ntu!YGoOd#!L7^3xA(i0= zNxx9XWoY;Cfa5tiKd%H-K_fC5q(%ZY7C1rCm|m1vkbxYH`Ju(BDGDX|3hAjO3MCn- z&<tFx07@wenR#HbqRjM+5{3Mtl++@H;(UdYjKmTykXo>p74q{^6*7y#3c=Yvvmh}C zYK%g0L27blT4rhr$f(4k^kP_C(%oJ}a#@ifm9Y#GeuPR9P;f8FkRHy(gg0Y`RK`M3 zaFixxF!XSxWv1q&#DiiVDVZQr5i3|8s}xi#IHe*IU=LRStnh(HKC%!ZUO=V$L44U5 z6dU_9q%!toNP`l-Hv_VZlk!t4F`Sjb(8HZnnv;`Sg4;)&Aiu_EmZaulYF`R3kUSv; zQn7*tNI9q(0-}pG6?AnKLXffzC~qi~XXfN6B&8~pg7OwL4<)7MC1>O&7G;BT0Jw0? z$t+1NO3aBbE-A{-OGmODQJ8|8>o^P7C-_3Eha1$ChUCBGDIK7|dz2xSaj!HfL$rrU zL1PMP$b-bSdw2>`^HMVN(&H<NQqz!J1W5oH+C2g=N2lf%WF!`679%O@;RS^WJZ!)o z%@9QwMYZ-HJ}-dW{3k;y<0n2vJ)A|UX({=+iJ5s*dYB3-r+_`4T2YXbnVeZNrL%{< zC^fC5vLJOz#$2%4lEk9))RHM#piWxGCvd=ghX)L!CYEp!?O|1T)G%2AtCSvz(GT~3 z52-pqjs#`Y3~5NYg;Xb@bu>T$w<JR<<2Js411Y+hA(e5hG%4d2ETKaq8j<kxAPFB* z6Dw#GmlVO%JSeAwVjENyKvaRN28Fy-NR<N10crU~;MyUhvLLlc7gP;_+ag@~1tpoe znN^UUYC%zca%wT8h|tJ*40BHpYNZd&52%9h5Y1rAkjgS=WMIJOZD^D~%8<%31}nvu z9bi&FVD5m1%U>A3hq<_<2$sUZY*bhHfQ`o8^Z^C_pA4xiPXg+|DHfW#vxFHL7>G^X zevAwZP_KSR_9}V;hxrtH8b`=RfRZ^)VjLcDJ+!j}8UiHco-6|baRZ7&Xa>Tc6|ZDS zWn9FUCP5~h2i0t)N%&3Ll_8a}y)-FfH!K}O(xpbm0hmA!dr)dgX;B^|CxIH~Fg`q- z!P#UI5uV$hA(hn+N=JzL_5#cvh{YL*f+7%71Qes!h@d(_M<J=SL?N*V-1|;ZfHWdg z74Wnl^Yc>mz}XAbbY;V=A-T1*p!R8Lfz^S03Kc;V(?}JmRMtw6PZ%?pVZ|rj%$c<u zq*^L#F^EFalp)&V4Xz77*#T-FxUEd47vYi8<3-JY!*n?QbhRWyDr*4|DdIddMNlD~ zazoOk0;FnYkDZbs+Jhnn4;pZKy+nlTK<V{7D8h(Iuh<$Z=*2z$#!J?70&XI=@J4Sk zA(i8g30Mg#NkEbLfCzP<$OHu!k&%f%1#N|OBVgGJzw-GQomkxJd)QDaK=%BkEO4R$ z^^Ef%qvJgsp#CpdG)ta|fuV;zFCQ{E+X)I0A8^4B8byXSoyZ^ZgSX@3GxIV_2F;Kk zs<W_<<3d`E8NR4RxJE`0OrR$e)fkPG%%arflKi4d9R=`k1bkv4J~J;RGdZ<bM<FLM zDK!U9$ERe1BP0=|B|APXKPROaHVha6w}ubZ8d&*_E{s|Lm@_djfTIx_g}94v*eFgo zsMd$;8b+OX^x%^LjrC>2gV&WR(FTqc4WuzSPPnmPsSME`BoWlO@?s*;21gA1Wx0XX zBH1H`J*mMg#U+jEf(Wpwgwseth7_g?*dU1-W+RM?YC{?&HV8s&K*}yK%dp6x+FL@2 zz3k9D39}8(N42AgWIJ$|-mu)5g_0YyTtOKVlyDI`v-Fr47~q4eP#$#ZEMrz@#%#)l zR5Rvguw~54vIO}pLo*{VLn_Mv<Op!<4&k1R1+a_+Y2s=iwQ<ut^D;{^6LT`FQXvDL z@SLclkW{HqoLB~$qXPAZq2(j2dt6eKn3>0wT9KGrkds=hkeHVO?hz*!<rfz#lqKe5 zra*eZ-~toU@XZkIp_g^=$j@2?3J|HR1t1C>E|59{cRm8uuET4D6dtAE3LZQ~m?4!l z7aAg^Ng3Nv(+9r381g_Tbm#(E2p;a>7VcJ1!o)LM0t#wS3wIO9Dbmmc3mybT@049d zb)g2H;T>amp^iGX0}loDVuhmA;?kTF1-MFZ;ek9xgH#VdeTgK3>d6ZPJPB>;f<|Y~ zfR$n$oq<ZBH`j?Cop}m28h@$=jm|tGpboi#Ptw@qb5I<@#~!nw{t@lL7@dL3U>ku% z=u-l9N8xeys9`3SSc6AI4|v2Ht{Q6$OM%TsZf_yVY54RPv}^_?Oi-WWB!SQZsk@mW zm30iP4o{*?!`=c=(8w#zEvN*KBUHjiA<;@&SQ)FMP+X9cSyGakq5vCz1Q){kC8@<F z5IKx=jH_t@P1Lxg;Q<TI#&XOA+CGqI2c>W+uu`lk94du7g>xf?1=u5??lZC&s;i8_ zRuN9|1_ab0r}(U2pq>_Jnt_PXc2j1Q@kpruu%vjn4AvA6m$d_>cnabk9y~pinv@}x z1#%T>c}1K+I1`;$3?VH^?0Ew!m!Af1ZKNcYBo?QZfKv-{@eOO=LX$a+3lAZ1vd$*p zV5EXO9jp{<vW7}gEm=2!ts<PPYYC_$J6SiOCTpnwuq11^4Ax`~mz4x1YwXbmkB=Ta ziZZ0KKxUDa7*hy@4$+A*0^)L{ZjFKlXhZ;BSc5p3`FV*&l?vsVB^l7s1BJw5h3wQy zc)K{WNC7m{Pz(|;OUx-vg$!mRr&%oBBxv%*A_EUOa7x}mz_&;#c?(!6)|3pD!kv;? zKz;@1wG7c72nW?2XTgROPP?ZFs3SY=o<~i)P#<AQyKot-X%{YQ14_FfUy~KX@WAPz z%$y9VERc&x%K;k+gfY=MAO_mOR?sNU2CqBS%gs+o&518g&4DcB)pG-li7DhKWu+#U z!1D#T-v@7~U~~&{O^(95@6fal=feXNoZ?woh;EWFf|X)T@lYw;DPDybFT-*Kaf(s> zAq93E;T$7QKpojRMur8Y5d#eoEI9@)gEhy%Wwk&#hRC>w2SpDlx-z7)K(>*V8~%}$ z8}N4wu4G7M9R@e}@y8ozG6K}IC1NrnYdsO>ZAI#|6Fnt?bwCKW|FUG67#P5<;4C>% zQ<x*I6gnS~r2vx2XJKH-Qe<Lap!OsLcm+7T12<?UAyAz~<|IT!7$XA%s!1AoN%6_~ zMWE@1;*!LYV$f=>A{~XiB*^-4aBopZ0UjRliACv<O#z68NG3=#SRs}<4A{s9SP_g< zsRLQU4cQ714{6!J*2!X@@W@MoD}%PR<I56@bilhX;`8%T;}K2-ukQ!>$<_vzXz(ht z(*do}jE4-x6eDR$Pc4Co+UY2yq~@fSq#{W}1mZnh+)VATOvIpuGpuapLlcG<J>c4; z6;uckH8=<x`UOqIG{SWaqlp-_a00Is&VWzEM7S|BFpMT$Y9w87%0!-w;(&!KSSCZX z2O)r(T4xYw3&7GSXd-9|SS`|26c?hnf!TvBglf|=ux{M79A2AvQ3^AdWoV+P_HCiW zK7yqs%n5`QqPpr3C9c9X!Uk>L;*v&n!39cOzzr+@LA$h|)}n}^+I5c-yO0LSp*A6j zpxX0>5_^Qe8xc_IF<9(klR~xm7bP|mw@D<6gOx!41Zlb$BadR~??XcqiwvsY#3-?s z6JFcH0uxCD)gBc}?BPagO2BMF5ks}hh!VS8z!e&WEfts}sbd(b?;I%cof1-838{&M zBx(n9J26U8UFJuL%VZ(VG$cns1R(7;n4<`&LUm6J$?n13&w<rkpecMrJ1%Q7s7Z%5 zg<r#hJcSS8L8pnRH-+C0DwCj7_;nyhfLo&o_u!kt_knGA0wwj*l2q`>IB3OsY6_yN z(<s(d0PUFuZ6yXZ(iQTH6hJL@T`&jMU@wMG)Kk|`ctmE^ure@YNM%)lD6k(#-gG=D znh^aa*mQh3G(<3`<29%@AKy<P2Z6=}LG$rFAh$?EQy-=C@eZ(dt%62o9%OvbuQWF) zwFt73q$o8p1+?-c5wcki-k&U1NKVWH?KgrXN#v1oM8g<bEg}Tq2@Tw@TSdUXNaNzm zz)G=>5<;bLj}kIx=0T>QGDLg8Y*bh52OEvM6%7h?(A4}M0_u>*_(+<XKM0CW$Q&(b z;{?<{SjPC^GFZp>;Ieuo#veR5dPvooA(aKPm9(+G#RS3;6yBgo`vqWicqZ+=5Pc<V zX%{4$SzMBtoS35k-uDJNp8}ecGZM>EL3>b>QWa8=7XBkP0U>v~ps5&H2p(kMbo>MC zQrsyBDII?SE5(|Qp;Bb0V_r7=ZCX&cg3>V;0d>gfIO_^4@f(2n*-*x+q5i>=j^Q#` z(=lAu43UmWic5Ip^pI;phEx{F6{Mx>kKm}qoeDtVPgJ^2hZnLq#uX7;Lg8~?nW>PS zp^iB@$n6XGxFme02W~dBErDEcBbp;PEQYlU2`hxh0XT!W5=e4L8N?B+6l(^7O5x5R zBA}f=plS;_SYU3(E{W>SD6r-DqY#vZ!U?D&I}632W+AALv1B2*4Av|Jm(?LDJ-`E_ zhctZ|QduAyNy{#F1j3N$>~a+QAUh(HfKo*<C|Q6PE9vE>fVPD}mUFq~7b&DBCTA#M zEnpN96_WEy3vyC1G#7);A1E%#FG@{;EGs}>fs3;G3$#49IJE?{02h3ML4IB;*exIp zpoL*jdCXQ6uAwJrZG=l29*5wJH;F(XBW1ikuu`lU4=RN_<H>=77!*h#8tgrkpoV2Z zLdsCxz8vfz!kKXi0d-_&#+9g<5gH0uG9z3DYi5MYb`7G`1`q0<!Q`q8sVq=vkyem& z6NrDJ3z8h9kyu3OQ4Br?3R1iJWEPizk~t{z79^Hr6ocB3AP!`f48CAFGqo68;o>e@ zF!MXgm@hPwqlm$y44kv?6Yw=s&b|#+iZy3LrEuqLeo&4Ec^MiEu&j(Bj_SHEU@Hmd z-H!y+k)3zHq2^tvKe6OpxD3|33zzk#X4J#Os)wq^W=Lg$+)G;Sxj`TXh|WEhu-sD# zUe}+QmkwTQ6p&bw0m~(z6EmP|`-|aur4lnMAWcd@GXjzbJn+ETK!+WFrw1t;Xn>Vs z%?3~@+}QxMA3QTJ9hUlGTvWF>f-NAN=<NuoBRkPMv!istpuWPA=;1P06Fpp3nV86f zhd~cf$}^<0K<1N{NL2}h7_o^oLWq%p0dsCjK?7Q@g9<y$<_kC-!|QJFvJ7auP=`P% zuaKxvQj}SclM1diP})S;T990@)#b1jWKt%$ZL0v@M*wXp>VW%q;ASL-vee=ds47r< z6GI^v*y~Uu5o$3rAht<5Ximf?1y2ItELlk)vXHW5DOf4iED4puoh4=Q#u+T95>SQe z@;<P02xs7K0_w=lz!Ok2Ff<IXWMH@q)(i}ny)&#+Ej;pihPOX6q_RLUN?MUwL?De4 zTV(dcz|I`Oat;|x3iAxIl6-|!&_en|=zLdVPI`V(W=TeFu|h#=5$M3##Jptqfh&k{ zS0d-{j}h=4QW<jytQ2b*1C_#E#$Y?KgTM(Lx53sCE<<h*P)Bwdau>A>f%*|k83LEV zT86-79Vw4wL`J28VHr|cAh(g08}<_jZK88S2)Oz$MlAEJgzPtgY(N0F6kOm3QYhpm z78HOgWQZmOSoL0#58H;42RfD-v;M`hjs#l$Vv&J|F1Yp;<{-L3%nw$IHD^GjaOVsz z_z-I)tg1y8LUoe{*doGtLY06zvh#!%2TH>j>N_lX0xp9!Przl3$cSTjko1tFJ3}f9 zWIJi8o`*nq5}oRu;VX|26Kx^+C5br-dGM*?l*}~n(dH$vv<*Fm61tcOGm#@LUV<iW zBoTOMffIEC0goUR_c36lSQ9l=3U{IgPYy%f0%oJSq7-a2;bdGyKpol1xEwVZL;Zs# z8N+3;CS$m)0m*R)50D<x^=3$Afovu%2}cqLOQMr-7&IM%*2gPofL5m~Kt&YNGILVF zB{z6)OleLITn5&zfgi1!R0-}>!6(r$Q#Hy$IcQo!5rYRIIAyOT;6J34y%MYxYs!X7 z;ZE6t7#@a|+E`>zU3ds=E#XwZpMW~DQ~eRtR1ftlmQ)Xy!J6vfvc}{@GdxUs$kLu6 zl?Ae&w6wpBK!_5Z_M^dFe$c7dMaA*pCI{i+ZFmwdRxbvxL<8OL06&u}wWt`fVHPt3 z2x3?UPimMl@L&aJhF=6cjFcI^ft6y-3{WZDnE_+$8k$Wp#8F+x&xyZf1&R*P<S-8b zb!2A*K~9ub4Ah@kG6Gx%Yes;}njw#ABjOu;mIr9<A+8vQ2TP9$b`uDt7^y6f8%WCx zpTQB1zZfEFb%jw;YH>+?ep-A<Mk;8T1Nit*uhQZY&|)^|(H+pSv4YZ~g8X7Ed%*?J z&449wObK{kfm66UfwX~?!kxiNGjN=e3zwB6;B>hCJ%m(dNM(UcB`sPUz^)`VT5vD; z1!W%4#?84zETREz+ypIwBxd7gC)hlED>R8by|$hRkAl`_)_^i8-nE&C18g-Q(}v&_ z2&$A|T<GZ;@GJ=}WV2Q<GBCgnTI%7}(t@f-I*%4Af_xq=OejMtYYND1#IEXvoku$X zO;d(wj}rVmTBzZm2|~~`D3Xg2=}r-L%q(uj8B$s3*5FSnpu>N9iHH$UQUS#Xb&?9o zVX@Fk14Rt(X>exWON0YKNoE%)go#Wt*hZw#YdQiWRF?=ii`@DN&l$4k2v`Zq{h%m4 zO@um7l!8Kx_$bAnltA0IVT-$o-?oiy698^|AltS<YbmjB+veb+&9?0@@LG0gvx}OW zwmrZzNuUM-=@*Eh+$KimmhB#K6raJDIbv=&=0R2ntEN!}QFE;v7dfZCO2KvYTpc!d zm!Sq7Xx|NDt8ot}JkTMbinvM%T}BjHEoxvJa^Y`N!}bAz_R8uKsTQ<n2oW7wI-r;V zxgC)`vqZU&_Y6UJRNphC0CF#M&yYCC5#X8^;U0W@hO~o9^FT}0QxPj|5$g=oGs{x* z6wrcSw1*@;@My>i1UXGA%O6C6T}bSXpJAKMK^GKd`9Q;imiv8DKq-WX^EVSgZjpwj z9IX3&5N%3cc)9>JyTDl!d5Jd(d9#v$>yY{?rC_DF`YI4vME1jVnqv{z6#RV&Q0)&2 z4q|HmIIwwCX!|b!8-(9spoZLB65`3u&dv^U{sydij@H#p&d*EBOpgaGE!0ua2T}SZ z`T7u1eb6vvv3{&37nhwKblWKIV^@2uwaB&rdc6faO=ax@`3rPk0z(f6mRpz*@}fOf zn6^G@m<;g&0e>NNS}ZY5Au@2LWJqNlBph8?`$1lk%GyI%X~vQa>8x0gav5*d45_Rg zL}&pGL~I4CLu_B_VFkqqM%dm3namzLCF=keqH~u869w&91I0GHxb9&FaWkZ{9)XR= zn<inNyiZsuvL``T8r>#B3&NAQvvv;~<TA7=J&ao5t1z#i2IfYP?-?_g30+kK>Kv>i z!cCy!0h9}gFCK8a9n>iSbq-)P0r8y!Y_&aZd%&Fo@P<L`odZp7nsp9JiV~Acz;oGy zsB?gD6!y-+uxel<dluA4#dlYRd};+kxdyb_$V@GYhZL_^`#uN_;HE%^Xb%svDTp!` zJYwO%O-|p(2Ci#(M-BX#r5>a?4rt&*LKo2o!lgnKn_hV74vvIiZsPky{zR$;^@$MC zl;sDCF;H?tluB7<+{k?*2#@N0A}5f0p?xAtkR!l74upHq`$R}LAt(l=mZcUIrz*e> zLjVmrf=<!^HIu+)7$govdx%g85Am#GkSnCJ3PBXuF+_HMvMfM4WWareJP?zJT5NuX zR2DX0BVqx)X-ueY=)qMtK%ED=riI+Q#xv7X^B~9F734r>O2DC<nV*-J2)a_9npH+L zCF4m1+=;ywfkZRD;&uW7bHQf><|Gyu>nLQGgKioIU*CYZw<xtpM*%!S2AXlT^~=vo zh4R7IL?H<vuO@>ErxhjUrk3XyW!tL5X5!Q_%XfJKE`((Wg6iPe0bBqrf+lBJg9mpb z6E-{pI&N<sTvyMFVKV|oFn~dYDAJ%<KIkwFI;IJ53}c*92XX*d26jpvSO7JWw}MJy zJYx^As0EF@Z3L@DI;D;qDZ#@mLJ>o?>o8b9;ber>E-pkv2WAzr5UNcVDY1zUHMhcS zLl;K1@jfLs@`G(elm{>?F~m{rd`pR)q98jliX52DIAl@n|4oVgBG}3{nDy8tQElhs zA-;VCNx8V|S6C_swT}=5Sk?wmSq9452%T9oQQAik9@X1NOF$tDZ6D1BIRe}yLAVFK zeS~~fR4w?NDd?)p<iuj|uJzo~k{r+mB*bvBLSk`tYKj6(9eBhEyaY~<D;#u-cyfMj zQf40Hlq$qnB4|B-ML|w}QK~{B^oWUq{Nm!wq|BVmlFU@-VG<dlJp=3tcv8vI<N=># zr4FLNp$Mt*ahF1%{yykpsgYEBft#-?&>*7aP`3?%ObZHp&=9I6$Su;)1dny78~2ze z<n}bAE`vF&HU_U+)`73_L@Zhc*Da~Vu-pJ$5ehDikVnnI2UvkCQRu8cLI9rNz)h!c z0^UR#GY<wU#kztGDuq6;k964-{u8Zoz((Uw>7bQrnFQ1!uLJ-OP!W3-cpfMg5hq$f z{ey5nqYgNTGemnBb<l<&S_!xblu$r!hnk6H^&4CU>*_bStO{tw4Z)NEkKP{Q)MrR# zfovdc5mf*Yeg=)U`hwLVhLkZ9ybV&j46-i;p5_rnIb`|}v-}4~3394OY0*IwK8hGT zaKLGQGuU;wQyo&;Uk_G_HSI&CaHoC9#U@baKsc!GH~}^sw>w}d=qLeo$f-Z8k%#zm zuuh?-eyESIq*S;J)|3jDRRg6|BH|Ao3_Zl^$dJkc*+N=sT|*$;K;cVNYDHR>3_dad zo>oB}X3*#kXh|8kga$8N2Jf{l&&W*9fE<$#I+q6#D&P~{l2Snv<Dm8pMq)<pGe8p$ zvJgD%z)6{bmp~H}QnrC^RQm%C4XjBSDup{KGZ&W>fgK8(<^i!$T_H-q6`+6y6@@|s z)RCQ##d%Q{97FwsB_YFQuqI@<tUD+nQzLTW;nYJlBQvD3K<*?hEBpjUKK`PHsH|WK z>Xd<(=Ht!@ASIxNN^*W)ab`+t5%~UA=+e*(#12|ckUFqYu%v|~0uMNFGWR8raF9xD zPq0#~$s8(0b}~-_8;w5@LCHLxfI701c?xPWhx!LgGKb4xP3CY}aOsPj%t0}NCFbCf z0V%JE(2*gP1+s;-MCwK$+(5+$QHj(F<PXq2?5P#t1~t6A1`lAs3T%)f49|j-B68b; z3#1HU7FaGrv<F!T9yH)|I*Wi0kkaWiuu`n)6e@)$o#Jm*uLm1VIGwH`ppNWxx)C*< zLj8j!ox)|Xrc<~qIGqv^cksx7q*EevWJqO!Y#}Y3P9_j;M5ogrP})Ks;X-Q)BepJs z(kyH^1FQ+YMH_lwHtb$Na2iEUzXD+8unCdGBKR(7ObK}Kfz$GH0=`5_%a6fIv8H9H z6z;SPX&6HrIuH)3JN|$TC!Csp5>Q8WYW|0snxQ_zlA7T%SW`1x)*RHhASY_!;nG94 z5gAfhAa{_K-X9PMS)$XsK72$K(RgspEXhcP93c-%so>+}L1)W@I2ehU6K()lDnqmf zNdz7|;N)w<M|8{B0IU>i@`Xy_PQC<M#-3oK2`64R0_w<4yxx2$En}#Euq0l%4A#U8 zmzBXAU+^gC!LKeuDhp&HX~|HRKp3GWL&ShM`cySY-IWZfEH5J3#GqwbppiaemT8%R z&7;C9&VC|13L1j!0mUueAxQYj$esZ3yf3`e0iFA(s|&vD9CVZza`gfkEze0+fQ+w$ z8}DFwP;V76IuFi(8mK$HM76XqtU>Jg62y>0jHvZsk<5_FS_1MRv18(}eP9dFG-ZhP zIKcOTk?UJT%C-kBR|XZ~<QkPBm4)s^{D~E`rf@D1X#$j3L1}_Ii4|qP7_@#y5rYQ_ zxV$|}gabi|_7o^~h)lFBpdbb(v<&nTShNQsiRy?)1ROzbF$%Q|+T;P<eQ=L}O`t*s z6mPeQPzQ=PP_PgmZ}`&-Xe}sgssy$)0>2K>dLL}Fc(`?e*ZY768?mnimEfn%TF@+% zg$~eBWTcX+n3{`yVyL#*2a7|=UG1YyFa(lw;<L+(64Q$@7vd-o(hSLMqCJEaqUJn3 zesUIMYQc5&yd0iOaj-_b3~03*Vv!~%Ji;KMk64_EE+g85B!U_Nj{F4LyGR$s*%GN1 zwAcU<MOikW*aEp7Q7mMs@*^+Cgz%`o*uVhfUg%;2b&w;#O#*~_@GUm5a8Jzx4MC<B zqpb(PY~g@L@gZvtKrIzWT!{9NZvZ@kvJyd#mdc6;QDC<dJH<buas_yfKL#2`w4CEF z0i`EAOUgi%H>j;r2y%-wG@W6c<3}{Gz2TV{Z4d`O^P{6so>`Kike`>TkXWLSlbTpu zqL7hT20C^RT+e`}i9jb&VmZbGDc3_=Vn`zJWCm`BbrSF!v<(BA5o!f1#oF(MN};#9 z5EJ8&ks7FDARJV8%mW)vxaT{YfI8$R8%b093qX+vnf?Mb*q}bb(({GOVD0(BWx-=E z<U}SsTp+_X<QS15l?8GKY5nCU0wD`Z<)Ee~D3ue_^vnaBM}_|FO|U`ulLjdJT?54+ zk=gGaW<?7*Ito7a59&*R`?1hfVaSa}usG~ybS|!<)RfZX)RcIFW<nK0PM89pWDUu{ zAoIYr3Cv7|a?pykq*Tb!J<uf$d5O81dFfmQMfu68#o*JtL3$9!6C!4miy@T}?iEEn z0a{v^uGP{~(9i<;TZ{BifY=Bx-?Bb~B7;443R;(647<G$-J(50n2ti~^kb9FkjnZ& zIDNqS`d`6H(TlJiCIt=9{z`}}%7(=rHb{WL9EjG7gmv_!vUmjWx2H-oG-2BoA=YGw z_84p89B06p+K__7h@4oG%7R#rXp><Z?*eTN%>~7vj5lc4<VSF@;m?7fnYMReb%=F5 zJu^UO`QXYNSdtr^GYCAn4swU0Wg<EJp$bc@Qqa)EQZ6B-B7CYcq_RwiNY~35!7EY? zz)EptE{H67nacxgGT!tD%Ulp^GDLfd5t$1b4s<AX5p{PFJaf{|cF-_6IHZWq-0T@r zSvp`Xcmp>Bk-2djoy7#&v&9Tu=ndKrjZ}iX0u?4i>?8w?fjtM8BKREyYKVa9d*T}+ zxE&5^*nq~sU|k8~$H1_4E^*rf83Wr48tIZ_VqoaufNl7jlBK}Jz>qabfHq@b;V7F4 zsX5@~3GRr1rryXnEeXX{*hjZ|t_`D6o)Yje5#X8iDH)()5qx{}G*CiE0};-MMjrT# zN6aBRUKE|Mx&TcSUQU7gfGY*a8H`&B*EP(e2{G~}i8CG`;fxrGBcxKa2agKW*x5s% ze1>iH0c|qdL8MyHNF5^nvbKYw5|ktng;&;m0pyW72#@L`b*n+{g^tuM0yzRa+J$fr z`bZtp9*9FB8JWe1J=2-RkiJq$K4>T!Jc6f?r~se9tb`1vfbXr#POVf(N(FVLK>a7s zE^F95Uf|xC9+zjD0%R?DwNiF!rJ<4)gpM~<vI46xtkqEf$rwTTMzuN$nI(`uTTyCB zX;B^*M28+oJ3<?}E=Zyg?YTw|uRLm)19HuyhPhVNP<Ff_hzIu)MAQf_hRs_LHHJ`+ z!Ic{7C_rS8bt4*?S$9BjE0uK%M1iB2$N|l)g&-Y}&FI%bOd^^Ppvft0X$g_G(R)1L ziWxjugne@AE3S$e>O9c!Jh_|EBQo<cOXA_@i&C?8_Cl0a1v!Z&pu1`GK%1^1d*9>1 z)i$C!DMmTIP!H8v*sEtqB;u>a>`;x-NY05bsVqp<fgijb54u06SO>E39qb~g0BA@Z zvvT7@H4m17(1lS8P;NnTsyBAHuAb||rWJx7e4sKPX_vPiY4HONe&kKs>`?t+i44&m zI3G1a<OK1Ll_1w>Qed@6TeSH=Nf?n*U{;|EquQtgHU)Q=0<Vqyh<pT2oG>df#8K_E zqQp)XQ2K{i1mU2X?m@EYxXVA7??J5sM6%D41myrw3PI@1ViH7d6+n1YZx!%@{040m zuz(x^t}+nrL2nfxZx#*&Zx$}eS4b{O1>Mn=r~n$!1P!pl*29A05PV~oLP273c4B%e z^u&Ki`vHFSU}|1+Ms8wJHe@40hG-8BOom5kRtCtMQdwyr3hY}**@`>Gf;z3BO})do zYy!{kB|}4`GzqEgx6duJsJKL-1f>NC9x_kPNKMXG$V@}M%|szDH8llX=jbZr7wLo6 zK*RGi7d$-_gGb~OQ&JGOA7`d#lptOI1U3~q<qN;}O;5oyO(737O_x~=-GdIjO{KIL zbW{o`-GSYfl&X-Jl9HMNPf<hN8;Imv4vHnItWpp~O7hJr0qKzOX3mhx!Wz@zo{*@_ zPOU7@FG^8JP;!E0Or-?SUG=5KsVO?(sd`YopbL&dc-$%=#VwX7(8v(&;YYIo(P+h# z%8<%x2Dul>hZzh#{3V$sIjQkQso-0pl2fNlo&rD1o)^Wvu=1S$QNtX#Hy$<2MY59{ z$$y|Ji9S$Kh=1xis|VyJh|@}wGDLf<DG3*NoKj{CmY_n^BIxaJXjukJ44^?tq{Ofd z7MhS<!5a8x6uANtK?e+#q!vM^z(jkHh2Wk84|}X59JU#tdBxSB@Rf#EKUk;raZj{C z+>BIo*+QF03L3C0Mj#iEgNKV@LZCJ>c!Cd9Zl$Iuz`F<F6okB81Kz@dPOZcFs9rru zz^h2J{71n`(MR#Y0S1-AJ<HDr^8mz8VAp1d_Mi)+y6qm=Li{xyXq((^0_w<~`F{Y4 zU&PEm)R$Oh{^2rMXa3=`im*_?9gXl1=pjOJhEx{FY|>`)4-p70P@V&g>hA}uLrmFW zB-ki;X$tA9p(os8l#~lsj9m0WQ!z%<3Y<QWQ!_@38k(vx#NpuwPM6|B1o{(@$OWxo z5e6&8n!2G<xKlSjEM6h08(zX-h@-kr2W%zb^sPxi9di24`YcHNwtYPzlsz3#e_~1B za2c%W8!l@K3kT978y+e>WEzkml?8GGY572aK&TR(55ht13q-#Yk`40H6rhO#H5cUP z<%5)xl?l*$vd}z$E({M&a27}*;7z0gJ^`#0YZib?;m!i!k{sb_a0Z4I@JPa_ZmR@a zNH_zO5l}~V2B=2O08n3I$pCN}tQi0<3%?x<mL!OZXLz6>ZWkj-e}+^R$OWV&|5yTH zN_6rM0S!nfXapn{6{n^+Lf0vQc}1X2K9E|#5xQ0?Gq0eu1T3te0cxOw$Ja|?XK%rK zPO$Mk#2$ahNCz~<LpbnY1E=$i1pI@P&ewvKVom2zDctE?66`Z<{)8oYJStFKd<^Ui z!m0l-0d-`j{u8LFAL@53sUI$bHTA<~4M>h<c!2bft~Wy}3uH5CseToKutZJu_&X+` zt$%yKjU@bW2wIT<>M0PjB4GvCJbWD)A}?>_5ys#00eKYEh2a!tV93DRg+VNZ%7XVc zKs(ovE`$bMa|T+0r~o~yCO<D9Uw<2Xpbf0o4K4+s>loqYLk2?77B}%~X~7jBHUo0P z#gID7NP-zsS&AS(B6ZF2Mi*>Bpe&lE4AGt>@S;50`WulW66p}gQd#KU#Gm9ri*Tff zNLipH4@z0oN%AP01))^{iWof5z%_vv5e@_;eRog{6Pfg-kYYVQ4KaJ130-54Wm_RW zEvOETC*WXm3-}&<PJq^jpcU=W1ndWu6`+`pAVM7|=0O2Ve9YrdaiHZ_upuAfmtSF< z8^CQ3c$OF3al$^!J5`uA%dbMglWvfO&D5OUb%%Gq$XI-Z<R)_GcCC=i&;Yd#kxvMR zUdODX06&2N?}6XkNM^xWSSVtsS!p#WPZL$t!=|=C2YD}t>*~2Oyk>MEi3_@_46$5E zm!wz$hdc6YE~NbpEr}r<)M(g8prn8WK4@jqF0fjpd0eE6B%p}}?0^iEizHw&sP>)# zn}xf6$7?V4lbE5t#4d?y`z?}f$6Y4DT$+_3m4!&2Svx@~6>a8qkudViD}+b&nb)-- zzd>hSmw+4r&SVJp;G22%h0VNz@-p=10ELo_#Jp_qd|D#XTCF?<@Iowj_ZP7W1vV!O zX&PpT_E6bWcvNQn0(nm=>j#Je`;yoh*Wp@rfTvr(LW6^r+bMZPi0ia)iGVvTkjy~o zyo(*EEL6}a0FPflh9>fpvQm>vP)9DnstOW|i$Sw4mEiea&@3(_IU)~LL&`&Fu>s-0 z(-ydWszJb)(3Tl!P+A476zfO@R0{V<g)kN$!3t8Wa;UDf1zU}~C<QeNL6a|51k@on zUcoErh&@r+9u&!t@p(`q73yCsqZ4o$tfLcfSq0eW1kRX*2S5*DwHZ=bAd^WOeNZG2 zR-iBiO})s0)!~_XK{`hkS`k9_D1uhAU>kM@EoX)IlZ(}h!7CoX<Iso#7P{C4GeJ{O zAD4kWf;$l*CG{e(QmjcGDup|#^TSs1K>ZF&<{0Ae7zSs=Zm^ZOT?dK|P!jJTpbj~S zX9bB6KmXE;n#7_0#FE6}GFX#1T-FRW|AHFdj~Zs;k8yagAO@gOO(2wFq_RM6AT2ZG z69`pM=p!-%?v@fr9cU;{nh5hiy;D%-K}_$I9c&&IhT<-Q4Z@$yK;seTK&e3*+N8o- zt09Ks&O;jZxQ2*8D~mueSX_{roSBxH464>jb5rw5ior)pgQVcafe!c}0i^ZtpxIb( zD-2OK=(*(=DWp~;<`(3n>VS=KOi4`2&o3^~0oR1y;f_J>!H{+CNvR6eN_p|A#U+`! zi6!|(#Y$E-;FaWdItofjiN&c1DY#56IL9Kd)+>f>2iDS}n<pWTKs||!3*ip1bcSdT z8zk(Jh8tlb8B$rV2uC(-gz*_zX@+P|7S3@+s>dUeqciCku2NYb&yrF;NN2HuvV)8_ z2k7Qk5EHz>A8EZz5@~5Nf%HU~0FH6cS}+pRKT;@@sxw0>i$xT5ReDyhAmX0f9uu-X zk|Ejy-r#|pH$nR};JNcr!yMH7i6mQ#<R>H2gA%l2jaQUl>mIgZ4HN`~%4pC|bZ8pk zLP;a|s|wIS=6!I^!(SqUstQnvOvo9#GNiHyR~0D3)zH2HiWs~K2DePi2?rH;0h$RY zsSsIZa3O}U!RZ>ykTtRrR0sJGa1gmopdMr^p{+qsYu|%_eV|Go6qBw*r~}0$D4>Xs zN&G1YG$ak{4HG{kjcw2bw>^*{X;51d`;c^#C~bzMqd-G6uwwy0yO60lF6~35ap`!F z!^j<+R>bfjs6VKKSV;+6dk_IzUD_jnt_6~RM6pPq=9(Fx>`BxR5^T5+G#WhxuB+$f za2$<>MjvPt6KRJLKUy?^!<eK&=hXzt0$3P>2A!9K)glc#BhMJK$4&tq2n}x`BdR`d z;k*;97kBM}X%Fsv4pR#n=0(JN)-q5M00j_2XI8%`@-Q!iNA+ReSs=ebhj}N0905+f z2>0L{=8bj9EG|e)&PYuG_X!}aWCc*($xO`2tb&~XTau3$dqCN30bZXE*_u<#1?r$c z^_L|UWhN%&q=M5!hG-9sZGmUtteYV3OJ!XLQQ%M@b{KeAXIk)B@D*s7&~hyJ4Jakz z-`@ak0=)#eMH-qyvG$rtSc6aZv0!#F{B2@rlL#~x%nVkFb$|>ig?oSu>v%7;8H!a7 zo(;eyo($M(+$A2UH3k|elO&)Hxs^!LSg@QJ%0gwRf3Xad!DX-xl)+^QkMF_*fVi<> zkjbQUZ>6#r2!s_VOhLn6f5G_x&scB_yq-ckFB1879ngdtY)Mv0PNpu#*l$U`LQ!cR z=oTAL*$X!kT<RjvZjew<h7#~0QrZp#E5(|&p;EZhHss7mXkvzN;E@MTy;)$x38&t4 z0_u=cZ<e7L@x#11sHqp~BP^*GE`v4o!eu=`hsIMScHsd<MKd#`vOq2+EjRcP2z%7r zfM^wEC{Fc{X8?oPDH+PKQ!=1UB9I2qsPHdv_Q4<dpbjFa8X=~G_zY|w6-I?O5aDCc zsPI});=x<LAx4Gmp=~DUg$(cmLct@p;2~Y)av-N96I=`+wn9R3J7oi)M?vl-w!H)! z3O$IX2{cp%9ux(obke<nNY<91K~C}v$&kuIcNTKG!%S|V@rZpy#40Gcfnt?9$qi)` z30exGh`|E`To}G1!hxV<_Zk!<L?$~(p$oPfy_gp5fk>h{f>|7YtB2f@7HS!^VgZdK z{U^e^pm_U3ggQ{Xfr5qjc*CDwK;uZTmNfC>NZ5L1xb1<ABY`R_?Bht5;<On@iUD=| z;z6YisECPAttg=CeF}aQk0hZujoh&$Uo5^vOqzjjq%77^0EGbZ-E2AvuuHmipo^j6 zLFQnNI|+e=Q3DZNLT8BfV3R`4WB%f(vk17WK-d@rXza-wuB+$v@EUtUi*V533exD4 zCE3vijuGT>Dgkt(z$!9CdoU$XV=Re4sR)ZF(D+pxSS`}{73L*;;PP0s2U7yo)&j6e zgi{ArTM?JSLv2F{pxRPLi7hBMa6>IZ5ks}Bhh)2Om!GgO2aV4m@<vuHD4T$i5JG2` zn>h0L9E1mLjAqR0%$VI{O+leGC1Y*|TgJSsK#<>{<8vM$M}S*e2>0L{p9_I4!%R#` zL0e{-T9I0iT9lcZmz)Y(Dga)V3F-&J*44l=k3wn%OkFWpA!M~shG-9M42MT-)*6s! zrLtCmD6pT29gQ32#Ta-zZaFkmXm%71@-|k`sO=Cv3TGg^fk?u;L9ry2wG%{<l7zE% zfOJ5P!oeETgY77s;~@7U`4Dvh1H~ubTmY4U_(z6e>j*$D8B8bNfZRjMz=$*~?m=hm zBgH+<PQLj-IBdbA?r%X+EDf!9C>?drL2ofZ1~N1A^Ad|H!N(_nm+n>;q=JvWfmcSL zk_cX>LaQdoBDa!^MDUe3si6JkNvVj*-P9CtYYcfr6SG+cZDL?b!1FS=E6pu|zZVPb zhJwcK*}+P&j&DMx&^ykE3v!T783Vf=bZ<CfwI15sqypF?+^sp#uo!5hUY3A5<Q_Ol zBlSuWC?oYy-(eZ+gv($Z>x9dCQ#0z}@z+CDV?ir`K;A|w@(}Gp>_=KjWw8*50Z>eV z#{U_?>hO&JN5IC%zz2wfGY#lcRt-cN0cRoK!~z__yx%(P-i(+)YOh{EJhY=R|9 z9J25*2j`hcuy1guPoz8(3Ra3W&p@T9lxOn57U6aiC?-I8CYyjd<UEsQDnb1GKmjQ6 zAa*)HeTOB_z-6%J8Mv$w8F3AdrXF&1XGmp%Y$v5^lgbJr5T2lLCn^VoqmQs))F0pg z0d;6VDxtT1l;ne!DP$HYWag!$R={SyJY3vN6;cvQ5{pwyz$qI!17P;0VO0glT;wqx zv|@P~0k0w@`$b@-Sd%?eib~0TH`pS=$$kd`bz~>|y{O3^>N_mS9xj75*~4Yc$c$w~ z(kIu145=)TD@aTJ^9h72(aGNpHk_!Sk(pPLnw|=|VaBgCHz~CUv?B;{5m-)QQff{y zEUm+uUCH33IT)!OF_r^O<p=?Ikbw*J&jfsel)B%8m10fZP$}H0n;q&qutPy-NW=K3 zuHlfx-z)=#E2ubUC7_P%bj>A+(gcF~3ro6&%V15{a9IPAV-g-9J*4Z+kjettOj=rg z1CCbwWeK7v$KN;t&D#DWq8kF5jsbN;h?$Og1vZZgv$lQ&5)CMEfu_&AL1_SQ{|GT_ zJ5-O=Ne1~5sm+Tw`e8G@@o1Wc>9IQK-o&5eK{JpsM5HWGk_V+M>LhuTSz>4rk0J&y zM!=<f4-pOoCH+oN3=^63@g7hET84{W8;IgP(+1VS3kf)w+yWl26QFe+XzqC~0sBE^ z1t{ic5upwg^PqqwKIZYKIMCcPY&?nhxo2!M4!G@s%sqoTLfGe?uS?Qq?l~kA(h`r) z%%kS+1vmIm6FH~qz@0?yT(cOGuaLU-;Kq<f24b@U7eXCa4m4bZB!rqp-h%QfQAIdx zA`CQ1{1UFK=koBGBu0uM(99mv<S@nv9O5=F3@OnbWFgehW{|?)GKGaPXsY!OfkFYM z7Bn%5h>xt_pr`>kACWDyo=753OhR~6pO}0PaxZjZ@)^hx;8cZh559>>=OFOaSj7q< zMWv~rD;g5>Dnb1gP=_6n)D^&+h(RaVqukz=SyG&ulLi^A$`I|Lidpbz%Tka6UtlT+ zqQE{PcG_{6W(@Fjqck)$Fqi-1YhfcFw-0S?APd369NgG2CXiJ?btkB?VE}T9G&GrE zorgfQv-yzHlCG`-xO7Aw-9gT{Fb5*EppEEw5O5&09RM2qcL6KS5beR*&4b7yvMa9f zVn?tkc-z<+pjHAXM2Kl6=n`QbsFeVVY~ou9*s?!v|AAWx;3)>|t%Q0h+O!hF!PR*| zPAd4eOlme1D7yO;#Z}nb3d879O*G$vDlUAN#;K#I*MN;*r542}=jWwmrk56hN3t+i z(($5b1n2w=(H=BW)DmbKsAM6k$cI(Mpr+9zxUOLyONg@sC2&OpB$yFxB?1aXdvGg2 zjhdANiY{1$fZ9<@iBt<}M<F6FYY8YGLCFzOaAoyKA-AI-JgT>&W`NuaZAbNk905*( z2=}13qmT~7uyF=maa9azK*5qbq|H>UP@Y<ps!&jrUzVAYngZSpkXWLSlbTpu0zUjD zu_zr9S)x6Z83K=|tdk(OOJyAgQD83+*>KA01L=U=>v;sk1Rwi>zuE)c>xnI_5OIfI zsS>Jm9^tBVpw6S@UeD0t)ROqroK(<C1!`716rK8t<R%=I&hR<h5XG;cJdUr*Q9)9T zG^MVi0J<Gm2a>-q>l<z)U9g;mA_mVW;MVR>XhMgzv2Z7MSkVTmYrevD4Wm<QQ34Je zIf$A@9MKv_34d@1BQL=wsU^=NO?<DM1FRNl*)<C&8G!B25bc3*P@`4~tb=fbg6b*^ z(^<h?UYPMv9;*2oB%6=BRD>liP+f>fTv_bW3=H6F=@B}!-lNoo5FXX*!rw@B;U{=v zN4N)1U1%AcS^~+Opvg`|x=~03T@IP5kdqIY^aM@*XC^0>Ko0dpj!X(nfX7gl2Po*I zvfMxvNwwfdkar=qpfgl+DgGso8K7DaTPPu7jnrB&Q5r|rD+}U0KjeO<Mvqf&eoARh zs%~y6bY~&y<D^r1<YBEzNc`xgR-`7EmSpDV=|W7Ok_z($x>5zWQU$2eMC8q&oEcIX z%#c~l46O_qZzg=<*~3<xUs{x$IweC3G}6G>!<SrIRFs-m5)T#k>*0Zk<YeZhPVwvE zC{8UY$;?YHp3)<jk`HooPO)BEQGQ-YYF^5e9=5Q=oYK@{#1)Wyem$J&sd=FL=<|!F z`1Nq6B$lKWmn7yEO!4dChFBAylbM%2#jl48$}KI*nc~;OTaup~pOl!K4U#RM(!-jX zS5j0trAH_&Kffd|za$k&(wnh|w>UMqB(F3#z5;a5_Y`l&9zM`9nFaC5`MIDrNbwZE z9%+aOv{h0ZU!GZ#5f6@uRFE_;L>eK$Q<PeeUsMvGlUkOVGsT;!hbtp72hL^f5lpSf zEQv2JNh~QXhACq0VNFR*Dovl_*TYwySd^EUmmXhSQk0sQ3-WzQQDSl`$Wv1~dicP% z1jVQ3CFiGP=A}>R;Vdml)3wko&P<=uBZDd#pITIuUlgB_n3s~1S~R7H4dm41k|{m> z`K2WVr6owFu!2pQ(j$u|gJwilpELtQ4<E!_gd12xL)>&Nru4|5N}y@(5dit2I47|< zqbRi?Cows7N)K;NVqSV_VtQ(Pa(+tclpdzkyeU1xMXAa8MJe$qsRgNdDXDqMpqnK8 zde|TxSx|^%ro<N%rKV+8OvzyD;Y%zn$&W_}^)O|oOzGiGDa|d2hbKJ09zL)DXkA26 zUSbX?>iEGTB}IvO#h~a%2o)5kmZs##SLA|{lt5}lL4I*+JhD!3DoHMhFUu^>ECDA` z{`i#4V$fME(C+pWzaDm2hRD$B;fYTH9r~CD?t_EUDO6c}T4qja@s!vpJ$wbJ1&HfV zL2lsziGUBC1EuXAg^ZGtf?_Lu{qpj1y@JY;jQl*k{GxRIl+-f)g4BXy{V6@7ARQnR z<4cQj;!9F<K{wc^PU+z&NG;G+H84q;(!*DjmW*Z%NCaVx49uF6{QR6^z0A~-G_W-p zCAm5JQ+hZ{5|iS~GgC@3rg(Go$d(jk=ElSG7W_8Xc+g=tsZ%<8#K5k}%qvbU0u@y8 zsd=C<N}1Bp!(EhE4(EC^_6QVL=9MH?#AjrtXXJox5T4S*l9LZg;XK8;iA5#xg{Ao= zsl`(|dW6Az2sa*7SwTZkHaR1)C^5MtwFr`};xqF=<xf25KI+nfDV;rhDf!8eYiA+Z zy|afmB|kYcFD)OD|Ajy$LUCylsyczx+@#c$_~MevoYdls)YOtGojsz-Ir)j%@u|6q znK|)^DJey%#l>LvF{kF0P4O#D>fwNt1gW4ROdvBaC9^0sxg@?Mu_!&Y1RUpr#idEb zC7C7QLOebtHLZ9`?UWuN6j9Jw24G>1qSQ1vhYghaQ^4ZvAi+#9TO%t2R4t`~YDKRM zuPi+#1_lUG!@|Ij1tvtf7#Om^gc&yjLl&5r31Wc>RelDBEHE)&fPo<kOn~ky2VY^H z1v)<;LiB^qSOXKF&0OI9UEsMC2m$K<gNFpbZ6PpG+QSKQC-`#DDYa7|F7?as>Hxd1 z1MIdAu)8|IZtBPaxu*l{mJYBxI>2t|0NdXIKJlpoY;OnH&JM7B9bmgUN;Bj^R)E8S zJ1Yeg91J~dkbp<jGOW;BJ7sI9Xk^I8P5~=SgjJ!i`mu*Kvp6?DWlBeBhGy0UkWo?@ z+|atxHbcgnu{0^eD<c@}jVxnOfP;g%5ftFyV3q;}I5?PX;K4i(!~zGi7AU~M!Mqd{ z;NY+Z-6jwACir#(uvfD{2VjA{n+4ix2ljFnXl@Ja?JUsf4A|>gptfmg4=-|-1g8?- z<jfLq;RDM25D`$Z2~!72j>sYqb+J=G88bI2KL?)6!AeDnD^UdDsyR_i<b>G@)+B^t zesM`+Q3<HZ6-74-D#OsjkqOFkP-T4JGuz{HQ;Um1*UwLhouZM!(8E_;SzMBu3lqkS zUHBXaG`2+})EOBVQc4SQz-?Ov$a(e(DXGQDMVSSlLJBm!MnOAGFR>^wFFiFrH?^cF zGr3qtA-^Oe6||DJxFiv@hcGiwf#Qkbl>FpkeMrMcA71Dd>yzl}BG3`VrNyZVR(bj0 zg}zqc;V;mo?D^me#B<RmcD@nlP=VTmpj8{638?E~g*T2^KqbPI9`<m@AU{t(cTk}Z zYBPE>BAS_*pq%#+Y-H9aX~c1_&<Le}1jA1N0`E;9P7y39gTKEIi(ozi>M$ZWi(7_) zp@#)jAA_<ytP7Fl%EZ7h*rFHISBi(n@o<V>Z358-i(U-^>WGfs$t<KtuPTj;XK?g_ zyK9+g!zprI2}Bw!a-9gMBRX<*xCUe7f;!73;7wS=DRScpL>eq|V+g1tI&%HENsn9$ z8t2^f)Vz3b69=|30UXVl`FVMXMVYC?s-;y)ARb}yT}D71(eb^3jQF;sXM97BZvzd? zC1pZ}QHE87PbLtNun3<(KpoK$Zo^M{23MnbgqOsF<{7~GdN>u|YYD^}EOu8BP)Bs^ zZWkauc4^%&2A|k9EZfz`2}Bz#dXErLM|AW`g04c((99yGSFA$g%nOcQNGUy>vhG6y zaR!Uqdj!-G9k-yH8%gaFYtk=n!8a5PrwIN{AmU&V{DXixq9Yh|fdQ!ztWA#yh8-RQ zK9X`cMX{(Xal=|d1k@27#h^3rNR47;T1PQ_6VGspT73dh2FtxV1k@27wV+)@q(&{R z+s!DQ;^7p#o&;hI7Q1c))Da!Kpta4U#xAWJR!GbKhEv=o6Nocd+$IoEM|9kR*6JbR mHnm3xzVZV$dkCJT<c14_C+@jYK#NhpQ>Rn>K=Zz(NqPXAq_v*_ diff --git a/docs/build/.doctrees/references/monomulti/metrics.doctree b/docs/build/.doctrees/references/monomulti/metrics.doctree index 72c2474d0b4a09485ff680221f9132def0da52ca..9680cce30e075fe03d8ce168b4da7c822ee7238f 100644 GIT binary patch delta 101 zcmaE`gt1kKwSi^oFOG?<NgFf#8RZi*WNW8rWXQ)(=@HCLEh)-OF4j#eO3Y0y&o9cJ zlDN6nD~O3HBW&{(pIOWb83q};#XX#PiMgpIl?AEAQ);JV82A-u$k$HE(9Pg3-fS1B G#0UU}BqetM literal 21088 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 K2db@0lk@<SFx+AQ diff --git a/docs/build/.doctrees/references/monomulti/utils/multiclass.doctree b/docs/build/.doctrees/references/monomulti/utils/multiclass.doctree index adc6d0df0eb90f34152f8de3d4e1ce0e50ffaaf3..2a746a419f9354b9e1cf521387b519fcb00ab33a 100644 GIT binary patch delta 292 zcmbO%KT(Rcfn_Qi??%?+jFXo$m$O=CNM)E$UcjorYMLRHVKmu;#ZE~_vvEr86pakl z47LpR*eMx?sC<nKv&k!199V-hq%s0QS_MH`{W7F8v@&G88A_8f+$PJhYO}g#NM-m< z_G4AxHGs;oWk_XsgLJTJXGmqZgIOR|Mj%y!FjcG>QW?4#j2X-zc^QyOZV(S@25V_j zYKAPxdGfK7YuKb26F1Lbi)3QlxcL*uY-aiHjE>?S&b-9j)RM}A)Z!_%Q!={!iZkSE tr(|?wa2Idp<lV){$Upf#pFB@#hGrHoBLhQ*R2J9d_k2N&9Fv{+0|94NRxkhn delta 875 zcmbOzHCdjufn{n3|3=p1j50m^#RVCec@=tzDJgmRDXGO%dRQ~_Qc^3XOrA2?nOVKQ zhdni~q$o4BcuMRPjUKk*%)IoR)G0k4xurQJnPr)&<?#hMi6v?IMY(#p`FZ*AVDWgc zL~>4IadBo^W@=HfUTH~YPO%<X5-hBsk(-}Vnv<$IrN<4z(gjO`H6oelM7)txGT8h| zrX-eTXlCeSNM&$mFlI1kNcUWr?9b>}k7>9*9_Q+VovRPl1a_`oL8VnnesXb1QD$Dc zLVlV8SPI>-xZNrWHW11GQ!-?{87H4&tYr1ckjn6yyntDO)gwbH!*y~llbw>iX5*CF zDH<898EhHsu~RZ!Q281eo|DfqIk2W>NM)pev<iZ>CT2)yXl2NFGn6J}L{4^Q*5-)F zkjh9bO-h{{$Slk243%cfkjjVyX=1g@kjjVxvA_ylp$Y|I3RyFxG8{mG2vWjmH`#_o zrd|VoY~c<74FC6tgM}cm4h~~oNIIC3nxPmwB||xO3RDRstieh)_p;bCF&^D~mTfk3 z{rrqM#XX#PiMgpIl?AEAQ);JV%=atKkOu|aoDA-a*%=HyY$b_B>8T}CCQm^P!3<fD zD*4zc8M6~%)@7*1PRUS@1!aKZ-29X&9i<tXS?r7q42Z;(VGD}3(xlQJ-n7kKT-zC0 e^cfi#CNE%?=giUttIX1xoXZo$s4@8fPapteLq7Nb diff --git a/docs/build/.doctrees/references/multiview_platform.doctree b/docs/build/.doctrees/references/multiview_platform.doctree index a01f6304d03315e5da4bb59eb50b4867efd07587..07e4c8be2244958ef0ed0c79bf8d5f718984d2fe 100644 GIT binary patch delta 335 zcmccVb6bhEfn{od;6_$=*2$GD+>;|%XL2TH$ktBL$dHen{EJVOF>$g2e+*czgFlEZ zV{wL5#=^-5C3Ph;=4CKuFlR_-Xl2NFOOz%dwABbIGbT=6AQ%PK#wHZOma!*8Dq|N! z+jb;v3dq_%OQ<m>PL`641#4@TG-AuRnjw{O8Kg}&;{uX4O(bnodiZnmQ%ZAEb(8b+ zN>cMmil-!QZjm{{#3aJF*-L&db8^PJjMo{N8EF|!8TA>nGiGFL$=H~2Hse&rvy8{3 zJ)C)oxv3?U1*yeTK)!zGmyzk0(d3sg+b?5_U&dL#jAwqO8S)^h*BRUyX&KrX^%*%C ZGcsB;HfGGrIF+$I<8j7?&1R~~i~#y~ee3`L literal 9817 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 W!r(m2l>(}lz@DGt2a2H5Bs~E8<4a2b diff --git a/docs/build/.doctrees/references/multiview_platform.mono_multi_view_classifiers.doctree b/docs/build/.doctrees/references/multiview_platform.mono_multi_view_classifiers.doctree index d8b143455051a3d65c72bde7805864378a113940..9758ff6e826c9a91f41dc672db1bc1313cbcd86f 100644 GIT binary patch delta 527 zcmaDjS8$aPTLa5fc}a$iY>!wczhr&Jlb9h}J4GWyK6Xlv)AR&>7X9g#MT{bhiPQax z7;C4WDPmm7ma#ZPDr4dF#$rZY$&7g!j2X-s(ivJAGTt(!NpS7cWBFM;855^3=Vxh{ zt|7o;%a*YxLn>nzSetIfb|h`8NZO|K@aN{Il;))BCg<msq~?_rPf6U~Da7)Xi7Dgv z_GVF**~}3cS2HeUWM-sgG-cFh%+8pRu_a?;#@UQhr9GT^iMgpIl?AEAQ$U`$>X(t} zm(k>xG21U=i(kfBztRkOkoctx?u@hy?Tq@2oQxS6tr;6L=4G79*uH(Q0t*l0<QiVd z?bj7qI2jouCmRYVbA&T8Fl0z&g-kXSke_DEA~@YfnMH{yh;e#?GK;84Fe3wlW+T`- z)(o}`_Sh*|5!*YJS;QF`OOdq~LA47p<ugwIufigQ-vk#`7JWv>3CJe&l4gRqI*TMD S<7#9RR^Tu}WcpG+78?Mcgr)lc literal 282337 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 diff --git a/docs/build/.doctrees/references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.difficulty_fusion.doctree b/docs/build/.doctrees/references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.difficulty_fusion.doctree index c221f831b8cd6d848b04e360bc5fe2039187cb58..6021bc616ab186abc6a5c4ff2bc1ba9be6ba5252 100644 GIT binary patch delta 148 zcmewuuuh4!fn}<);6_#}j>(nG+>^aIN@Wu>WNW8rWXQ)(>EX}KPbtkw)lJUND@n~O zDV~zJxmMnlnJHt}=Hp7UnSC>+WK7I(%&^Od$_URW&M3&}$>=QY;mk|SO)aS`NG+ZM xGH8llhNE9blwU@%Uq+8#X@)#VaAF2`hFyksMtFuxMnOhwMrTIZW<PahMgY*lH#-0T literal 10353 zcmZo*nVP1-00upLDf!8zC7C(JdU^RNsl`)zI6wlqsd*(+CQs39oKibQqldF7vAj6H zv?w`sN)N-79**RU%$$^>)VwLNQ!*HO*o#w>OEUBG;OaA2GuSfNW2b0jF!ZpNWR~Ql zB1!ec<(B4@WR_*7md6+5B$lM*7v<{Z=I7<dgT>>)63ID<#l@LvnW;s^dSGD;(Ui=z zw9MqvoRZ4;w9?|t{5*w%#N_P6^wcRJn==@CSVB@OKwhA^eXUc#ft10TA=JZGkXQr? zxeS2}#th~jHfW&v^|0h*=A};YD@{u5;YutiDauSLElDi~2QG7FO7WD~DLw39Pp5*} zta*vK5Ee&DX#s+hl$e}dl$r)oQ`*B`l9&#Xnv%hnA(g=mvN1!tXOn(Ler~FMQer_# zW^qZXzDs^`DJV9J_1!Z|%JYk|_2B`ko12)Nk(rmOo0FPYl$V*8uA85mS*)LupIodD zak+j`YFcVhYF=_`F+v+vqfM`<xMWI(j5kwhQU(_!xxtc820x77!xdbbl$)PYnv+@# ziC<9^Aw(1yWJqP`K|;bWLk1My8M3ugG&1C4r(`I`PRUS?osyv%J0(Lsc1mf6COF`< zA<8qfGGx42OOq1e8hW^j5w<46w4;e48ODi-1(;!Yyp#)%2I_`qVqRiSWmRf?QEG8% zPD!x>B-mh~MrT_Q5#yO5mEjHvX<{SB1)>}rmK-P%gYbnetO(Hs6(PFdFx3SW7P{cv z1Svuw!Wg26B19Kbgy=%UP8S+>y3nvg#67}dx<pzca#}@CUL1IHOg=a$Kz^pKOA&zv zD|exR1TJ<(d+2U2B8eqsNM$5I(hRXlEEb|1oWulBk{H4t)J<ZD@Pj2fX!s!#8NzBh zMIGK`CV-jDG>}SWeqV60tdN|aSCX1n0xzC1#1ZjSogtM`2?=;&<Eady92`%QrAa;f z#RVCec@=tzDJjra3u|UxN@@jCI|I@Lffwem;v1Hude~F*N{TYUm8?b&TXAMydQR$; z9!MjE>e)s?0}{)cQ+i?{EJT?^)kvO_!RA*oB@tA&b!13oK*KG9pOJxq;&uUMiJ}iG zbRj{8(QZR(FCZ1g`iS%oEkE=MDy={*j*_CxymW>9GzCm+sL?#sbAdM)-N5ZdP@{vf zG%2GK*2o|w!DLMBDMB|;K?Cehh0Ht}c|mhZPdeQK2U{|N<kpP#9+s5U;$)1xrjgO! z!v~UyFV0NQODriZLTUHsq6e5pQDR<7er|kmNn%N=tzUj#s*VCU2*I^>Jg8|~3>5~Y zGjOI%EiTE-O)SYTg2^ChNY2ko%S?wzXo4F&AQ$n2U6h!YmtT^I)=TMO1M5}*tIZIF za}h-qTZUA|R!G?c@jRk+h*6+$R^;Yb6&ECeI!PP_MXAN9MP;erR_5jmsf_gyQ$}-Q z9=4q5SDKX3-opuwDp0&5rL7(T^mGG@E=&p3h&urZazYW8aX8}$sJuLeh^369;J!mf zdyf#<Nd<{TiMgpIsYN-N#h^YVtjOqzreP8WdlQs`A$bb!2IR02#IPT%D?_vgiwtV$ z+(T~epeJTnnB2*b%D7RQlyMjCV^MIHLC>KuTXD#u+Wdw*n<a1+0x-*QD?qjX7kT!J zBl#S;sDW9JQy#_kEDlBn1`-^Qin9d+i=%58=@v=PGI+BxV;Q`e*Tb5Y3F>xt_OL-3 zBU5_9Xj8FF>0t$j+LR2o9*(rqoE&iG&Nv0iZ)-E8GFCydC?db{fb$!)F^QDYA(b;| zK#3ES5z>ni3o?+Td-|Lbi&KlO6s*A3StU@#JBcYNnV>48ST7~BEVZaOv!pT}GF0ZC zlb@8B;{p?fv?!e6gH{RPG@+3p+QSZY*A#dnKnP_>W$7_8FhGI;Qc7jC_wW>?=A~rj zrN>tkrKTZ!v3)T44K(bRlUb5ll$e9;#=3zGcW|(0i1rM$GvJY(!ImMFWsfDtYxJ;y z<F|*YpmItNM?ocIykbf!+6YyaEhvRZWm#e|16gSgdr@jyNo7GQJjeBL7Nw@8<mV=4 z=1s}+W@KRK;RX%nRTSi8CTEsR>FnVwsI-D+|11@dJV!w#B#BMQI0e>Sl30|US~4Ze z5hTk7HZFNePa?<|nvMxh0sE#ru_$j!XK99JmN_U4q(_@hSes7XjL>qVGzqEP#~ka- z(gBBJRsx8U0qfEPF&Q(MDd+|1B1*>G)WqV_qErn{1r78Tn?i1CNk)E(=9HdFsuU2I zok(;WkxFc+yHI<^Sunq6NJC5Bm9Qobtg2ZD6X@|IY&xXx2W}P>$ETzwXM(0Aiggr{ z^K+9j^S~Vs9fe9*ujDw~XhDqdgOy=eWKfHh8ffgne1N-a0&6K8%aF>dfa{7-932!O z9I;a%J%Q`+7*hqeFbKsoI2JXqx0{g?2v}K$Xb)1m8Ce!J!utu-0kCMklOdJW4OWX} zKQ~fJgxQKBhHBSbuztcx3aed=l`tC^D-jJJa9y~XWOH#BYB2v^LrK<IU7!>Wn)*TL z%qnJNV1T!Tp*-l!O_mZP14Cz)GN_KDRVz44738K<S!y6ll!!=l(DrdwDM%k<26Kiq z!dqDyj0_C0<OnIOaP|>EwWm7B3@NNeAwmef1K7g`Z8|_2DD3%3S&-HR8>A=)O%taU zCxgYZZi2kUo|g|9f(2FC87si8S}8~|3oT-C+lFu^T8{v?maJ<aOF^xttQ#N}w4af6 zi;;mL>m`V|4T@J#KtkP;Q3fk15vFR;dN{U+AJW9qg?4F*r=-Gy8YYDpI)``AK(0og z?vX^U-;pM@sXILZn?#3a79^XfI#3OtuE+2+GdSr;gU9-r@b#48)9V>ppa5g+;Y%(p z0!_ciLng1M`1SC>L?F}eJsicUB_)}8>BUoe1VPIj!0R5;iokOhDN}mb!V+^zQ;QKj z8a}@s&h*s0)FRN3;}pLh&XmNG)Z&uF+=3~7J=_p$;&U?dvZwg<a6!4HMLARadU#9n zljA|t^&r{eDLt&9>4wTFJwj>u`6YSzC8<b~-i$rGpfwbErMdAHp!E<_ycv7=ic5+z z3*wXWbHTIsQ~Y|QAtI?csbG=#^30NqcyMi$S`4xgB8?E>DM~HKFDi-8Ni9pwnc~gV z!<CVk1Lv~#2&PtKmVifJON(KOSbJDgQj<#4r}*{ofg0eTj%aa7QEFl?$oC~hiOH!T zPfh9Q;mgb`C@qOk%}dS)byuhKaF&*&>00O(XQof-kwKM=Pc16SFN)7d%uC5hEt=B9 z26Ae0$&?=c{L&IsQ&_>KOzDwDlR+~gOOA<wp@$D*F2W70p&@R%7E^j;P$keb_XvRe zP@I!koKciokOLmE<;_XVOD|1KPmNE`Pf4B9!<3pgrAN3ZH95a1B|aq;)G1HRO9sss z`Sq|thJQdIl9>`;P?VaMSpgd1;7cqm$&W_}^)O|oOzGiGDa|d2hbKJ09zL)@W?o5Z zQC?yWDC+pZA|*wMdBvdUM+g-Zr<SJV$5-Tnl9WJdML~XXYCN(|a4JbIi7(46&Me6< zn&Q{PAD@z0oS2jY@(5@=e2QNWJ1j$FX!Y>Kr+~)LAx%<Hs)>hqCO$0_w74R6N)KN_ zYC$}rj|a*{Ad#fR;?#Ih+U`-vC@Co@w$j%xFE7_Cs4U6I&(q5<O4m<GEz>VZEhyHX z(jyAe0WuM!Bfcax7c@<u3hL;l7U-%Pn50bU;VVi@MzaPag0MygW=%<ceonDoW@<?q z*qV%z+#LNWJ)9+pN%7^GDJ2<Gyg7PgONugc<KcM=?)-SjfP80<7}zzLdBv$kpdp?3 z)I3larA+DQ;Vw!nhjYCddjyIr^GXsc;xjVSGjcN1GfJlPu;k?DrBCVMDb7tSDv2*F z%?GXB>F5y#^C8^$oc!cOXb8$CXCxLSCYPiZL9$hRW*(^giO)?e$}TOK(g|L31zr~g z&F-B&yeav~nR#jXPyuho9wAVPP+XdXs!kv^Hz_qGzPO|^C$%^uH5Js67fsH|Pt1-_ z%}vbAiBC*PDM~FaPA#6&(ZigYR|Z;h)WZQO2~t7nLm)FRC9^0sxg;Lay$7u&>Jcn1 zO)4(QEGY$tO$um*QSFo-Arw*2&>d*S63DbPI0rN=09wFQJEeymBnV+^Wc>hD!Cyg5 z5629<jHrz8jN*)ftPdd3w;<7F8Oy-!FfdWt!wJ$0YE6J_favziaP-TF^2;dp18eik zSk?hn+)<h#Upqx33v4)dhFyksMtFuxMnOhw7TDyntT!MF7<$+s9z>Mp&}C`x))H7D zyrzTC46|ky=jNwO=>WA#5||hm5c8-RGc#noL6e5dGS-9L0`5+g_V6MnJdh81c#|_B z(@mfx4iNzr4ls3)Kt~pVsEeHfN`ARX`8n{k3|1;qT!|tGSIvoHA}7pNuqGiC^NULo zi%LKhizvETP#K0Ej!aO>f-2)HNGvK&jn7RjE>27bPm}iu!AmF<VQ#oEIDv7cfC^1; Omv@REs4g!}(gOgKyquo^ diff --git a/docs/build/.doctrees/references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.disagree_fusion.doctree b/docs/build/.doctrees/references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.disagree_fusion.doctree index 049661fe523ee2ae588c921ce781d7973c6440b8..84744b4c7b18e42ec62487e4f3e07c052a263a25 100644 GIT binary patch delta 148 zcmcZ~(4)lKz%rFla3iY>$K(Y}+>>=VN@Wu>WNW8rWXQ)(>EX}KPbtkw)lJUND@n~O zDV~zJIbYt9nJHt}=B-MznSC>+WK7I(%&^Od$_URW&M3&}$>=QY;mk|SO)aS`NG+ZM xGH8llhNE9blwU@%Uq+8#X@)#VaAF2`hFyksMtFuxMnOhwMrTIZW*c>7MgWKdHkkkb literal 10335 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 F9su!Pk9q(A diff --git a/docs/build/.doctrees/references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.doctree b/docs/build/.doctrees/references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.doctree index b6d317b6fd1d379cfd2a7ef9d1a72221e4401e4e..8901521b40604d31c4e8546c0ad9eaa8594158ff 100644 GIT binary patch delta 119 zcmcbpwpWq0fo19@fsL%p9FsXY8e|hQWNW8rWXQ)(>EX}KPbtkw)lJUND@n~ODV~zJ z`7W0dGvl63d~=x1re#ddD9tF!=*#FX?cvNz%uOw+EJ!V$0@6LrFQe2iqtCB2LmtGP UoWY$@l%bu`ol&t_Pe_>&07SJcqyPW_ delta 344 zcmdn1cu|eDfn}<j@J3c<j>!c~Jd=evN;xwedss8`Qc^1>D>7?I^suMql@w*B7Eg(t zqS3=voSB!NlRBlxcd{Upi?D)5ZhlH>PO9dV9&ZRs7bGq*C4<ecWJ+RbhGs@*hEzsH z24e<uhIG&4$vYVxCkL|%G3rm8D9xxp*?~z^N<Th6GcU6wK3=b&(kdlCxwxb#GcR2s zKTQE-l=PGg8E?kYq|^-A+9?_t@*qbbTQzwihcIL6=A|4;%#7zZpWvRu?6fjtSw?9_ zQO3fId8Iv^d5O8HC6xuK#Zy4~SNdg?`eiKiE6tDxahGLqXB1^<XUxl}$e5eK(8E@e zSd^YxGFg#X+H`JWhGOiL4CUA<8LF{UGSp+I^sr_Y=jNwO=_t+6%o1c|U_f{+V;01j Kn`iMWGXemjXLgeS diff --git a/docs/build/.doctrees/references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.double_fault_fusion.doctree b/docs/build/.doctrees/references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.double_fault_fusion.doctree index 1edbd96790a970b2101fc37cd98f9e8dc154ecd4..14253a6eb7f253f52a1dbd9233325c6027a4eed4 100644 GIT binary patch delta 148 zcmeARx}e0`z%tcUa3gC3$K-lu?#Y=PrLu_`vb9q*GUQ{Y^zi5Ar<CTT>L%ysm89mC z6i-RqET-Ve%#^WfbBgk8X5Wk{851)cGwd>=GQu;8GYT?#GCE6pIP(&7Q%fofQj4d6 x44UGX;pmqU<(E<Hm(k-_njsGooS4C#VV9wu5uV|aQIHXv(V0=U`L((-BLJO}H#q<R literal 10510 zcmZo*naZrm00upLDf!8zC7C(JdU^RNsl`)zI6wlqsd*(+CQs39oKibQqldF7vAj6H zv?w`sN)N-79**RU%$$^>)VwLNQ!*HO*o#w>OEUBG;OaA2GuSfNW2b0jF!ZpNWR~Ql zB1!cm<d)`?WR_*7md6+5B$lM*7v<{Z=I7<dgT>>)63ID<#l@LvnW;s^dSGD;(Ukns zq@2|Fw8YY!lK8aJ;>`R!g@VN7?8NlcDImKu7<yPjQY%27po5LAQ@{b0!I~k|!&Z=3 z1PZ+jfegkB<{ma^!1?vC<YeZhPVp;EO6=iEEGa3<Oe!r&Ed~cLb7o5Ml-Maf>|l?l zg4wKjiMbFKM@ne{f|Hb(oL!Wf22xYn!(Nh@4w9OZ!IvSG!40x8L%L^+enx(7s(w;p zK}lwDNvgg}esU=&MvL{`GfT?zi?a3MfvTIEn4FQBm#UkSnpl*VnU}7cpPN~%pOT+k ztPgRyeo<;#YEf!la%wR`8<nF@uc)|WN`{O#Q)yBL7bMZa5>W;}jNii*T$+@dpHiBW zS`3L}Q4}FWBp75!W#~b|!Y@Mx6yh1OwNo@Q<YT8~D8^37P>!9Fp&C0SLp^p%X@({^ z=(HiqGqf^fyje?=65$$pxQY?BCc?C%i6R-siHHZ7VR*ch5040HhiGD6VoqgMYJ5>@ zacNFTu>vIEVBto0dl8Z2nIV<o4hd~yBgX}z92}k;D3OEkhc2uz(FGMIy5Mlt1r-~* z;5-E>Od!G-qL9Kw7hIU=LJAXIX!z+u!%r6)euxx+u$oR$mx!EZ(UTbm-kehm4i1pN zsqI!s(4m&Y(4Ybr!=gO{VmBhWC1pruBtX&+vB@nKq8yyu1W=M2!Y|ZLZjf+9O@h#H zL?k(c^>mCzyva@gGude%mDv2g;Nn^#IX|x?HLnC-Y-5Nc;;TACDx(q-0mQ~v8ALfa zz9dVNdiaYAGBWcj^b%82pluq~%)FG;3ZzyDq=5o2<YC1+EQj^5r{<LuWrC|;jUKk* z%)IoR)G0lQw8};b8j!fwoYE5yVIfK?Do6E{3^u=#DT$zZuOmY$0~&S_B8&_S6t@~M zgGV1!7~^Q!A+;uuifDaEPCzM9^a?7iKrNDzqRhN>h5R%HOpB<~gw%5ZH!Iyhtx7j= zqY~6AVJuC`=!CUGNJ%*vQ+rA=OjOVS`&J<{k7nM`oYIp;&mh8<q9B<!qrHbECAByi zBkO5owD<6VWa5i6)AJHbN{diB33(X7rcsobmy(|wUtE${l4|RhpO>nm01ilS%^nYG z1Q$bvL1_+L*QFMhWacK8<QKtYkTfLc=cQ$)LnJi8%_5MK_`yy}%*)F!Nkr?@^ss?- zD}dEzh{CyuqKhp<Dq}08EQ0tR(Tc<<U^pvsbF7LB5<y)mj)J1p;?$zDRB&r_bB0vL zdWb2bxe}ZQvF1v@(xi;`9!_w4fg&F%h4lzxq#jtLVUa<NzY~y<Clr4fhck|ViqK<- z$jUeh?rLPT_XvR<RghSen44OXT9lJn4C;o$3Xq;?8m45hKS2o@lDFV)KnWcT`@y<0 zM0*4=Wl%%s9&&34Jx#;H<W7cE#*NaXjJt3ji-L0wdParWibEFF<~QWoEP<;mfLV@P z0jmAK$g^J@$>+!=4$OL-@+h`vaWFD4kl=t+oDCaT99_dmw@7-H!CRae%iyiQ9@ex> zP%pi+hYiv~nbH$Mt2$;%4=Xs_rev`7aHN&y<bX4H#wk#aTbm)3u?mt&5jl<roa3Oa zOr*39sjNZcP@JHwkY1EnkbxxK)8~{}oLX$9U<J0$iaJA6i76?Wpt_@2FD0`qwWv6= zq%s~d!seV`T9A|K0uzO_Fr49IT?yb+p^+il!wz-V6nHW~2xUlR=`k`eK!N~LPGz+B z@D!xxrDW!%$5#}krXhQ=eK7eAG+LOGS&~|mn1k%bI;tcjvcnx5>=~jx1MLiWWM{Bt zNM+e$$@3aLEa3R<VJfJc(!)_u2^rj&l8QE@m1PS`AyQeESj<3H+QVLynpRR-kP6Rn zJ)A|UX({=+iJ5s*vb-4?7<#xt<9`(eIho0sB~v<kI14JRpanpd3P_%#pc0bArevG~ z>n=$wN>44BlH~}JWdj?RJf$ZYWDJdm5vPFtQ=V9qH>I;QLo>@96bjO#tti~BC~rn+ zaZ;LuQ~_X)k!I<DgEA`tM9F}4X@Z!H8O#)Pj*tq-+|<P4(xOxiO$7~%#+yQJYDq?Z zisqD_8mbf&*m{^4mSVaMwdb4#^M8gkv=CkiYwy5nopmsQo>(G`*8tbA@!*;W(o{-G zP0j>OZ0INyrzYp;rC^t<g!NvI!>toUR6Njdg%xpFWKc_;8fdJ-e1*FU18Yhg%aF>d zfa{7-8y!f<%+JH@vS3S3ps9(B>+oo^AU6eoV^;&I!7Yi?B(Ty9(H=Z1P!mKyfhq)+ z4DMt|Wp#tqBDq5fcfy4^1fLRAm&^s5PB=kgbqQl7%tFRWM5_v1(XJ-hT--$^EHtj6 zWQwdVQ2qeLHbQ4sF(U&5yrB){LFbXOlo%NpI<u5P6)5c**;%R}SDnfN<=7r&B1$Om z@Wk2-sjO0vM#c>03~7YVvNRYO7+^^mQUc=ag@Ed2b&wg@jY0$xdKa^Y4cat;G=SLi zld>SK7dA*00h+x|ElviDW!(e?AA4RtWb7BzAjnt&ZZ%6m%5G@6joUVaGtqh+xV2<m z16c}con_qsv7r5!tXqr>3|TKh#BEU2f;uu#w`7#TiduxJ8nhn;?%{_t;&h>%rs657 zu)u~%Ax7=toj{Pg(Py3{k(&-kbM4fgA%V^A!}AQ1T~r<;hp!~S@HjI#0ZD_W8kq3) z$l>$;8Csw~W9;EeE-eDB3y6ozs!#Fj;em-j)&=x%6sMMyWagz8Pw5c^t-$~<%1A2$ zPo1Pp>0t{?%qdMRM)aHb{CYUkQ}a@bKqH(}{CYT35=&BxOA>Pnrug-6L#&C<$;`{1 z;@86k<(3xZO!4dCEy+)g2dyIj$rexPVFk^0R8Hv;O3TkL$;&TEMUwPp?BNA1@W?C8 zjjsSL)|leW*uz&`Qj}Q`pPZiyURE&0uSXgplA4nW7Kty<EXjbhS5k{XHbSJqjT^84 zPf=<?eo;w$PHI_d&J=H^9<GeU95|P?M=-S_vjjZYTUrcL#M;A}lA2VSKE<zx57fv9 zb$5$Pic%AELB203N=!}#d1^{W4_{_pL1{^RYF=_as8c+phqJUKP1i!VI5T}pj|{40 zd}>iqeo=fzVqQv4YSEM)Hjq=3OQ!Vj=a-hCn!*Y;WlE1Mnhcr|S#nGa3_W}ha}jP} z4GnSAwV2W)gDQchxkmuxhvJ;X;*6ryf*kMwF>g*{UV3R_dTM-feoE?;9;Vd1DLukP zsmb|8De)<(pss&vUNUI9%CCnFGRy=Dk<66%f}+&4%nHyr3SVMrNq#&+sD~*tWl9fk zN@;FEJUrp~_3(iOGV@AOi}Dh4KvBmJ7AYx8%qs>(KSHRWIJGn-KfWRtl%xbwD+=<9 zQ{$0!f>TLyNqkvmab`(=(G<TP{`i#4;zZEG9k?smVHqMrtA{5(1vF%z2N`<z>*0-u zD2q?a1g-gqozlZskXjIr=t+Wd5lAE{u{bpzl(u^mGD=DcimmkZ%gf943Mxx7^7Hia zi_-N|Qp@xUQVWXpr}T(|bbw3*>4+~$%>}I-NCkDLQwwxe4NOv|^zap>C8Jpb5<yra z1GA<iKR>5fFEh0y4Qx$DNp6n*lpfBK#H9H0%#@OhDc&4CvL!{Cx$*G41$TZtWc<Ig zM-1$m%)H{%BGAB5d}<yjj8dj_^l%p?mczN;j6DLym3bwJ74aFF=@~hh=@}(cdRTJu z^U|mE@D%4J7L~*omga*N6?OCogZU6{d`^CHA~XbLlQR;F5|c|(iy+x5J~Izg{>0}d z7G;+fOz8wK2m>$Lf@b&59^RDv<jlOZe5imoV~-H1L?|vzLRBY_nwylG5?@?WnUh+a zk(vq`E)Y%5$xqCVPt8rt%!yA-NhwM#E>10;($T}5npXx|4AsK{DG5?R=|dnhFD0`m zHMt}nGKc_L<kTZrT$)r|l37v;4x1Fv(x=)fJwhm=paDYAQYw&XX>bl`@By^4s&+~b zJ4g`1*2ww+s))aW8X%4tb{SC_;Tgpl1z8_JqHjT>%QBXM8)RUjw1*R<7u2Qz*#Ob) zm*MD_5#^Ur><8B7m$9q^thl2zL%w#3Mi$s`?hLyO?TqjYmyCjp*etNgWm#`P7BKX% zK|F{k&7o`N;B6+bLU>&VpO|LNEY8hOnbHAjn<OwXFd(LIGiGMUc!Q=Ymu0L6y9L}U zEA8P$PIw?6^zbHULT0x>NgN^qDjZ<yAc2l70#O$`1(f`9lk#)mX&J0kq_`4A5U!dN z#Y9e+tzb<;DCQTJBo>u`Di%?6v!F5zJsg>!lm%7BSCCj#oEo2-T3no%4xXj&5rUUc ZD8k%uVQ>QDN&yv`(DDUTmzO5#0RY_j*t7ru diff --git a/docs/build/.doctrees/references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.entropy_fusion.doctree b/docs/build/.doctrees/references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.entropy_fusion.doctree index b4e62e1dfc09a1f7bb89bb42fb96869ae613f167..b3229c5fcc4d1dd74afd9f4b26b86ba3bf25d2a6 100644 GIT binary patch delta 148 zcmaFj|67r@fo19kfsL%Z9Fq%}xhKnUl*%S%$ktBL$dHen(!-ydpHiBWs+*jjSCX1n zQamMb^EWwrW~Pi?o2`^)Gy7&t$(Weom|>R@l@Xp%oKcX`lhIk)!<m<un_5y?kXk$i xWY8493`f6=D8Gzizl<Kg(hPZ!;KU5>47&{NjPMMXjDn2VjLwX*%?H(#838PtI5_|S literal 10212 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 LAE+)bP0|AZ!9{0A diff --git a/docs/build/.doctrees/references/multiview_platform.mono_multi_view_classifiers.utils.doctree b/docs/build/.doctrees/references/multiview_platform.mono_multi_view_classifiers.utils.doctree index 8048e1555c670affd6d7fba09621d62ca554e1e7..6b69ead025607f3464debfdfe49c003c39dce217 100644 GIT binary patch delta 962 zcmdn^od2#RTLa6~OEL@_*?5^JJ1}uiSBhgYn|wfCbaEE+Jf6f1+1e=@8S=4HdOW8u zyvb}jIa^+oF>!LEd<#hNWI=^lY#B)zQW*);KgKZX%4Ec5FlI1kNM~qe$ao8sCL!r} z2J4@`Hky&2F>(6dXvR8_3DezU80WENRA)$KRDz9=%qT-LLITN%=?S$=o{WjpSJg5# zfVFzZF`G?W$s{nnrj99%En`ZCRK_Hz8U09RC?K0LF`L<9`os-P5+H*%FtvjWVhozD zc#O$=dgn%_9JY+L8B!Um!N$mBtUxkG1Id^vJwXuPOpaxi<4(*_jGdC9919W!8^j*R zYymQOx_2D&8n%pM8B!TXz$Qv&97HnF0LjGZ6SJ8EAa1gsmc%SD-7p7gMrjW70=A6% z8B!T{!Dh&0+(I(L0?CXiJ#G+JH7#ZqLUNVc^ojY*_S5ezhMK6fgn1uZ#*YlCjBijA zKO>pwfMQ}O#KbRqm=!r-{+xa>pV@Z$f~Cx&(=RMxW}j}E!z?>}@?K_Pu%9>WWnRrG z$jHEuA(h3?IGr(`*+7~H#6=_w4<sw5&%4R&&zLy<-A(2;u>OWy%*LErAPrJk8W8>Z zsvs^xe;|_nDLwqT`6;D2sk+Jec_pcNCB;(`w|}|A%*4!;$+-Q;edc-0_0Eh83|S5! zGaNJQGNLlVGm0|`GI}yPGnQs7%Gj5&JL7uBm5dJ=Z?iZ-D%n7U5{Qro5!N8Wf{}rt zw1+b<F*miOvLLm1O6?SlEReZ=8IFD#QGOZ4ei=P}8B6^#_W5O8_sjU;2R6$uONo&o zfWa>dWQbpBhCE0c*d^Q<b{X0k;TbL&1sSm!of%~ri!%B%c4w@}xRP-&<88*RERZuY cK4*d501Ch?kQ=f<K{4I(1M`dNWuKX?0UWA7z5oCK literal 258993 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 E0C#Bd)Bpeg diff --git a/docs/build/.doctrees/references/multiview_platform.tests.doctree b/docs/build/.doctrees/references/multiview_platform.tests.doctree index 24e0d186e5904864b92d75442abacb9f3ce85058..ebb297b15a218027f6f3c99d5bd8b3ae81878394 100644 GIT binary patch delta 277 zcmX@OkF`UYt$}4~tsuijHhH$mYHWu%6EkFMr)Xrz$4;LA!h|z1Los$rhH~tb$p&l+ zlmEPMp6u|ll`UgshE&G#$roShN@gs{V9a37kj~J`knxr-O@eEmF5$;$&X_noz>hI+ z`hGt~Tegft8B!SsK)Q4@_9E$0LDDs)hd(zzr8Fm1H#tAABsH(3cuL~-O#zIjn3xzD zx7P(T&Sj3sxSeq$BR?Z2qa&j=V`0X;j9nSqGcIRbDDC0QOUz9zsVqn>o&xg2ZNH3s zzl;vQjD>y~yZkaP`;}(MgT!xSaA)LXXlJx$6lKiI=+4-lu_WU{#@_96ag55000%s5 ALjV8( literal 89921 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 K4-{CXNqPX)>USUj diff --git a/docs/build/.doctrees/references/multiview_platform.tests.test_metrics.doctree b/docs/build/.doctrees/references/multiview_platform.tests.test_metrics.doctree index 373f25bf0d64f3c6eefbc066f6c9d436889ec21e..8a9865dbc17ff58b5eea4f97ba3e5988fd1c131c 100644 GIT binary patch delta 210 zcmez2HCc+afn_QO??%>#Op~88J>p5skgc7fks%*DrN?3NIvKUeb0noX6EhTJr(`I{ zPMQ3X$$2ufl)+>ZDO<LTqztKygvk#@)J#e<G&A@zq%vYN7&DkNq%*WKWV{7SlaLJK z&&^LM%}Lcw&d)1J%_}LMlDIiT<}njf#=^}3^0S$pGO9BwG8{APGNLlVGm0|`N_#l- z5_3~aDhpDJr+{2k?U&)`ml5TcQS4WmArBI%$l%Vf%h1jU&v3~o$cWt>s-nyY0Ek3N A(*OVf literal 9592 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 diff --git a/docs/build/.doctrees/references/multiview_platform.tests.test_mono_view.doctree b/docs/build/.doctrees/references/multiview_platform.tests.test_mono_view.doctree index f5c636e7c61b039a331d6e56ea98ee250136f098..9a2c7168019180b24f702215be9aea649a5e91e3 100644 GIT binary patch delta 265 zcmZ4SjPbK9YXi&F7knF8pEFICWa6IugXt+}Vuoz(6pak|*vXB4-i(Qp&-yii<)Zzk zv1KG>NM$5UR@Bpy;meT9h|OTkV9t=v(8`eU7AQ?Z=&Vk4WlWrWFtrA((=*M8Eu%U^ zDx(sl(*UHi3`wUXlFlhT{JHrlr8%j($@zIDsd**EQxZ4VWIShL%Gk9zBYQTpZ^o32 zi5ZR=b{SC_;Tgpl1sOdVouxgTd5O8HC6xuK#Zy3zpW>I{=$8@Ymr?AO(c@Q|ArBIq cn8BT4m!X{zp5c;FkP(~FnNhZxwMdx}00&uK$^ZZW literal 29480 zcmZo*nJQb%00upLDf!8zC7C(JdU^RNsl`)zI6wlqsd*(+CQs39oKibQqldF7vAj6H zv?w`sN)N-79**RU%$$^>)VwLNQ!*HO*o#w>OEUBG;OaA2GuSfNW2b0jF!ZpNWR~Ql zB1!e==a%M_WR_*7md6+5B$lM*7v<`eq!yPHgUR^Z{Ji{lkgP&MVsdt3dg>IAQ5g(9 zEFq~CAUBb2K<gB+H!@f=gnHNt5{p27%Mi$5%wX<egL=!ahb1R7FLjDvX;NYjS7J#? zQD#zUNoq0J`^=ds#ZzLZ^sp!ABo-H^g4wKjiMbFKM@ne{f|Hb(oL!Wf22xYn!(Nh@ z4w9OZ!IvSG!40x8L%OF~KO;XkRX-`Qpd_=nBvs!fKe-eX-o^UvnI+}<McIfD(#=gw z&dAJ5)y+vwEXvEwOV`cM%`DbW$xklUhqzq7C^ap$C^auRwHTodf57S$6_-rOknv_J zP0HYc#4s$zGWcQq9<Jchq}=?J(wx*{NDPRg2qD7MAVVrc58^ey3>i=WX2{k~(a4aG zosyv#J0(Loc1nh7?34`k*eRtMn&6PohA7X_%8>D9Elo;<Yv|!BM%bDN(~c&JWEdwR zSYd{tdr1SyPwqq}JxEG)tw>FF2E}-0ns0tyepqH|xdJ3aU;#ok^AMrwnIV<o4hbG& zL(>JK92@`~rAa;f#RVCec@=tzDJjq_&6=5)l3Ib32_g9t9_+AyhQ(74dum=uQ6@Nj zYxJ-cXXd5nq)zGaq&WCAAmOJurN<q@(xueMDH&{jB~ubXDJv{PDgzo8J@+WiW0(%p z2bWS{5>ZM)xLA^kUO}Z5D4&)TW#*+T<fkcM8VF8i=*1pbFdmzMA*sbB@#(209s$Lm z?8{i1lo1ZguB1e0MsiO$l35BG;9^Z7Gml~?YEJ3#p{_TvMJ^;?WQ6vxq@)%nW29=0 zjL;rFkW74WW_n&?Nof&E^`nU7b&cHAl8pQmzr@^BTlJ#SJdl*SCOCJ4OyLKcl9-p5 zUy_Jc!S%2~0u8J-Lln+MWMsAssf=bw&V)D^QOaRtH_nRO9IN7jL{R<8QBagxoLW?t z3N9@hGo&(VA*PIgH0@WKlo8s)2@ZB}y$Nf9WU%&dgCYl>{MlotWQd}Qp$7dlNT3l4 z`izMglR#z16ht^@Oa|9t8KFHwV22bW7A5AUmZTQtWEO+kAFwRfBZ4jUKoSHj1;X_r zrBZzQL~%%>`fUwzm5H91U_M%vA(gR=7==qPyq=1v7)s!ka7IZYyn0|w%LKI{I(yh4 zrTCN{2THU3lpa=aj+&Ce*29rjnv(;L|BM-+$f?ed%BX<ECn9oqz>$-jpH~8E&LI*C zq$C72Jvl+4pI($$kbxZfYEFs8sl`?bR$%L_5=!$jOF#v?UUFh_svanjIVTpUCV=Bn zBSW-@9jbl`JPr^-8B!USAnt;svy9Llo`Tf8l+3*J_==*`G-P|_iLnsWn$F2ANi9mu zLDnmV-H~87W{CFSl7_oD15_A2Mo$bHJuF~H_AnJxPU+z&sMG}q$&^&|Cfmadsf@em zx{($2uotDKl~fj_!eg<AvnVw!B|kSYGjB@9`yOskE488^Co?&-WJ+fbXF;VEH05NR z0ND%)n<*JH!1_uOi_%j|rer+rVFR0zJf+77WB_T++$msJl_wVEP3Z)sqT3nLBcKTN zW&|b5(j=rjjHMBNAwxQgg^__FLk6t=EGQ9E(45F9PAv&70JoJjG!--`EepW85L(nL zfYYP`q^Q-L(i2Wi!}SpEMr%icLnK4G=jHHjN1_A(sPC3h4y)c^<!B8|php5!I6|WZ zNuvg=!PEp-$pelwNSrCaN-0!9l(H#H5tJ4gGng}^Aq6S!wi2v*Ys`?!l7;IUdGRzA z9@t#Si5Su@LKZ>|XajhV5gX7`Py#wjA7lVHr7VTH0FqJ=Z3eXR1{PyWa2SLrsj|cw z85rOV4k!=W+s`=GnQ@#7&5Vqb88b3Y^@w3l%iuP5b%s=y6v&(41c~J1GiW}(2;=v7 zd*tV5LklT|wEQB4;?$B7P`|IV09t^hWmbTCA__^VY57H|3Pq)Ppy3<^P|Kqj)b%RK zNQJ1>gXI^hnh8$@Ss@^wNo56rD6j_!B?M62392t7K{~+oMV3E^$(X^6uT22bb{a=W zBBC6<_1eP*Z8Sg{CG7c0S&()GH&T%T8ly}tP6kV4<ufuc^swjULxwoOHGLVVI?IsC zIGZ7z1#vZ~V?l0TIlCk^vB)LAJdZB*TNG96Hx#GisN&uX^C}K448Ua<o?1>Cxnw}m zi&@cSDT6Wsq|C)vy>)<;5tZ3sg(awZYk}+P8HsU(sNr}~q5)PuqKU#wI8bLNYZ^T4 z2o-Oz5C_$Bh!D@33NiqkR>-O6uo;9X^s?$u>NyCHHuan&&eROA>KZ{l1t(4<PvfrY z!qBU_l+@(>yyB9g(qwRr2d~H!U{zjXT1jdVyv9q+$-!6a(aLyu^2pi+@~>3Z4iE+Q zHlY*(s>whVU;{`8qypRuViH*aVhdkHT0pM=vvNT78K_5|l?P&>)O%S4j0_A}mqA1! zBLf3QWe0H~C6%2Ls6i56oS9pYlM3p}AtfJZ^G0(@PXv|gsNxc+jo51_Nc`aInV_X| zxOwmr8&Q^UBY6;3lAwse6AHK-c?peZ;yWgwa^xvoSI?_qU%SFXdkSRSl$`Ps5nx&0 zL170fcoBId>j6r63E|PEyc9=D@Q|4pNM3-KmXAQr0~Z?zmu8@smiXpBL2Y7eh9JC4 zs7PRgbgZX9N&`tI28Jwbr2!<{;5HUitewUfS;eg$y<~!p*Fs#Oj@1<|uxvy2L{%I( zJ~Hz%OPoQKOk!S1F?Hvwf~ixMp|}vO7=zA9LgE8oF{Xj(S-dk;hyfR3W}~ufnHU(r zJtL9^SuEkYdY%r~vJ5TuK&4LxqRJ4$j22kUflUgv0`Y+dA0++>k8FV|5JaG7d4mi9 zy9i#e;+P}?uaj8~ACtf{Jw?<sQ&t=k0|UMuKCI=uDnlwOib%DfK_G0NLliq%CQQhK zKoB1F3wySVQ(1l>M`vhefChZbK*0<t*AXF(R<3JgAVz$sJB^f81GgTMOfv4k<B_<D zqepP{xMqXE$%DwrqO49(&>$_$0o6$w8SfyYGWe&8vRbj|C4ROjYYGzs1KNa9#=ooz zPyqc0M_CpFr~%v!s&N=WEG7`a3~LXArg=t8K?Rz<0jC{eCVUoyf)LVwsRS{>{TH%p z=6uAkGpM6LgK88q9*XF8#L>VGq<IX~T009CL>baOA4WvIhY}Rv3J1?9nLK8lh@>Ch z?}E2bh#e_A08N;%h9lwX5;Rh_2d-<x#ucKuf;{;HE%T9uP@5;`;2{U8cL;|!sCj}2 z@2s;R1Hh>T-aH{;J_wsZNKJulC`|zfkLpbUaGjEIsz(-Yl7@ExcY-_&X(%B4j@D2> zY9~;276%%gR5cTx9<n}xd?uCk0Yrg4NGM5wdXS)ju^k{Ckc#CkhzYJ(aHk}YHc&4Z zTSy`zAJpPNZZ)8HKd}sqaWiA-3PTEV=`4sNDH$6pLK%jpQ>B+ki%Jj0Be?6m&m*JW zLkkUXVTPybQ^HbCpcp}Z?We>{P7hrUuB&GR#~7jlM4K3b7Mf_H@L~@<%xeG-LPBL8 ztkVms1`z?Dr4KRyoN~yi2C*50C<(J9n2~$L5FX8{K?Op|8(tGigZvDxD3H95yC$U7 z%nmeuX=OY-p=5=C{413e1fsy+CX`k{6&<L4lmh91)Q|okCXw|cw(v!y3Nq@)TzvH- z#F3QLkD5qRE1=pDGa(`Ra`CjO){y2RkarG1+5kv#hHn%Wdj^1;3@_ag1rEym5i~iX zh{4kkxUgx4rUBynIH1C&9<HnB<4CEO;ek%U)Dj}xvL=Fp5L8Gba#2<lO4$nG(X4Eh z!^{#`Cz)zM4h1Jygqum8WWr_$!sCRB57bGf&3H-<NGXWhWKbyxYVKnjVa2Try}6Gv z+jJ0{b26wo+Z0lim<iqvG-zj=;4VaMzr%LGL1G18Ifs~Sf*VE6*{198Gz@VH?*1UG zNd+3oxeV7eyl0!>K@Kh15S0mHN(o5~WQiFzDb%Xv89exi4Rlb|f(Z1iryv7BMPvrN z9ZRR#rXS42&o+G_QY~n<37h8-#ZJ~al=2_Kqk8$D0h(=k0dh2Sw&?;Wm>~r`BE->} z&NQ5D5@SK_XAbmilQIit+!H(7B#%We^0*Or7Z7-<Fl>hzc#jcunQ@jL3%1!NAy5GQ z&jLjmWVT6_g@GY!B+fP=6+)063@GgoGuvbf3POk$VGtAC=^1>pO>qCwaJC6<2htP? zYOS3G3!>pZ+k`zRz!eUjAveTq6E^+u9vR8AO;ON<NqkQX)J6$|>l)s(P1wR3qq%}S zwFK?@A`785Pcq;kM@sVq5#CwpAOpau1>QU%VYUgIK}b!302bt7HVBXEO#yJ7f->8L zHJCx2CeX5!V33C)4F!bX(HaUvbGE4m<TI(PE)WIwAfY4y3KGz0S`bJFq+)3YF~JoJ z?%oAR8>st<EhG_<PpCVLWwvQ4s7Zjn@DfsxOJ_kGNt4kuczU79Xd2vflz|D9LslSu zM2a(fy-dVt8dj6xWjCS&gfemlEmBa#P|K9v&@@1N84l|5Y=`R_-lJ()107n3lT(Bu z!Y%70C<sAiF(MabZ9*wRAv~HDp@`8m?7jr$d{7y>1>{h0az(hA<k2*2h9EpnsQ5q~ zO?!=}<bafdxJ?Fm3RIk7>p|kyg?BXVCpPCGM$-_cYEbXgrXIx6S-P-O;B-Or2gP7g z7jz1oF6b0E2sgDNH5t4CG&2n(1D1duAdw0Sdn6+XoPP$gCmxHDu+zQZ2c3Wd8~une z4$M>2kdGL1Bxzy;bgmf4GohdZ_+ZvU%RDNW1TQJGI9M4NGNiKDKomGDK++lhYLhQR zDvKGe1AM-i00pN+I8zWbh=ao%A@NSy!C@%jjMnu+_^{_LeJ55>Tt(S=VW>udry0^y z!2{TC`8g@Y0Y#}P6dxKEgWXtiN61l}tU0A8ko@EUJ1_*p!zh!0h=_(HetgXq9qfLk z<^Z_`JZC|igF7!G50IO{bq)X23Ti$h+J&$q8!#dnGB}P)8eRs1=U(06!AESMgIbG- zK+kdm831ba(0zbBk`;516nUT%mP$a|F+zz{3mPED<~c;2pQX==+$)CgP?~gB<mcNd z87IL*<DMYrLWjl;K>-Y|qL9KGt;b8lq49FK^^gQI&_m-bpr9dhBSr%jy~rtsz|eR< zE4HEWVo(76&jLjmWN5sN75C8i2&hmqq_RM1hL|Dod7z+!j9ip}nBb8MvWLWTDcFF4 zQupGhJ<$imW600vIBdW@91aVf4C$U1!@5m|5(MCC1<x?JGWJFZk{R&f6q1L+cS92- z@xv&fq44c+T_Y}@5DgRL@os3}4Os}a0df)^VvzcUaH|j006~Ov)(MaS;FLnv_zg%m zq;`cHgjCsYM5*i{JStZ9;94W&R1fS7UbLnhQbL9=GTnm3!5D)#h;5lv-5LRnOsbj* zPYqdbK|YhpdJUq$F+wOofJP%g1K^uMIv~}^3lI}rjo?m4AZ?%#BWxjwh<ey43hazm z^bsR01K@0I*tT1Mi*D&Gh$BHQ_;A?HR01<KD2I+`B=>+vexL_~z?YL^bZQZU;IY)N zpTGk}&;uY)hrq$UM2a<heMuD@#Ws@Z@Nyebs-O&cLsKG(7(69`J2o<Gs7pF<rw3R+ z0aUI?z;)641Vz*q2t{Y5qZ&mxuqhb+Mub<E7AWXI<uD=-WeKw(_mv<#8Wf+99Vi%C z0cFMpl<Pr*-=ZLAf)gsj#Tex$q4P?x8G`UOp`rtI@Y@GZsR1bgahnYC6sRb})<?vx z3%w{qSxOp()j8myBIq$02!l0xs4)20gBaH(X5<?-+zq~>MHe#mIVBYq<Vc1QGv<wA z7;Ly1?`St@ycg|`5aiKreqZnnAqvoAxZyX2V2HyDtE@~=f|SZi2T|a335j&v<rOH> zK_k&Aa2?>0Xh{l2q78_wDijdI&U%obCwABwZHyV=_MVk=>(9i;gU&UHk0*Cz8G6YC za{4DV6nglf!3Iwth@=aZLZltM2~iTcgN<|r5P>`dyF&<msw|RL{5b}G{Sbz;m?4Mg zfKwq8z5`O=w+m%xff6xe4_|U=5$N`zc*xy7Q~Y{(U?Py)hk7`m2gepq=@A6o!vvZa z(n~7>pK_lvrH3snF{d=O7;!c{pI;AWdTL&3QDRAc(G<TP&Xhz@vm!CKV2WQ4H^iFw zoXouJDSka%P;O~a&J@2M-je*}c+hP{Alc$6J*=QBUn-~c2&Lucm*nM_q#{XrGxqR; zE_uo;&5f@BUD!0mo3V$lxTGkvAU-)i7kqiq6u%y6h)8NqDp(}GJhLPt9z1QAS`4xg zB8?E>DM~HKFDi-8Ni9pwnc~gV!<CVk1Lv~#2&PtKmc$pAB$kvG!xXXhu%@IYm8MVe z>)`{P?G8F>zqq6*H8B_D`;wx><W!KSrgZf1W#$!>mc*y#CFg?<<e$>RSz3~&YoS}5 znLedQ230aXwWuh+C_W=GFC{0nXi5(o$f?OCQ+oLGOG{8qVFjBqrAHP`2F-}99c&B? zJ$w*z5pG}&4RO=8n9?JIDuJfCM*!r9;+(|djH1+n9Pqs$yg7+^>7|M3sqxAADXCL> zm{Rkm^avNFCg&HW#HXZ!t{q6tO9tK9<JZHMoS&DL2?`_5%#`?oqSUm^3ed$0e2Jwc z`SA#$9;VEcDLuR?rMU(1@Py~r!v_|~%qvMP%1g`vMIAp_q@*Y@uNV~l2%&=F)Y6pv z_=;Rmk`hR*D9A5PjYrlAP9@1D@nxCCnUEyPAD@z0oS2jY@(9$G?63@xq1D3^pORW! zl9>m&amBBPHy+}d__R#WRaCK4diV-b3*r&?0f2H5NF*t-I5i%WwtEyZN=gcft@QQF z%ggl&DoZl*^YrqI()CkP%k&FU3ySrp^oW9VfJ_AGh%ZUa1x-Syf^I=bEzngpFiDxx z!&j7+jAji;1YwN~%$kz?{G4LF%+!)Jur(PaxjFh%dN@lGlj6%WQ%W+Xcysi~mK0^? z#>4X#-1+g4YhOBh#K5k}%qvbU0^KzepPB~>qm(HfJ={f!<#4VyV~;>_WnM{QMSMnP zdPYuWdPd2V9+sT^y!0tOJjJ<*MJ4ftrTL(%%Q||5!F&ieJ|{mp5gLNB$r*`7iOD6Y zMUZS2pP2_Lf8ui!i?T}#rgVZYg#%yQ2F>oBJ-jLT$(ea+`A`9G#vUP1iBMdcgsM&; zH8&|WCBC?%GAFe-BQ+It-GgXyPJUu`d}?lDW=?!!N=i{G_!hN}9_G}%GSHQ4Jsgmd zAQe=E31sG_WEQ0+m&8NvfdE~l)+1P4np9kpSyBoPn-tImYqe8)giu65H->;NYy+8= z2IqjTkO1A^Ry(DK9V7^0Yh+CVHT?QPZ3@Q>yDSFKAogF-LXnb;67b365CU{IEBLrp z@EL><0(2x5_>`(F(1{cf0<<X?yiXUrp$tNRHWPsN7i59f5<&>jk{IwRnXE*R{c#`y zG^YZdX2}8#xIhR{-vQj6$m#+qX=h_#DDB|{xgWHY9pp=h5BxG5{lJd*%P8ppJGlew z+zzl)JHXED06Vb*?7R-J(>lP;>Hs^b1MHj*uzUQ#&gcL;p#yAv2iShU(hT|9DH>Ve z;Ns4(%h1jOhm}j#A5f4n^sqsq3Q;dXZvccJ3J+EYuY_TP3_Yxw#ku(@Q#wjBG_!tz z;sSnyS4KMMZi>>RjFOC6u)n~k{e%6M1v*_9?7u9~xshN$W`PbB1N$=zbfyT{uUVjN z)nNZ-fi?kx{hS5b4g&Uf7HBmn*zZ}OMNL`Yr~tM5vtmIZ{+o?~0mr}vSOGD9L0UYK zr34zOk@03MO#+8;7HHND9L`ywu|05DXGwr821RuisJ)og2IAs#2S@=??f@AFX|!ZD zgF+eXj?x}p<l+dFrh0gjGa*-9feJo|2&l?{se@!iWD$tE*eRewDK{xU2VTN~m5LNs zq6orObE25Y39}WfNeIRK;*!Lo5>RtP6x}SS3_}k`CaAoDD&s3iEGkZo&rK~ZPD}@1 fVAmrAueVTyx#7a#VuuTKj&TvR)&T`pX_6iQyZ1Fa diff --git a/docs/build/.doctrees/references/multiview_platform.tests.test_monoview_classifiers.doctree b/docs/build/.doctrees/references/multiview_platform.tests.test_monoview_classifiers.doctree index 220423efc263d204e5c785fbbe0ea08885d4aeed..4b742885ab1c969d62501b020186ad1165e10961 100644 GIT binary patch delta 271 zcmeyWb4`x5fn};U|3+30=E+t}+><4lpK>N<$ktBL$dHenY{=%#m^itXtqCm0&Ayg3 zDMKnFVe&y{J?YpC#th~R=?tw58E=8oB)Fz2JwB7y@)}Q$=91z}%utM-lA#<sWpX^b z|Kzh=24HhIxs6$?Go&&qLFVX`A(<nIVh(?9eoARhs%~<AUP)?RN%54#&FQ@Vm>73$ zP7|2J>@y`}VuoXeT}D(!ct&wXK}JtTXK4>-USe))No7H5@f46Brubzz`ej7<Wfc2m k^!Sx#$b$qYW^iZNWoT!FXSie(WW;84W|VCX5>;jd0DZz-g#Z8m delta 1173 zcmca6_f?0rfn{oz*hW?kW=4(4yv!f8diaYAGBWcj^b%82^72zsi>LIkX6B`&R!o^Z zMYC~A?G%j+)(o}`_Sh+t8<->|de~F*N{TX5i>Jg+(dc0-&df{CNuAQ;Ir#yLg>+&{ zVp4v7afyOPZhlH>PO9dV9(M>!7bLF$lb@2o=2tQ$u{1+7BP>HI!zF_;gE>RG=hEb< zjE<7Ir8y;;Wtpkv@dY`FC29FZx%wrk#U;i1lRvUc%7fYQFoX08Dy>rTlZ#7=GV{_E z^3xPR)+obdr)0=@GnOW$X2^nkArEpevU9lM>U!KK-(p2LUl-!$DXAHXu~RaXW2f}E zgUp>gg~fqeBZD6nDw7S^{3q+O#<P}XNM)2vp2(^vUkLF@hE|4*w?Ju9MmS6@A_N6d zLNFt_$8Yij7B?Y8i1|Ql2Zflc1X@Tz&F{HGIHXh{A(fn;TaZ|inUtB6SyG8DxLl>N z1QW6wCSPX_U`(B?!Pd^GF?l_k9qarIsf@W`@6JN<t|XD(wVwQd#Yh+_g;*l|YlQA! zs0BUy3Hw({KR!M)FS8^*9-A+Xu=x_%W|1j9{7{D^=jWBA=9LsrN!{$j{*Q_A-DYpD zIn4DZGLB|AX4qxqWn^be&zO>NAY*T74`*ItZfZ$oL25BLr=0N1aP-T_^UIj-mvO+a zG(#Sg@Q!A1XV_(EXJlu%WMpM9^stpA7Nw__VB{}&GR??Jgr&R;)z~Q+>akOLSnD&3 zbMsTCbd+XjW*IOtFd*_xMmi*&XH3Z`%$S^I$jHEen(Pn;PsU;}rn%5mmN5Zp?%s@9 Z8GC~88oY-ngQ3xxu@hqOW@A2OMgW$wsL=ob diff --git a/docs/build/.doctrees/references/multiview_platform.tests.test_multiview_classifiers.Test_PseudoCQMeasure.doctree b/docs/build/.doctrees/references/multiview_platform.tests.test_multiview_classifiers.Test_PseudoCQMeasure.doctree index 442d053cb56599fe7fcc8b974f2252090d55bad0..4c145f68c89c76ef7b70557ab61bf6cd5aed5484 100644 GIT binary patch delta 203 zcmZ3f@l1xbfn{nm-$qt1=E*fo+?%7BH5oY*Gh}P0Xk^I8PEKLZ<xb2{jGdC996O~a zbFv|)$z%bJG?3ECO&rFoNf}ZZ36pnm=;_2}FlI1kNM~qe$ao8uCc%xE(!-ydpHiBW zs+*jjSCX1nQamMbvmdt>GvmU|m3(uU9jh}cG8{APGNLlVGm0|`N_#l-5_3~aDhpDJ sr+{2h?U&)`ml5TcQS4WmArBI%$l%Vf%h1jU&v3~o$cWv{CalZ|06?fjKmY&$ delta 811 zcmaDRvr>b#fn}<k$VOH#W=4(8{>&zfT0Q*51sR!n6?%y&DS7!Rsl`)zSTpldQY)rR zo}$?}rFM!&25Sae27Bz3$^Pt8;_Rt;B}JL3#ZzLZX!NiZXXd5nq)zF{p7_9HvM7tR zkVbBPN@-52=9HdH2ul|tBPBg0gUzpGN@8h-W=2?sREA3iV+M1Ebc7fq1H<HljE<7I zr8y;;Wtpkv@dY`FC29FZx%wrk#U;i1lVw?@81*MJvWRGdMdAaBQ%h6wodexUi!<}{ ze8Cp#6;xWK<R=%G6lLb6E99psAgq<~W-Lug&5#B8L>}a7G?y_?>B*ej$mTiu28$wN z>f~Q6OBgjK&ttV?Ez6L~D4G0_RZqSU;@AwW3>k01(xi-V%zzO<4w#JOp1_F@Jdr}f z9}yZ7XdwYLyyrEs!62m{AD@|*SrQ+Q&DYXXGBA9MWV^_e9)74>lJoOQQu9iRr=)JS zX47J3Ji0lJa}IO;{ERsnjv00tc^TOm(=(=&_HgDU=BAcZ7Niz~Q^S0}3`f6=Jim<T zex(`mpirHY!JT23p`DSP;gXS+!O+82l30|UT7r>);Bk<Vm6)LzJ0(Loc1nh7?34`k zSWu!X&dpDm(otWUp_#?b$iRR|BpK-tFJ(;0D9o6g#lgtHfEob^gD2xQ7|C2{kY`MQ Ym|NPzo0gwnl9ykS8eg<IfLDwW0A>Xq9{>OV diff --git a/docs/build/.doctrees/references/multiview_platform.tests.test_multiview_classifiers.doctree b/docs/build/.doctrees/references/multiview_platform.tests.test_multiview_classifiers.doctree index 1a2bc6308b01c8289a6c7cf9ebd8dab0ff670ade..e43c0b50eb4995218e9fb44787fdd9181b831ee0 100644 GIT binary patch delta 192 zcmcbh+o8hRz%uo(;6~PB_QjR#jGT!Xvb9q*GUQ_?AK?mSOq?vi-8FeJw;k*145^Hj zlkc(V=`71&%wW!t&d|z`@s=%3f@_%4!=Ia<Qks*ho1C9llA2diJSB0nAm4u`ri@pc zMFr<D`y9zQm{FLKm(i8cp0PM%LB^hpouxgTd5O8HC6xuK#Zy2QAMwj5^vme-%UJA} lvB$48Lmnh}FoQcIFGD+{J)<OJK}K)J&WvT7*NQ4L0sw#NN}K=y delta 713 zcmeBBxuDD1z%uoy*hbc3_Q|$PJd>N*zj9_c_ONE=rKDC&e#fLG(ZimaS5lOjT0A9o zibfAxab{k6PU@7Nz{wYxO(qL)hze=s=BJeAq-sv-@rST<p;96eQ!?26N~R>1W@u*2 z%aF?G&0x%6&XDeTG<iCsqhxMrPDy52W@>qSK~7>xT7FTkeo1O^NwNN92WBZo{mB9x zB7%Aal~yVF$;Bl_nR)37`DqF;qot>0$apiBCZ%S`)=tsLkO#R9-TKLm9KqbF8H%w} zGL&Pd^!P*d%1qYhGyr=xi_@5OUxrl1p2_#v^aOW8T$iDhA>%Dunv^kr@<%3hK@{(2 ztnRUye398$SOMW_D}<+w(LD?`vgaUS4@>FC$7kkcmc++n^RqEF|03HgGNp$f>X798 zypq(slHw_;oBweBXJXCbWn^I3{Fi4AbI9|ICmDqqc^O?9?HSuLHfP+=xKrB0nU|QG zT2fh%T08|5l+XP#3jH#={4%!rW!(2G&5#EPKFQ$D$ji{qXwN9g*qqUuu_=S0hpi;B zC_S}g@;fGJhfRsFV9rpDosyv*JEey;vp6?DWlBeBhGv#OBLf2>{xjA?;x6M(#?Fk} eSpkd;43j@HNtoUy%8;GVXu1J0Wb;!2Wkvui=LEk1 diff --git a/docs/build/.doctrees/references/multiview_platform.tests.test_utils.doctree b/docs/build/.doctrees/references/multiview_platform.tests.test_utils.doctree index 0c13472bcc71866823e6862525ce8a13cfba6f66..afd4f7d1cef8c43a1e2a1273e87ff79fcaa8e24b 100644 GIT binary patch delta 489 zcmexyg7vX7TLa6~8-ffQ*={jS=4IlZ{D$c=Phy5_?G%j+`PeBvcGG>W88s&-$BQv0 zPOgft1gT-Poy?ePHn}E&W3pX>KU+pphEztv<cYJjCKoWVNXKR{W-w<+XJ}=}cng#! zA(>?hG3!E$D0gCpV(gR*<=81b2($EB4M3((&T4IA%c#zf%BX~yDN%-GrUa6i)4i-2 zZ5b1%cUUu)fb>r1uwm?A%b1cOl`#pXS-KxdvjURlDLqzT2Tf-VViZDhk=0~JF3suo zwv61<8*CWar$+}df*m$}dJv-#TgKW9sf^Vy!*y058Lo+9IDc+_N@-52ZgPHJNorn6 z@sz~v+d>%cGcjen**+_raW->u#<7gU8IBot8BrPG8O0d|89f=D8A~%3W$eq?UE0H$ zmzbMcQdy8%JOvaP$NVxJ{W7BbGK&2&di*k$`ep3%E6tDxNgdAM&alhS&Ir$N$tcK( X&FIW1%UG1rpRqe*#rDu-MrB3-Rv4-R literal 91256 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 K4-{CXNqPXXEiRV; diff --git a/docs/build/.doctrees/tutorials/example1.doctree b/docs/build/.doctrees/tutorials/example1.doctree index af1e79777b652e00bdb23ff7e6241439e624968e..6fbd0ebd6bb688ae59e269494e19538e2eefec1e 100644 GIT binary patch delta 7667 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 K;`A%k8P)(plB}u# delta 7037 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 T78fU`rxs6%oicr6Wrj5XEc&$> diff --git a/docs/build/.doctrees/tutorials/example2.doctree b/docs/build/.doctrees/tutorials/example2.doctree index f8ebd36104129a78d08c5248278279b11ce49b2e..c7b5874ccbfa92c0b55e999a3afd034a6de60b9b 100644 GIT binary patch delta 19265 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 RWGx1T%v^!(O)FAW83BM|^0fc} delta 15578 zcmaFza2oUS%hQ-y8(5|)xo%_?V~WxA%quC)EXgcORY<KU$VtpgEXmBzQ^?O#$fztx zEz&JWEK1BxElDjZo|3^HJ0(N3hj<;6Bbl}{Dohq+-UKG2Cd;veGqO(ZVKtw;mPL|L zVe);}*vYnRQj7|d9axoE$`W%*CugxLGICDtVGTl)7Mq;M#s^a(HF+MJBO}-32W+CO z%R(|TizmNRmG;f7N=;EHPE9OI&QM6pFH*=aD9Oyttjf$whxi5Tm6FsVkmpJ=QWerO z%Tn_cN)n5+^%Okw6iPBOixpBU5_1c3Qgyf{^K*z9X5^PEWR@tD=NDxcD<tNnD3oNR z<|%+gOY#*;i&GUcOY~sDLPK{5f^0-_$7B<Z(0aZMsSNE5#ti1tq|^-A+9?_t^08BT zG&5lls*4n%y7_s!7!jJ7p%^<QLm5RA!Bmi#p&C0SLp^rN<X0Sr`Grf9GHf*)r+{o{ zjc}RF%k87CP*RkbnFk8?;?xoyg_4X!h4Rdt9EGG*P?)7CBvpdKk!x}zw+y4gWCL@N z$(y(>cog#T6$%oIN)$5lxF&z&wqsYw%}+_qQJ-wfBh3LxdJ%3^G@nsnvMEoBifD#Z zMgb%ckvx*i$iM(fR|>@iIhiGs`}lMxf8d$N3-*{oab{I&ZEeD2eL*p%qSVRv1<fbd z3)%{U+^CTu+GB~LQE_q#pCq?ALTqy%-y%jv$H|5QCSoY&!4i_?<V0Rw31q1$ty7>O z+yj<m1xrr;Az;SXjp_<_bOGDRAwp)8XYz<`ULf?0nNenPyI7rMPEsl;R`Rlo6-x3! zaiLI@n3s~DtFT#4{5T_S>B;{jJn+cIOWHCjY@RF0$;hZQdAU?SqwwSgL%GSJ(i>$} zk&{VJoMSO0M?y-M$$c^^Oy&8LePoRIaY|`VekkM4s6JU!)}7I3a-r-s?c&rDu-iRA z<&;7ItejE^hLiv$`3ipdd8s;}d^>r9g8$?$CH~Dz<kmAXZkx;{XG@~?NV0VKPcBu| zXVc7($_i$j%$Tn^dA^$9<lZ7anN-g-h06R=g_Qg}^%8~by!>*oS3o6T>g1QIp1NF+ z)Bw*~Jt_Egcun4~$}X3NQ1qx_CKiK3I9nMR7&4@?ni(e>Zd9G@;KRzMl_8Z?4|AS7 zqvqu2YMPVh8R~N`fhb+XI9V}9XL5l$i`;yW2xA6whIEEjhK#o^a;!!aOg?9lG<l<u z^W=DA(ak)@2N@ZQkcB4m7&~nKX4=Ncxd~*9RMrNN!6t0_8B$sE87CJu3p1{ne9*#l zGKYn73?xB<O7wV0iLR880E$V4l6<b@{JfH){2XwI<(1|pflBl=g_NSi@?srO2?Lf$ zNXRHCj?XMfEwV~TP{_&5ONErw8X2OK_gh#@-e%##w2yJ}$7_<4MJ+8Ek54|JtPT>W zu+#!kAFoN)D?-dDsVqpfQc%L?B1j~O_Q-<l!l@1^`w~!?A(eHTk%6H!DKSH~cJfJO zx%z!zZiZ-&E=j&evXVrN8B$pwJ3%F4hP2=0U)Kbzcp>2c4NI7xIYE8~iy>KtB$y$U z^&S+c8X)6JlQKkm*r3sXD9vCZU`r<p`k1hpffK{@h09WfCwDn{FzSMf5Fux&$=uG` zoMKGi#4ExCPmzKk5k!i#LQauAm6Lm&O>{vuP%5m1D^4v+OwLfqNCX#ssl_Fkxrrs9 z(lAw_AhjqzZSuij2~L<7$<!}`2#_olko%;vlt3;vQMbvE%7VEV*`*Qsj0_B(c?$VO zDXB#YC6f)@vM0y8+Q>uFTu!Azaz=h}Dsq_#Zjnvi?iwcwPu4x9C?=F~qw;fDGNiH$ zCg(XwP5$mBH#xwaoyn4E@<C-KzI7l8CQ!1=5bX({-05y?K)_;6P!kH_ONb^-qBMc* z0y`qcLz~GLivt2D@AL@Z)k8AffAUTb)5(8aCE4|+fV4A#Q;HopEJ4M_=4+m8jEw1E zQ@?x3b2>u8yZ~%C56E}vP~T17=p8+Ik096NP2RCg=@4_Az~*fB_Bq7F*$vUz363o` zSFjA&hGc(nMyBaZ;Ns%;6-%ZCAhXp#B0mDwfGAMf^#rSjq}|Vfag0`z8w}+q7Y6BZ z9*3BF6l5;ABo#OW5<#R}-_0+A`dFAQgKUtQJSE(T=?=t(%S@9ZB0%CG3;Z*rvJNpp zELa}l!RR~rLqrdwDmaVGj<n|BW(H>u&dCd1bV22{02@dEVN2*{`6wnv4oQ%xRF?SU zg)XLS;Tcj{Y|J1}PA-pL$e|9AQw7UKLgXCJX-#g8$z-x%p8O%kiOH6E@<C-aCM)L2 zF|k`f)Wtk4w&)D0EHh?M9mizMJh`q&c5?PPf2Mfm$$QRuGo?UuBr;DnJYU6>$UGUO zBPK&CD;8M?cLbuGnY<uLezNZcd!{y!36dt@awZ`GmNAiv8AM@%B$y$U)eW(;gL(4b z3+tFVAa=%PNM*Gk+c{bC%5SF45T)yxC)-_}!?YfvG%iCbYc*WyLN!hKthtN~3|aF) z1#*UFmJg^7gH(eczq2t<exs%`d0)zGj(d<GyaSJgn;-#1EF^ATlxo1p@dhL+mGuf7 z(kU5ISvSG4uvsHrfsyG4^W?P+l9Q7&JQ*1$JI2XRmapNMd?iB@B=J8ZO+tu;fuS@* zGfNEQBo#&m25-g;sjMH&lWQ}j7=KI_@G)geLm2ri^FJepE(<tuXirW|)t#&$%fXfb zQ2>hFpqySNJC?~0bL<(NCp*R|O%||YWpZGd?3KF%M6u+xGls*&WgS3vgUWM89i&Xk zr~}HI4wD7rv{`d9q_S)#JH}}-S+aoBf@l6}rb?E{-|}M_>tN<ERkKX4EjR$8><f1> zPJ)RuR)fvR&5+6}M>2!4Y4U+$k;xm1Y(ag=Qr*c?#lnn@Xku%M6B)O{4C2}db7&z* zo0vjkPI`WEd~Rt@NoHAQYPpp{^rMD3lO0>cL>@KF)lrB|NI>#WE=Ui=Dt1u9lgio% zc2{18RMuLMyBIAe2c~Gt;Yt*sFo4A9<mfUnru?+YlI87_`%bY<Di??FCUV?`M9FP< zloUXsq_A0dQpI|X*AVHKaOon5^jbYt3;)EF#H9TE;u0$^1qB6#ym)9;mS0qCr4Vgu z5DOMgN-R!A$XF>vD@`tF5OY$Bg=Hj4j1f|bMTA!dTZUBDPjFJ5sP8TK9prRK?kIsc zy0BSzvQ*VwCO%eh$`-1A%P2lsF&C7wH-ZE&)qIoCV8xcI`B*1EsC5CU0hNJO2;++D ztT~-o!KvDjb+TfNiEIs6l7Ru#dMQoH`oY4$0PCCf1Wx{-r(gvQnB*c*iISP02MUw) z%)Cq`NPvO6d!RO>LbOs+YH<l7q`=x8N!Jc9pTHsH5Aw1_7CS2gLly^!;ACZB=wYc$ z%*~mS#m&mV(3!=<%D_-N1(dmw0<jM4F>om@+AxhN9u$bT7&Abofs2Oqjm;oIlcsZ~ zl~@BY9wZ9Rw3>)W%TfVFlT=nbE4W5&g;`R@IT;eH6CuIc4wk?ktnVf}w&+hzEEJyH z)S@(baf=6Yv|;SzH!Ttd(Mm`G3reIQj5~mF8e~qaL8w7J9~3xb1a&9av*4hf(Ds{i zBP1l&gF}LCGD7lUyDjH_h~!?dq~KJrBvLR<&gnS7cpBsmEA%L5E2u2V$j`$Y>C?gH zfn2hAW~UV+(`{Bz`(yLFu8WL}PbMqosx#i6d?8PpZ4N}8WN(WAGaEQNFtCAIb6G5G zlO6l42B9D)+?|uZ_2&y@LR_5&adj5kWW%Y_lP65D=B$KBl(T_5t3M~$FqN=PX3ST@ zuA_9lIp;)(j((61HQrVbPX=5!_TbTIy1|@t1xTq>)-nu@i}7guy1|%pKSbkR42`>R zYSf>6bfYHcHHgM57#c6)(b&C7lk+V^<7*6!FK}v%;ACM3rwk_c$%Y$I0_HysO%rG9 za>65K^2Izw)vOeV#fgx3N@YWot{H6L(XT9M-1SWp=hTH*sEuKv20L;Ts<MNVY8Kn% zz`16eE)Y#l7@F+yXo`ktip0<qhDTEoL{kBVrd&LlIw6|cF*LQ{)Fd}Ke1`<*0*J<W z7#e32(6}9<aVv(#O*k}yvd)hkvMlG=85kz#O;($<n-w`5oW!9GDYjMFNsMicIpUn( zA@2N&;m%Je7QRQ0Z4N#TaGK<qJaMWz4^m#`oIG)=l3*4z^`Yufh3HX6*Q0<(j}1hR z6}ldC+<I7oIT#owH%teGAF|W@aA*MqyZ2s2jx2~(8R%A}642KO(N~YIuLg&{i3`j) zW<c~zL)SAImmWlpeh-dgE<}z7MLAbiJS2lNuuVR=P@Cf)q;~r~Sus~hH0vjXhv>{? zwX$v2UUZC+=?n*`UYg9aB#rUv<cU+2CkNQGfCT3($pKNIA+~u3c_!;GHDG)Rlb1Wg z0m}CoqCJerU42Gy5C04YxIMBEQm=tpj-QsAbFy-RQwuXEsHrEo1T2YK*@jO(w=9!U zaB|~(d9o_pWneQmPh76e$fU>#@)V@9)tcNmAM7gyMNX)znG~!L?Wi6QFGDIzkrU)@ zi#1?l;7<F+ie64;{l^f}K&!0X!4?f(K?`UN4s~Y&mbw5({V;L1F0A@q4)G+k(wH#8 znqvnfj<-#2oUb<d{yKNY&66AFBZ>l44W;YNIW9mnoSWP@U!CU&hy$taPvg;Ny1|^| zIY_Bg)>CwSkMQXGy1|&^A4K0DbbUW@>Vs7FqFms_E6fG1evuq1z=d2JB70DOGN`iG zfoRmi(5Q}6V+5x&M3W<iCOaIOkc$81oS?D*UfC~!#1W3jG@L5MoTbY?xp9jatisR2 zurwXT(iARG76P>tKox!y#H9@wnriWAnhDV~9YfO;JeoE@G_AwXv>K15;}A_pF*F^* zsR>fy--BqpgQ4*z0gYcF8b4!b{D4CvsOI^xLzaVw8=S(pCL3&2=S50j?A*u+3=#TB zQJ%s@T9hkhfvbDSasWm{L_r7<m&!6mcZ30oBXqfuk^qM{#NnRkdff2nNrLD}K-UwC zM^7b0PdU1t5<Ge)K=kyX>*>a!2NW5gX25cYzNP5;77@_5529}my1tz_^nscIS0Q>X zqwBeVOAn$Mpvw)4cz82l2{`M+n*r{e$jty3Pzi^v8E}Miv)qAHMkY=kP>nfx-a#8i zp~-@~!GnnMoIIeYMyuwt{y<tToIIfVl5HcnzT6yr$cKqjmj|4RwRu35Jlkfl45$Y@ z`R@^3PHTvyB}8&7LbBng7LzB><TXe27=0%T?pEgThNyH0yQ6`FlWjX(F|$sH$7J7Q zCX66bd-B?2T%5@e)rk;ucY>8dM%j6fFG3$gPXrCOGn!7mcU*k3Q>4sfnG;+Ho)~ho zAgcyqZWYK}$gqDoNCYtyyl3<76RVgxyFj8+SsfsCCT#maBcD7VPjB9R#+i|G21Irm zMD_?o*6~~=(@GxD=sM#%uqQzywySx-1MI7LKm+Wo$1<d{mV-iL@_H3^rX@U}kyxx_ z>=!`hNE(Ai#H>I=osfKuG@K3}Sm{9$%#g~u3b*+Z4|tgU62#`?8B$s2&};^cv@`yN zYxv0n9&G;!(QqO|D(fq<2E60#Adi)U18DN3Yq3nqypum(i(}H^1y4&T^G>e3t_Bhm z^f3`U1r9BEQ|t%J<eZMs$<{ZrncR3MZ>*HJL>q}CW?1G7*i2CTFn*dWep6i#GVhgH zoSFiitDfv~Glw~&pm_4en;Me^Zn-jr@lI!)mMSy3_?9tKJj9)0ypu27a$pJrIbJeS zJRt!#!Hh6Q2@x5>SY#2!ZVy)J45_SQxLw`1pTS&V3Y)k^7|#I{LNXH}mLZkZ4maq+ zEj6yJB3^JV4db0GcGrMu7F@F6t_su^f2MVC(aigHP=8KVy(`6)wFsj75LkhH7%!d@ zB8(SYLR^FgdHohGt#HR6KTkh*1uKP+j8p}s<l-{jlEkE(R3(L!%%arflFYJH^<o7j ztF+9VR4XO$yt$H9X;F@q5_m~ieqOOcQEEX^YH?~_i9(`6L4HYUUP)$RjzV#2a%oX! zNu@$Yeokt!9?1Agh2+FM(8{Hh%wmuo^(hMFnI#$EB?d|$3*s~Lic^a~Yv$rp^FS(6 zloX0e^GY&vQx%F+OG+~H()F~oz~k*%K0Jt?K-L{lC_u8>AygkdYM2A})1!vD2wy#F zm|0(}@Tg%9#A_fq(4sVu0LXhFK4{GwMIJ=*-=l^(7(T2Adl6(4x+js6&IVNfP&0;N z2uBf;4~UK-(A?EMUQk1c6IylL;suX6I{2_!Tm`2-cp*Yof9@+dm813N29Y4FKL>RZ zdHuOiK2TN$HSIy|AkYAA8XvfzNZ|tq=KXc<Oo@D;P=@sYQFVX@aO)sCYCt;Fc#A+h zNRO@(k4De{?o^OcsjSHu8Yke<2pYg$1JSq&L*sIs8X<kU!w`)JF*NSOqY>1ny9LpB z14H9goEjrIKSDIU$I$c!hbE*3ekdQPod@sJ1wrD8aG#C?I*2PVJ#bp8^5hHCSa^_P zL=+^7=$s4j!(u;ht{H~`KRD*~Kx!~_YJ)^^>2!zabOouw(CGvc#icV2qB91h2192g zNEDaOQi#rCkQxk~1t3xEI>DVijvk2aE|5A5-R&Sze7YAybT0&{!_YksB#KQpD2IW% zeY+sKcYxGk=-vtv#iko6Z3yv`mNp1>{vLuX#c;|!kSM|_w^0(yPlzYJgVbQ?`~nii zp_5ZU0G!PD1i<4eNQskM0J)q&v5r$6qDd7)lM)_Hb`VWA7@90`XadEM_g+QLP>9B0 z42=N<H0D4wW?^Vd$DwiJ0yEBLh^9siO?9|5A-aRN!ASw$9Sj1O8u0GmS6)zekP|v8 z{0UrJszXPG5&fDhNF4YfFK_FaIJxpc{NxFbOeXU_G-28<0P83+9S{ID+PSt1fQpU` z(Vo)DK98IyPk3a^jp%d0#LPe%K}!H`f$L*X1AMdS;}?ufw*)|)MZvpZVR$wDgJrYJ z(+@06F9kpieK~kTA8ls+K3EsXFvbIu<6c`adju#<Uh%pGy5zhES+I}uCnR*ggKcE{ z0@pja_e~&Z!@`?8V6tVh!#gfcc0q93WEBKCkL^1`@xpiBj0%(AzSCgjnk@D{3Bp$4 z%1;BWK}^dp%1z8mPDL6P&k}{0Bn&a>7u+Pq2b2GOkeO`wL7!1!a^eRyMy|;nA2b*h zCU5-UgGbJF@`I0DoXQYG6(NTHg&R8A@skIm!sM<`()<Mq$@#fSnUFmpI$V?2d{$*t zn0)Kgasu)ZleNBZaT-D_&<9yy%;C!bTA~E)w{?F31=rm#wTudr?|xC8-0+o)(;lMS z7OI>Ds{GtnX(mbk=GR}_Uw>t6fBluI{q<Mo_Sauo+FyTVZGZiht^M^^_V(9bIoe-; z<!pcbm8<>rSMK)LUwPVJf8}j|{gto%^;iD(*IxzNUw;*BfBjXc{q<Mj_SauU+FySa zZGZh$to`*@@%GnWCE8zqm27|gRjU2<SLycGUuD`~f0b>2{Z+30^;h}!*IyOdUw>6> zfBjXd{q<Mn_Sauk+FyTFZGZh$t^M^^_4e0aHQHZ))og$LRjd8=SMB!KUv=7Ff7NY& z{Z+61^;iA&*Iy0VUw<{+{`#v?k0D=$f|Y_FeC6`=#<Em(zDiWFRb{E_{8b883Qnnc z$r-tcMcE1|+fS(*OUMdp`WrET0BFiJLo{MEaNvO>E-MKtH>TQ)g2IP^0lX^(yzs_X za57_!{B*@BsqXS9MS(Xc)qz(k`LaP%9B3u_vFWp?r1~=|OkXoCRfZM3FmXE9)KuNc zP7b2e?@dn?ot`)~bskf^AgE*S&y*nuD#y6v1)=4bELfxL^aayWxgmxqK-J2S)BUai z8xJzUaeAsA%nc&bXG~8ugz?0g;sqxQ`WPGfazgw8D+x0gdRX%EOH!vyo&sA86=8_H z-gvUCt^8zG2eEpEjKs23h1~q2R8YPz$VshGC@9KL%1O-yua+*(&nZjQ0d0uNELJGU zFD}kZ%1H(7AOY=!LJVM3!N);#QwvKo%fKu5i@`l+kAPrs7d$t!3bM^CH?<@qKLun) zVor{1emNI7q`}Mf6A~ax`oUYdN-|QXubG}I6@`#j&{D`tiU%#^LszMgpO*@<FR?@+ zu_#pmzTgkCQW|NO&rl780LnuFv{9)FzFr)b0s<*X0Z0P?m?l${wm`k}IgqS16PAQ~ zWbvjr@PJE(Xpbax;LH|jD+x4NBDoi)3X7r)sjQ{o+*c2EfoPAW0%-R@Mydk-<eXp5 zg=7T@nlhxapmrgA%adRR-_SzBxZO^$(<PwBiS}q<$x~8DuEZwK0So@g8!ScqL8HXT zSq~P_La-r3gd~!=*km)Lvd)5?2lK6Hk2<RJaA#ytDGx5(iPr)S)yWt0G&y{EKn3Is zK~M*Qa~i1pm&z*VnY>U<Qmn@?wF0~WRM$w?NVl{&F+Ei`KW+Mk<*6Esrqln<P6dzo zPq&_vDuO;QuxGl)^3*uS(CzKZQ%e|`GTFBOU6Ja|$fPc`-D_3qUS@VCAqIx5|AN!` z)}>0<Gcz+VWHEpUJ|+f+EN&37A4Kc{5x+si4-oN7kbxoVJBTRZVPMEA1Q9YU3=CP4 zAi@Z=gj63yG=qo+5b+75_&q4M^l;{Zw(eFIq!xqrXJ&yM;Fpo>m!-v6&%of9rO3#@ z(2)gliC-4T6@FPD7x-m?Z1>9o+3c4EvehpOWMfAb$hM9wkWC#~AY1%OGvsThXk`5d z1tE7vR)%(#I%rjVL6#h7S-J#>0DDmv!~%N}w1F&Z4-<nI19%@y7TAx6KpqAA5wu?c l;z!Uj6Nn#$K^_JBQ4{1nupg^HERY|w%6Yc$U!SVV2mo!3h*tmr diff --git a/docs/build/_sources/index.rst.txt b/docs/build/_sources/index.rst.txt index d60e4a57..b30d339a 100644 --- a/docs/build/_sources/index.rst.txt +++ b/docs/build/_sources/index.rst.txt @@ -3,15 +3,15 @@ sphinx-quickstart on Mon Jan 29 17:13:09 2018. You can adapt this file completely to your liking, but it should at least contain the root `toctree` directive. -Welcome to MultiviewPlatform's documentation! +Welcome to SuMMIT's documentation! ============================================= -This package is used as an easy-to-use platform to estimate different mono- and multi-view classifiers' performance on a multiview dataset. +This package ha been designed as an easy-to-use platform to estimate different mono- and multi-view classifiers' performances on a multiview dataset. The main advantage of the platform is that it allows to add and remove a classifier without modifying its core code (the procedure is described thoroughly in this documentation). .. toctree:: - :maxdepth: 3 + :maxdepth: 1 :caption: Contents: readme_link diff --git a/docs/build/_sources/tutorials/example1.rst.txt b/docs/build/_sources/tutorials/example1.rst.txt index 023bb37d..07d53f78 100644 --- a/docs/build/_sources/tutorials/example1.rst.txt +++ b/docs/build/_sources/tutorials/example1.rst.txt @@ -10,7 +10,7 @@ Context This platform aims at running multiple state-of-the-art classifiers on a multiview dataset in a classification context. It has been developed in order to get a baseline on common algorithms for any classification task. -Adding a new classifier (monoview and/or multiview) as been made as simple as possible in order for users to be able to +Adding a new classifier (monoview and/or multiview) to the benchmark as been made as simple as possible in order for users to be able to customize the set of classifiers and test their performances in a controlled environment. @@ -39,26 +39,31 @@ The config file that will be used in this example is located in ``multiview-mach We will decrypt the main arguments : -+ The first part of the arguments are the basic ones : ++ The first part regroups the basics : - ``log: True`` allows to print the log in the terminal, - ``name: ["plausible"]`` uses the plausible simulated dataset, - - ``random_state: 42`` fixes the random state of this benchmark, it is useful for reproductibility, - - ``full: True`` the benchmark will used the full dataset, - - ``res_dir: "examples/results/example_1/"`` the results will be saved in ``multiview-machine-learning-omis/multiview_platform/examples/results/example_1`` + - ``random_state: 42`` fixes the seed of the random state for this benchmark, it is useful for reproductibility, + - ``full: True`` means the benchmark will use the full dataset, + - ``res_dir: "examples/results/example_1/"`` saves the results in ``multiview-machine-learning-omis/multiview_platform/examples/results/example_1`` + Then the classification-related arguments : - - ``split: 0.8`` means that 80% of the dataset will be used to test the different classifiers and 20% to train them - - ``type: ["monoview", "multiview"]`` allows for monoview and multiview algorithms to be used in the benchmark + - ``split: 0.8`` means that 80% of the dataset will be used to test the different classifiers and 20% to train them, + - ``type: ["monoview", "multiview"]`` allows for monoview and multiview algorithms to be used in the benchmark, - ``algos_monoview: ["all"]`` runs on all the available monoview algorithms (same for ``algos_muliview``) - - ``metrics: ["accuracy_score", "f1_score"]`` means that the benchmark will evaluate the performance of each algortihms on these two metrics. + - The metrics configuration :: -+ Then, the two following categories are algorithm-related and contain all the default values for the hyper-parameters. + metrics: + accuracy_score:{} + f1_score: + average:"binary" + + means that the benchmark will evaluate the performance of each algorithms on accuracy, and f1-score with a binary average. **Start the benchmark** -During the whole benchmark, the log file will be printed in the terminal. To start the benchmark run : +During the whole benchmark, the log file will be printed in the terminal. To start the benchmark, run : .. code-block:: python @@ -69,7 +74,7 @@ The execution should take less than five minutes. We will first analyze the resu **Understanding the results** -The result structure can be startling at first, but as the platform provides a lot of information, it has to be organized. +The result structure can be startling at first, but, as the platform provides a lot of information, it has to be organized. The results are stored in ``multiview_platform/examples/results/example_1/``. Here, you will find a directory with the name of the database used for the benchmark, here : ``plausible/`` Then, a directory with the amount of noise in the experiments, we didn't add any, so ``n_0/`` finally, a directory with @@ -81,65 +86,70 @@ From here the result directory has the structure that follows : .. code-block:: bash | started_1560_12_25-15_42 - | ├── No-vs-Yes - | | ├── adaboost - | | | ├── ViewNumber0 - | | | | ├── 1560_12_25-15_42-*-summary.txt - | | | | ├── <other classifier dependant files> - | | | ├── ViewNumber1 - | | | | ├── 1560_12_25-15_42-*-summary.txt - | | | | ├── <other classifier dependant files> - | | | ├── ViewNumber2 - | | | | ├── 1560_12_25-15_42-*-summary.txt - | | | | ├── <other classifier dependant files> - | | ├── decision_tree - | | | ├── ViewNumber0 - | | | | ├── <summary & classifier dependant files> - | | | ├── ViewNumber1 - | | | | ├── <summary & classifier dependant files> - | | | ├── ViewNumber2 - | | | | ├── <summary & classifier dependant files> - | | ├── [.. - | | ├── ..] - | | ├── weighted_linear_late_fusion - | | | ├── <summary & classifier dependant files> - | | ├── [.. - | | ├── ..] - | | ├── train_labels.csv - | │ └── train_indices.csv + | ├── adaboost + | | ├── ViewNumber0 + | | | ├── *-summary.txt + | | | ├── <other classifier dependant files> + | | ├── ViewNumber1 + | | | ├── *-summary.txt + | | | ├── <other classifier dependant files> + | | ├── ViewNumber2 + | | | ├── *-summary.txt + | | | ├── <other classifier dependant files> + | ├── decision_tree + | | ├── ViewNumber0 + | | | ├── <summary & classifier dependant files> + | | ├── ViewNumber1 + | | | ├── <summary & classifier dependant files> + | | ├── ViewNumber2 + | | | ├── <summary & classifier dependant files> + | ├── [.. + | ├── ..] + | ├── weighted_linear_late_fusion + | | ├── <summary & classifier dependant files> + | ├── [.. + | ├── ..] + | ├── train_labels.csv + | └── train_indices.csv | ├── 1560_12_25-15_42-*-LOG.log | ├── config_file.yml - | ├── 1560_12_25-15_42-*-accuracy_score.png - | ├── 1560_12_25-15_42-*-accuracy_score.csv - | ├── 1560_12_25-15_42-*-f1_score.png - | ├── 1560_12_25-15_42-*-f1_score.csv - | ├── 1560_12_25-15_42-*-error_analysis_2D.png - | ├── 1560_12_25-15_42-*-error_analysis_2D.html - | ├── 1560_12_25-15_42-*-error_analysis_bar.png - | ├── 1560_12_25-15_42-*-ViewNumber0-feature_importance.html - | ├── 1560_12_25-15_42-*-ViewNumber0-feature_importance_dataframe.csv - | ├── 1560_12_25-15_42-*-ViewNumber1-feature_importance.html - | ├── 1560_12_25-15_42-*-ViewNumber1-feature_importance_dataframe.csv - | ├── 1560_12_25-15_42-*-ViewNumber2-feature_importance.html - | ├── 1560_12_25-15_42-*-ViewNumber2-feature_importance_dataframe.csv - | ├── 1560_12_25-15_42-*-bar_plot_data.csv - | ├── 1560_12_25-15_42-*-2D_plot_data.csv + | ├── *-accuracy_score*.png + | ├── *-accuracy_score*.html + | ├── *-accuracy_score*-class.html + | ├── *-accuracy_score*.csv + | ├── *-f1_score.png + | ├── *-f1_score.html + | ├── *-f1_score-class.html + | ├── *-f1_score.csv + | ├── *-error_analysis_2D.png + | ├── *-error_analysis_2D.html + | ├── *-error_analysis_bar.png + | ├── *-error_analysis_bar.html + | ├── feature_importances + | | ├── *-ViewNumber0-feature_importance.html + | | ├── *-ViewNumber0-feature_importance_dataframe.csv + | | ├── *-ViewNumber1-feature_importance.html + | | ├── *-ViewNumber1-feature_importance_dataframe.csv + | | ├── *-ViewNumber2-feature_importance.html + | | ├── *-ViewNumber2-feature_importance_dataframe.csv + | ├── *-bar_plot_data.csv + | ├── *-2D_plot_data.csv | └── random_state.pickle -The structure can seem complex, but it priovides a lot of information, from the most general to the most precise. +The structure can seem complex, but it provides a lot of information, from the most general to the most precise. Let's comment each file : -``1560_12_25-15_42-*-accuracy_score.png`` and ``1560_12_25-15_42-*-accuracy_score.csv`` +``*-accuracy_score*.html``, ``*-accuracy_score*.png`` and ``*-accuracy_score*.csv`` <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< These files contain the scores of each classifier for the accuracy metric, ordered with le best ones on the right and -the worst ones on the left, as an image or as as csv matrix. +the worst ones on the left, as an interactive html page, an image or a csv matrix. The star after ``accuracy_score*`` means that it is the principal metric. The image version is as follows : -.. figure:: ./images/accuracy.png - :scale: 25 +.. raw:: html + :file: ./images/accuracy_score.html This is a bar plot showing the score on the training set (light gray), and testing set (dark gray). For each monoview classifier, on each view and or each multiview classifier, the scores are printed over the name, under each bar. @@ -147,15 +157,15 @@ The image version is as follows : The csv file is a matrix with the score on train stored in the first row and the score on test stored in the second one. Each classifier is presented in a row. It is loadable with pandas. -Similar files have been generated for the f1 metric (``1560_12_25-15_42-*-f1_score.png`` and ``1560_12_25-15_42-*-f1_score.csv``). +Similar files have been generated for the f1 metric. -``1560_12_25-15_42-*-error_analysis_2D.png`` and ``1560_12_25-15_42-*-error_analysis_2D.html`` +``*-error_analysis_2D.png`` and ``*-error_analysis_2D.html`` <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< In these files, one can visualize the success or failure of each classifier on each example. -Below, ``1560_12_25-15_42-*-error_analysis_2D.html`` is displayed. +Below, ``*-error_analysis_2D.html`` is displayed. It is the representation of a matrix, where the rows are the examples, and the columns are the classifiers. @@ -185,10 +195,10 @@ It is an understandable behaviour as the Plausible dataset's view are generated Morever, as confirmed by the accuracy graph, four monoview classifiers classified all the example to the same class, and then, display a black half-column. -The data used to generate those matrices is available in ``1560_12_25-15_42-*-2D_plot_data.csv`` +The data used to generate those matrices is available in ``*-2D_plot_data.csv`` -``1560_12_25-15_42-*-error_analysis_bar.png`` -<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< +``*-error_analysis_bar.png`` and ``*-error_analysis_bar.html`` +<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< This file is a different way to visualize the same information as the two previous ones. Indeed, it is a bar plot, with a bar for each example, counting the number of classifiers that failed to classify this particular example. @@ -198,7 +208,7 @@ with a bar for each example, counting the number of classifiers that failed to c The bar plot showing for each example how many classifiers failed on it. -The data used to generate this graph is available in ``1560_12_25-15_42-*-bar_plot_data.csv`` +The data used to generate this graph is available in ``*-bar_plot_data.csv`` ``config_file.yml`` <<<<<<<<<<<<<<<<<<< @@ -218,10 +228,10 @@ The log file Classifier-dependant files <<<<<<<<<<<<<<<<<<<<<<<<<< -For each classifier, at least one file is generated, called ``1560_12_25-15_42-*-summary.txt``. +For each classifier, at least one file is generated, called ``*-summary.txt``. .. include:: ./images/summary.txt :literal: -This regroups the useful information on the classifiers configuration and it's performance. An interpretation section is +This regroups the useful information on the classifier's configuration and it's performance. An interpretation section is available for classifiers that present some interpretation-related information (as feature importance). \ No newline at end of file diff --git a/docs/build/_sources/tutorials/example2.rst.txt b/docs/build/_sources/tutorials/example2.rst.txt index 16f83813..b12a318e 100644 --- a/docs/build/_sources/tutorials/example2.rst.txt +++ b/docs/build/_sources/tutorials/example2.rst.txt @@ -2,66 +2,103 @@ Example 2 : Understanding the hyper-parameter optimization ========================================================== -Intuitive explanation on hyper-parameters +Hyper-parameters intuition ----------------------------------------- -Hyper-parameters are parameters of a classifier (monoview or multiview) that are task-dependant and have a huge part in the performance of the algorithm for a given task. +Hyper-parameters are parameters of a classifier (monoview or multiview) that are +task-dependant and have a huge part in the performance of the algorithm for a given task. -The simplest example is the decision tree. One of it's hyper-parameter is the depth of the tree. The deeper the tree is, -the most it will fit on the learning data. However a tree too deep will most likely overfit and won't have any value on +The simplest example is the decision tree. One of it's hyper-parameter is the +depth of the tree. The deeper the tree is, +the most it will fit on the learning data. However, a tree too deep will most +likely overfit and won't have any relevance on unseen testing data. -This platform proposes a randomized search for optimizing hyperparamter on the given task. In this example, -we first will analyze how it works and then how to use it. +This platform proposes a randomized search and a grid search to optimize +hyper-parameters. In this example, we first will analyze the theory and +then how to use it. Understanding train/test split ------------------------------ -In order to provide robust results, this platform splits the dataset in a training set, tha will be used by the -classifier to optimize their hyper-parameter and learn a relevant model, and a testing set that will take no part in -the learning process and serve as unseen data to estimate each model's generalization capacity. +In order to provide robust results, this platform splits the dataset in a +training set, that will be used by the classifier to optimize their +hyper-parameter and learn a relevant model, and a testing set that will take +no part in the learning process and serve as unseen data to estimate each +model's generalization capacity. -This split is controlled by the config file's argument ``split:``. It uses a float to pass the ratio between the size of the testing set and the training set : -:math:`\text{split} = \frac{\text{test size}}{\text{train size}}`. In order to be as fare as possible, this split is made by keeping the ratio btween each class in the training set and in the testing set. +This split ratio is controlled by the config file's argument ``split:``. It uses a float to pass the ratio between the size of the testing set and the training set : +:math:`\text{split} = \frac{\text{test size}}{\text{dataset size}}`. In order to be as fair as possible, this split is made by keeping the ratio between each class in the training set and in the testing set. So if a dataset has 100 examples with 60% of them in class A, and 40% of them in class B, using ``split: 0.2`` will generate a training set with 48 examples of class A and 32 examples of class B and a testing set with 12 examples of class A and 8 examples of class B. -Ths process uses sklearn's StratifiedShuffleSplit_ to split the dataset at random while being reproductilbe thanks to the random state. +Ths process uses sklearn's StratifiedShuffleSplit_ to split the dataset at random while being reproductible thanks to the random_state. .. _StratifiedShuffleSplit: https://scikit-learn.org/stable/modules/generated/sklearn.model_selection.StratifiedShuffleSplit.html Understanding hyper-parameter optimization ------------------------------------------ -As hyper-paramters are task dependant, there are two ways in the platform to set their value : +As hyper-parameters are task dependant, there are three ways in the platform to set their value : + +- If you know the value (or a set of values), specify them at the end of the config file for each algorithm you want to test, and use ``hps_type: None`` in the classifiaction section of the config file. This will bypass the optimization process to run the algorithm on the specified values. +- If you have several possible values in mind, specify them in the config file and use ``hps_type: 'Grid'`` to run a grid search on the possible values. +- If you have no ideas on the values, the platform proposes a random search for hyper-parameter optimization. + +Grid search +<<<<<<<<<<< + +The grid search is useful when one has several possible sets of hyper-parameters to test, as it is faster thant random-search but requires a relevant prior on the classification task. + +In order to use grid search in SuMMIT, one has to specify ``hps_type: "Grid"`` in the config file and provide the values for each parameter of each algorithm in ``hps_args:``. +For example, let us suppose that one wants to run a decision tree but wants to try several depth values (1,5,10), then one has to specify in the config file : + +.. code-block:: yaml + + hps_type: "Grid" + hps_args: + decision_tree: + max_depth: [1,5,10] + +For more complex classifiers this process can be quite long, but it allows a shorter computational time. -- If you know the value (or a set of values), specify them at the end of the config file for each algorithm you want to test, and use ``hps_type: None`` in the classifiaction section of the config file. This will set the Hyper Parameter Search to None, and bypass the optimization process to run the algorithm on the specified values. -- If you don't know the value, the platform proposes a random search for hyper-parameter optimization. Random search <<<<<<<<<<<<< -The random search is one of the most efficient while fairest method to optimize hyper-parameter. -Thus, for each algorithm in the platform, each of its hyper-paramter is provided with distribution of possible values, +The random search is one of the most efficient while fairest method to optimize hyper-parameter without any prior knowledge on the dataset. +Thus, for each algorithm in the platform, each of its hyper-parameter is provided with a distribution of possible values, (for example, the decision tree's max depth parameter is provided with a uniform distribution between 1 and 300). The random search method will randomly select hyper-parameters within this distribution and evaluate the performance of the classifier with this configuration. It will repeat that process with different randomly selected sets of hyper-parameter and keep the best configuration performance-wise. -In the config file, to enable random search, set the ``hps_type:`` line to ``hps_type: "randomized_search"`` and to -control the number of draws, use the ``hps_iter:`` line. +In the config file, to enable random search, set the ``hps_type:`` line to ``hps_type: "Random"``. +The the randomized search can be configured with two arguments : + +.. code-block:: yaml + + hps_type: "Random" + hps_args: + n_iter: 5 + equivalent_draws: True + +The ``n_iter`` parameter controls the number of random draws for each classifier +and if ``equivalent_draws`` is set to ``True``, then the multiview classifiers +will be allowed :math:`\text{n\_iter} \times \text{n\_views}` iterations, +to compensate the fact that they have to solve a musch more complex problem than the monoview ones. K-folds cross-validation <<<<<<<<<<<<<<<<<<<<<<<< -During the process of optimizing the hyper-parameter, the random serach has to estimate the perofmance of the classifier. +During the process of optimizing the hyper-parameters, the random search has to estimate the performance of each classifier. -In order to do so, the platform uses k-folds cross-validation. This method consists in splitting the training set in -:math:`k` equal sub-sets, training the classifier (with the randomly chose hyper-parameters) on :math:`k-1` subsets an -testing it on the last one, evaluating it's predictive performance. +To do so, the platform uses k-folds cross-validation. This method consists in splitting the training set in +:math:`k` equal sub-sets, training the classifier (with the hyper-parameters to evaluate) on :math:`k-1` subsets an +testing it on the last one, evaluating it's predictive performance on unseen data. This learning-and-testing process is repeated :math:`k` times and the estimated performance is the mean of the performance on each testing set. @@ -90,7 +127,7 @@ This example will focus only on some lines of the configuration file : - ``split:``, controlling the ration of size between the testing set and the training set, - ``hps_type:``, controlling the type of hyper-parameter search, -- ``hps_iter:``, controlling the number of random draws during the hyper-parameter search, +- ``hps_args:``, controlling the parameters of the hyper-parameters search method, - ``nb_folds:``, controlling the number of folds in the cross-validation process. Example 2.1 : No hyper-parameter optimization, impact of split size @@ -107,17 +144,17 @@ three lines in the configuration file are useful : - ``type:`` in which one has to specify which type of algorithms are needed, here we used ``type: ["monoview","multiview"]``, - ``algos_monoview:`` in which one specifies the names of the monoview algorithms to run, here we used : ``algos_monoview: ["decision_tree", "adaboost", ]`` -- ``algos_multiview:`` is the same but with multiview algorithms, here we used : `` algos_multiview: ["majority_voting_fusion", ]`` +- ``algos_multiview:`` is the same but with multiview algorithms, here we used : ``algos_multiview: ["majority_voting_fusion", ]`` -In order for the platofrm to understand the names, the user has to give the name of the python module in which the classifier is implemented in the platform. +In order for the platform to understand the names, the user has to give the name of the python module in which the classifier is implemented in the platform. In the config file, the default values for adaboost's hyper-parameters are : .. code-block:: yaml adaboost: - n_estimators: [50] - base_estimator: ["DecisionTreeClassifier"] + n_estimators: 50 + base_estimator: "DecisionTreeClassifier" (see `adaboost's sklearn's page <https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.AdaBoostClassifier.html#sklearn.ensemble.AdaBoostClassifier>`_ for more information) @@ -126,9 +163,9 @@ For decision_tree : .. code-block:: yaml decision_tree: - max_depth: [10] - criterion: ["gini"] - splitter: ["best"] + max_depth: 10 + criterion: "gini" + splitter: "best" (`sklearn's decision tree <https://scikit-learn.org/stable/modules/generated/sklearn.tree.DecisionTreeClassifier.html>`_) @@ -137,12 +174,12 @@ And for the late fusion majority vote : .. code-block:: yaml majority_voting_fusion: - classifier_names: [["decision_tree", "decision_tree", "decision_tree", ]] + classifier_names: ["decision_tree", "decision_tree", "decision_tree", ] classifier_configs: decision_tree: - max_depth: [1] - criterion: ["gini"] - splitter: ["best"] + max_depth: 1 + criterion: "gini" + splitter: "best" (It will build a vote with one decision tree on each view, with the specified configuration for the decision trees) @@ -182,10 +219,10 @@ TODO COMMENT **Conclusion** -THe impact of split ratio : dataset related. +The impact of split ratio : dataset related. -Example 2.2 : Usage of hyper-parameter optimization : -<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< +Example 2.2 : Usage of randomized hyper-parameter optimization : +<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< In the previous example, we have seen that the split ratio has an impact on the computational time. But the most time-consuming task is optimizing the hyper parameters. @@ -196,7 +233,8 @@ However, most of the time, they are unknown to the user, and then have to be opt In this example, we will use the hyper-parameter optimization method implemented in the platform, to do so we will use three lines of the config file : - ``hps_type:``, controlling the type of hyper-parameter search, -- ``hps_iter:``, controlling the number of random draws during the hyper-parameter search, +- ``n_iter:``, controlling the number of random draws during the hyper-parameter search, +- ``equivalent_draws``, controlling the number fo draws for multiview algorithms, - ``nb_folds:``, controlling the number of folds in the cross-validation process. So if you run ``example 2.2.1`` with : @@ -206,16 +244,12 @@ So if you run ``example 2.2.1`` with : >>> from multiview_platform.execute import execute >>> execute("example2.2.1") -The ``hps_type`` argument is set to ``"randomised_search"``, which is at the moment the only hyper-parameter optimization method implemented in the platform. -The ``hps_iter`` argument is set to ``5``, +The ``hps_type`` argument is set to ``"Random"``, which is at the moment the only hyper-parameter optimization method implemented in the platform. +The ``n_iter`` argument is set to ``5``, +The ``equivalent_draws`` argument is set to ``True``, The ``nb_folds`` argument is set o ``5``. -**WARNING : The "csv-table" directive's ":file:" and ":url:" options represent a potential security holes. They can be disabled with the "file_insertion_enabled" runtime setting.** - -.. csv-table:: - :file: ./images/result_default_hp_high_train.csv - -Here, we used ``split: 0.2`` and the results are far better than with the preset of hyper paramters, as the classifiers are able to fit the task. +Here, we used ``split: 0.2`` and the results are far better than with the preset of hyper parameters, as the classifiers are able to fit the task. The computing time should be longer than the previous examples. Let's see the pseudo code of the benchmark, while using the hyper-parameter optimization:: @@ -241,32 +275,61 @@ The computing time should be longer than the previous examples. Let's see the ps └ learn on the whole training set -The instructions inside the brackets are the one that the HP optimization adds. So for the monoview algorithms, +The instructions inside the brackets are the one that the hyper-parameter +optimization adds. So for the monoview algorithms, the computational impact of the HPO is bigger than for the multiview algorithms. -The choice made here is to allow the same amount of draws for each HPO. However, as many of the multiview algorithms +The choice made here is to allow the same amount of draws for each HPO. However, +as many of the multiview algorithms are more complex and have bigger HP spaces, allowing them more draws, can be a defendable idea. -However, for most of the tasks, using the HPO is a necessity to be able to get the most of each classifier in terms -of performance. +However, for most of the tasks, using the HPO is a necessity to be able to +get the most of each classifier in terms of performance. -The HPO is a matter of tradeoff between precision and computational demand. For most algorithms the more draws you -allow, the closer to ideal the outputted HP will be, however, many draws mean much longer computational time. +The HPO is a matter of trade-off between precision and computational demand. +For most algorithms the more draws you allow, the closer to ideal the outputted +HP will be, however, many draws mean much longer computational time. -Similarly, the number of folds has a great importance in estimating the performance of a specific Hp combination, -and the more folds the but more folds take also more time, as one has to train more times and on bigger parts of the +Similarly, the number of folds has a great importance in estimating the +performance of a specific HP combination, and the more folds the but more folds +take also more time, as one has to train more times and on bigger parts of the dataset. -The figure below represents the duration of the execution on a personal computer with different fold/draws settings : +The figure below represents the duration of the execution on a personal computer +with different fold/draws settings : .. raw:: html :file: ./images/durations.html -The duration is in seconds, and we used 2,5,10,15,20 as values for ``nb_folds`` and 2,5,10,20,30,50,100 for ``hps_iter`` with two monoview classifiers and one multiview classifier on simulated data. +The duration is in seconds, and we used 2,5,10,15,20 as values for ``nb_folds`` +and 2,5,10,20,30,50,100 for ``n_iter`` with two monoview classifiers and one +multiview classifier on simulated data. .. note:: - In order to compensate the fact that the multiview classifiers have more complex problems to solve, it is possible to use ``"randomized_search-equiv"`` as the HPS optimization method to allow - ``hps_iter`` draws for the monoview classifiers and ``hps_iter * nb_view`` draws for the ones that are multiview. + The hyper-parameter optimization process generates a report for each + classifier, providing each set of parameters and its cross-validation score, + to be able to extract the relevant parameters for a future benchmark on the + same dataset. +Example 2.3 : Usage of grid search : +<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< + +In SuMMIT, it is possible to use a grid search if one has several possible +hyper-parameter values in mind to test. + +In order to set up the grid search one has to provide in the ``hps_args:`` +argument the names, parameters and values to test. Let us say we want to try +several depths for a decision tree, and several ``C`` values for a +linear `SVM <ttps://scikit-learn.org/stable/modules/generated/sklearn.svm.SVC.html>`_: + +.. code-block:: yaml + + hps_type: "Grid" + hps_args: + decision_tree: + max_depth: [1,2,3,4,5] + svm_linear: + C: [0.1,0.2,0.3,0.4,0.5] +TODO : a more complex example diff --git a/docs/build/analyzeresult.html b/docs/build/analyzeresult.html index 706d0209..4d317bf2 100644 --- a/docs/build/analyzeresult.html +++ b/docs/build/analyzeresult.html @@ -25,9 +25,6 @@ <li class="right" style="margin-right: 10px"> <a href="genindex.html" title="General Index" accesskey="I">index</a></li> - <li class="right" > - <a href="py-modindex.html" title="Python Module Index" - >modules</a> |</li> <li class="nav-item nav-item-0"><a href="index.html">MultiviewPlatform 0 documentation</a> »</li> </ul> </div> @@ -37,440 +34,8 @@ <div class="bodywrapper"> <div class="body" role="main"> - <div class="section" id="module-multiview_platform.mono_multi_view_classifiers.result_analysis"> -<span id="result-analysis-module"></span><h1>Result analysis module<a class="headerlink" href="#module-multiview_platform.mono_multi_view_classifiers.result_analysis" title="Permalink to this headline">¶</a></h1> -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.result_analysis.analyzeMulticlass"> -<code class="descname">analyzeMulticlass</code><span class="sig-paren">(</span><em>results</em>, <em>stats_iter</em>, <em>benchmark_argument_dictionaries</em>, <em>nb_examples</em>, <em>nb_labels</em>, <em>multiclass_labels</em>, <em>metrics</em>, <em>classification_indices</em>, <em>directories</em>, <em>example_ids</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.result_analysis.analyzeMulticlass" title="Permalink to this definition">¶</a></dt> -<dd><p>Used to transform one versus one results in multiclass results and to publish it</p> -</dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.result_analysis.analyze_biclass"> -<code class="descname">analyze_biclass</code><span class="sig-paren">(</span><em>results</em>, <em>benchmark_argument_dictionaries</em>, <em>stats_iter</em>, <em>metrics</em>, <em>example_ids</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.result_analysis.analyze_biclass" title="Permalink to this definition">¶</a></dt> -<dd><p>Used to extract and format the results of the different biclass experimentations performed.</p> -<table class="docutils field-list" frame="void" rules="none"> -<col class="field-name" /> -<col class="field-body" /> -<tbody valign="top"> -<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple"> -<li><strong>results</strong> (<em>list</em>) – The result list returned by the bencmark execution function. For each executed benchmark, contains -a flag & a result element. -The flag is a way to identify to which benchmark the results belong, formatted this way : -<cite>flag = iter_index, [classifierPositive, classifierNegative]</cite> with -- <cite>iter_index</cite> the index of the statistical iteration -- <cite>[classifierPositive, classifierNegative]</cite> the indices of the labels considered positive and negative -by the classifier (mainly useful for one versus one multiclass classification).</li> -<li><strong>benchmark_argument_dictionaries</strong> (<em>list of dicts</em>) – The list of all the arguments passed to the benchmark executing functions.</li> -<li><strong>statsIter</strong> (<em>int</em>) – The number of statistical iterations.</li> -<li><strong>metrics</strong> (<em>list of lists</em>) – THe list containing the metrics and their configuration.</li> -</ul> -</td> -</tr> -<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first"><strong>biclassResults</strong> – The list contains a dictionary for each statistical iteration. This dictionary contains a dictionary for each -label combination, regrouping the scores for each metrics and the information useful to plot errors on examples.</p> -</td> -</tr> -<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first last">list of dicts of dicts</p> -</td> -</tr> -</tbody> -</table> -</dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.result_analysis.analyze_iter_multiclass"> -<code class="descname">analyze_iter_multiclass</code><span class="sig-paren">(</span><em>multiclass_results</em>, <em>directory</em>, <em>stats_iter</em>, <em>metrics</em>, <em>data_base_name</em>, <em>nb_examples</em>, <em>example_ids</em>, <em>multiclass_labels</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.result_analysis.analyze_iter_multiclass" title="Permalink to this definition">¶</a></dt> -<dd><p>Used to mean the multiclass results on the iterations executed with different random states</p> -</dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.result_analysis.analyzebiclass_iter"> -<code class="descname">analyzebiclass_iter</code><span class="sig-paren">(</span><em>biclass_results</em>, <em>stats_iter</em>, <em>directory</em>, <em>labels_dictionary</em>, <em>data_base_name</em>, <em>example_ids</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.result_analysis.analyzebiclass_iter" title="Permalink to this definition">¶</a></dt> -<dd><p>Used to format the results in order to plot the mean results on the iterations</p> -</dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.result_analysis.autolabel"> -<code class="descname">autolabel</code><span class="sig-paren">(</span><em>rects</em>, <em>ax</em>, <em>set=1</em>, <em>std=None</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.result_analysis.autolabel" title="Permalink to this definition">¶</a></dt> -<dd><p>Used to print the score below the bars.</p> -<table class="docutils field-list" frame="void" rules="none"> -<col class="field-name" /> -<col class="field-body" /> -<tbody valign="top"> -<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple"> -<li><strong>rects</strong> (<em>pyplot bar object</em>) – THe bars.</li> -<li><strong>ax</strong> (<em>pyplot ax object</em>) – The ax.</li> -<li><strong>set</strong> (<em>integer</em>) – 1 means the test scores, anything else means the train score</li> -<li><strong>std</strong> (<em>None</em><em> or </em><em>array</em>) – The standard deviations in the case of statsIter results.</li> -</ul> -</td> -</tr> -</tbody> -</table> -</dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.result_analysis.format_previous_results"> -<code class="descname">format_previous_results</code><span class="sig-paren">(</span><em>biclass_results</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.result_analysis.format_previous_results" title="Permalink to this definition">¶</a></dt> -<dd><p>Formats each statistical iteration’s result into a mean/std analysis for -the metrics and adds the errors of each statistical iteration.</p> -<table class="docutils field-list" frame="void" rules="none"> -<col class="field-name" /> -<col class="field-body" /> -<tbody valign="top"> -<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>biclass_results</strong> (<em>The raw results</em><em>, </em><em>for each statistical iteration i contains</em>) – <ul class="simple"> -<li>biclass_results[i][“metrics_scores”] is a dictionary with a pd.dataframe -for each metrics</li> -<li>biclass_results[i][“example_errors”], a dicaitonary with a np.array</li> -</ul> -<p>for each classifier.</p> -</td> -</tr> -<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><ul class="simple"> -<li><strong>metrics_analysis</strong> (<em>The mean and std dataframes for each metrics</em>)</li> -<li><strong>error_analysis</strong> (<em>A dictionary containing the added errors</em>) – arrays for each classifier</li> -</ul> -</td> -</tr> -</tbody> -</table> -</dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.result_analysis.gen_error_data"> -<code class="descname">gen_error_data</code><span class="sig-paren">(</span><em>example_errors</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.result_analysis.gen_error_data" title="Permalink to this definition">¶</a></dt> -<dd><p>Used to format the error data in order to plot it efficiently. The data is saves in a <cite>.csv</cite> file.</p> -<table class="docutils field-list" frame="void" rules="none"> -<col class="field-name" /> -<col class="field-body" /> -<tbody valign="top"> -<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple"> -<li><strong>example_errors</strong> (<em>dict of dicts of np.arrays</em>) – A dictionary conatining all the useful data. Organized as : -<cite>example_errors[<classifier_name>][“error_on_examples”]</cite> is a np.array of ints with a -- 1 if the classifier <cite><classifier_name></cite> classifier well the example, -- 0 if it fail to classify the example, -- -100 if it did not classify the example (multiclass one versus one).</li> -<li><strong>base_file_name</strong> (<em>list of str</em>) – The name of the file in which the figure will be saved (“2D_plot_data.csv” and “bar_plot_data.csv” will -be added at the end).</li> -<li><strong>nbCopies</strong> (<em>int</em><em>, </em><em>optinal</em><em>, </em><em>default: 2</em>) – The number of times the data is copied (classifier wise) in order for the figure to be more readable.</li> -</ul> -</td> -</tr> -<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last"><ul class="simple"> -<li><strong>nbClassifiers</strong> (<em>int</em>) – Number of different classifiers.</li> -<li><strong>nbExamples</strong> (<em>int</em>) – NUmber of examples.</li> -<li><strong>nbCopies</strong> (<em>int</em>) – The number of times the data is copied (classifier wise) in order for the figure to be more readable.</li> -<li><strong>classifiers_names</strong> (<em>list of strs</em>) – The names fo the classifiers.</li> -<li><strong>data</strong> (np.array of shape <cite>(nbClassifiers, nbExamples)</cite>) – A matrix with zeros where the classifier failed to classifiy the example, ones where it classified it well -and -100 if the example was not classified.</li> -<li><strong>error_on_examples</strong> (np.array of shape <cite>(nbExamples,)</cite>) – An array counting how many classifiers failed to classifiy each examples.</li> -</ul> -</p> -</td> -</tr> -</tbody> -</table> -</dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.result_analysis.gen_metrics_scores_multiclass"> -<code class="descname">gen_metrics_scores_multiclass</code><span class="sig-paren">(</span><em>results</em>, <em>true_labels</em>, <em>metrics_list</em>, <em>arguments_dictionaries</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.result_analysis.gen_metrics_scores_multiclass" title="Permalink to this definition">¶</a></dt> -<dd><p>Used to add all the metrics scores to the multiclass result structure for each clf and each iteration</p> -</dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.result_analysis.get_arguments"> -<code class="descname">get_arguments</code><span class="sig-paren">(</span><em>benchmark_argument_dictionaries</em>, <em>flag</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.result_analysis.get_arguments" title="Permalink to this definition">¶</a></dt> -<dd><p>Used to get the arguments passed to the benchmark executing function corresponding to the flag of a -biclass experimentation.</p> -<table class="docutils field-list" frame="void" rules="none"> -<col class="field-name" /> -<col class="field-body" /> -<tbody valign="top"> -<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple"> -<li><strong>flag</strong> (<em>list</em>) – The needed experimentation’s flag.</li> -<li><strong>benchmark_argument_dictionaries</strong> (<em>list of dicts</em>) – The list of all the arguments passed to the benchmark executing functions.</li> -</ul> -</td> -</tr> -<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first"><strong>benchmarkArgumentDictionary</strong> – All the arguments passed to the benchmark executing function for the needed experimentation.</p> -</td> -</tr> -<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first last">dict</p> -</td> -</tr> -</tbody> -</table> -</dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.result_analysis.get_error_on_labels_multiclass"> -<code class="descname">get_error_on_labels_multiclass</code><span class="sig-paren">(</span><em>multiclass_results</em>, <em>multiclass_labels</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.result_analysis.get_error_on_labels_multiclass" title="Permalink to this definition">¶</a></dt> -<dd><p>Used to add all the arrays showing on which example there is an error for each clf and each iteration</p> -</dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.result_analysis.get_example_errors_biclass"> -<code class="descname">get_example_errors_biclass</code><span class="sig-paren">(</span><em>groud_truth</em>, <em>results</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.result_analysis.get_example_errors_biclass" title="Permalink to this definition">¶</a></dt> -<dd><p>Used to get for each classifier and each example whether the classifier has misclassified the example or not.</p> -<table class="docutils field-list" frame="void" rules="none"> -<col class="field-name" /> -<col class="field-body" /> -<tbody valign="top"> -<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple"> -<li><strong>ground_truth</strong> (<em>numpy array of 0</em><em>, </em><em>1 and -100</em><em> (</em><em>if multiclass</em><em>)</em>) – The array with the real labels of the examples</li> -<li><strong>results</strong> (<em>list of MonoviewResult and MultiviewResults objects</em>) – A list containing all the resluts for all the mono- & multi-view experimentations.</li> -</ul> -</td> -</tr> -<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first"><strong>example_errors</strong> – For each classifier, has an entry with a <cite>np.array</cite> over the examples, with a 1 if the examples was -well-classified, a 0 if not and if it’s multiclass classification, a -100 if the examples was not seen during -the one versus one classification.</p> -</td> -</tr> -<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first last">dict of np.array</p> -</td> -</tr> -</tbody> -</table> -</dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.result_analysis.get_feature_importances"> -<code class="descname">get_feature_importances</code><span class="sig-paren">(</span><em>result</em>, <em>feature_names=None</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.result_analysis.get_feature_importances" title="Permalink to this definition">¶</a></dt> -<dd><p>Extracts the feature importance from the monoview results and stores them in a dictionnary : -feature_importance[view_name] is a pandas.DataFrame of size n_feature*n_clf -containing a score of importance for each feature.</p> -<table class="docutils field-list" frame="void" rules="none"> -<col class="field-name" /> -<col class="field-body" /> -<tbody valign="top"> -<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>result</strong> (<em>list of results</em>) – </td> -</tr> -<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><strong>feature_importances</strong> – The dictionary containing all the feature importance for each view as pandas DataFrames</td> -</tr> -<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body">dict of pd.DataFrame</td> -</tr> -</tbody> -</table> -</dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.result_analysis.get_fig_size"> -<code class="descname">get_fig_size</code><span class="sig-paren">(</span><em>nb_results</em>, <em>min_size=15</em>, <em>multiplier=1.0</em>, <em>bar_width=0.35</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.result_analysis.get_fig_size" title="Permalink to this definition">¶</a></dt> -<dd><p>Used to get the image size to save the figure and the bar width, depending on the number of scores to plot.</p> -<table class="docutils field-list" frame="void" rules="none"> -<col class="field-name" /> -<col class="field-body" /> -<tbody valign="top"> -<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple"> -<li><strong>nb_results</strong> (<em>int</em>) – The number of couple of bar to plot.</li> -<li><strong>min_size</strong> (<em>int</em>) – The minimum size of the image, if there are few classifiers to plot.</li> -<li><strong>multiplier</strong> (<em>float</em>) – The ratio between the image size and the number of classifiers.</li> -<li><strong>bar_width</strong> (<em>float</em>) – The width of the bars in the figure. Mainly here to centralize bar_width.</li> -</ul> -</td> -</tr> -<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last"><ul class="simple"> -<li><strong>fig_kwargs</strong> (<em>dict of arguments</em>) – The argument restraining the size of the figure, usable directly in the <cite>subplots</cite> function of -<cite>matplotlib.pyplot</cite>.</li> -<li><strong>bar_width</strong> (<em>float</em>) – The width of the bars in the figure. Mainly here to centralize bar_width.</li> -</ul> -</p> -</td> -</tr> -</tbody> -</table> -</dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.result_analysis.get_metrics_scores_biclass"> -<code class="descname">get_metrics_scores_biclass</code><span class="sig-paren">(</span><em>metrics</em>, <em>results</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.result_analysis.get_metrics_scores_biclass" title="Permalink to this definition">¶</a></dt> -<dd><p>Used to extract metrics scores in case of biclass classification</p> -<table class="docutils field-list" frame="void" rules="none"> -<col class="field-name" /> -<col class="field-body" /> -<tbody valign="top"> -<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple"> -<li><strong>metrics</strong> (<em>list of lists</em>) – The metrics names with configuration metrics[i][0] = name of metric i</li> -<li><strong>results</strong> (<em>list of MonoviewResult and MultiviewResults objects</em>) – A list containing all the results for all the monoview experimentations.</li> -</ul> -</td> -</tr> -<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first"><strong>metricsScores</strong> – Regroups all the scores for each metrics for each classifier and for the train and test sets. -organized as : --<cite>metricScores[metric_name][“classifiers_names”]</cite> is a list of all the classifiers available for this metric, --<cite>metricScores[metric_name][“train_scores”]</cite> is a list of all the available classifiers scores on the train set, --<cite>metricScores[metric_name][“test_scores”]</cite> is a list of all the available classifiers scores on the test set.</p> -</td> -</tr> -<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first last">dict of dict of list</p> -</td> -</tr> -</tbody> -</table> -</dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.result_analysis.get_results"> -<code class="descname">get_results</code><span class="sig-paren">(</span><em>results</em>, <em>stats_iter</em>, <em>nb_multiclass</em>, <em>benchmark_argument_dictionaries</em>, <em>multiclass_labels</em>, <em>metrics</em>, <em>classification_indices</em>, <em>directories</em>, <em>directory</em>, <em>labels_dictionary</em>, <em>nb_examples</em>, <em>nb_labels</em>, <em>example_ids</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.result_analysis.get_results" title="Permalink to this definition">¶</a></dt> -<dd><p>Used to analyze the results of the previous benchmarks</p> -</dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.result_analysis.iterCmap"> -<code class="descname">iterCmap</code><span class="sig-paren">(</span><em>statsIter</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.result_analysis.iterCmap" title="Permalink to this definition">¶</a></dt> -<dd><p>Used to generate a colormap that will have a tick for each iteration : the whiter the better.</p> -<table class="docutils field-list" frame="void" rules="none"> -<col class="field-name" /> -<col class="field-body" /> -<tbody valign="top"> -<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>statsIter</strong> (<em>int</em>) – The number of statistical iterations.</td> -</tr> -<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><ul class="simple"> -<li><strong>cmap</strong> (<em>matplotlib.colors.ListedColorMap object</em>) – The colormap.</li> -<li><strong>norm</strong> (<em>matplotlib.colors.BoundaryNorm object</em>) – The bounds for the colormap.</li> -</ul> -</td> -</tr> -</tbody> -</table> -</dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.result_analysis.plot_2d"> -<code class="descname">plot_2d</code><span class="sig-paren">(</span><em>data</em>, <em>classifiers_names</em>, <em>nbClassifiers</em>, <em>nbExamples</em>, <em>file_name</em>, <em>minSize=10</em>, <em>labels=None</em>, <em>width_denominator=2.0</em>, <em>height_denominator=20.0</em>, <em>stats_iter=1</em>, <em>use_plotly=True</em>, <em>example_ids=None</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.result_analysis.plot_2d" title="Permalink to this definition">¶</a></dt> -<dd><p>Used to generate a 2D plot of the errors.</p> -<table class="docutils field-list" frame="void" rules="none"> -<col class="field-name" /> -<col class="field-body" /> -<tbody valign="top"> -<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple"> -<li><strong>data</strong> (np.array of shape <cite>(nbClassifiers, nbExamples)</cite>) – A matrix with zeros where the classifier failed to classifiy the example, ones where it classified it well -and -100 if the example was not classified.</li> -<li><strong>classifiers_names</strong> (<em>list of str</em>) – The names of the classifiers.</li> -<li><strong>nbClassifiers</strong> (<em>int</em>) – The number of classifiers.</li> -<li><strong>nbExamples</strong> (<em>int</em>) – The number of examples.</li> -<li><strong>nbCopies</strong> (<em>int</em>) – The number of times the data is copied (classifier wise) in order for the figure to be more readable</li> -<li><strong>file_name</strong> (<em>str</em>) – The name of the file in which the figure will be saved (“error_analysis_2D.png” will be added at the end)</li> -<li><strong>minSize</strong> (<em>int</em><em>, </em><em>optinal</em><em>, </em><em>default: 10</em>) – The minimum width and height of the figure.</li> -<li><strong>width_denominator</strong> (<em>float</em><em>, </em><em>optional</em><em>, </em><em>default: 1.0</em>) – To obtain the image width, the number of classifiers will be divided by this number.</li> -<li><strong>height_denominator</strong> (<em>float</em><em>, </em><em>optional</em><em>, </em><em>default: 1.0</em>) – To obtain the image width, the number of examples will be divided by this number.</li> -<li><strong>stats_iter</strong> (<em>int</em><em>, </em><em>optional</em><em>, </em><em>default: 1</em>) – The number of statistical iterations realized.</li> -</ul> -</td> -</tr> -</tbody> -</table> -</dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.result_analysis.plot_errors_bar"> -<code class="descname">plot_errors_bar</code><span class="sig-paren">(</span><em>error_on_examples</em>, <em>nbClassifiers</em>, <em>nbExamples</em>, <em>fileName</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.result_analysis.plot_errors_bar" title="Permalink to this definition">¶</a></dt> -<dd><p>Used to generate a barplot of the muber of classifiers that failed to classify each examples</p> -<table class="docutils field-list" frame="void" rules="none"> -<col class="field-name" /> -<col class="field-body" /> -<tbody valign="top"> -<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple"> -<li><strong>error_on_examples</strong> (np.array of shape <cite>(nbExamples,)</cite>) – An array counting how many classifiers failed to classifiy each examples.</li> -<li><strong>classifiers_names</strong> (<em>list of str</em>) – The names of the classifiers.</li> -<li><strong>nbClassifiers</strong> (<em>int</em>) – The number of classifiers.</li> -<li><strong>nbExamples</strong> (<em>int</em>) – The number of examples.</li> -<li><strong>fileName</strong> (<em>str</em>) – The name of the file in which the figure will be saved (“error_analysis_2D.png” will be added at the end)</li> -</ul> -</td> -</tr> -</tbody> -</table> -</dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.result_analysis.plot_metric_scores"> -<code class="descname">plot_metric_scores</code><span class="sig-paren">(</span><em>train_scores</em>, <em>test_scores</em>, <em>names</em>, <em>nb_results</em>, <em>metric_name</em>, <em>file_name</em>, <em>tag=''</em>, <em>train_STDs=None</em>, <em>test_STDs=None</em>, <em>use_plotly=True</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.result_analysis.plot_metric_scores" title="Permalink to this definition">¶</a></dt> -<dd><p>Used to plot and save the score barplot for a specific metric.</p> -<table class="docutils field-list" frame="void" rules="none"> -<col class="field-name" /> -<col class="field-body" /> -<tbody valign="top"> -<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple"> -<li><strong>train_scores</strong> (<em>list</em><em> or </em><em>np.array of floats</em>) – The scores of each classifier on the training set.</li> -<li><strong>test_scores</strong> (<em>list</em><em> or </em><em>np.array of floats</em>) – The scores of each classifier on the testing set.</li> -<li><strong>names</strong> (<em>list</em><em> or </em><em>np.array of strs</em>) – The names of all the classifiers.</li> -<li><strong>nb_results</strong> (<em>int</em>) – The number of classifiers to plot.</li> -<li><strong>metric_name</strong> (<em>str</em>) – The plotted metric’s name</li> -<li><strong>file_name</strong> (<em>str</em>) – The name of the file where the figure will be saved.</li> -<li><strong>tag</strong> (<em>str</em>) – Some text to personalize the title, must start with a whitespace.</li> -<li><strong>train_STDs</strong> (<em>np.array of floats</em><em> or </em><em>None</em>) – The array containing the standard deviations for the averaged scores on the training set.</li> -<li><strong>test_STDs</strong> (<em>np.array of floats</em><em> or </em><em>None</em>) – The array containing the standard deviations for the averaged scores on the testing set.</li> -</ul> -</td> -</tr> -</tbody> -</table> -</dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.result_analysis.publishMetricsGraphs"> -<code class="descname">publishMetricsGraphs</code><span class="sig-paren">(</span><em>metrics_scores</em>, <em>directory</em>, <em>database_name</em>, <em>labels_names</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.result_analysis.publishMetricsGraphs" title="Permalink to this definition">¶</a></dt> -<dd><p>Used to sort the results (names and both scores) in descending test score order.</p> -<table class="docutils field-list" frame="void" rules="none"> -<col class="field-name" /> -<col class="field-body" /> -<tbody valign="top"> -<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple"> -<li><strong>metrics_scores</strong> (<em>dict of dicts of lists</em><em> or </em><em>np.arrays</em>) – Keys : The names of the metrics. -Values : The scores and names of each classifier .</li> -<li><strong>directory</strong> (<em>str</em>) – The path to the directory where the figures will be saved.</li> -<li><strong>database_name</strong> (<em>str</em>) – The name of the database on which the experiments where conducted.</li> -<li><strong>labels_names</strong> (<em>list of strs</em>) – The name corresponding to each numerical label.</li> -</ul> -</td> -</tr> -<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first"></p> -</td> -</tr> -<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first last">results</p> -</td> -</tr> -</tbody> -</table> -</dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.result_analysis.sort_by_test_score"> -<code class="descname">sort_by_test_score</code><span class="sig-paren">(</span><em>train_scores</em>, <em>test_scores</em>, <em>names</em>, <em>train_STDs=None</em>, <em>test_STDs=None</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.result_analysis.sort_by_test_score" title="Permalink to this definition">¶</a></dt> -<dd><p>Used to sort the results (names and both scores) in descending test score order.</p> -<table class="docutils field-list" frame="void" rules="none"> -<col class="field-name" /> -<col class="field-body" /> -<tbody valign="top"> -<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple"> -<li><strong>train_scores</strong> (<em>np.array of floats</em>) – The scores of each classifier on the training set.</li> -<li><strong>test_scores</strong> (<em>np.array of floats</em>) – The scores of each classifier on the testing set.</li> -<li><strong>names</strong> (<em>np.array of strs</em>) – The names of all the classifiers.</li> -<li><strong>train_STDs</strong> (<em>np.array of floats</em><em> or </em><em>None</em>) – The array containing the standard deviations for the averaged scores on the training set.</li> -<li><strong>test_STDs</strong> (<em>np.array of floats</em><em> or </em><em>None</em>) – The array containing the standard deviations for the averaged scores on the testing set.</li> -</ul> -</td> -</tr> -<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last"><ul class="simple"> -<li><strong>sorted_names</strong> (<em>np.array of strs</em>) – The names of all the classifiers, sorted in descending test score order.</li> -<li><strong>sorted_train_scores</strong> (<em>np.array of floats</em>) – The scores of each classifier on the training set, sorted in descending test score order.</li> -<li><strong>sorted_test_scores</strong> (<em>np.array of floats</em>) – The scores of each classifier on the testing set, sorted in descending test score order.</li> -<li><strong>sorted_train_STDs</strong> (<em>np.array of floats or None</em>) – The array containing the standard deviations for the averaged scores on the training set, -sorted in descending test score order.</li> -<li><strong>sorted_test_STDs</strong> (<em>np.array of floats or None</em>) – The array containing the standard deviations for the averaged scores on the testing set, -sorted in descending test score order.</li> -</ul> -</p> -</td> -</tr> -</tbody> -</table> -</dd></dl> - + <div class="section" id="result-analysis-module"> +<h1>Result analysis module<a class="headerlink" href="#result-analysis-module" title="Permalink to this headline">¶</a></h1> </div> @@ -508,9 +73,6 @@ sorted in descending test score order.</li> <li class="right" style="margin-right: 10px"> <a href="genindex.html" title="General Index" >index</a></li> - <li class="right" > - <a href="py-modindex.html" title="Python Module Index" - >modules</a> |</li> <li class="nav-item nav-item-0"><a href="index.html">MultiviewPlatform 0 documentation</a> »</li> </ul> </div> diff --git a/docs/build/api.html b/docs/build/api.html index fcbcdee9..ca3b06b9 100644 --- a/docs/build/api.html +++ b/docs/build/api.html @@ -25,9 +25,6 @@ <li class="right" style="margin-right: 10px"> <a href="genindex.html" title="General Index" accesskey="I">index</a></li> - <li class="right" > - <a href="py-modindex.html" title="Python Module Index" - >modules</a> |</li> <li class="nav-item nav-item-0"><a href="index.html">MultiviewPlatform 0 documentation</a> »</li> </ul> </div> @@ -83,9 +80,6 @@ <li class="right" style="margin-right: 10px"> <a href="genindex.html" title="General Index" >index</a></li> - <li class="right" > - <a href="py-modindex.html" title="Python Module Index" - >modules</a> |</li> <li class="nav-item nav-item-0"><a href="index.html">MultiviewPlatform 0 documentation</a> »</li> </ul> </div> diff --git a/docs/build/execution.html b/docs/build/execution.html index aaf6dcd9..d2fd72ac 100644 --- a/docs/build/execution.html +++ b/docs/build/execution.html @@ -25,9 +25,6 @@ <li class="right" style="margin-right: 10px"> <a href="genindex.html" title="General Index" accesskey="I">index</a></li> - <li class="right" > - <a href="py-modindex.html" title="Python Module Index" - >modules</a> |</li> <li class="nav-item nav-item-0"><a href="index.html">MultiviewPlatform 0 documentation</a> »</li> </ul> </div> @@ -37,9 +34,8 @@ <div class="bodywrapper"> <div class="body" role="main"> - <div class="section" id="module-multiview_platform.execute"> -<span id="welcome-to-the-exection-documentation"></span><h1>Welcome to the exection documentation<a class="headerlink" href="#module-multiview_platform.execute" title="Permalink to this headline">¶</a></h1> -<p>This is the execution module, used to execute the code</p> + <div class="section" id="welcome-to-the-exection-documentation"> +<h1>Welcome to the exection documentation<a class="headerlink" href="#welcome-to-the-exection-documentation" title="Permalink to this headline">¶</a></h1> </div> @@ -77,9 +73,6 @@ <li class="right" style="margin-right: 10px"> <a href="genindex.html" title="General Index" >index</a></li> - <li class="right" > - <a href="py-modindex.html" title="Python Module Index" - >modules</a> |</li> <li class="nav-item nav-item-0"><a href="index.html">MultiviewPlatform 0 documentation</a> »</li> </ul> </div> diff --git a/docs/build/genindex.html b/docs/build/genindex.html index e4ced6ff..7283695d 100644 --- a/docs/build/genindex.html +++ b/docs/build/genindex.html @@ -26,9 +26,6 @@ <li class="right" style="margin-right: 10px"> <a href="#" title="General Index" accesskey="I">index</a></li> - <li class="right" > - <a href="py-modindex.html" title="Python Module Index" - >modules</a> |</li> <li class="nav-item nav-item-0"><a href="index.html">MultiviewPlatform 0 documentation</a> »</li> </ul> </div> @@ -42,796 +39,8 @@ <h1 id="index">Index</h1> <div class="genindex-jumpbox"> - <a href="#A"><strong>A</strong></a> - | <a href="#B"><strong>B</strong></a> - | <a href="#C"><strong>C</strong></a> - | <a href="#D"><strong>D</strong></a> - | <a href="#E"><strong>E</strong></a> - | <a href="#F"><strong>F</strong></a> - | <a href="#G"><strong>G</strong></a> - | <a href="#I"><strong>I</strong></a> - | <a href="#M"><strong>M</strong></a> - | <a href="#N"><strong>N</strong></a> - | <a href="#P"><strong>P</strong></a> - | <a href="#R"><strong>R</strong></a> - | <a href="#S"><strong>S</strong></a> - | <a href="#T"><strong>T</strong></a> - | <a href="#U"><strong>U</strong></a> - | <a href="#V"><strong>V</strong></a> </div> -<h2 id="A">A</h2> -<table style="width: 100%" class="indextable genindextable"><tr> - <td style="width: 33%; vertical-align: top;"><ul> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.utils.html#multiview_platform.mono_multi_view_classifiers.utils.dataset.Dataset.add_gaussian_noise">add_gaussian_noise() (Dataset method)</a> -</li> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.html#multiview_platform.mono_multi_view_classifiers.result_analysis.add_new_labels_combination">add_new_labels_combination() (in module multiview_platform.mono_multi_view_classifiers.result_analysis)</a> -</li> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.html#multiview_platform.mono_multi_view_classifiers.result_analysis.add_new_metric">add_new_metric() (in module multiview_platform.mono_multi_view_classifiers.result_analysis)</a> -</li> - <li><a href="analyzeresult.html#multiview_platform.mono_multi_view_classifiers.result_analysis.analyze_biclass">analyze_biclass() (in module multiview_platform.mono_multi_view_classifiers.result_analysis)</a>, <a href="references/multiview_platform.mono_multi_view_classifiers.html#multiview_platform.mono_multi_view_classifiers.result_analysis.analyze_biclass">[1]</a> -</li> - </ul></td> - <td style="width: 33%; vertical-align: top;"><ul> - <li><a href="analyzeresult.html#multiview_platform.mono_multi_view_classifiers.result_analysis.analyze_iter_multiclass">analyze_iter_multiclass() (in module multiview_platform.mono_multi_view_classifiers.result_analysis)</a>, <a href="references/multiview_platform.mono_multi_view_classifiers.html#multiview_platform.mono_multi_view_classifiers.result_analysis.analyze_iter_multiclass">[1]</a> -</li> - <li><a href="analyzeresult.html#multiview_platform.mono_multi_view_classifiers.result_analysis.analyzebiclass_iter">analyzebiclass_iter() (in module multiview_platform.mono_multi_view_classifiers.result_analysis)</a>, <a href="references/multiview_platform.mono_multi_view_classifiers.html#multiview_platform.mono_multi_view_classifiers.result_analysis.analyzebiclass_iter">[1]</a> -</li> - <li><a href="analyzeresult.html#multiview_platform.mono_multi_view_classifiers.result_analysis.analyzeMulticlass">analyzeMulticlass() (in module multiview_platform.mono_multi_view_classifiers.result_analysis)</a>, <a href="references/multiview_platform.mono_multi_view_classifiers.html#multiview_platform.mono_multi_view_classifiers.result_analysis.analyzeMulticlass">[1]</a> -</li> - <li><a href="references/monomulti/exec_classif.html#multiview_platform.mono_multi_view_classifiers.exec_classif.arange_metrics">arange_metrics() (in module multiview_platform.mono_multi_view_classifiers.exec_classif)</a>, <a href="references/multiview_platform.mono_multi_view_classifiers.html#multiview_platform.mono_multi_view_classifiers.exec_classif.arange_metrics">[1]</a> -</li> - <li><a href="analyzeresult.html#multiview_platform.mono_multi_view_classifiers.result_analysis.autolabel">autolabel() (in module multiview_platform.mono_multi_view_classifiers.result_analysis)</a>, <a href="references/multiview_platform.mono_multi_view_classifiers.html#multiview_platform.mono_multi_view_classifiers.result_analysis.autolabel">[1]</a> -</li> - </ul></td> -</tr></table> - -<h2 id="B">B</h2> -<table style="width: 100%" class="indextable genindextable"><tr> - <td style="width: 33%; vertical-align: top;"><ul> - <li><a href="references/monomulti/exec_classif.html#multiview_platform.mono_multi_view_classifiers.exec_classif.benchmark_init">benchmark_init() (in module multiview_platform.mono_multi_view_classifiers.exec_classif)</a>, <a href="references/multiview_platform.mono_multi_view_classifiers.html#multiview_platform.mono_multi_view_classifiers.exec_classif.benchmark_init">[1]</a> -</li> - </ul></td> -</tr></table> - -<h2 id="C">C</h2> -<table style="width: 100%" class="indextable genindextable"><tr> - <td style="width: 33%; vertical-align: top;"><ul> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.utils.html#multiview_platform.mono_multi_view_classifiers.utils.dataset.Dataset.check_selected_label_names">check_selected_label_names() (Dataset method)</a> -</li> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.utils.html#multiview_platform.mono_multi_view_classifiers.utils.hyper_parameter_search.compute_possible_combinations">compute_possible_combinations() (in module multiview_platform.mono_multi_view_classifiers.utils.hyper_parameter_search)</a> -</li> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.utils.html#multiview_platform.mono_multi_view_classifiers.utils.make_file_config.ConfigurationMaker">ConfigurationMaker (class in multiview_platform.mono_multi_view_classifiers.utils.make_file_config)</a> -</li> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.utils.html#multiview_platform.mono_multi_view_classifiers.utils.dataset.confirm">confirm() (in module multiview_platform.mono_multi_view_classifiers.utils.dataset)</a> -</li> - </ul></td> - <td style="width: 33%; vertical-align: top;"><ul> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.utils.html#multiview_platform.mono_multi_view_classifiers.utils.dataset.copy_hdf5">copy_hdf5() (in module multiview_platform.mono_multi_view_classifiers.utils.dataset)</a> -</li> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.utils.html#multiview_platform.mono_multi_view_classifiers.utils.dataset.Dataset.copy_view">copy_view() (Dataset method)</a> -</li> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.utils.html#multiview_platform.mono_multi_view_classifiers.utils.hyper_parameter_search.CustomRandint">CustomRandint (class in multiview_platform.mono_multi_view_classifiers.utils.hyper_parameter_search)</a> -</li> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.utils.html#multiview_platform.mono_multi_view_classifiers.utils.hyper_parameter_search.CustomUniform">CustomUniform (class in multiview_platform.mono_multi_view_classifiers.utils.hyper_parameter_search)</a> -</li> - </ul></td> -</tr></table> - -<h2 id="D">D</h2> -<table style="width: 100%" class="indextable genindextable"><tr> - <td style="width: 33%; vertical-align: top;"><ul> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.utils.html#multiview_platform.mono_multi_view_classifiers.utils.dataset.Dataset">Dataset (class in multiview_platform.mono_multi_view_classifiers.utils.dataset)</a> -</li> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.utils.html#multiview_platform.mono_multi_view_classifiers.utils.dataset.Dataset.dataset">dataset (Dataset attribute)</a> -</li> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.utils.html#multiview_platform.mono_multi_view_classifiers.utils.get_multiview_db.DatasetError">DatasetError</a> -</li> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.utils.html#multiview_platform.mono_multi_view_classifiers.utils.dataset.datasets_already_exist">datasets_already_exist() (in module multiview_platform.mono_multi_view_classifiers.utils.dataset)</a> -</li> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.utils.html#multiview_platform.mono_multi_view_classifiers.utils.dataset.delete_HDF5">delete_HDF5() (in module multiview_platform.mono_multi_view_classifiers.utils.dataset)</a> -</li> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.difficulty_fusion.html#multiview_platform.mono_multi_view_classifiers.multiview_classifiers.difficulty_fusion.DifficultyFusion">DifficultyFusion (class in multiview_platform.mono_multi_view_classifiers.multiview_classifiers.difficulty_fusion)</a> -</li> - </ul></td> - <td style="width: 33%; vertical-align: top;"><ul> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.disagree_fusion.html#multiview_platform.mono_multi_view_classifiers.multiview_classifiers.disagree_fusion.DisagreeFusion">DisagreeFusion (class in multiview_platform.mono_multi_view_classifiers.multiview_classifiers.disagree_fusion)</a> -</li> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.difficulty_fusion.html#multiview_platform.mono_multi_view_classifiers.multiview_classifiers.difficulty_fusion.DifficultyFusion.diversity_measure">diversity_measure() (DifficultyFusion method)</a> - - <ul> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.disagree_fusion.html#multiview_platform.mono_multi_view_classifiers.multiview_classifiers.disagree_fusion.DisagreeFusion.diversity_measure">(DisagreeFusion method)</a> -</li> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.double_fault_fusion.html#multiview_platform.mono_multi_view_classifiers.multiview_classifiers.double_fault_fusion.DoubleFaultFusion.diversity_measure">(DoubleFaultFusion method)</a> -</li> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.entropy_fusion.html#multiview_platform.mono_multi_view_classifiers.multiview_classifiers.entropy_fusion.EntropyFusion.diversity_measure">(EntropyFusion method)</a> -</li> - </ul></li> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.double_fault_fusion.html#multiview_platform.mono_multi_view_classifiers.multiview_classifiers.double_fault_fusion.DoubleFaultFusion">DoubleFaultFusion (class in multiview_platform.mono_multi_view_classifiers.multiview_classifiers.double_fault_fusion)</a> -</li> - </ul></td> -</tr></table> - -<h2 id="E">E</h2> -<table style="width: 100%" class="indextable genindextable"><tr> - <td style="width: 33%; vertical-align: top;"><ul> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.entropy_fusion.html#multiview_platform.mono_multi_view_classifiers.multiview_classifiers.entropy_fusion.EntropyFusion">EntropyFusion (class in multiview_platform.mono_multi_view_classifiers.multiview_classifiers.entropy_fusion)</a> -</li> - <li><a href="references/monomulti/exec_classif.html#multiview_platform.mono_multi_view_classifiers.exec_classif.exec_benchmark">exec_benchmark() (in module multiview_platform.mono_multi_view_classifiers.exec_classif)</a>, <a href="references/multiview_platform.mono_multi_view_classifiers.html#multiview_platform.mono_multi_view_classifiers.exec_classif.exec_benchmark">[1]</a> -</li> - <li><a href="references/monomulti/exec_classif.html#multiview_platform.mono_multi_view_classifiers.exec_classif.exec_classif">exec_classif() (in module multiview_platform.mono_multi_view_classifiers.exec_classif)</a>, <a href="references/multiview_platform.mono_multi_view_classifiers.html#multiview_platform.mono_multi_view_classifiers.exec_classif.exec_classif">[1]</a> -</li> - </ul></td> - <td style="width: 33%; vertical-align: top;"><ul> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.html#multiview_platform.mono_multi_view_classifiers.exec_classif.exec_one_benchmark_mono_core">exec_one_benchmark_mono_core() (in module multiview_platform.mono_multi_view_classifiers.exec_classif)</a> -</li> - <li><a href="references/multiview_platform.html#multiview_platform.execute.execute">execute() (in module multiview_platform.execute)</a> -</li> - <li><a href="references/monomulti/exec_classif.html#multiview_platform.mono_multi_view_classifiers.exec_classif.extract_dict">extract_dict() (in module multiview_platform.mono_multi_view_classifiers.exec_classif)</a>, <a href="references/multiview_platform.mono_multi_view_classifiers.html#multiview_platform.mono_multi_view_classifiers.exec_classif.extract_dict">[1]</a> -</li> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.utils.html#multiview_platform.mono_multi_view_classifiers.utils.dataset.extract_subset">extract_subset() (in module multiview_platform.mono_multi_view_classifiers.utils.dataset)</a> -</li> - </ul></td> -</tr></table> - -<h2 id="F">F</h2> -<table style="width: 100%" class="indextable genindextable"><tr> - <td style="width: 33%; vertical-align: top;"><ul> - <li><a href="references/multiview_platform.tests.test_utils.html#multiview_platform.tests.test_utils.test_execution.FakeArg">FakeArg (class in multiview_platform.tests.test_utils.test_execution)</a> -</li> - <li><a href="references/multiview_platform.tests.html#multiview_platform.tests.test_ExecClassif.fakeBenchmarkExec">fakeBenchmarkExec() (in module multiview_platform.tests.test_ExecClassif)</a> -</li> - <li><a href="references/multiview_platform.tests.html#multiview_platform.tests.test_ExecClassif.fakeBenchmarkExec_monocore">fakeBenchmarkExec_monocore() (in module multiview_platform.tests.test_ExecClassif)</a> -</li> - <li><a href="references/multiview_platform.tests.html#multiview_platform.tests.test_ExecClassif.fakeBenchmarkExec_mutlicore">fakeBenchmarkExec_mutlicore() (in module multiview_platform.tests.test_ExecClassif)</a> -</li> - <li><a href="references/multiview_platform.tests.html#multiview_platform.tests.test_ExecClassif.fakeDelete">fakeDelete() (in module multiview_platform.tests.test_ExecClassif)</a> -</li> - <li><a href="references/multiview_platform.tests.html#multiview_platform.tests.test_ExecClassif.fakeExecMono">fakeExecMono() (in module multiview_platform.tests.test_ExecClassif)</a> -</li> - <li><a href="references/multiview_platform.tests.html#multiview_platform.tests.test_ExecClassif.fakeExecMulti">fakeExecMulti() (in module multiview_platform.tests.test_ExecClassif)</a> -</li> - </ul></td> - <td style="width: 33%; vertical-align: top;"><ul> - <li><a href="references/multiview_platform.tests.html#multiview_platform.tests.test_ExecClassif.fakegetResults">fakegetResults() (in module multiview_platform.tests.test_ExecClassif)</a> -</li> - <li><a href="references/multiview_platform.tests.html#multiview_platform.tests.test_ExecClassif.fakeInitMulti">fakeInitMulti() (in module multiview_platform.tests.test_ExecClassif)</a> -</li> - <li><a href="references/multiview_platform.tests.html#multiview_platform.tests.test_ExecClassif.FakeKfold">FakeKfold (class in multiview_platform.tests.test_ExecClassif)</a> -</li> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.utils.html#multiview_platform.mono_multi_view_classifiers.utils.dataset.Dataset.filter">filter() (Dataset method)</a> -</li> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.utils.html#multiview_platform.mono_multi_view_classifiers.utils.execution.find_dataset_names">find_dataset_names() (in module multiview_platform.mono_multi_view_classifiers.utils.execution)</a> -</li> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.utils.html#multiview_platform.mono_multi_view_classifiers.utils.hyper_parameter_search.MultiviewCompatibleRandomizedSearchCV.fit">fit() (MultiviewCompatibleRandomizedSearchCV method)</a> -</li> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.utils.html#multiview_platform.mono_multi_view_classifiers.utils.hyper_parameter_search.MultiviewCompatibleRandomizedSearchCV.fit_multiview">fit_multiview() (MultiviewCompatibleRandomizedSearchCV method)</a> -</li> - <li><a href="analyzeresult.html#multiview_platform.mono_multi_view_classifiers.result_analysis.format_previous_results">format_previous_results() (in module multiview_platform.mono_multi_view_classifiers.result_analysis)</a>, <a href="references/multiview_platform.mono_multi_view_classifiers.html#multiview_platform.mono_multi_view_classifiers.result_analysis.format_previous_results">[1]</a> -</li> - </ul></td> -</tr></table> - -<h2 id="G">G</h2> -<table style="width: 100%" class="indextable genindextable"><tr> - <td style="width: 33%; vertical-align: top;"><ul> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.utils.html#multiview_platform.mono_multi_view_classifiers.utils.execution.gen_argument_dictionaries">gen_argument_dictionaries() (in module multiview_platform.mono_multi_view_classifiers.utils.execution)</a> -</li> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.html#multiview_platform.mono_multi_view_classifiers.result_analysis.gen_classifiers_dict">gen_classifiers_dict() (in module multiview_platform.mono_multi_view_classifiers.result_analysis)</a> -</li> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.utils.html#multiview_platform.mono_multi_view_classifiers.utils.execution.gen_direcorties_names">gen_direcorties_names() (in module multiview_platform.mono_multi_view_classifiers.utils.execution)</a> -</li> - <li><a href="analyzeresult.html#multiview_platform.mono_multi_view_classifiers.result_analysis.gen_error_data">gen_error_data() (in module multiview_platform.mono_multi_view_classifiers.result_analysis)</a>, <a href="references/multiview_platform.mono_multi_view_classifiers.html#multiview_platform.mono_multi_view_classifiers.result_analysis.gen_error_data">[1]</a> -</li> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.html#multiview_platform.mono_multi_view_classifiers.result_analysis.gen_error_data_glob">gen_error_data_glob() (in module multiview_platform.mono_multi_view_classifiers.result_analysis)</a> -</li> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.utils.html#multiview_platform.mono_multi_view_classifiers.utils.hyper_parameter_search.gen_heat_maps">gen_heat_maps() (in module multiview_platform.mono_multi_view_classifiers.utils.hyper_parameter_search)</a> -</li> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.utils.html#multiview_platform.mono_multi_view_classifiers.utils.execution.gen_k_folds">gen_k_folds() (in module multiview_platform.mono_multi_view_classifiers.utils.execution)</a> -</li> - <li><a href="analyzeresult.html#multiview_platform.mono_multi_view_classifiers.result_analysis.gen_metrics_scores_multiclass">gen_metrics_scores_multiclass() (in module multiview_platform.mono_multi_view_classifiers.result_analysis)</a>, <a href="references/multiview_platform.mono_multi_view_classifiers.html#multiview_platform.mono_multi_view_classifiers.result_analysis.gen_metrics_scores_multiclass">[1]</a> -</li> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.utils.html#multiview_platform.mono_multi_view_classifiers.utils.multiclass.gen_multiclass_labels">gen_multiclass_labels() (in module multiview_platform.mono_multi_view_classifiers.utils.multiclass)</a> -</li> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.utils.html#multiview_platform.mono_multi_view_classifiers.utils.multiclass.gen_multiclass_monoview_decision">gen_multiclass_monoview_decision() (in module multiview_platform.mono_multi_view_classifiers.utils.multiclass)</a> -</li> - <li><a href="references/monomulti/exec_classif.html#multiview_platform.mono_multi_view_classifiers.exec_classif.gen_multiple_args_dictionnaries">gen_multiple_args_dictionnaries() (in module multiview_platform.mono_multi_view_classifiers.exec_classif)</a>, <a href="references/multiview_platform.mono_multi_view_classifiers.html#multiview_platform.mono_multi_view_classifiers.exec_classif.gen_multiple_args_dictionnaries">[1]</a> -</li> - <li><a href="references/monomulti/exec_classif.html#multiview_platform.mono_multi_view_classifiers.exec_classif.gen_multiple_kwargs_combinations">gen_multiple_kwargs_combinations() (in module multiview_platform.mono_multi_view_classifiers.exec_classif)</a>, <a href="references/multiview_platform.mono_multi_view_classifiers.html#multiview_platform.mono_multi_view_classifiers.exec_classif.gen_multiple_kwargs_combinations">[1]</a> -</li> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.html#multiview_platform.mono_multi_view_classifiers.exec_classif.gen_single_monoview_arg_dictionary">gen_single_monoview_arg_dictionary() (in module multiview_platform.mono_multi_view_classifiers.exec_classif)</a> -</li> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.html#multiview_platform.mono_multi_view_classifiers.exec_classif.gen_single_multiview_arg_dictionary">gen_single_multiview_arg_dictionary() (in module multiview_platform.mono_multi_view_classifiers.exec_classif)</a> -</li> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.utils.html#multiview_platform.mono_multi_view_classifiers.utils.execution.gen_splits">gen_splits() (in module multiview_platform.mono_multi_view_classifiers.utils.execution)</a> -</li> - <li><a href="analyzeresult.html#multiview_platform.mono_multi_view_classifiers.result_analysis.get_arguments">get_arguments() (in module multiview_platform.mono_multi_view_classifiers.result_analysis)</a>, <a href="references/multiview_platform.mono_multi_view_classifiers.html#multiview_platform.mono_multi_view_classifiers.result_analysis.get_arguments">[1]</a> -</li> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.utils.html#multiview_platform.mono_multi_view_classifiers.utils.get_multiview_db.get_classic_db_csv">get_classic_db_csv() (in module multiview_platform.mono_multi_view_classifiers.utils.get_multiview_db)</a> -</li> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.utils.html#multiview_platform.mono_multi_view_classifiers.utils.get_multiview_db.get_classic_db_hdf5">get_classic_db_hdf5() (in module multiview_platform.mono_multi_view_classifiers.utils.get_multiview_db)</a> -</li> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.utils.html#multiview_platform.mono_multi_view_classifiers.utils.execution.get_database_function">get_database_function() (in module multiview_platform.mono_multi_view_classifiers.utils.execution)</a> -</li> - <li><a href="analyzeresult.html#multiview_platform.mono_multi_view_classifiers.result_analysis.get_error_on_labels_multiclass">get_error_on_labels_multiclass() (in module multiview_platform.mono_multi_view_classifiers.result_analysis)</a>, <a href="references/multiview_platform.mono_multi_view_classifiers.html#multiview_platform.mono_multi_view_classifiers.result_analysis.get_error_on_labels_multiclass">[1]</a> -</li> - <li><a href="analyzeresult.html#multiview_platform.mono_multi_view_classifiers.result_analysis.get_example_errors_biclass">get_example_errors_biclass() (in module multiview_platform.mono_multi_view_classifiers.result_analysis)</a>, <a href="references/multiview_platform.mono_multi_view_classifiers.html#multiview_platform.mono_multi_view_classifiers.result_analysis.get_example_errors_biclass">[1]</a> -</li> - <li><a href="analyzeresult.html#multiview_platform.mono_multi_view_classifiers.result_analysis.get_feature_importances">get_feature_importances() (in module multiview_platform.mono_multi_view_classifiers.result_analysis)</a>, <a href="references/multiview_platform.mono_multi_view_classifiers.html#multiview_platform.mono_multi_view_classifiers.result_analysis.get_feature_importances">[1]</a> -</li> - </ul></td> - <td style="width: 33%; vertical-align: top;"><ul> - <li><a href="analyzeresult.html#multiview_platform.mono_multi_view_classifiers.result_analysis.get_fig_size">get_fig_size() (in module multiview_platform.mono_multi_view_classifiers.result_analysis)</a>, <a href="references/multiview_platform.mono_multi_view_classifiers.html#multiview_platform.mono_multi_view_classifiers.result_analysis.get_fig_size">[1]</a> -</li> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.utils.html#multiview_platform.mono_multi_view_classifiers.utils.dataset.Dataset.get_label_names">get_label_names() (Dataset method)</a> -</li> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.utils.html#multiview_platform.mono_multi_view_classifiers.utils.dataset.Dataset.get_labels">get_labels() (Dataset method)</a> -</li> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.utils.html#multiview_platform.mono_multi_view_classifiers.utils.multiview_result_analysis.get_metrics_scores">get_metrics_scores() (in module multiview_platform.mono_multi_view_classifiers.utils.multiview_result_analysis)</a> -</li> - <li><a href="analyzeresult.html#multiview_platform.mono_multi_view_classifiers.result_analysis.get_metrics_scores_biclass">get_metrics_scores_biclass() (in module multiview_platform.mono_multi_view_classifiers.result_analysis)</a>, <a href="references/multiview_platform.mono_multi_view_classifiers.html#multiview_platform.mono_multi_view_classifiers.result_analysis.get_metrics_scores_biclass">[1]</a> -</li> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.utils.html#multiview_platform.mono_multi_view_classifiers.utils.dataset.Dataset.get_name">get_name() (Dataset method)</a> -</li> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.utils.html#multiview_platform.mono_multi_view_classifiers.utils.dataset.Dataset.get_nb_class">get_nb_class() (Dataset method)</a> -</li> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.utils.html#multiview_platform.mono_multi_view_classifiers.utils.dataset.Dataset.get_nb_examples">get_nb_examples() (Dataset method)</a> -</li> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.utils.html#multiview_platform.mono_multi_view_classifiers.utils.hyper_parameter_search.CustomRandint.get_nb_possibilities">get_nb_possibilities() (CustomRandint method)</a> -</li> - <li><a href="references/monomulti/exec_classif.html#multiview_platform.mono_multi_view_classifiers.exec_classif.get_path_dict">get_path_dict() (in module multiview_platform.mono_multi_view_classifiers.exec_classif)</a>, <a href="references/multiview_platform.mono_multi_view_classifiers.html#multiview_platform.mono_multi_view_classifiers.exec_classif.get_path_dict">[1]</a> -</li> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.utils.html#multiview_platform.mono_multi_view_classifiers.utils.get_multiview_db.get_plausible_db_hdf5">get_plausible_db_hdf5() (in module multiview_platform.mono_multi_view_classifiers.utils.get_multiview_db)</a> -</li> - <li><a href="analyzeresult.html#multiview_platform.mono_multi_view_classifiers.result_analysis.get_results">get_results() (in module multiview_platform.mono_multi_view_classifiers.result_analysis)</a>, <a href="references/multiview_platform.mono_multi_view_classifiers.html#multiview_platform.mono_multi_view_classifiers.result_analysis.get_results">[1]</a> -</li> - <li><a href="references/monomulti/metrics.html#multiview_platform.mono_multi_view_classifiers.metrics.framework.get_scorer">get_scorer() (in module multiview_platform.mono_multi_view_classifiers.metrics.framework)</a> -</li> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.utils.html#multiview_platform.mono_multi_view_classifiers.utils.dataset.Dataset.get_shape">get_shape() (Dataset method)</a> -</li> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.utils.html#multiview_platform.mono_multi_view_classifiers.utils.hyper_parameter_search.get_test_folds_preds">get_test_folds_preds() (in module multiview_platform.mono_multi_view_classifiers.utils.hyper_parameter_search)</a> - - <ul> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.utils.html#multiview_platform.mono_multi_view_classifiers.utils.hyper_parameter_search.MultiviewCompatibleRandomizedSearchCV.get_test_folds_preds">(MultiviewCompatibleRandomizedSearchCV method)</a> -</li> - </ul></li> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.utils.html#multiview_platform.mono_multi_view_classifiers.utils.configuration.get_the_args">get_the_args() (in module multiview_platform.mono_multi_view_classifiers.utils.configuration)</a> -</li> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.utils.html#multiview_platform.mono_multi_view_classifiers.utils.multiview_result_analysis.get_total_metric_scores">get_total_metric_scores() (in module multiview_platform.mono_multi_view_classifiers.utils.multiview_result_analysis)</a> -</li> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.utils.html#multiview_platform.mono_multi_view_classifiers.utils.dataset.Dataset.get_v">get_v() (Dataset method)</a> -</li> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.utils.html#multiview_platform.mono_multi_view_classifiers.utils.dataset.Dataset.get_view_dict">get_view_dict() (Dataset method)</a> -</li> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.utils.html#multiview_platform.mono_multi_view_classifiers.utils.dataset.Dataset.get_view_name">get_view_name() (Dataset method)</a> -</li> - <li><a href="references/monomulti/metrics.html#multiview_platform.mono_multi_view_classifiers.metrics.framework.getConfig">getConfig() (in module multiview_platform.mono_multi_view_classifiers.metrics.framework)</a> -</li> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.utils.html#multiview_platform.mono_multi_view_classifiers.utils.hyper_parameter_search.grid_search">grid_search() (in module multiview_platform.mono_multi_view_classifiers.utils.hyper_parameter_search)</a> -</li> - </ul></td> -</tr></table> - -<h2 id="I">I</h2> -<table style="width: 100%" class="indextable genindextable"><tr> - <td style="width: 33%; vertical-align: top;"><ul> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.html#multiview_platform.mono_multi_view_classifiers.exec_classif.init_argument_dictionaries">init_argument_dictionaries() (in module multiview_platform.mono_multi_view_classifiers.exec_classif)</a> -</li> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.utils.html#multiview_platform.mono_multi_view_classifiers.utils.dataset.Dataset.init_attrs">init_attrs() (Dataset method)</a> -</li> - <li><a href="references/monomulti/exec_classif.html#multiview_platform.mono_multi_view_classifiers.exec_classif.init_benchmark">init_benchmark() (in module multiview_platform.mono_multi_view_classifiers.exec_classif)</a>, <a href="references/multiview_platform.mono_multi_view_classifiers.html#multiview_platform.mono_multi_view_classifiers.exec_classif.init_benchmark">[1]</a> -</li> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.utils.html#multiview_platform.mono_multi_view_classifiers.utils.dataset.Dataset.init_example_indces">init_example_indces() (Dataset method)</a> -</li> - <li><a href="references/monomulti/exec_classif.html#multiview_platform.mono_multi_view_classifiers.exec_classif.init_kwargs">init_kwargs() (in module multiview_platform.mono_multi_view_classifiers.exec_classif)</a>, <a href="references/multiview_platform.mono_multi_view_classifiers.html#multiview_platform.mono_multi_view_classifiers.exec_classif.init_kwargs">[1]</a> -</li> - <li><a href="references/monomulti/exec_classif.html#multiview_platform.mono_multi_view_classifiers.exec_classif.init_kwargs_func">init_kwargs_func() (in module multiview_platform.mono_multi_view_classifiers.exec_classif)</a>, <a href="references/multiview_platform.mono_multi_view_classifiers.html#multiview_platform.mono_multi_view_classifiers.exec_classif.init_kwargs_func">[1]</a> -</li> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.utils.html#multiview_platform.mono_multi_view_classifiers.utils.execution.init_log_file">init_log_file() (in module multiview_platform.mono_multi_view_classifiers.utils.execution)</a> -</li> - <li><a href="references/monomulti/exec_classif.html#multiview_platform.mono_multi_view_classifiers.exec_classif.init_monoview_exps">init_monoview_exps() (in module multiview_platform.mono_multi_view_classifiers.exec_classif)</a>, <a href="references/multiview_platform.mono_multi_view_classifiers.html#multiview_platform.mono_multi_view_classifiers.exec_classif.init_monoview_exps">[1]</a> -</li> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.utils.html#multiview_platform.mono_multi_view_classifiers.utils.dataset.init_multiple_datasets">init_multiple_datasets() (in module multiview_platform.mono_multi_view_classifiers.utils.dataset)</a> -</li> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.html#multiview_platform.mono_multi_view_classifiers.exec_classif.init_multiview_exps">init_multiview_exps() (in module multiview_platform.mono_multi_view_classifiers.exec_classif)</a> -</li> - </ul></td> - <td style="width: 33%; vertical-align: top;"><ul> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.html#multiview_platform.mono_multi_view_classifiers.result_analysis.init_plot">init_plot() (in module multiview_platform.mono_multi_view_classifiers.result_analysis)</a> -</li> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.utils.html#multiview_platform.mono_multi_view_classifiers.utils.execution.init_random_state">init_random_state() (in module multiview_platform.mono_multi_view_classifiers.utils.execution)</a> -</li> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.utils.html#multiview_platform.mono_multi_view_classifiers.utils.execution.init_stats_iter_random_states">init_stats_iter_random_states() (in module multiview_platform.mono_multi_view_classifiers.utils.execution)</a> -</li> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.utils.html#multiview_platform.mono_multi_view_classifiers.utils.dataset.Dataset.init_view_names">init_view_names() (Dataset method)</a> -</li> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.utils.html#multiview_platform.mono_multi_view_classifiers.utils.execution.init_views">init_views() (in module multiview_platform.mono_multi_view_classifiers.utils.execution)</a> -</li> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.utils.html#multiview_platform.mono_multi_view_classifiers.utils.dataset.input_">input_() (in module multiview_platform.mono_multi_view_classifiers.utils.dataset)</a> -</li> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.utils.html#multiview_platform.mono_multi_view_classifiers.utils.multiclass.is_biclass">is_biclass() (in module multiview_platform.mono_multi_view_classifiers.utils.multiclass)</a> -</li> - <li><a href="references/monomulti/exec_classif.html#multiview_platform.mono_multi_view_classifiers.exec_classif.is_dict_in">is_dict_in() (in module multiview_platform.mono_multi_view_classifiers.exec_classif)</a>, <a href="references/multiview_platform.mono_multi_view_classifiers.html#multiview_platform.mono_multi_view_classifiers.exec_classif.is_dict_in">[1]</a> -</li> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.utils.html#multiview_platform.mono_multi_view_classifiers.utils.dataset.is_just_number">is_just_number() (in module multiview_platform.mono_multi_view_classifiers.utils.dataset)</a> -</li> - <li><a href="analyzeresult.html#multiview_platform.mono_multi_view_classifiers.result_analysis.iterCmap">iterCmap() (in module multiview_platform.mono_multi_view_classifiers.result_analysis)</a>, <a href="references/multiview_platform.mono_multi_view_classifiers.html#multiview_platform.mono_multi_view_classifiers.result_analysis.iterCmap">[1]</a> -</li> - </ul></td> -</tr></table> - -<h2 id="M">M</h2> -<table style="width: 100%" class="indextable genindextable"><tr> - <td style="width: 33%; vertical-align: top;"><ul> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.utils.html#multiview_platform.mono_multi_view_classifiers.utils.get_multiview_db.make_me_noisy">make_me_noisy() (in module multiview_platform.mono_multi_view_classifiers.utils.get_multiview_db)</a> -</li> - <li><a href="references/monomulti/exec_classif.html#multiview_platform.mono_multi_view_classifiers.exec_classif.multiple_args">multiple_args() (in module multiview_platform.mono_multi_view_classifiers.exec_classif)</a>, <a href="references/multiview_platform.mono_multi_view_classifiers.html#multiview_platform.mono_multi_view_classifiers.exec_classif.multiple_args">[1]</a> -</li> - <li><a href="references/multiview_platform.tests.html#multiview_platform.tests.test_ResultAnalysis.Test_get_metrics_scores_biclass.multiple_monoview_classifiers">multiple_monoview_classifiers() (Test_get_metrics_scores_biclass method)</a> -</li> - <li><a href="references/multiview_platform.html#module-multiview_platform">multiview_platform (module)</a> -</li> - <li><a href="execution.html#module-multiview_platform.execute">multiview_platform.execute (module)</a>, <a href="references/multiview_platform.html#module-multiview_platform.execute">[1]</a> -</li> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.html#module-multiview_platform.mono_multi_view_classifiers">multiview_platform.mono_multi_view_classifiers (module)</a> -</li> - <li><a href="references/monomulti/exec_classif.html#module-multiview_platform.mono_multi_view_classifiers.exec_classif">multiview_platform.mono_multi_view_classifiers.exec_classif (module)</a>, <a href="references/multiview_platform.mono_multi_view_classifiers.html#module-multiview_platform.mono_multi_view_classifiers.exec_classif">[1]</a> -</li> - <li><a href="references/monomulti/metrics.html#module-multiview_platform.mono_multi_view_classifiers.metrics.framework">multiview_platform.mono_multi_view_classifiers.metrics.framework (module)</a> -</li> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.html#module-multiview_platform.mono_multi_view_classifiers.multiview_classifiers">multiview_platform.mono_multi_view_classifiers.multiview_classifiers (module)</a> -</li> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.difficulty_fusion.html#module-multiview_platform.mono_multi_view_classifiers.multiview_classifiers.difficulty_fusion">multiview_platform.mono_multi_view_classifiers.multiview_classifiers.difficulty_fusion (module)</a> -</li> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.disagree_fusion.html#module-multiview_platform.mono_multi_view_classifiers.multiview_classifiers.disagree_fusion">multiview_platform.mono_multi_view_classifiers.multiview_classifiers.disagree_fusion (module)</a> -</li> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.double_fault_fusion.html#module-multiview_platform.mono_multi_view_classifiers.multiview_classifiers.double_fault_fusion">multiview_platform.mono_multi_view_classifiers.multiview_classifiers.double_fault_fusion (module)</a> -</li> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.entropy_fusion.html#module-multiview_platform.mono_multi_view_classifiers.multiview_classifiers.entropy_fusion">multiview_platform.mono_multi_view_classifiers.multiview_classifiers.entropy_fusion (module)</a> -</li> - <li><a href="analyzeresult.html#module-multiview_platform.mono_multi_view_classifiers.result_analysis">multiview_platform.mono_multi_view_classifiers.result_analysis (module)</a>, <a href="references/multiview_platform.mono_multi_view_classifiers.html#module-multiview_platform.mono_multi_view_classifiers.result_analysis">[1]</a> -</li> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.utils.html#module-multiview_platform.mono_multi_view_classifiers.utils">multiview_platform.mono_multi_view_classifiers.utils (module)</a> -</li> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.utils.html#module-multiview_platform.mono_multi_view_classifiers.utils.configuration">multiview_platform.mono_multi_view_classifiers.utils.configuration (module)</a> -</li> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.utils.html#module-multiview_platform.mono_multi_view_classifiers.utils.dataset">multiview_platform.mono_multi_view_classifiers.utils.dataset (module)</a> -</li> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.utils.html#module-multiview_platform.mono_multi_view_classifiers.utils.execution">multiview_platform.mono_multi_view_classifiers.utils.execution (module)</a> -</li> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.utils.html#module-multiview_platform.mono_multi_view_classifiers.utils.get_multiview_db">multiview_platform.mono_multi_view_classifiers.utils.get_multiview_db (module)</a> -</li> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.utils.html#module-multiview_platform.mono_multi_view_classifiers.utils.hyper_parameter_search">multiview_platform.mono_multi_view_classifiers.utils.hyper_parameter_search (module)</a> -</li> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.utils.html#module-multiview_platform.mono_multi_view_classifiers.utils.make_file_config">multiview_platform.mono_multi_view_classifiers.utils.make_file_config (module)</a> -</li> - <li><a href="references/monomulti/utils/multiclass.html#module-multiview_platform.mono_multi_view_classifiers.utils.multiclass">multiview_platform.mono_multi_view_classifiers.utils.multiclass (module)</a>, <a href="references/multiview_platform.mono_multi_view_classifiers.utils.html#module-multiview_platform.mono_multi_view_classifiers.utils.multiclass">[1]</a> -</li> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.utils.html#module-multiview_platform.mono_multi_view_classifiers.utils.multiview_result_analysis">multiview_platform.mono_multi_view_classifiers.utils.multiview_result_analysis (module)</a> -</li> - </ul></td> - <td style="width: 33%; vertical-align: top;"><ul> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.utils.html#module-multiview_platform.mono_multi_view_classifiers.utils.transformations">multiview_platform.mono_multi_view_classifiers.utils.transformations (module)</a> -</li> - <li><a href="references/multiview_platform.html#module-multiview_platform.tests">multiview_platform.tests (module)</a>, <a href="references/multiview_platform.tests.html#module-multiview_platform.tests">[1]</a> -</li> - <li><a href="references/multiview_platform.tests.html#module-multiview_platform.tests.test_ExecClassif">multiview_platform.tests.test_ExecClassif (module)</a> -</li> - <li><a href="references/multiview_platform.tests.test_metrics.html#module-multiview_platform.tests.test_metrics">multiview_platform.tests.test_metrics (module)</a> -</li> - <li><a href="references/multiview_platform.tests.test_metrics.html#module-multiview_platform.tests.test_metrics.test_accuracy_score">multiview_platform.tests.test_metrics.test_accuracy_score (module)</a> -</li> - <li><a href="references/multiview_platform.tests.test_mono_view.html#module-multiview_platform.tests.test_mono_view">multiview_platform.tests.test_mono_view (module)</a> -</li> - <li><a href="references/multiview_platform.tests.test_mono_view.html#module-multiview_platform.tests.test_mono_view.test_ExecClassifMonoView">multiview_platform.tests.test_mono_view.test_ExecClassifMonoView (module)</a> -</li> - <li><a href="references/multiview_platform.tests.test_mono_view.html#module-multiview_platform.tests.test_mono_view.test_MonoviewUtils">multiview_platform.tests.test_mono_view.test_MonoviewUtils (module)</a> -</li> - <li><a href="references/multiview_platform.tests.test_monoview_classifiers.html#module-multiview_platform.tests.test_monoview_classifiers">multiview_platform.tests.test_monoview_classifiers (module)</a> -</li> - <li><a href="references/multiview_platform.tests.test_monoview_classifiers.html#module-multiview_platform.tests.test_monoview_classifiers.test_adaboost">multiview_platform.tests.test_monoview_classifiers.test_adaboost (module)</a> -</li> - <li><a href="references/multiview_platform.tests.test_monoview_classifiers.html#module-multiview_platform.tests.test_monoview_classifiers.test_compatibility">multiview_platform.tests.test_monoview_classifiers.test_compatibility (module)</a> -</li> - <li><a href="references/multiview_platform.tests.test_multiview_classifiers.html#module-multiview_platform.tests.test_multiview_classifiers">multiview_platform.tests.test_multiview_classifiers (module)</a> -</li> - <li><a href="references/multiview_platform.tests.test_multiview_classifiers.html#module-multiview_platform.tests.test_multiview_classifiers.test_diversity_utils">multiview_platform.tests.test_multiview_classifiers.test_diversity_utils (module)</a> -</li> - <li><a href="references/multiview_platform.tests.test_multiview_classifiers.Test_PseudoCQMeasure.html#module-multiview_platform.tests.test_multiview_classifiers.Test_PseudoCQMeasure">multiview_platform.tests.test_multiview_classifiers.Test_PseudoCQMeasure (module)</a> -</li> - <li><a href="references/multiview_platform.tests.test_multiview_classifiers.Test_PseudoCQMeasure.html#module-multiview_platform.tests.test_multiview_classifiers.Test_PseudoCQMeasure.test_PseudoCQFusionModule">multiview_platform.tests.test_multiview_classifiers.Test_PseudoCQMeasure.test_PseudoCQFusionModule (module)</a> -</li> - <li><a href="references/multiview_platform.tests.html#module-multiview_platform.tests.test_ResultAnalysis">multiview_platform.tests.test_ResultAnalysis (module)</a> -</li> - <li><a href="references/multiview_platform.tests.test_utils.html#module-multiview_platform.tests.test_utils">multiview_platform.tests.test_utils (module)</a> -</li> - <li><a href="references/multiview_platform.tests.test_utils.html#module-multiview_platform.tests.test_utils.test_configuration">multiview_platform.tests.test_utils.test_configuration (module)</a> -</li> - <li><a href="references/multiview_platform.tests.test_utils.html#module-multiview_platform.tests.test_utils.test_execution">multiview_platform.tests.test_utils.test_execution (module)</a> -</li> - <li><a href="references/multiview_platform.tests.test_utils.html#module-multiview_platform.tests.test_utils.test_GetMultiviewDB">multiview_platform.tests.test_utils.test_GetMultiviewDB (module)</a> -</li> - <li><a href="references/multiview_platform.tests.test_utils.html#module-multiview_platform.tests.test_utils.test_multiclass">multiview_platform.tests.test_utils.test_multiclass (module)</a> -</li> - <li><a href="references/multiview_platform.html#module-multiview_platform.versions">multiview_platform.versions (module)</a> -</li> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.utils.html#multiview_platform.mono_multi_view_classifiers.utils.hyper_parameter_search.MultiviewCompatibleRandomizedSearchCV">MultiviewCompatibleRandomizedSearchCV (class in multiview_platform.mono_multi_view_classifiers.utils.hyper_parameter_search)</a> -</li> - <li><a href="references/multiview_platform.tests.html#multiview_platform.tests.test_ResultAnalysis.Test_get_metrics_scores_biclass.mutiview_result">mutiview_result() (Test_get_metrics_scores_biclass method)</a> -</li> - </ul></td> -</tr></table> - -<h2 id="N">N</h2> -<table style="width: 100%" class="indextable genindextable"><tr> - <td style="width: 33%; vertical-align: top;"><ul> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.utils.html#multiview_platform.mono_multi_view_classifiers.utils.dataset.Dataset.nb_view">nb_view (Dataset attribute)</a> -</li> - </ul></td> - <td style="width: 33%; vertical-align: top;"><ul> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.html#multiview_platform.mono_multi_view_classifiers.result_analysis.numpy_mean_and_std">numpy_mean_and_std() (in module multiview_platform.mono_multi_view_classifiers.result_analysis)</a> -</li> - </ul></td> -</tr></table> - -<h2 id="P">P</h2> -<table style="width: 100%" class="indextable genindextable"><tr> - <td style="width: 33%; vertical-align: top;"><ul> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.utils.html#multiview_platform.mono_multi_view_classifiers.utils.execution.parse_the_args">parse_the_args() (in module multiview_platform.mono_multi_view_classifiers.utils.execution)</a> -</li> - <li><a href="analyzeresult.html#multiview_platform.mono_multi_view_classifiers.result_analysis.plot_2d">plot_2d() (in module multiview_platform.mono_multi_view_classifiers.result_analysis)</a>, <a href="references/multiview_platform.mono_multi_view_classifiers.html#multiview_platform.mono_multi_view_classifiers.result_analysis.plot_2d">[1]</a> -</li> - <li><a href="analyzeresult.html#multiview_platform.mono_multi_view_classifiers.result_analysis.plot_errors_bar">plot_errors_bar() (in module multiview_platform.mono_multi_view_classifiers.result_analysis)</a>, <a href="references/multiview_platform.mono_multi_view_classifiers.html#multiview_platform.mono_multi_view_classifiers.result_analysis.plot_errors_bar">[1]</a> -</li> - <li><a href="analyzeresult.html#multiview_platform.mono_multi_view_classifiers.result_analysis.plot_metric_scores">plot_metric_scores() (in module multiview_platform.mono_multi_view_classifiers.result_analysis)</a>, <a href="references/multiview_platform.mono_multi_view_classifiers.html#multiview_platform.mono_multi_view_classifiers.result_analysis.plot_metric_scores">[1]</a> -</li> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.html#multiview_platform.mono_multi_view_classifiers.result_analysis.plot_results_noise">plot_results_noise() (in module multiview_platform.mono_multi_view_classifiers.result_analysis)</a> -</li> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.utils.html#multiview_platform.mono_multi_view_classifiers.utils.multiview_result_analysis.print_metric_score">print_metric_score() (in module multiview_platform.mono_multi_view_classifiers.utils.multiview_result_analysis)</a> -</li> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.html#multiview_platform.mono_multi_view_classifiers.result_analysis.publish_feature_importances">publish_feature_importances() (in module multiview_platform.mono_multi_view_classifiers.result_analysis)</a> -</li> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.html#multiview_platform.mono_multi_view_classifiers.result_analysis.publish_iter_biclass_example_errors">publish_iter_biclass_example_errors() (in module multiview_platform.mono_multi_view_classifiers.result_analysis)</a> -</li> - </ul></td> - <td style="width: 33%; vertical-align: top;"><ul> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.html#multiview_platform.mono_multi_view_classifiers.result_analysis.publish_iter_biclass_metrics_scores">publish_iter_biclass_metrics_scores() (in module multiview_platform.mono_multi_view_classifiers.result_analysis)</a> -</li> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.html#multiview_platform.mono_multi_view_classifiers.result_analysis.publish_iter_multiclass_example_errors">publish_iter_multiclass_example_errors() (in module multiview_platform.mono_multi_view_classifiers.result_analysis)</a> -</li> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.html#multiview_platform.mono_multi_view_classifiers.result_analysis.publish_iter_multiclass_metrics_scores">publish_iter_multiclass_metrics_scores() (in module multiview_platform.mono_multi_view_classifiers.result_analysis)</a> -</li> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.html#multiview_platform.mono_multi_view_classifiers.result_analysis.publish_tracebacks">publish_tracebacks() (in module multiview_platform.mono_multi_view_classifiers.result_analysis)</a> -</li> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.html#multiview_platform.mono_multi_view_classifiers.result_analysis.publishExampleErrors">publishExampleErrors() (in module multiview_platform.mono_multi_view_classifiers.result_analysis)</a> -</li> - <li><a href="analyzeresult.html#multiview_platform.mono_multi_view_classifiers.result_analysis.publishMetricsGraphs">publishMetricsGraphs() (in module multiview_platform.mono_multi_view_classifiers.result_analysis)</a>, <a href="references/multiview_platform.mono_multi_view_classifiers.html#multiview_platform.mono_multi_view_classifiers.result_analysis.publishMetricsGraphs">[1]</a> -</li> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.html#multiview_platform.mono_multi_view_classifiers.result_analysis.publishMulticlassExmapleErrors">publishMulticlassExmapleErrors() (in module multiview_platform.mono_multi_view_classifiers.result_analysis)</a> -</li> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.html#multiview_platform.mono_multi_view_classifiers.result_analysis.publishMulticlassScores">publishMulticlassScores() (in module multiview_platform.mono_multi_view_classifiers.result_analysis)</a> -</li> - </ul></td> -</tr></table> - -<h2 id="R">R</h2> -<table style="width: 100%" class="indextable genindextable"><tr> - <td style="width: 33%; vertical-align: top;"><ul> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.utils.html#multiview_platform.mono_multi_view_classifiers.utils.hyper_parameter_search.randomized_search">randomized_search() (in module multiview_platform.mono_multi_view_classifiers.utils.hyper_parameter_search)</a> -</li> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.utils.html#multiview_platform.mono_multi_view_classifiers.utils.dataset.Dataset.rm">rm() (Dataset method)</a> -</li> - </ul></td> - <td style="width: 33%; vertical-align: top;"><ul> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.utils.html#multiview_platform.mono_multi_view_classifiers.utils.hyper_parameter_search.CustomRandint.rvs">rvs() (CustomRandint method)</a> - - <ul> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.utils.html#multiview_platform.mono_multi_view_classifiers.utils.hyper_parameter_search.CustomUniform.rvs">(CustomUniform method)</a> -</li> - </ul></li> - </ul></td> -</tr></table> - -<h2 id="S">S</h2> -<table style="width: 100%" class="indextable genindextable"><tr> - <td style="width: 33%; vertical-align: top;"><ul> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.utils.html#multiview_platform.mono_multi_view_classifiers.utils.configuration.save_config">save_config() (in module multiview_platform.mono_multi_view_classifiers.utils.configuration)</a> -</li> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.html#multiview_platform.mono_multi_view_classifiers.result_analysis.save_dict_to_text">save_dict_to_text() (in module multiview_platform.mono_multi_view_classifiers.result_analysis)</a> -</li> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.html#multiview_platform.mono_multi_view_classifiers.result_analysis.save_failed">save_failed() (in module multiview_platform.mono_multi_view_classifiers.result_analysis)</a> -</li> - <li><a href="references/monomulti/metrics.html#multiview_platform.mono_multi_view_classifiers.metrics.framework.score">score() (in module multiview_platform.mono_multi_view_classifiers.metrics.framework)</a> -</li> - <li><a href="references/multiview_platform.tests.test_metrics.html#multiview_platform.tests.test_metrics.test_accuracy_score.Test_accuracy_score.score_test">score_test() (Test_accuracy_score method)</a> -</li> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.utils.html#multiview_platform.mono_multi_view_classifiers.utils.hyper_parameter_search.search_best_settings">search_best_settings() (in module multiview_platform.mono_multi_view_classifiers.utils.hyper_parameter_search)</a> -</li> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.utils.html#multiview_platform.mono_multi_view_classifiers.utils.dataset.Dataset.select_labels">select_labels() (Dataset method)</a> -</li> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.utils.html#multiview_platform.mono_multi_view_classifiers.utils.dataset.Dataset.select_views_and_labels">select_views_and_labels() (Dataset method)</a> -</li> - <li><a href="references/monomulti/exec_classif.html#multiview_platform.mono_multi_view_classifiers.exec_classif.set_element">set_element() (in module multiview_platform.mono_multi_view_classifiers.exec_classif)</a>, <a href="references/multiview_platform.mono_multi_view_classifiers.html#multiview_platform.mono_multi_view_classifiers.exec_classif.set_element">[1]</a> -</li> - <li><a href="references/multiview_platform.tests.test_utils.html#multiview_platform.tests.test_utils.test_execution.Test_genKFolds.setUp">setUp() (Test_genKFolds method)</a> - - <ul> - <li><a href="references/multiview_platform.tests.test_utils.html#multiview_platform.tests.test_utils.test_execution.Test_genSplits.setUp">(Test_genSplits method)</a> -</li> - <li><a href="references/multiview_platform.tests.html#multiview_platform.tests.test_ResultAnalysis.Test_get_arguments.setUp">(Test_get_arguments method)</a> -</li> - <li><a href="references/multiview_platform.tests.test_utils.html#multiview_platform.tests.test_utils.test_GetMultiviewDB.Test_get_classic_db_csv.setUp">(Test_get_classic_db_csv method)</a> -</li> - <li><a href="references/multiview_platform.tests.test_utils.html#multiview_platform.tests.test_utils.test_GetMultiviewDB.Test_get_classic_db_hdf5.setUp">(Test_get_classic_db_hdf5 method)</a> -</li> - <li><a href="references/multiview_platform.tests.test_utils.html#multiview_platform.tests.test_utils.test_execution.Test_initRandomState.setUp">(Test_initRandomState method)</a> -</li> - <li><a href="references/multiview_platform.tests.test_utils.html#multiview_platform.tests.test_utils.test_execution.Test_parseTheArgs.setUp">(Test_parseTheArgs method)</a> -</li> - </ul></li> - <li><a href="references/multiview_platform.tests.html#multiview_platform.tests.test_ExecClassif.Test_execBenchmark.setUpClass">setUpClass() (multiview_platform.tests.test_ExecClassif.Test_execBenchmark class method)</a> - - <ul> - <li><a href="references/multiview_platform.tests.test_metrics.html#multiview_platform.tests.test_metrics.test_accuracy_score.Test_accuracy_score.setUpClass">(Test_accuracy_score method)</a> -</li> - <li><a href="references/multiview_platform.tests.html#multiview_platform.tests.test_ExecClassif.Test_InitArgumentDictionaries.setUpClass">(multiview_platform.tests.test_ExecClassif.Test_InitArgumentDictionaries class method)</a> -</li> - <li><a href="references/multiview_platform.tests.html#multiview_platform.tests.test_ExecClassif.Test_get_path_dict.setUpClass">(multiview_platform.tests.test_ExecClassif.Test_get_path_dict class method)</a> -</li> - <li><a href="references/multiview_platform.tests.html#multiview_platform.tests.test_ExecClassif.Test_set_element.setUpClass">(multiview_platform.tests.test_ExecClassif.Test_set_element class method)</a> -</li> - <li><a href="references/multiview_platform.tests.test_mono_view.html#multiview_platform.tests.test_mono_view.test_ExecClassifMonoView.Test_getHPs.setUpClass">(multiview_platform.tests.test_mono_view.test_ExecClassifMonoView.Test_getHPs class method)</a> -</li> - <li><a href="references/multiview_platform.tests.test_mono_view.html#multiview_platform.tests.test_mono_view.test_ExecClassifMonoView.Test_initConstants.setUpClass">(multiview_platform.tests.test_mono_view.test_ExecClassifMonoView.Test_initConstants class method)</a> -</li> - <li><a href="references/multiview_platform.tests.test_mono_view.html#multiview_platform.tests.test_mono_view.test_ExecClassifMonoView.Test_initTrainTest.setUpClass">(multiview_platform.tests.test_mono_view.test_ExecClassifMonoView.Test_initTrainTest class method)</a> -</li> - <li><a href="references/multiview_platform.tests.test_mono_view.html#multiview_platform.tests.test_mono_view.test_MonoviewUtils.Test_genTestFoldsPreds.setUpClass">(multiview_platform.tests.test_mono_view.test_MonoviewUtils.Test_genTestFoldsPreds class method)</a> -</li> - <li><a href="references/multiview_platform.tests.test_utils.html#multiview_platform.tests.test_utils.test_GetMultiviewDB.Test_get_plausible_db_hdf5.setUpClass">(multiview_platform.tests.test_utils.test_GetMultiviewDB.Test_get_plausible_db_hdf5 class method)</a> -</li> - <li><a href="references/multiview_platform.tests.test_utils.html#multiview_platform.tests.test_utils.test_configuration.Test_get_the_args.setUpClass">(multiview_platform.tests.test_utils.test_configuration.Test_get_the_args class method)</a> -</li> - <li><a href="references/multiview_platform.tests.test_utils.html#multiview_platform.tests.test_utils.test_execution.Test_genArgumentDictionaries.setUpClass">(multiview_platform.tests.test_utils.test_execution.Test_genArgumentDictionaries class method)</a> -</li> - <li><a href="references/multiview_platform.tests.test_utils.html#multiview_platform.tests.test_utils.test_execution.Test_genDirecortiesNames.setUpClass">(multiview_platform.tests.test_utils.test_execution.Test_genDirecortiesNames class method)</a> -</li> - <li><a href="references/multiview_platform.tests.test_utils.html#multiview_platform.tests.test_utils.test_execution.Test_getDatabaseFunction.setUpClass">(multiview_platform.tests.test_utils.test_execution.Test_getDatabaseFunction class method)</a> -</li> - <li><a href="references/multiview_platform.tests.test_utils.html#multiview_platform.tests.test_utils.test_execution.Test_initStatsIterRandomStates.setUpClass">(multiview_platform.tests.test_utils.test_execution.Test_initStatsIterRandomStates class method)</a> -</li> - <li><a href="references/multiview_platform.tests.test_utils.html#multiview_platform.tests.test_utils.test_multiclass.Test_genMulticlassLabels.setUpClass">(multiview_platform.tests.test_utils.test_multiclass.Test_genMulticlassLabels class method)</a> -</li> - </ul></li> - </ul></td> - <td style="width: 33%; vertical-align: top;"><ul> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.utils.html#multiview_platform.mono_multi_view_classifiers.utils.transformations.sign_labels">sign_labels() (in module multiview_platform.mono_multi_view_classifiers.utils.transformations)</a> -</li> - <li><a href="analyzeresult.html#multiview_platform.mono_multi_view_classifiers.result_analysis.sort_by_test_score">sort_by_test_score() (in module multiview_platform.mono_multi_view_classifiers.result_analysis)</a>, <a href="references/multiview_platform.mono_multi_view_classifiers.html#multiview_platform.mono_multi_view_classifiers.result_analysis.sort_by_test_score">[1]</a> -</li> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.utils.html#multiview_platform.mono_multi_view_classifiers.utils.hyper_parameter_search.spear_mint">spear_mint() (in module multiview_platform.mono_multi_view_classifiers.utils.hyper_parameter_search)</a> -</li> - <li><a href="references/multiview_platform.tests.html#multiview_platform.tests.test_ExecClassif.FakeKfold.split">split() (FakeKfold method)</a> -</li> - </ul></td> -</tr></table> - -<h2 id="T">T</h2> -<table style="width: 100%" class="indextable genindextable"><tr> - <td style="width: 33%; vertical-align: top;"><ul> - <li><a href="references/multiview_platform.tests.test_utils.html#multiview_platform.tests.test_utils.test_GetMultiviewDB.Test_get_classic_db_csv.tearDown">tearDown() (multiview_platform.tests.test_utils.test_GetMultiviewDB.Test_get_classic_db_csv class method)</a> - - <ul> - <li><a href="references/multiview_platform.tests.test_utils.html#multiview_platform.tests.test_utils.test_GetMultiviewDB.Test_get_classic_db_hdf5.tearDown">(Test_get_classic_db_hdf5 method)</a> -</li> - <li><a href="references/multiview_platform.tests.test_utils.html#multiview_platform.tests.test_utils.test_execution.Test_initRandomState.tearDown">(Test_initRandomState method)</a> -</li> - </ul></li> - <li><a href="references/multiview_platform.tests.html#multiview_platform.tests.test_ExecClassif.Test_execBenchmark.tearDownClass">tearDownClass() (multiview_platform.tests.test_ExecClassif.Test_execBenchmark class method)</a> - - <ul> - <li><a href="references/multiview_platform.tests.html#multiview_platform.tests.test_ExecClassif.Test_get_path_dict.tearDownClass">(multiview_platform.tests.test_ExecClassif.Test_get_path_dict class method)</a> -</li> - <li><a href="references/multiview_platform.tests.html#multiview_platform.tests.test_ExecClassif.Test_set_element.tearDownClass">(multiview_platform.tests.test_ExecClassif.Test_set_element class method)</a> -</li> - <li><a href="references/multiview_platform.tests.test_mono_view.html#multiview_platform.tests.test_mono_view.test_ExecClassifMonoView.Test_getHPs.tearDownClass">(multiview_platform.tests.test_mono_view.test_ExecClassifMonoView.Test_getHPs class method)</a> -</li> - <li><a href="references/multiview_platform.tests.test_mono_view.html#multiview_platform.tests.test_mono_view.test_ExecClassifMonoView.Test_initConstants.tearDownClass">(multiview_platform.tests.test_mono_view.test_ExecClassifMonoView.Test_initConstants class method)</a> -</li> - <li><a href="references/multiview_platform.tests.test_utils.html#multiview_platform.tests.test_utils.test_GetMultiviewDB.Test_get_plausible_db_hdf5.tearDownClass">(multiview_platform.tests.test_utils.test_GetMultiviewDB.Test_get_plausible_db_hdf5 class method)</a> -</li> - <li><a href="references/multiview_platform.tests.test_utils.html#multiview_platform.tests.test_utils.test_configuration.Test_get_the_args.tearDownClass">(multiview_platform.tests.test_utils.test_configuration.Test_get_the_args class method)</a> -</li> - </ul></li> - <li><a href="references/multiview_platform.tests.test_metrics.html#multiview_platform.tests.test_metrics.test_accuracy_score.Test_accuracy_score">Test_accuracy_score (class in multiview_platform.tests.test_metrics.test_accuracy_score)</a> -</li> - <li><a href="references/multiview_platform.tests.test_utils.html#multiview_platform.tests.test_utils.test_GetMultiviewDB.Test_get_classic_db_hdf5.test_all_views_asked">test_all_views_asked() (Test_get_classic_db_hdf5 method)</a> -</li> - <li><a href="references/multiview_platform.tests.test_utils.html#multiview_platform.tests.test_utils.test_configuration.Test_get_the_args.test_arguments">test_arguments() (Test_get_the_args method)</a> -</li> - <li><a href="references/multiview_platform.tests.test_utils.html#multiview_platform.tests.test_utils.test_GetMultiviewDB.Test_get_classic_db_hdf5.test_asked_the_whole_dataset">test_asked_the_whole_dataset() (Test_get_classic_db_hdf5 method)</a> -</li> - <li><a href="references/multiview_platform.tests.html#multiview_platform.tests.test_ResultAnalysis.Test_get_arguments.test_benchmark_wanted">test_benchmark_wanted() (Test_get_arguments method)</a> - - <ul> - <li><a href="references/multiview_platform.tests.html#multiview_platform.tests.test_ExecClassif.Test_initBenchmark.test_benchmark_wanted">(Test_initBenchmark method)</a> -</li> - </ul></li> - <li><a href="references/multiview_platform.tests.test_utils.html#multiview_platform.tests.test_utils.test_configuration.Test_get_the_args.test_dict_format">test_dict_format() (Test_get_the_args method)</a> -</li> - <li><a href="references/multiview_platform.tests.test_utils.html#multiview_platform.tests.test_utils.test_execution.Test_parseTheArgs.test_empty_args">test_empty_args() (Test_parseTheArgs method)</a> -</li> - <li><a href="references/multiview_platform.tests.html#multiview_platform.tests.test_ExecClassif.Test_execBenchmark">Test_execBenchmark (class in multiview_platform.tests.test_ExecClassif)</a> -</li> - <li><a href="references/multiview_platform.tests.test_utils.html#multiview_platform.tests.test_utils.test_configuration.Test_get_the_args.test_file_loading">test_file_loading() (Test_get_the_args method)</a> -</li> - <li><a href="references/multiview_platform.tests.html#multiview_platform.tests.test_ResultAnalysis.Test_format_previous_results">Test_format_previous_results (class in multiview_platform.tests.test_ResultAnalysis)</a> -</li> - <li><a href="references/multiview_platform.tests.html#multiview_platform.tests.test_ResultAnalysis.Test_gen_error_data">Test_gen_error_data (class in multiview_platform.tests.test_ResultAnalysis)</a> -</li> - <li><a href="references/multiview_platform.tests.html#multiview_platform.tests.test_ResultAnalysis.Test_gen_error_data_glob">Test_gen_error_data_glob (class in multiview_platform.tests.test_ResultAnalysis)</a> -</li> - <li><a href="references/multiview_platform.tests.test_utils.html#multiview_platform.tests.test_utils.test_execution.Test_genArgumentDictionaries">Test_genArgumentDictionaries (class in multiview_platform.tests.test_utils.test_execution)</a> -</li> - <li><a href="references/multiview_platform.tests.test_utils.html#multiview_platform.tests.test_utils.test_execution.Test_genDirecortiesNames">Test_genDirecortiesNames (class in multiview_platform.tests.test_utils.test_execution)</a> -</li> - <li><a href="references/multiview_platform.tests.test_utils.html#multiview_platform.tests.test_utils.test_execution.Test_genKFolds">Test_genKFolds (class in multiview_platform.tests.test_utils.test_execution)</a> -</li> - <li><a href="references/multiview_platform.tests.test_utils.html#multiview_platform.tests.test_utils.test_execution.Test_genKFolds.test_genKFolds_iter">test_genKFolds_iter() (Test_genKFolds method)</a> -</li> - <li><a href="references/multiview_platform.tests.test_utils.html#multiview_platform.tests.test_utils.test_multiclass.Test_genMulticlassLabels">Test_genMulticlassLabels (class in multiview_platform.tests.test_utils.test_multiclass)</a> -</li> - <li><a href="references/multiview_platform.tests.test_utils.html#multiview_platform.tests.test_utils.test_execution.Test_genSplits">Test_genSplits (class in multiview_platform.tests.test_utils.test_execution)</a> -</li> - <li><a href="references/multiview_platform.tests.test_utils.html#multiview_platform.tests.test_utils.test_execution.Test_genSplits.test_genSplits_no_iter">test_genSplits_no_iter() (Test_genSplits method)</a> -</li> - <li><a href="references/multiview_platform.tests.test_mono_view.html#multiview_platform.tests.test_mono_view.test_MonoviewUtils.Test_genTestFoldsPreds">Test_genTestFoldsPreds (class in multiview_platform.tests.test_mono_view.test_MonoviewUtils)</a> -</li> - <li><a href="references/multiview_platform.tests.html#multiview_platform.tests.test_ResultAnalysis.Test_get_arguments">Test_get_arguments (class in multiview_platform.tests.test_ResultAnalysis)</a> -</li> - <li><a href="references/multiview_platform.tests.test_utils.html#multiview_platform.tests.test_utils.test_GetMultiviewDB.Test_get_classic_db_csv">Test_get_classic_db_csv (class in multiview_platform.tests.test_utils.test_GetMultiviewDB)</a> -</li> - <li><a href="references/multiview_platform.tests.test_utils.html#multiview_platform.tests.test_utils.test_GetMultiviewDB.Test_get_classic_db_hdf5">Test_get_classic_db_hdf5 (class in multiview_platform.tests.test_utils.test_GetMultiviewDB)</a> -</li> - <li><a href="references/multiview_platform.tests.html#multiview_platform.tests.test_ResultAnalysis.Test_get_example_errors_biclass">Test_get_example_errors_biclass (class in multiview_platform.tests.test_ResultAnalysis)</a> -</li> - <li><a href="references/multiview_platform.tests.html#multiview_platform.tests.test_ResultAnalysis.Test_get_metrics_scores_biclass">Test_get_metrics_scores_biclass (class in multiview_platform.tests.test_ResultAnalysis)</a> -</li> - <li><a href="references/multiview_platform.tests.html#multiview_platform.tests.test_ExecClassif.Test_get_path_dict">Test_get_path_dict (class in multiview_platform.tests.test_ExecClassif)</a> -</li> - <li><a href="references/multiview_platform.tests.test_utils.html#multiview_platform.tests.test_utils.test_GetMultiviewDB.Test_get_plausible_db_hdf5">Test_get_plausible_db_hdf5 (class in multiview_platform.tests.test_utils.test_GetMultiviewDB)</a> -</li> - <li><a href="references/multiview_platform.tests.test_utils.html#multiview_platform.tests.test_utils.test_configuration.Test_get_the_args">Test_get_the_args (class in multiview_platform.tests.test_utils.test_configuration)</a> -</li> - <li><a href="references/multiview_platform.tests.test_utils.html#multiview_platform.tests.test_utils.test_execution.Test_getDatabaseFunction">Test_getDatabaseFunction (class in multiview_platform.tests.test_utils.test_execution)</a> -</li> - <li><a href="references/multiview_platform.tests.test_mono_view.html#multiview_platform.tests.test_mono_view.test_ExecClassifMonoView.Test_getHPs">Test_getHPs (class in multiview_platform.tests.test_mono_view.test_ExecClassifMonoView)</a> -</li> - <li><a href="references/multiview_platform.tests.test_utils.html#multiview_platform.tests.test_utils.test_execution.Test_getDatabaseFunction.test_hdf5">test_hdf5() (Test_getDatabaseFunction method)</a> -</li> - <li><a href="references/multiview_platform.tests.html#multiview_platform.tests.test_ExecClassif.Test_InitArgumentDictionaries.test_init_argument_dictionaries_monoview">test_init_argument_dictionaries_monoview() (Test_InitArgumentDictionaries method)</a> -</li> - <li><a href="references/multiview_platform.tests.html#multiview_platform.tests.test_ExecClassif.Test_InitArgumentDictionaries.test_init_argument_dictionaries_multiview">test_init_argument_dictionaries_multiview() (Test_InitArgumentDictionaries method)</a> -</li> - <li><a href="references/multiview_platform.tests.html#multiview_platform.tests.test_ExecClassif.Test_InitArgumentDictionaries.test_init_argument_dictionaries_multiview_complex">test_init_argument_dictionaries_multiview_complex() (Test_InitArgumentDictionaries method)</a> -</li> - </ul></td> - <td style="width: 33%; vertical-align: top;"><ul> - <li><a href="references/multiview_platform.tests.html#multiview_platform.tests.test_ExecClassif.Test_InitArgumentDictionaries.test_init_argument_dictionaries_multiview_multiple">test_init_argument_dictionaries_multiview_multiple() (Test_InitArgumentDictionaries method)</a> -</li> - <li><a href="references/multiview_platform.tests.html#multiview_platform.tests.test_ExecClassif.Test_InitArgumentDictionaries.test_init_argument_dictionaries_multiview_multiple_complex">test_init_argument_dictionaries_multiview_multiple_complex() (Test_InitArgumentDictionaries method)</a> -</li> - <li><a href="references/multiview_platform.tests.html#multiview_platform.tests.test_ResultAnalysis.Test_init_plot">Test_init_plot (class in multiview_platform.tests.test_ResultAnalysis)</a> -</li> - <li><a href="references/multiview_platform.tests.html#multiview_platform.tests.test_ExecClassif.Test_InitArgumentDictionaries">Test_InitArgumentDictionaries (class in multiview_platform.tests.test_ExecClassif)</a> -</li> - <li><a href="references/multiview_platform.tests.html#multiview_platform.tests.test_ExecClassif.Test_initBenchmark">Test_initBenchmark (class in multiview_platform.tests.test_ExecClassif)</a> -</li> - <li><a href="references/multiview_platform.tests.test_mono_view.html#multiview_platform.tests.test_mono_view.test_ExecClassifMonoView.Test_initConstants">Test_initConstants (class in multiview_platform.tests.test_mono_view.test_ExecClassifMonoView)</a> -</li> - <li><a href="references/multiview_platform.tests.html#multiview_platform.tests.test_ExecClassif.Test_initKWARGS">Test_initKWARGS (class in multiview_platform.tests.test_ExecClassif)</a> -</li> - <li><a href="references/multiview_platform.tests.html#multiview_platform.tests.test_ExecClassif.Test_initKWARGS.test_initKWARGSFunc_no_monoview">test_initKWARGSFunc_no_monoview() (Test_initKWARGS method)</a> -</li> - <li><a href="references/multiview_platform.tests.test_utils.html#multiview_platform.tests.test_utils.test_execution.Test_initRandomState">Test_initRandomState (class in multiview_platform.tests.test_utils.test_execution)</a> -</li> - <li><a href="references/multiview_platform.tests.test_utils.html#multiview_platform.tests.test_utils.test_execution.Test_initStatsIterRandomStates">Test_initStatsIterRandomStates (class in multiview_platform.tests.test_utils.test_execution)</a> -</li> - <li><a href="references/multiview_platform.tests.test_mono_view.html#multiview_platform.tests.test_mono_view.test_ExecClassifMonoView.Test_initTrainTest">Test_initTrainTest (class in multiview_platform.tests.test_mono_view.test_ExecClassifMonoView)</a> -</li> - <li><a href="references/multiview_platform.tests.html#multiview_platform.tests.test_ExecClassif.Test_execBenchmark.test_multiclass_and_iter">test_multiclass_and_iter() (Test_execBenchmark method)</a> -</li> - <li><a href="references/multiview_platform.tests.html#multiview_platform.tests.test_ExecClassif.Test_execBenchmark.test_multiclass_no_iter">test_multiclass_no_iter() (Test_execBenchmark method)</a> -</li> - <li><a href="references/multiview_platform.tests.test_utils.html#multiview_platform.tests.test_utils.test_execution.Test_initStatsIterRandomStates.test_multiple_iter">test_multiple_iter() (Test_initStatsIterRandomStates method)</a> -</li> - <li><a href="references/multiview_platform.tests.html#multiview_platform.tests.test_ExecClassif.Test_execBenchmark.test_no_iter_biclass_multicore">test_no_iter_biclass_multicore() (Test_execBenchmark method)</a> -</li> - <li><a href="references/multiview_platform.tests.test_utils.html#multiview_platform.tests.test_utils.test_execution.Test_initStatsIterRandomStates.test_one_statiter">test_one_statiter() (Test_initStatsIterRandomStates method)</a> -</li> - <li><a href="references/multiview_platform.tests.test_utils.html#multiview_platform.tests.test_utils.test_multiclass.Test_genMulticlassLabels.test_one_versus_one">test_one_versus_one() (Test_genMulticlassLabels method)</a> -</li> - <li><a href="references/multiview_platform.tests.test_utils.html#multiview_platform.tests.test_utils.test_execution.Test_genDirecortiesNames.test_ovo_no_iter">test_ovo_no_iter() (Test_genDirecortiesNames method)</a> -</li> - <li><a href="references/multiview_platform.tests.test_utils.html#multiview_platform.tests.test_utils.test_execution.Test_parseTheArgs">Test_parseTheArgs (class in multiview_platform.tests.test_utils.test_execution)</a> -</li> - <li><a href="references/multiview_platform.tests.test_utils.html#multiview_platform.tests.test_utils.test_execution.Test_getDatabaseFunction.test_plausible_hdf5">test_plausible_hdf5() (Test_getDatabaseFunction method)</a> -</li> - <li><a href="references/multiview_platform.tests.test_utils.html#multiview_platform.tests.test_utils.test_execution.Test_initRandomState.test_random_state_42">test_random_state_42() (Test_initRandomState method)</a> -</li> - <li><a href="references/multiview_platform.tests.test_utils.html#multiview_platform.tests.test_utils.test_execution.Test_initRandomState.test_random_state_pickle">test_random_state_pickle() (Test_initRandomState method)</a> -</li> - <li><a href="references/multiview_platform.tests.html#multiview_platform.tests.test_ExecClassif.Test_set_element">Test_set_element (class in multiview_platform.tests.test_ExecClassif)</a> -</li> - <li><a href="references/multiview_platform.tests.html#multiview_platform.tests.test_ExecClassif.Test_execBenchmark.test_simple">test_simple() (Test_execBenchmark method)</a> - - <ul> - <li><a href="references/multiview_platform.tests.html#multiview_platform.tests.test_ResultAnalysis.Test_format_previous_results.test_simple">(Test_format_previous_results method)</a> -</li> - <li><a href="references/multiview_platform.tests.test_utils.html#multiview_platform.tests.test_utils.test_execution.Test_genSplits.test_simple">(Test_genSplits method)</a> -</li> - <li><a href="references/multiview_platform.tests.test_mono_view.html#multiview_platform.tests.test_mono_view.test_MonoviewUtils.Test_genTestFoldsPreds.test_simple">(Test_genTestFoldsPreds method)</a> -</li> - <li><a href="references/multiview_platform.tests.html#multiview_platform.tests.test_ResultAnalysis.Test_gen_error_data.test_simple">(Test_gen_error_data method)</a> -</li> - <li><a href="references/multiview_platform.tests.html#multiview_platform.tests.test_ResultAnalysis.Test_gen_error_data_glob.test_simple">(Test_gen_error_data_glob method)</a> -</li> - <li><a href="references/multiview_platform.tests.test_utils.html#multiview_platform.tests.test_utils.test_execution.Test_getDatabaseFunction.test_simple">(Test_getDatabaseFunction method)</a> -</li> - <li><a href="references/multiview_platform.tests.test_mono_view.html#multiview_platform.tests.test_mono_view.test_ExecClassifMonoView.Test_getHPs.test_simple">(Test_getHPs method)</a> -</li> - <li><a href="references/multiview_platform.tests.test_utils.html#multiview_platform.tests.test_utils.test_GetMultiviewDB.Test_get_classic_db_csv.test_simple">(Test_get_classic_db_csv method)</a> -</li> - <li><a href="references/multiview_platform.tests.test_utils.html#multiview_platform.tests.test_utils.test_GetMultiviewDB.Test_get_classic_db_hdf5.test_simple">(Test_get_classic_db_hdf5 method)</a> -</li> - <li><a href="references/multiview_platform.tests.html#multiview_platform.tests.test_ResultAnalysis.Test_get_example_errors_biclass.test_simple">(Test_get_example_errors_biclass method)</a> -</li> - <li><a href="references/multiview_platform.tests.html#multiview_platform.tests.test_ResultAnalysis.Test_get_metrics_scores_biclass.test_simple">(Test_get_metrics_scores_biclass method)</a> -</li> - <li><a href="references/multiview_platform.tests.html#multiview_platform.tests.test_ExecClassif.Test_get_path_dict.test_simple">(Test_get_path_dict method)</a> -</li> - <li><a href="references/multiview_platform.tests.test_utils.html#multiview_platform.tests.test_utils.test_GetMultiviewDB.Test_get_plausible_db_hdf5.test_simple">(Test_get_plausible_db_hdf5 method)</a> -</li> - <li><a href="references/multiview_platform.tests.test_mono_view.html#multiview_platform.tests.test_mono_view.test_ExecClassifMonoView.Test_initConstants.test_simple">(Test_initConstants method)</a> -</li> - <li><a href="references/multiview_platform.tests.test_mono_view.html#multiview_platform.tests.test_mono_view.test_ExecClassifMonoView.Test_initTrainTest.test_simple">(Test_initTrainTest method)</a> -</li> - <li><a href="references/multiview_platform.tests.html#multiview_platform.tests.test_ResultAnalysis.Test_init_plot.test_simple">(Test_init_plot method)</a> -</li> - <li><a href="references/multiview_platform.tests.html#multiview_platform.tests.test_ExecClassif.Test_set_element.test_simple">(Test_set_element method)</a> -</li> - </ul></li> - <li><a href="references/multiview_platform.tests.test_utils.html#multiview_platform.tests.test_utils.test_execution.Test_genDirecortiesNames.test_simple_ovo">test_simple_ovo() (Test_genDirecortiesNames method)</a> -</li> - <li><a href="references/multiview_platform.tests.test_utils.html#multiview_platform.tests.test_utils.test_GetMultiviewDB.Test_get_plausible_db_hdf5.test_two_class">test_two_class() (Test_get_plausible_db_hdf5 method)</a> -</li> - <li><a href="references/multiview_platform.html#multiview_platform.versions.test_versions">test_versions() (in module multiview_platform.versions)</a> -</li> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.utils.html#multiview_platform.mono_multi_view_classifiers.utils.dataset.Dataset.to_numpy_array">to_numpy_array() (Dataset method)</a> -</li> - </ul></td> -</tr></table> - -<h2 id="U">U</h2> -<table style="width: 100%" class="indextable genindextable"><tr> - <td style="width: 33%; vertical-align: top;"><ul> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.utils.html#multiview_platform.mono_multi_view_classifiers.utils.transformations.unsign_labels">unsign_labels() (in module multiview_platform.mono_multi_view_classifiers.utils.transformations)</a> -</li> - </ul></td> - <td style="width: 33%; vertical-align: top;"><ul> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.utils.html#multiview_platform.mono_multi_view_classifiers.utils.dataset.Dataset.update_hdf5_dataset">update_hdf5_dataset() (Dataset method)</a> -</li> - </ul></td> -</tr></table> - -<h2 id="V">V</h2> -<table style="width: 100%" class="indextable genindextable"><tr> - <td style="width: 33%; vertical-align: top;"><ul> - <li><a href="references/multiview_platform.mono_multi_view_classifiers.utils.html#multiview_platform.mono_multi_view_classifiers.utils.dataset.Dataset.view_dict">view_dict (Dataset attribute)</a> -</li> - </ul></td> -</tr></table> - </div> @@ -861,9 +70,6 @@ <li class="right" style="margin-right: 10px"> <a href="#" title="General Index" >index</a></li> - <li class="right" > - <a href="py-modindex.html" title="Python Module Index" - >modules</a> |</li> <li class="nav-item nav-item-0"><a href="index.html">MultiviewPlatform 0 documentation</a> »</li> </ul> </div> diff --git a/docs/build/index.html b/docs/build/index.html index 01f09eba..775d0767 100644 --- a/docs/build/index.html +++ b/docs/build/index.html @@ -6,7 +6,7 @@ <head> <meta http-equiv="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> - <title>Welcome to MultiviewPlatform’s documentation! — MultiviewPlatform 0 documentation</title> + <title>Welcome to SuMMIT’s documentation! — MultiviewPlatform 0 documentation</title> <link rel="stylesheet" href="_static/classic.css" type="text/css" /> <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> @@ -26,9 +26,6 @@ <li class="right" style="margin-right: 10px"> <a href="genindex.html" title="General Index" accesskey="I">index</a></li> - <li class="right" > - <a href="py-modindex.html" title="Python Module Index" - >modules</a> |</li> <li class="right" > <a href="readme_link.html" title="Readme" accesskey="N">next</a> |</li> @@ -45,81 +42,17 @@ sphinx-quickstart on Mon Jan 29 17:13:09 2018. You can adapt this file completely to your liking, but it should at least contain the root <cite>toctree</cite> directive.</p> -<div class="section" id="welcome-to-multiviewplatform-s-documentation"> -<h1>Welcome to MultiviewPlatform’s documentation!<a class="headerlink" href="#welcome-to-multiviewplatform-s-documentation" title="Permalink to this headline">¶</a></h1> -<p>This package is used as an easy-to-use platform to estimate different mono- and multi-view classifiers’ performance on a multiview dataset.</p> +<div class="section" id="welcome-to-summit-s-documentation"> +<h1>Welcome to SuMMIT’s documentation!<a class="headerlink" href="#welcome-to-summit-s-documentation" title="Permalink to this headline">¶</a></h1> +<p>This package ha been designed as an easy-to-use platform to estimate different mono- and multi-view classifiers’ performances on a multiview dataset.</p> <p>The main advantage of the platform is that it allows to add and remove a classifier without modifying its core code (the procedure is described thoroughly in this documentation).</p> <div class="toctree-wrapper compound"> <p class="caption"><span class="caption-text">Contents:</span></p> <ul> <li class="toctree-l1"><a class="reference internal" href="readme_link.html">Readme</a></li> -<li class="toctree-l1"><a class="reference internal" href="readme_link.html#mono-and-multi-view-classification-benchmark">Mono- and Multi-view classification benchmark</a><ul> -<li class="toctree-l2"><a class="reference internal" href="readme_link.html#getting-started">Getting Started</a><ul> -<li class="toctree-l3"><a class="reference internal" href="readme_link.html#prerequisites">Prerequisites</a></li> -<li class="toctree-l3"><a class="reference internal" href="readme_link.html#installing">Installing</a></li> -<li class="toctree-l3"><a class="reference internal" href="readme_link.html#running-on-simulated-data">Running on simulated data</a></li> -<li class="toctree-l3"><a class="reference internal" href="readme_link.html#discovering-the-arguments">Discovering the arguments</a></li> -<li class="toctree-l3"><a class="reference internal" href="readme_link.html#dataset-compatibility">Dataset compatibility</a></li> -<li class="toctree-l3"><a class="reference internal" href="readme_link.html#running-on-your-dataset">Running on your dataset</a></li> -</ul> -</li> -<li class="toctree-l2"><a class="reference internal" href="readme_link.html#running-the-tests">Running the tests</a></li> -<li class="toctree-l2"><a class="reference internal" href="readme_link.html#author">Author</a><ul> -<li class="toctree-l3"><a class="reference internal" href="readme_link.html#contributors">Contributors</a></li> -</ul> -</li> -</ul> -</li> -<li class="toctree-l1"><a class="reference internal" href="tutorials/index.html">Multiview Platform Tutorials</a><ul> -<li class="toctree-l2"><a class="reference internal" href="tutorials/installation.html">Install Multiview Platform</a><ul> -<li class="toctree-l3"><a class="reference internal" href="tutorials/installation.html#launching-the-setup-tool">Launching the setup tool</a></li> -</ul> -</li> -<li class="toctree-l2"><a class="reference internal" href="tutorials/example1.html">Example 1 : First steps with Multiview Platform</a><ul> -<li class="toctree-l3"><a class="reference internal" href="tutorials/example1.html#context">Context</a></li> -<li class="toctree-l3"><a class="reference internal" href="tutorials/example1.html#introduction-to-this-tutorial">Introduction to this tutorial</a></li> -<li class="toctree-l3"><a class="reference internal" href="tutorials/example1.html#getting-started">Getting started</a></li> -</ul> -</li> -<li class="toctree-l2"><a class="reference internal" href="tutorials/example2.html">Example 2 : Understanding the hyper-parameter optimization</a><ul> -<li class="toctree-l3"><a class="reference internal" href="tutorials/example2.html#intuitive-explanation-on-hyper-parameters">Intuitive explanation on hyper-parameters</a></li> -<li class="toctree-l3"><a class="reference internal" href="tutorials/example2.html#understanding-train-test-split">Understanding train/test split</a></li> -<li class="toctree-l3"><a class="reference internal" href="tutorials/example2.html#understanding-hyper-parameter-optimization">Understanding hyper-parameter optimization</a></li> -<li class="toctree-l3"><a class="reference internal" href="tutorials/example2.html#hands-on-experience">Hands-on experience</a></li> -</ul> -</li> -<li class="toctree-l2"><a class="reference internal" href="tutorials/example3.html">Example 3 : Understanding the statistical iterations</a><ul> -<li class="toctree-l3"><a class="reference internal" href="tutorials/example3.html#context">Context</a></li> -<li class="toctree-l3"><a class="reference internal" href="tutorials/example3.html#how-to-use-it">How to use it</a></li> -</ul> -</li> -<li class="toctree-l2"><a class="reference internal" href="tutorials/example4.html">Taking control : Use your own dataset</a><ul> -<li class="toctree-l3"><a class="reference internal" href="tutorials/example4.html#the-bare-necessities">The bare necessities</a></li> -<li class="toctree-l3"><a class="reference internal" href="tutorials/example4.html#the-dataset-structure">The dataset structure</a></li> -<li class="toctree-l3"><a class="reference internal" href="tutorials/example4.html#hdf5-conversion">HDF5 conversion</a></li> -<li class="toctree-l3"><a class="reference internal" href="tutorials/example4.html#adding-additional-information-on-the-examples">Adding additional information on the examples</a></li> -</ul> -</li> -<li class="toctree-l2"><a class="reference internal" href="tutorials/example5.html">Taking control : Use your own algorithms</a><ul> -<li class="toctree-l3"><a class="reference internal" href="tutorials/example5.html#simple-task-adding-a-monoview-classifier">Simple task : Adding a monoview classifier</a></li> -<li class="toctree-l3"><a class="reference internal" href="tutorials/example5.html#more-complex-task-adding-a-multiview-classifier">More complex task : Adding a multiview classifier</a></li> -</ul> -</li> -</ul> -</li> -<li class="toctree-l1"><a class="reference internal" href="references/multiview_platform.html">multiview_platform references</a><ul> -<li class="toctree-l2"><a class="reference internal" href="references/multiview_platform.html#subpackages">Subpackages</a><ul> -<li class="toctree-l3"><a class="reference internal" href="references/multiview_platform.mono_multi_view_classifiers.html">multiview_platform.mono_multi_view_classifiers package</a></li> -<li class="toctree-l3"><a class="reference internal" href="references/multiview_platform.tests.html">multiview_platform.tests package</a></li> -</ul> -</li> -<li class="toctree-l2"><a class="reference internal" href="references/multiview_platform.html#submodules">Submodules</a></li> -<li class="toctree-l2"><a class="reference internal" href="references/multiview_platform.html#module-multiview_platform.execute">multiview_platform.execute module</a></li> -<li class="toctree-l2"><a class="reference internal" href="references/multiview_platform.html#module-multiview_platform.tests">multiview_platform.tests module</a></li> -<li class="toctree-l2"><a class="reference internal" href="references/multiview_platform.html#module-multiview_platform.versions">multiview_platform.versions module</a></li> -<li class="toctree-l2"><a class="reference internal" href="references/multiview_platform.html#module-multiview_platform">Module contents</a></li> -</ul> -</li> +<li class="toctree-l1"><a class="reference internal" href="readme_link.html#mono-and-multi-view-classification-benchmark">Mono- and Multi-view classification benchmark</a></li> +<li class="toctree-l1"><a class="reference internal" href="tutorials/index.html">Multiview Platform Tutorials</a></li> +<li class="toctree-l1"><a class="reference internal" href="references/multiview_platform.html">multiview_platform references</a></li> </ul> </div> </div> @@ -140,7 +73,7 @@ contain the root <cite>toctree</cite> directive.</p> <div class="sphinxsidebarwrapper"> <h3><a href="#">Table of Contents</a></h3> <ul> -<li><a class="reference internal" href="#">Welcome to MultiviewPlatform’s documentation!</a></li> +<li><a class="reference internal" href="#">Welcome to SuMMIT’s documentation!</a></li> <li><a class="reference internal" href="#indices-and-tables">Indices and tables</a></li> </ul> @@ -176,9 +109,6 @@ contain the root <cite>toctree</cite> directive.</p> <li class="right" style="margin-right: 10px"> <a href="genindex.html" title="General Index" >index</a></li> - <li class="right" > - <a href="py-modindex.html" title="Python Module Index" - >modules</a> |</li> <li class="right" > <a href="readme_link.html" title="Readme" >next</a> |</li> diff --git a/docs/build/modules.html b/docs/build/modules.html index fb7fbdde..65812ded 100644 --- a/docs/build/modules.html +++ b/docs/build/modules.html @@ -25,9 +25,6 @@ <li class="right" style="margin-right: 10px"> <a href="genindex.html" title="General Index" accesskey="I">index</a></li> - <li class="right" > - <a href="py-modindex.html" title="Python Module Index" - >modules</a> |</li> <li class="nav-item nav-item-0"><a href="index.html">MultiviewPlatform 0 documentation</a> »</li> </ul> </div> @@ -40,35 +37,6 @@ <div class="section" id="multiview-platform"> <h1>multiview_platform<a class="headerlink" href="#multiview-platform" title="Permalink to this headline">¶</a></h1> <div class="toctree-wrapper compound"> -<ul> -<li class="toctree-l1"><a class="reference internal" href="multiview_platform.html">multiview_platform package</a><ul> -<li class="toctree-l2"><a class="reference internal" href="multiview_platform.html#subpackages">Subpackages</a><ul> -<li class="toctree-l3"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.html">multiview_platform.mono_multi_view_classifiers package</a><ul> -<li class="toctree-l4"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.html#subpackages">Subpackages</a></li> -<li class="toctree-l4"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.html#submodules">Submodules</a></li> -<li class="toctree-l4"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.html#module-multiview_platform.mono_multi_view_classifiers.exec_classif">multiview_platform.mono_multi_view_classifiers.exec_classif module</a></li> -<li class="toctree-l4"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.html#module-multiview_platform.mono_multi_view_classifiers.result_analysis">multiview_platform.mono_multi_view_classifiers.result_analysis module</a></li> -<li class="toctree-l4"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.html#module-multiview_platform.mono_multi_view_classifiers">Module contents</a></li> -</ul> -</li> -<li class="toctree-l3"><a class="reference internal" href="multiview_platform.tests.html">multiview_platform.tests package</a><ul> -<li class="toctree-l4"><a class="reference internal" href="multiview_platform.tests.html#subpackages">Subpackages</a></li> -<li class="toctree-l4"><a class="reference internal" href="multiview_platform.tests.html#submodules">Submodules</a></li> -<li class="toctree-l4"><a class="reference internal" href="multiview_platform.tests.html#module-multiview_platform.tests.test_ExecClassif">multiview_platform.tests.test_ExecClassif module</a></li> -<li class="toctree-l4"><a class="reference internal" href="multiview_platform.tests.html#module-multiview_platform.tests.test_ResultAnalysis">multiview_platform.tests.test_ResultAnalysis module</a></li> -<li class="toctree-l4"><a class="reference internal" href="multiview_platform.tests.html#module-multiview_platform.tests">Module contents</a></li> -</ul> -</li> -</ul> -</li> -<li class="toctree-l2"><a class="reference internal" href="multiview_platform.html#submodules">Submodules</a></li> -<li class="toctree-l2"><a class="reference internal" href="multiview_platform.html#module-multiview_platform.execute">multiview_platform.execute module</a></li> -<li class="toctree-l2"><a class="reference internal" href="multiview_platform.html#module-multiview_platform.tests">multiview_platform.tests module</a></li> -<li class="toctree-l2"><a class="reference internal" href="multiview_platform.html#module-multiview_platform.versions">multiview_platform.versions module</a></li> -<li class="toctree-l2"><a class="reference internal" href="multiview_platform.html#module-multiview_platform">Module contents</a></li> -</ul> -</li> -</ul> </div> </div> @@ -107,9 +75,6 @@ <li class="right" style="margin-right: 10px"> <a href="genindex.html" title="General Index" >index</a></li> - <li class="right" > - <a href="py-modindex.html" title="Python Module Index" - >modules</a> |</li> <li class="nav-item nav-item-0"><a href="index.html">MultiviewPlatform 0 documentation</a> »</li> </ul> </div> diff --git a/docs/build/objects.inv b/docs/build/objects.inv index 894f065d75819f2f0ffe9edf44c7b56a0c9aa19a..e4649ac7b24c3d6b2bb32c14d6b8001d16b2c833 100644 GIT binary patch delta 1018 zcmaDO_km+VOa0L(@1ofT68C<KykdOh6E{2O^Nf=|wv)|HmYiJi;r2Bbg)SGN^sCul zs%$;KGDtJB^{DRh%z1hJyU?KsBR_+?HBM|c%b5xVW8HOJ)YCb_t)FEJ27kFL@>0&v zqAPMr@QjC3BAA1dPKj@tu}84Ny<enT_4Fgj8iyI&hbFyh$X#47`HeZ_M3O_3;zqW+ ztKCn$vT1Wk_?ow^sYOMwCPSgCo+&gSb+uzvfPVV!O-<{A0v}eL67Oz*zJLG!g4r)m z``pS|=w+^+>Yf<BJaEFSjEbq-GK`KE&h(uy?Pf~DVhJX%N!MR(@G7?CUgbDV|LGGI z#SfQfsQNI^TeYESLejaDm+IMGYMNazf5ywX_4C~$Q;hF&2{)hcI8ptwYnRfRqzgue z4fkw*Q_BC%Y?+gKW6%7sxbK_4Dc(4jdRWm*>66-j!Ht~LEZ4_gb3Y*AyFFEVm-&Oe zN>5V)>u&8j(RM}pmiSeRf_J<Pb!-3fq}<_M5u{gUAUlU^Z@X*RRBxliPi3Mf>z}Hv z*eTk2O*PNZWZDzEd2SE)nZ`<9J!=wvi}|kHmGylOwX7VzX}(eMEBw(FZV>lt&)1^z z<Q1Y-J!fr|Y-i4QPtja&ck^ob`43Ld^cILI|5JKgF_qCrXol-k6TRCl+c!k~o9rc~ zQ@xyHjpuWtEn>#|nkMttNO~`im})lp@Q$o{u^QE_N0cTkULMhJs?{EO)%OQacl*aF zjaOgDw1=5L*0uN_Y1yCN<?`&)?#r`WYnoEH)Sh$Z>iSH+@`o?IBzd2Ut<*8j!`YLn zPj5c^!bPxtYI)25sRhlq;}7`G-uKDZ@`)h#p?Kk%j4L~3o?YKiSQA&pf6!M(Dr-u# za?%V*#`+i;g^20zMN<#(DO{^>o)^1IF?qM@O_TQ5!I7_JX9aSdzSwM%x6*B;%>KC- znN31|pIF<ab*k{TQLRUFkIcrGmrnm*vny}=Z(;5OHs=p4JXqFrao=~&GU@i4^*ii8 zTu$Nnb<r^*XzsEF<|6N|)-^3xc*Sx&?V`XNqdx1+i4WAd>bd`%kjPo6r~KjZ-Ofz@ zJo&GWZ=5yv-+n~u&%}SPllb`_9Z)~|>xAN`x6d8;EV!?KbKIC|9O1w0f8f=wm<>G% zwG8c#ryPn5&D?xl;m*wR7d)|xt0xtfrtxdKzjs-4+wYFF#q+s3&&^KnOsVu#vQ%bL z7xWDK<x#iSQ_<RUqt)(W(FuyvxP&JA7caWju;+!!o(-J(QJg!ix}G<+%urI2G!@Pd ziY*I@m0FelXH|jovOLX@kA)7>)4b*1b9QYwAmbwZdzJ9-EDp0}+Lm5x9<Tax?7VPR l?C(17#(Af$xP9DQHP_Amw=I0i{z(^fbH&fww=w3f1pwMf>Fodj delta 3853 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 J{bZ#kegMx^bix1t diff --git a/docs/build/readme_link.html b/docs/build/readme_link.html index 4938e458..678949ce 100644 --- a/docs/build/readme_link.html +++ b/docs/build/readme_link.html @@ -19,7 +19,7 @@ <link rel="index" title="Index" href="genindex.html" /> <link rel="search" title="Search" href="search.html" /> <link rel="next" title="Multiview Platform Tutorials" href="tutorials/index.html" /> - <link rel="prev" title="Welcome to MultiviewPlatform’s documentation!" href="index.html" /> + <link rel="prev" title="Welcome to SuMMIT’s documentation!" href="index.html" /> </head><body> <div class="related" role="navigation" aria-label="related navigation"> <h3>Navigation</h3> @@ -27,14 +27,11 @@ <li class="right" style="margin-right: 10px"> <a href="genindex.html" title="General Index" accesskey="I">index</a></li> - <li class="right" > - <a href="py-modindex.html" title="Python Module Index" - >modules</a> |</li> <li class="right" > <a href="tutorials/index.html" title="Multiview Platform Tutorials" accesskey="N">next</a> |</li> <li class="right" > - <a href="index.html" title="Welcome to MultiviewPlatform’s documentation!" + <a href="index.html" title="Welcome to SuMMIT’s documentation!" accesskey="P">previous</a> |</li> <li class="nav-item nav-item-0"><a href="index.html">MultiviewPlatform 0 documentation</a> »</li> </ul> @@ -48,7 +45,7 @@ <div class="section" id="readme"> <h1>Readme<a class="headerlink" href="#readme" title="Permalink to this headline">¶</a></h1> <a class="reference external image-reference" href="http://www.gnu.org/licenses/gpl-3.0"><img alt="License: GPL v3" src="https://img.shields.io/badge/License-GPL%20v3-blue.svg" /></a> -<a class="reference external image-reference" href="https://gitlab.lis-lab.fr/baptiste.bauvin/multiview-machine-learning-omis/badges/develop/build.svg"><img alt="Build Status" src="https://gitlab.lis-lab.fr/baptiste.bauvin/multiview-machine-learning-omis/badges/develop/build.svg" /></a> +<a class="reference external image-reference" href="https://gitlab.lis-lab.fr/baptiste.bauvin/multiview-machine-learning-omis/badges/develop/pipeline.svg"><img alt="Build Status" src="https://gitlab.lis-lab.fr/baptiste.bauvin/multiview-machine-learning-omis/badges/develop/pipeline.svg" /></a> </div> <div class="section" id="mono-and-multi-view-classification-benchmark"> <h1>Mono- and Multi-view classification benchmark<a class="headerlink" href="#mono-and-multi-view-classification-benchmark" title="Permalink to this headline">¶</a></h1> @@ -74,17 +71,17 @@ <li><a class="reference external" href="https://pypi.org/project/m2r/">m2r</a> - Used to generate documentation from the readme,</li> <li><a class="reference external" href="https://pypi.org/project/docutils/">docutils</a> - Used to generate documentation,</li> <li><a class="reference external" href="https://pypi.org/project/PyYAML/">pyyaml</a> - Used to read the config files,</li> -<li><a class="reference external" href="https://plot.ly/">plotly</a> - Used to generate interactive HTML visuals.</li> +<li><a class="reference external" href="https://plot.ly/">plotly</a> - Used to generate interactive HTML visuals,</li> +<li><a class="reference external" href="https://pypi.org/project/tabulate/">tabulate</a> - Used to generated the confusion matrix.</li> </ul> -<p>They are all tested in <code class="docutils literal notranslate"><span class="pre">multiview-machine-mearning-omis/multiview_platform/MonoMutliViewClassifiers/Versions.py</span></code> which is automatically checked each time you run the <code class="docutils literal notranslate"><span class="pre">execute</span></code> script</p> </div> <div class="section" id="installing"> <h3>Installing<a class="headerlink" href="#installing" title="Permalink to this headline">¶</a></h3> -<p>Once you cloned the project from this repository, you just have to use :</p> +<p>Once you cloned the project from the <a class="reference external" href="https://gitlab.lis-lab.fr/baptiste.bauvin/multiview-machine-learning-omis/">gitlab repository</a>, you just have to use :</p> <div class="highlight-guess notranslate"><div class="highlight"><pre><span></span>pip install -e . </pre></div> </div> -<p>In the <code class="docutils literal notranslate"><span class="pre">multiview_machine-learning-omis</span></code> directory.</p> +<p>In the <code class="docutils literal notranslate"><span class="pre">multiview_machine-learning-omis</span></code> directory to install SuMMIT and its dependencies.</p> </div> <div class="section" id="running-on-simulated-data"> <h3>Running on simulated data<a class="headerlink" href="#running-on-simulated-data" title="Permalink to this headline">¶</a></h3> @@ -93,40 +90,35 @@ <span class="n">execute</span><span class="p">()</span> </pre></div> </div> -<p>This will run the first example. For more information about the examples, see the documentation +<p>This will run the first example. For more information about the examples, see the <a class="reference external" href="http://baptiste.bauvin.pages.lis-lab.fr/multiview-machine-learning-omis/">documentation</a> Results will be stored in the results directory of the installation path : <code class="docutils literal notranslate"><span class="pre">path/to/install/multiview-machine-learning-omis/multiview_platform/examples/results</span></code>. -The documentations proposes a detailed interpretation of the results.</p> +The documentation proposes a detailed interpretation of the results.</p> </div> <div class="section" id="discovering-the-arguments"> <h3>Discovering the arguments<a class="headerlink" href="#discovering-the-arguments" title="Permalink to this headline">¶</a></h3> <p>All the arguments of the platform are stored in a YAML config file. Some config files are given as examples. -The file stored in <code class="docutils literal notranslate"><span class="pre">multiview-machine-learning-omis/config_files/config.yml</span></code> is documented and it is highly recommended</p> -<blockquote> -<div>to read it carefully before playing around with the parameters.</div></blockquote> +The file stored in <code class="docutils literal notranslate"><span class="pre">multiview-machine-learning-omis/config_files/config.yml</span></code> is documented and it is highly recommended +to read it carefully before playing around with the parameters.</p> <p>You can create your own configuration file. In order to run the platform with it, run :</p> <div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">multiview_platform.execute</span> <span class="kn">import</span> <span class="n">execute</span> <span class="n">execute</span><span class="p">(</span><span class="n">config_path</span><span class="o">=</span><span class="s2">"/absolute/path/to/your/config/file"</span><span class="p">)</span> </pre></div> </div> -<p>For further information about classifier-specific arguments, see the documentation.</p> +<p>For further information about classifier-specific arguments, see the <a class="reference external" href="http://baptiste.bauvin.pages.lis-lab.fr/multiview-machine-learning-omis/">documentation</a>.</p> </div> <div class="section" id="dataset-compatibility"> <h3>Dataset compatibility<a class="headerlink" href="#dataset-compatibility" title="Permalink to this headline">¶</a></h3> -<p>In order to start a benchmark on your dataset, you need to format it so the script can use it. -You can have either a directory containing <code class="docutils literal notranslate"><span class="pre">.csv</span></code> files or a HDF5 file.</p> -<div class="section" id="if-you-have-multiple-csv-files-you-must-organize-them-as"> -<h4>If you have multiple <code class="docutils literal notranslate"><span class="pre">.csv</span></code> files, you must organize them as :<a class="headerlink" href="#if-you-have-multiple-csv-files-you-must-organize-them-as" title="Permalink to this headline">¶</a></h4> +<p>In order to start a benchmark on your own dataset, you need to format it so SuMMIT can use it.</p> +<p><span class="raw-html-m2r"><a href="<" title="With `top_directory</span> being the last directory in the <cite>pathF</cite> argument”>comment</a>`: <> (#### If you have multiple <code class="docutils literal notranslate"><span class="pre">.csv</span></code> files, you must organize them as :</p> <ul class="simple"> <li><code class="docutils literal notranslate"><span class="pre">top_directory/database_name-labels.csv</span></code></li> <li><code class="docutils literal notranslate"><span class="pre">top_directory/database_name-labels-names.csv</span></code></li> -<li><code class="docutils literal notranslate"><span class="pre">top_directory/Views/view_name.csv</span></code> or <code class="docutils literal notranslate"><span class="pre">top_directory/Views/view_name-s.csv</span></code> if the view is sparse</li> +<li><code class="docutils literal notranslate"><span class="pre">top_directory/Views/view_name.csv</span></code> or <code class="docutils literal notranslate"><span class="pre">top_directory/Views/view_name-s.csv</span></code> if the view is sparse)</li> </ul> -<p>With <code class="docutils literal notranslate"><span class="pre">top_directory</span></code> being the last directory in the <code class="docutils literal notranslate"><span class="pre">pathF</span></code> argument</p> -</div> <div class="section" id="if-you-already-have-an-hdf5-dataset-file-it-must-be-formatted-as"> <h4>If you already have an HDF5 dataset file it must be formatted as :<a class="headerlink" href="#if-you-already-have-an-hdf5-dataset-file-it-must-be-formatted-as" title="Permalink to this headline">¶</a></h4> -<p>One dataset for each view called <code class="docutils literal notranslate"><span class="pre">ViewX</span></code> with <code class="docutils literal notranslate"><span class="pre">X</span></code> being the view index with 2 attribures :</p> +<p>One dataset for each view called <code class="docutils literal notranslate"><span class="pre">ViewI</span></code> with <code class="docutils literal notranslate"><span class="pre">I</span></code> being the view index with 2 attribures :</p> <ul class="simple"> <li><code class="docutils literal notranslate"><span class="pre">attrs["name"]</span></code> a string for the name of the view</li> <li><code class="docutils literal notranslate"><span class="pre">attrs["sparse"]</span></code> a boolean specifying whether the view is sparse or not</li> @@ -143,26 +135,19 @@ You can have either a directory containing <code class="docutils literal notrans <li><code class="docutils literal notranslate"><span class="pre">attrs["nbClass"]</span></code> an int counting the total number of different labels in the dataset</li> <li><code class="docutils literal notranslate"><span class="pre">attrs["datasetLength"]</span></code> an int counting the total number of examples in the dataset</li> </ul> +<p>The <code class="docutils literal notranslate"><span class="pre">format_dataset.py</span></code> file is documented and can be used to format a multiview dataset in a SuMMIT-compatible HDF5 file.</p> </div> </div> <div class="section" id="running-on-your-dataset"> <h3>Running on your dataset<a class="headerlink" href="#running-on-your-dataset" title="Permalink to this headline">¶</a></h3> -<p>In order to run the script on your dataset you need to use :</p> -<div class="highlight-guess notranslate"><div class="highlight"><pre><span></span>cd multiview-machine-learning-omis/multiview_platform -python execute.py -log --name <your_dataset_name> --type <.cvs_or_.hdf5> --pathF <path_to_your_dataset> +<p>Once you have formatted your dataset, to run SuMMIT on it you need to modify the config file as</p> +<div class="highlight-yaml notranslate"><div class="highlight"><pre><span></span>name: ["your_file_name"] +* +pathf: "path/to/your/dataset" </pre></div> </div> <p>This will run a full benchmark on your dataset using all available views and labels.</p> -<p>You may configure the <code class="docutils literal notranslate"><span class="pre">--CL_statsiter</span></code>, <code class="docutils literal notranslate"><span class="pre">--CL_split</span></code>, <code class="docutils literal notranslate"><span class="pre">--CL_nbFolds</span></code>, <code class="docutils literal notranslate"><span class="pre">--CL_GS_iter</span></code> arguments to start a meaningful benchmark</p> -</div> -</div> -<div class="section" id="running-the-tests"> -<h2>Running the tests<a class="headerlink" href="#running-the-tests" title="Permalink to this headline">¶</a></h2> -<p><a href="#id1"><span class="problematic" id="id2">**</span></a>/!still in development, test sucess is not meaningful ATM /!**</p> -<p>In order to run it you’ll need to try on simulated data with the command</p> -<div class="highlight-guess notranslate"><div class="highlight"><pre><span></span>cd multiview-machine-learning-omis/ -python -m unittest discover -</pre></div> +<p>It is highly recommended to follow the documentation’s <a class="reference external" href="http://baptiste.bauvin.pages.lis-lab.fr/multiview-machine-learning-omis/tutorials/index.html">tutorials</a> to learn the use of each parameter.</p> </div> </div> <div class="section" id="author"> @@ -173,9 +158,7 @@ python -m unittest discover <div class="section" id="contributors"> <h3>Contributors<a class="headerlink" href="#contributors" title="Permalink to this headline">¶</a></h3> <ul class="simple"> -<li><strong>Mazid Osseni</strong></li> -<li><strong>Alexandre Drouin</strong></li> -<li><strong>Nikolas Huelsmann</strong></li> +<li><strong>Dominique Benielli</strong></li> </ul> </div> </div> @@ -197,14 +180,12 @@ python -m unittest discover <li><a class="reference internal" href="#running-on-simulated-data">Running on simulated data</a></li> <li><a class="reference internal" href="#discovering-the-arguments">Discovering the arguments</a></li> <li><a class="reference internal" href="#dataset-compatibility">Dataset compatibility</a><ul> -<li><a class="reference internal" href="#if-you-have-multiple-csv-files-you-must-organize-them-as">If you have multiple <code class="docutils literal notranslate"><span class="pre">.csv</span></code> files, you must organize them as :</a></li> <li><a class="reference internal" href="#if-you-already-have-an-hdf5-dataset-file-it-must-be-formatted-as">If you already have an HDF5 dataset file it must be formatted as :</a></li> </ul> </li> <li><a class="reference internal" href="#running-on-your-dataset">Running on your dataset</a></li> </ul> </li> -<li><a class="reference internal" href="#running-the-tests">Running the tests</a></li> <li><a class="reference internal" href="#author">Author</a><ul> <li><a class="reference internal" href="#contributors">Contributors</a></li> </ul> @@ -215,7 +196,7 @@ python -m unittest discover <h4>Previous topic</h4> <p class="topless"><a href="index.html" - title="previous chapter">Welcome to MultiviewPlatform’s documentation!</a></p> + title="previous chapter">Welcome to SuMMIT’s documentation!</a></p> <h4>Next topic</h4> <p class="topless"><a href="tutorials/index.html" title="next chapter">Multiview Platform Tutorials</a></p> @@ -248,14 +229,11 @@ python -m unittest discover <li class="right" style="margin-right: 10px"> <a href="genindex.html" title="General Index" >index</a></li> - <li class="right" > - <a href="py-modindex.html" title="Python Module Index" - >modules</a> |</li> <li class="right" > <a href="tutorials/index.html" title="Multiview Platform Tutorials" >next</a> |</li> <li class="right" > - <a href="index.html" title="Welcome to MultiviewPlatform’s documentation!" + <a href="index.html" title="Welcome to SuMMIT’s documentation!" >previous</a> |</li> <li class="nav-item nav-item-0"><a href="index.html">MultiviewPlatform 0 documentation</a> »</li> </ul> diff --git a/docs/build/references/monomulti/exec_classif.html b/docs/build/references/monomulti/exec_classif.html index 499b0c23..a3e0f33e 100644 --- a/docs/build/references/monomulti/exec_classif.html +++ b/docs/build/references/monomulti/exec_classif.html @@ -25,9 +25,6 @@ <li class="right" style="margin-right: 10px"> <a href="../../genindex.html" title="General Index" accesskey="I">index</a></li> - <li class="right" > - <a href="../../py-modindex.html" title="Python Module Index" - >modules</a> |</li> <li class="nav-item nav-item-0"><a href="../../index.html">MultiviewPlatform 0 documentation</a> »</li> </ul> </div> @@ -37,316 +34,8 @@ <div class="bodywrapper"> <div class="body" role="main"> - <div class="section" id="module-multiview_platform.mono_multi_view_classifiers.exec_classif"> -<span id="classification-execution-module"></span><h1>Classification execution module<a class="headerlink" href="#module-multiview_platform.mono_multi_view_classifiers.exec_classif" title="Permalink to this headline">¶</a></h1> -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.exec_classif.arange_metrics"> -<code class="descname">arange_metrics</code><span class="sig-paren">(</span><em>metrics</em>, <em>metric_princ</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.exec_classif.arange_metrics" title="Permalink to this definition">¶</a></dt> -<dd><p>Used to get the metrics list in the right order so that -the first one is the principal metric specified in args</p> -<table class="docutils field-list" frame="void" rules="none"> -<col class="field-name" /> -<col class="field-body" /> -<tbody valign="top"> -<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple"> -<li><strong>metrics</strong> (<em>list of lists</em>) – The metrics that will be used in the benchmark</li> -<li><strong>metric_princ</strong> (<em>str</em>) – The name of the metric that need to be used for the hyper-parameter -optimization process</li> -</ul> -</td> -</tr> -<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first"><strong>metrics</strong> – The metrics list, but arranged so the first one is the principal one.</p> -</td> -</tr> -<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first last">list of lists</p> -</td> -</tr> -</tbody> -</table> -</dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.exec_classif.benchmark_init"> -<code class="descname">benchmark_init</code><span class="sig-paren">(</span><em>directory</em>, <em>classification_indices</em>, <em>labels</em>, <em>labels_dictionary</em>, <em>k_folds</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.exec_classif.benchmark_init" title="Permalink to this definition">¶</a></dt> -<dd><p>Initializes the benchmark, by saving the indices of the train -examples and the cross validation folds.</p> -<table class="docutils field-list" frame="void" rules="none"> -<col class="field-name" /> -<col class="field-body" /> -<tbody valign="top"> -<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple"> -<li><strong>directory</strong> (<em>str</em>) – The benchmark’s result directory</li> -<li><strong>classification_indices</strong> (<em>numpy array</em>) – The indices of the examples, splitted for the train/test split</li> -<li><strong>labels</strong> (<em>numpy array</em>) – The labels of the dataset</li> -<li><strong>labels_dictionary</strong> (<em>dict</em>) – The dictionary with labels as keys and their names as values</li> -<li><strong>k_folds</strong> (<em>sklearn.model_selection.Folds object</em>) – The folds for the cross validation process</li> -</ul> -</td> -</tr> -</tbody> -</table> -</dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.exec_classif.exec_benchmark"> -<code class="descname">exec_benchmark</code><span class="sig-paren">(</span><em>nb_cores</em>, <em>stats_iter</em>, <em>nb_multiclass</em>, <em>benchmark_arguments_dictionaries</em>, <em>classification_indices</em>, <em>directories</em>, <em>directory</em>, <em>multi_class_labels</em>, <em>metrics</em>, <em>labels_dictionary</em>, <em>nb_labels</em>, <em>dataset_var</em>, <em>exec_one_benchmark_mono_core=<function exec_one_benchmark_mono_core></em>, <em>get_results=<function get_results></em>, <em>delete=<function delete_HDF5></em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.exec_classif.exec_benchmark" title="Permalink to this definition">¶</a></dt> -<dd><p>Used to execute the needed benchmark(s) on multicore or mono-core functions.</p> -<table class="docutils field-list" frame="void" rules="none"> -<col class="field-name" /> -<col class="field-body" /> -<tbody valign="top"> -<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple"> -<li><strong>nb_cores</strong> (<em>int</em>) – Number of threads that the benchmarks can use.</li> -<li><strong>stats_iter</strong> (<em>int</em>) – Number of statistical iterations that have to be done.</li> -<li><strong>benchmark_arguments_dictionaries</strong> (<em>list of dictionaries</em>) – All the needed arguments for the benchmarks.</li> -<li><strong>classification_indices</strong> (<em>list of lists of numpy.ndarray</em>) – For each statistical iteration a couple of numpy.ndarrays is stored with the indices for the training set and -the ones of the testing set.</li> -<li><strong>directories</strong> (<em>list of strings</em>) – List of the paths to the result directories for each statistical iteration.</li> -<li><strong>directory</strong> (<em>string</em>) – Path to the main results directory.</li> -<li><strong>multi_class_labels</strong> (<em>ist of lists of numpy.ndarray</em>) – For each label couple, for each statistical iteration a triplet of numpy.ndarrays is stored with the -indices for the biclass training set, the ones for the biclass testing set and the ones for the -multiclass testing set.</li> -<li><strong>metrics</strong> (<em>list of lists</em>) – metrics that will be used to evaluate the algorithms performance.</li> -<li><strong>labels_dictionary</strong> (<em>dictionary</em>) – Dictionary mapping labels indices to labels names.</li> -<li><strong>nb_labels</strong> (<em>int</em>) – Total number of different labels in the dataset.</li> -<li><strong>dataset_var</strong> (<em>HDF5 dataset file</em>) – The full dataset that wil be used by the benchmark.</li> -<li><strong>classifiers_names</strong> (<em>list of strings</em>) – List of the benchmarks’s monoview classifiers names.</li> -<li><strong>rest_of_the_args</strong> – Just used for testing purposes</li> -</ul> -</td> -</tr> -<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first"><strong>results</strong> – The results of the benchmark.</p> -</td> -</tr> -<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first last">list of lists</p> -</td> -</tr> -</tbody> -</table> -</dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.exec_classif.exec_classif"> -<code class="descname">exec_classif</code><span class="sig-paren">(</span><em>arguments</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.exec_classif.exec_classif" title="Permalink to this definition">¶</a></dt> -<dd><p>Runs the benchmark with the given arguments</p> -<table class="docutils field-list" frame="void" rules="none"> -<col class="field-name" /> -<col class="field-body" /> -<tbody valign="top"> -<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>arguments</strong> – </td> -</tr> -<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><ul class="simple"> -<li><em>>>> exec_classif([–config_path, /path/to/config/files/])</em></li> -<li><em>>>></em></li> -</ul> -</td> -</tr> -</tbody> -</table> -</dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.exec_classif.extract_dict"> -<code class="descname">extract_dict</code><span class="sig-paren">(</span><em>classifier_config</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.exec_classif.extract_dict" title="Permalink to this definition">¶</a></dt> -<dd><p>Reverse function of get_path_dict</p> -</dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.exec_classif.gen_multiple_args_dictionnaries"> -<code class="descname">gen_multiple_args_dictionnaries</code><span class="sig-paren">(</span><em>nb_class</em>, <em>kwargs_init</em>, <em>classifier</em>, <em>view_name=None</em>, <em>view_index=None</em>, <em>views_dictionary=None</em>, <em>framework='monoview'</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.exec_classif.gen_multiple_args_dictionnaries" title="Permalink to this definition">¶</a></dt> -<dd><p>Used in the case of mutliple arguments asked in the config file. -Will combine the arguments to explore all the possibilities.</p> -<table class="docutils field-list" frame="void" rules="none"> -<col class="field-name" /> -<col class="field-body" /> -<tbody valign="top"> -<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple"> -<li><strong>nb_class</strong> (<em>int</em><em>,</em>) – The number of classes in the dataset</li> -<li><strong>kwargs_init</strong> (<em>dict</em>) – The arguments given in the config file</li> -<li><strong>classifier</strong> (<em>str</em>) – The name of the classifier for which multiple arguments have been asked</li> -<li><strong>view_name</strong> (<em>str</em>) – The name of the view in consideration.</li> -<li><strong>view_index</strong> (<em>int</em>) – The index of the view in consideration</li> -<li><strong>views_dictionary</strong> (<em>dict</em>) – The dictionary of all the views indices and their names</li> -<li><strong>framework</strong> (<em>str</em>) – Either monoview or multiview</li> -</ul> -</td> -</tr> -<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first"><strong>args_dictionaries</strong> – The list of all the possible combination of asked arguments</p> -</td> -</tr> -<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first last">list</p> -</td> -</tr> -</tbody> -</table> -</dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.exec_classif.gen_multiple_kwargs_combinations"> -<code class="descname">gen_multiple_kwargs_combinations</code><span class="sig-paren">(</span><em>cl_kwrags</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.exec_classif.gen_multiple_kwargs_combinations" title="Permalink to this definition">¶</a></dt> -<dd><p>Generates all the possible combination of the asked args</p> -<table class="docutils field-list" frame="void" rules="none"> -<col class="field-name" /> -<col class="field-body" /> -<tbody valign="top"> -<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>cl_kwrags</strong> (<em>dict</em>) – The arguments, with one at least having multiple values</td> -</tr> -<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><ul class="simple"> -<li><strong>kwargs_combination</strong> (<em>list</em>) – The list of all the combinations of arguments</li> -<li><strong>reduced_kwargs_combination</strong> (<em>list</em>) – The reduced names and values of the arguments will be used in the naming -process of the different classifiers</li> -</ul> -</td> -</tr> -</tbody> -</table> -</dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.exec_classif.get_path_dict"> -<code class="descname">get_path_dict</code><span class="sig-paren">(</span><em>multiview_classifier_args</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.exec_classif.get_path_dict" title="Permalink to this definition">¶</a></dt> -<dd><p>This function is used to generate a dictionary with each key being -the path to the value. -If given {“key1”:{“key1_1”:value1}, “key2”:value2}, it will return -{“key1.key1_1”:value1, “key2”:value2}</p> -</dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.exec_classif.init_benchmark"> -<code class="descname">init_benchmark</code><span class="sig-paren">(</span><em>cl_type</em>, <em>monoview_algos</em>, <em>multiview_algos</em>, <em>args</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.exec_classif.init_benchmark" title="Permalink to this definition">¶</a></dt> -<dd><p>Used to create a list of all the algorithm packages names used for the benchmark.</p> -<p>First this function will check if the benchmark need mono- or/and multiview -algorithms and adds to the right -dictionary the asked algorithms. If none is asked by the user, all will be added.</p> -<p>If the keyword <cite>“Benchmark”</cite> is used, all mono- and multiview algorithms will be added.</p> -<table class="docutils field-list" frame="void" rules="none"> -<col class="field-name" /> -<col class="field-body" /> -<tbody valign="top"> -<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple"> -<li><strong>cl_type</strong> (<em>List of string</em>) – List of types of needed benchmark</li> -<li><strong>multiview_algos</strong> (<em>List of strings</em>) – List of multiview algorithms needed for the benchmark</li> -<li><strong>monoview_algos</strong> (<em>Listof strings</em>) – List of monoview algorithms needed for the benchmark</li> -<li><strong>args</strong> (<em>ParsedArgumentParser args</em>) – All the input args (used to tune the algorithms)</li> -</ul> -</td> -</tr> -<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first"><strong>benchmark</strong> – Dictionary resuming which mono- and multiview algorithms which will be used in the benchmark.</p> -</td> -</tr> -<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first last">Dictionary of dictionaries</p> -</td> -</tr> -</tbody> -</table> -</dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.exec_classif.init_kwargs"> -<code class="descname">init_kwargs</code><span class="sig-paren">(</span><em>args</em>, <em>classifiers_names</em>, <em>framework='monoview'</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.exec_classif.init_kwargs" title="Permalink to this definition">¶</a></dt> -<dd><p>Used to init kwargs thanks to a function in each monoview classifier package.</p> -<table class="docutils field-list" frame="void" rules="none"> -<col class="field-name" /> -<col class="field-body" /> -<tbody valign="top"> -<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple"> -<li><strong>args</strong> (<em>parsed args objects</em>) – All the args passed by the user.</li> -<li><strong>classifiers_names</strong> (<em>list of strings</em>) – List of the benchmarks’s monoview classifiers names.</li> -</ul> -</td> -</tr> -<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first"><p><strong>kwargs</strong> – Dictionary resuming all the specific arguments for the benchmark, one dictionary for each classifier.</p> -<p>For example, for Adaboost, the KWARGS will be <cite>{“n_estimators”:<value>, “base_estimator”:<value>}</cite></p> -</p> -</td> -</tr> -<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first last">Dictionary</p> -</td> -</tr> -</tbody> -</table> -</dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.exec_classif.init_kwargs_func"> -<code class="descname">init_kwargs_func</code><span class="sig-paren">(</span><em>args</em>, <em>benchmark</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.exec_classif.init_kwargs_func" title="Permalink to this definition">¶</a></dt> -<dd><p>Dispached the kwargs initialization to monoview and multiview and creates -the kwargs variable</p> -<table class="docutils field-list" frame="void" rules="none"> -<col class="field-name" /> -<col class="field-body" /> -<tbody valign="top"> -<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple"> -<li><strong>args</strong> (<em>parsed args objects</em>) – All the args passed by the user.</li> -<li><strong>benchmark</strong> (<em>dict</em>) – The name of the mono- and mutli-view classifiers to run in the benchmark</li> -</ul> -</td> -</tr> -<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first"><strong>kwargs</strong> – The arguments for each mono- and multiview algorithms</p> -</td> -</tr> -<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first last">dict</p> -</td> -</tr> -</tbody> -</table> -</dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.exec_classif.init_monoview_exps"> -<code class="descname">init_monoview_exps</code><span class="sig-paren">(</span><em>classifier_names</em>, <em>views_dictionary</em>, <em>nb_class</em>, <em>kwargs_init</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.exec_classif.init_monoview_exps" title="Permalink to this definition">¶</a></dt> -<dd><p>Used to add each monoview exeperience args to the list of monoview experiences args.</p> -<p>First this function will check if the benchmark need mono- or/and multiview algorithms and adds to the right -dictionary the asked algorithms. If none is asked by the user, all will be added.</p> -<p>If the keyword <cite>“Benchmark”</cite> is used, all mono- and multiview algorithms will be added.</p> -<table class="docutils field-list" frame="void" rules="none"> -<col class="field-name" /> -<col class="field-body" /> -<tbody valign="top"> -<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple"> -<li><strong>classifier_names</strong> (<em>dictionary</em>) – All types of monoview and multiview experiments that have to be benchmarked</li> -<li><strong>argument_dictionaries</strong> (<em>dictionary</em>) – Maps monoview and multiview experiments arguments.</li> -<li><strong>views_dictionary</strong> (<em>dictionary</em>) – Maps the view names to their index in the HDF5 dataset</li> -<li><strong>nb_class</strong> (<em>integer</em>) – Number of different labels in the classification</li> -</ul> -</td> -</tr> -<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first"><strong>benchmark</strong> – Dictionary resuming which mono- and multiview algorithms which will be used in the benchmark.</p> -</td> -</tr> -<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first last">Dictionary of dictionaries</p> -</td> -</tr> -</tbody> -</table> -</dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.exec_classif.is_dict_in"> -<code class="descname">is_dict_in</code><span class="sig-paren">(</span><em>dictionary</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.exec_classif.is_dict_in" title="Permalink to this definition">¶</a></dt> -<dd><p>Returns True if any of the dictionary value is a dictionary itself.</p> -<table class="docutils field-list" frame="void" rules="none"> -<col class="field-name" /> -<col class="field-body" /> -<tbody valign="top"> -<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>dictionary</strong> – </td> -</tr> -</tbody> -</table> -</dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.exec_classif.multiple_args"> -<code class="descname">multiple_args</code><span class="sig-paren">(</span><em>classifier_configuration</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.exec_classif.multiple_args" title="Permalink to this definition">¶</a></dt> -<dd><p>Checks if multiple values were provided for at least one arg</p> -</dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.exec_classif.set_element"> -<code class="descname">set_element</code><span class="sig-paren">(</span><em>dictionary</em>, <em>path</em>, <em>value</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.exec_classif.set_element" title="Permalink to this definition">¶</a></dt> -<dd><p>Set value in dictionary at the location indicated by path</p> -</dd></dl> - + <div class="section" id="classification-execution-module"> +<h1>Classification execution module<a class="headerlink" href="#classification-execution-module" title="Permalink to this headline">¶</a></h1> </div> @@ -384,9 +73,6 @@ dictionary the asked algorithms. If none is asked by the user, all will be added <li class="right" style="margin-right: 10px"> <a href="../../genindex.html" title="General Index" >index</a></li> - <li class="right" > - <a href="../../py-modindex.html" title="Python Module Index" - >modules</a> |</li> <li class="nav-item nav-item-0"><a href="../../index.html">MultiviewPlatform 0 documentation</a> »</li> </ul> </div> diff --git a/docs/build/references/monomulti/metrics.html b/docs/build/references/monomulti/metrics.html index 2686befa..03b989ad 100644 --- a/docs/build/references/monomulti/metrics.html +++ b/docs/build/references/monomulti/metrics.html @@ -25,9 +25,6 @@ <li class="right" style="margin-right: 10px"> <a href="../../genindex.html" title="General Index" accesskey="I">index</a></li> - <li class="right" > - <a href="../../py-modindex.html" title="Python Module Index" - >modules</a> |</li> <li class="nav-item nav-item-0"><a href="../../index.html">MultiviewPlatform 0 documentation</a> »</li> </ul> </div> @@ -37,78 +34,8 @@ <div class="bodywrapper"> <div class="body" role="main"> - <div class="section" id="module-multiview_platform.mono_multi_view_classifiers.metrics.framework"> -<span id="metrics-framework"></span><h1>Metrics framework<a class="headerlink" href="#module-multiview_platform.mono_multi_view_classifiers.metrics.framework" title="Permalink to this headline">¶</a></h1> -<p>In ths file, we explain how to add a metric to the platform.</p> -<p>In order to do that, on needs to add a file with the following functions -which are mandatory for the metric to work with the platform.</p> -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.metrics.framework.getConfig"> -<code class="descname">getConfig</code><span class="sig-paren">(</span><em>**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.metrics.framework.getConfig" title="Permalink to this definition">¶</a></dt> -<dd><p>Get the metric’s configuration as a string.</p> -<table class="docutils field-list" frame="void" rules="none"> -<col class="field-name" /> -<col class="field-body" /> -<tbody valign="top"> -<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>kwargs</strong> (<em>dict</em>) – The arguments stored in this dictionary must be keyed by string of -integers as “0”, .., etc and decrypted in the function. These arguments -are a configuration of the metric.</td> -</tr> -<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><strong>configString</strong> – The string describing the metric’s configuration.</td> -</tr> -<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body">string</td> -</tr> -</tbody> -</table> -</dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.metrics.framework.get_scorer"> -<code class="descname">get_scorer</code><span class="sig-paren">(</span><em>**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.metrics.framework.get_scorer" title="Permalink to this definition">¶</a></dt> -<dd><p>Get the metric’s scorer as in the sklearn.metrics package.</p> -<table class="docutils field-list" frame="void" rules="none"> -<col class="field-name" /> -<col class="field-body" /> -<tbody valign="top"> -<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>kwargs</strong> (<em>dict</em>) – The arguments stored in this dictionary must be keyed by string of -integers as “0”, .., etc and decrypted in the function. These arguments -are a configuration of the metric.</td> -</tr> -<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><strong>scorer</strong> – Callable object that returns a scalar score; greater is better. (cf sklearn.metrics.make_scorer)</td> -</tr> -<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body">object</td> -</tr> -</tbody> -</table> -</dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.metrics.framework.score"> -<code class="descname">score</code><span class="sig-paren">(</span><em>y_true</em>, <em>y_pred</em>, <em>multiclass=False</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.metrics.framework.score" title="Permalink to this definition">¶</a></dt> -<dd><p>Get the metric’s score from the ground truth (<code class="docutils literal notranslate"><span class="pre">y_true</span></code>) and predictions (<code class="docutils literal notranslate"><span class="pre">y_pred</span></code>).</p> -<table class="docutils field-list" frame="void" rules="none"> -<col class="field-name" /> -<col class="field-body" /> -<tbody valign="top"> -<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple"> -<li><strong>y_true</strong> (<em>array-like</em><em>, </em><em>shape =</em><em> (</em><em>n_samples</em><em>,</em><em>)</em>) – Target values (class labels).</li> -<li><strong>y_pred</strong> (<em>array-like</em><em>, </em><em>shape =</em><em> (</em><em>n_samples</em><em>,</em><em>)</em>) – Predicted target values (class labels).</li> -<li><strong>multiclass</strong> (<em>boolean</em><em> (</em><em>default=False</em><em>)</em>) – Parameter specifying whether the target values are multiclass or not.</li> -<li><strong>kwargs</strong> (<em>dict</em>) – The arguments stored in this dictionary must be keyed by string of -integers as “0”, .., etc and decrypted in the function</li> -</ul> -</td> -</tr> -<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first"><strong>score</strong> – Returns the score of the prediction.</p> -</td> -</tr> -<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first last">float</p> -</td> -</tr> -</tbody> -</table> -</dd></dl> - + <div class="section" id="metrics-framework"> +<h1>Metrics framework<a class="headerlink" href="#metrics-framework" title="Permalink to this headline">¶</a></h1> </div> @@ -146,9 +73,6 @@ integers as “0”, .., etc and decrypted in the function</li> <li class="right" style="margin-right: 10px"> <a href="../../genindex.html" title="General Index" >index</a></li> - <li class="right" > - <a href="../../py-modindex.html" title="Python Module Index" - >modules</a> |</li> <li class="nav-item nav-item-0"><a href="../../index.html">MultiviewPlatform 0 documentation</a> »</li> </ul> </div> diff --git a/docs/build/references/monomulti/multiview_classifiers/classifiers.html b/docs/build/references/monomulti/multiview_classifiers/classifiers.html index d195e0df..346a6de7 100644 --- a/docs/build/references/monomulti/multiview_classifiers/classifiers.html +++ b/docs/build/references/monomulti/multiview_classifiers/classifiers.html @@ -25,9 +25,6 @@ <li class="right" style="margin-right: 10px"> <a href="../../../genindex.html" title="General Index" accesskey="I">index</a></li> - <li class="right" > - <a href="../../../py-modindex.html" title="Python Module Index" - >modules</a> |</li> <li class="nav-item nav-item-0"><a href="../../../index.html">MultiviewPlatform 0 documentation</a> »</li> </ul> </div> @@ -76,9 +73,6 @@ <li class="right" style="margin-right: 10px"> <a href="../../../genindex.html" title="General Index" >index</a></li> - <li class="right" > - <a href="../../../py-modindex.html" title="Python Module Index" - >modules</a> |</li> <li class="nav-item nav-item-0"><a href="../../../index.html">MultiviewPlatform 0 documentation</a> »</li> </ul> </div> diff --git a/docs/build/references/monomulti/multiview_classifiers/diversity_fusion.html b/docs/build/references/monomulti/multiview_classifiers/diversity_fusion.html index b05e46c1..8f6eb1ce 100644 --- a/docs/build/references/monomulti/multiview_classifiers/diversity_fusion.html +++ b/docs/build/references/monomulti/multiview_classifiers/diversity_fusion.html @@ -25,9 +25,6 @@ <li class="right" style="margin-right: 10px"> <a href="../../../genindex.html" title="General Index" accesskey="I">index</a></li> - <li class="right" > - <a href="../../../py-modindex.html" title="Python Module Index" - >modules</a> |</li> <li class="nav-item nav-item-0"><a href="../../../index.html">MultiviewPlatform 0 documentation</a> »</li> </ul> </div> @@ -76,9 +73,6 @@ <li class="right" style="margin-right: 10px"> <a href="../../../genindex.html" title="General Index" >index</a></li> - <li class="right" > - <a href="../../../py-modindex.html" title="Python Module Index" - >modules</a> |</li> <li class="nav-item nav-item-0"><a href="../../../index.html">MultiviewPlatform 0 documentation</a> »</li> </ul> </div> diff --git a/docs/build/references/monomulti/utils/execution.html b/docs/build/references/monomulti/utils/execution.html index 4b236179..120e748f 100644 --- a/docs/build/references/monomulti/utils/execution.html +++ b/docs/build/references/monomulti/utils/execution.html @@ -25,9 +25,6 @@ <li class="right" style="margin-right: 10px"> <a href="../../../genindex.html" title="General Index" accesskey="I">index</a></li> - <li class="right" > - <a href="../../../py-modindex.html" title="Python Module Index" - >modules</a> |</li> <li class="nav-item nav-item-0"><a href="../../../index.html">MultiviewPlatform 0 documentation</a> »</li> </ul> </div> @@ -93,9 +90,6 @@ <li class="right" style="margin-right: 10px"> <a href="../../../genindex.html" title="General Index" >index</a></li> - <li class="right" > - <a href="../../../py-modindex.html" title="Python Module Index" - >modules</a> |</li> <li class="nav-item nav-item-0"><a href="../../../index.html">MultiviewPlatform 0 documentation</a> »</li> </ul> </div> diff --git a/docs/build/references/monomulti/utils/multiclass.html b/docs/build/references/monomulti/utils/multiclass.html index 4a7107ed..aeab85ce 100644 --- a/docs/build/references/monomulti/utils/multiclass.html +++ b/docs/build/references/monomulti/utils/multiclass.html @@ -25,9 +25,6 @@ <li class="right" style="margin-right: 10px"> <a href="../../../genindex.html" title="General Index" accesskey="I">index</a></li> - <li class="right" > - <a href="../../../py-modindex.html" title="Python Module Index" - >modules</a> |</li> <li class="nav-item nav-item-0"><a href="../../../index.html">MultiviewPlatform 0 documentation</a> »</li> </ul> </div> @@ -37,8 +34,8 @@ <div class="bodywrapper"> <div class="body" role="main"> - <div class="section" id="module-multiview_platform.mono_multi_view_classifiers.utils.multiclass"> -<span id="utils-multiclass-module"></span><h1>Utils Multiclass module<a class="headerlink" href="#module-multiview_platform.mono_multi_view_classifiers.utils.multiclass" title="Permalink to this headline">¶</a></h1> + <div class="section" id="utils-multiclass-module"> +<h1>Utils Multiclass module<a class="headerlink" href="#utils-multiclass-module" title="Permalink to this headline">¶</a></h1> <table class="docutils field-list" frame="void" rules="none"> <col class="field-name" /> <col class="field-body" /> @@ -93,9 +90,6 @@ <li class="right" style="margin-right: 10px"> <a href="../../../genindex.html" title="General Index" >index</a></li> - <li class="right" > - <a href="../../../py-modindex.html" title="Python Module Index" - >modules</a> |</li> <li class="nav-item nav-item-0"><a href="../../../index.html">MultiviewPlatform 0 documentation</a> »</li> </ul> </div> diff --git a/docs/build/references/monomultidoc.html b/docs/build/references/monomultidoc.html index 2cac5483..76fd65f3 100644 --- a/docs/build/references/monomultidoc.html +++ b/docs/build/references/monomultidoc.html @@ -25,9 +25,6 @@ <li class="right" style="margin-right: 10px"> <a href="../genindex.html" title="General Index" accesskey="I">index</a></li> - <li class="right" > - <a href="../py-modindex.html" title="Python Module Index" - >modules</a> |</li> <li class="nav-item nav-item-0"><a href="../index.html">MultiviewPlatform 0 documentation</a> »</li> </ul> </div> @@ -86,9 +83,6 @@ <li class="right" style="margin-right: 10px"> <a href="../genindex.html" title="General Index" >index</a></li> - <li class="right" > - <a href="../py-modindex.html" title="Python Module Index" - >modules</a> |</li> <li class="nav-item nav-item-0"><a href="../index.html">MultiviewPlatform 0 documentation</a> »</li> </ul> </div> diff --git a/docs/build/references/multiview_platform.html b/docs/build/references/multiview_platform.html index 6d89ec32..fa3171ee 100644 --- a/docs/build/references/multiview_platform.html +++ b/docs/build/references/multiview_platform.html @@ -27,9 +27,6 @@ <li class="right" style="margin-right: 10px"> <a href="../genindex.html" title="General Index" accesskey="I">index</a></li> - <li class="right" > - <a href="../py-modindex.html" title="Python Module Index" - >modules</a> |</li> <li class="right" > <a href="multiview_platform.mono_multi_view_classifiers.html" title="multiview_platform.mono_multi_view_classifiers package" accesskey="N">next</a> |</li> @@ -59,28 +56,28 @@ <li class="toctree-l6"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.difficulty_fusion.html#submodules">Submodules</a></li> <li class="toctree-l6"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.difficulty_fusion.html#multiview-platform-mono-multi-view-classifiers-multiview-classifiers-difficulty-fusion-analyze-results-module">multiview_platform.mono_multi_view_classifiers.multiview_classifiers.difficulty_fusion.analyze_results module</a></li> <li class="toctree-l6"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.difficulty_fusion.html#multiview-platform-mono-multi-view-classifiers-multiview-classifiers-difficulty-fusion-difficulty-fusion-module">multiview_platform.mono_multi_view_classifiers.multiview_classifiers.difficulty_fusion.difficulty_fusion module</a></li> -<li class="toctree-l6"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.difficulty_fusion.html#module-multiview_platform.mono_multi_view_classifiers.multiview_classifiers.difficulty_fusion">Module contents</a></li> +<li class="toctree-l6"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.difficulty_fusion.html#module-contents">Module contents</a></li> </ul> </li> <li class="toctree-l5"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.disagree_fusion.html">multiview_platform.mono_multi_view_classifiers.multiview_classifiers.disagree_fusion package</a><ul> <li class="toctree-l6"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.disagree_fusion.html#submodules">Submodules</a></li> <li class="toctree-l6"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.disagree_fusion.html#multiview-platform-mono-multi-view-classifiers-multiview-classifiers-disagree-fusion-analyze-results-module">multiview_platform.mono_multi_view_classifiers.multiview_classifiers.disagree_fusion.analyze_results module</a></li> <li class="toctree-l6"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.disagree_fusion.html#multiview-platform-mono-multi-view-classifiers-multiview-classifiers-disagree-fusion-disagree-fusion-module">multiview_platform.mono_multi_view_classifiers.multiview_classifiers.disagree_fusion.disagree_fusion module</a></li> -<li class="toctree-l6"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.disagree_fusion.html#module-multiview_platform.mono_multi_view_classifiers.multiview_classifiers.disagree_fusion">Module contents</a></li> +<li class="toctree-l6"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.disagree_fusion.html#module-contents">Module contents</a></li> </ul> </li> <li class="toctree-l5"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.double_fault_fusion.html">multiview_platform.mono_multi_view_classifiers.multiview_classifiers.double_fault_fusion package</a><ul> <li class="toctree-l6"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.double_fault_fusion.html#submodules">Submodules</a></li> <li class="toctree-l6"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.double_fault_fusion.html#multiview-platform-mono-multi-view-classifiers-multiview-classifiers-double-fault-fusion-analyze-results-module">multiview_platform.mono_multi_view_classifiers.multiview_classifiers.double_fault_fusion.analyze_results module</a></li> <li class="toctree-l6"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.double_fault_fusion.html#multiview-platform-mono-multi-view-classifiers-multiview-classifiers-double-fault-fusion-double-fault-fusion-module">multiview_platform.mono_multi_view_classifiers.multiview_classifiers.double_fault_fusion.double_fault_fusion module</a></li> -<li class="toctree-l6"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.double_fault_fusion.html#module-multiview_platform.mono_multi_view_classifiers.multiview_classifiers.double_fault_fusion">Module contents</a></li> +<li class="toctree-l6"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.double_fault_fusion.html#module-contents">Module contents</a></li> </ul> </li> <li class="toctree-l5"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.entropy_fusion.html">multiview_platform.mono_multi_view_classifiers.multiview_classifiers.entropy_fusion package</a><ul> <li class="toctree-l6"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.entropy_fusion.html#submodules">Submodules</a></li> <li class="toctree-l6"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.entropy_fusion.html#multiview-platform-mono-multi-view-classifiers-multiview-classifiers-entropy-fusion-analyze-results-module">multiview_platform.mono_multi_view_classifiers.multiview_classifiers.entropy_fusion.analyze_results module</a></li> <li class="toctree-l6"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.entropy_fusion.html#multiview-platform-mono-multi-view-classifiers-multiview-classifiers-entropy-fusion-entropy-fusion-module">multiview_platform.mono_multi_view_classifiers.multiview_classifiers.entropy_fusion.entropy_fusion module</a></li> -<li class="toctree-l6"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.entropy_fusion.html#module-multiview_platform.mono_multi_view_classifiers.multiview_classifiers.entropy_fusion">Module contents</a></li> +<li class="toctree-l6"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.entropy_fusion.html#module-contents">Module contents</a></li> </ul> </li> <li class="toctree-l5"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.fat_late_fusion.html">multiview_platform.mono_multi_view_classifiers.multiview_classifiers.fat_late_fusion package</a><ul> @@ -142,51 +139,51 @@ </li> </ul> </li> -<li class="toctree-l4"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.html#module-multiview_platform.mono_multi_view_classifiers.multiview_classifiers">Module contents</a></li> +<li class="toctree-l4"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.html#module-contents">Module contents</a></li> </ul> </li> <li class="toctree-l3"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.utils.html">multiview_platform.mono_multi_view_classifiers.utils package</a><ul> <li class="toctree-l4"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.utils.html#submodules">Submodules</a></li> -<li class="toctree-l4"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.utils.html#module-multiview_platform.mono_multi_view_classifiers.utils.configuration">multiview_platform.mono_multi_view_classifiers.utils.configuration module</a></li> -<li class="toctree-l4"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.utils.html#module-multiview_platform.mono_multi_view_classifiers.utils.dataset">multiview_platform.mono_multi_view_classifiers.utils.dataset module</a></li> -<li class="toctree-l4"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.utils.html#module-multiview_platform.mono_multi_view_classifiers.utils.execution">multiview_platform.mono_multi_view_classifiers.utils.execution module</a></li> -<li class="toctree-l4"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.utils.html#module-multiview_platform.mono_multi_view_classifiers.utils.get_multiview_db">multiview_platform.mono_multi_view_classifiers.utils.get_multiview_db module</a></li> -<li class="toctree-l4"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.utils.html#module-multiview_platform.mono_multi_view_classifiers.utils.hyper_parameter_search">multiview_platform.mono_multi_view_classifiers.utils.hyper_parameter_search module</a></li> -<li class="toctree-l4"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.utils.html#module-multiview_platform.mono_multi_view_classifiers.utils.make_file_config">multiview_platform.mono_multi_view_classifiers.utils.make_file_config module</a></li> -<li class="toctree-l4"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.utils.html#module-multiview_platform.mono_multi_view_classifiers.utils.multiclass">multiview_platform.mono_multi_view_classifiers.utils.multiclass module</a></li> -<li class="toctree-l4"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.utils.html#module-multiview_platform.mono_multi_view_classifiers.utils.multiview_result_analysis">multiview_platform.mono_multi_view_classifiers.utils.multiview_result_analysis module</a></li> -<li class="toctree-l4"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.utils.html#module-multiview_platform.mono_multi_view_classifiers.utils.transformations">multiview_platform.mono_multi_view_classifiers.utils.transformations module</a></li> -<li class="toctree-l4"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.utils.html#module-multiview_platform.mono_multi_view_classifiers.utils">Module contents</a></li> +<li class="toctree-l4"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.utils.html#multiview-platform-mono-multi-view-classifiers-utils-configuration-module">multiview_platform.mono_multi_view_classifiers.utils.configuration module</a></li> +<li class="toctree-l4"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.utils.html#multiview-platform-mono-multi-view-classifiers-utils-dataset-module">multiview_platform.mono_multi_view_classifiers.utils.dataset module</a></li> +<li class="toctree-l4"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.utils.html#multiview-platform-mono-multi-view-classifiers-utils-execution-module">multiview_platform.mono_multi_view_classifiers.utils.execution module</a></li> +<li class="toctree-l4"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.utils.html#multiview-platform-mono-multi-view-classifiers-utils-get-multiview-db-module">multiview_platform.mono_multi_view_classifiers.utils.get_multiview_db module</a></li> +<li class="toctree-l4"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.utils.html#multiview-platform-mono-multi-view-classifiers-utils-hyper-parameter-search-module">multiview_platform.mono_multi_view_classifiers.utils.hyper_parameter_search module</a></li> +<li class="toctree-l4"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.utils.html#multiview-platform-mono-multi-view-classifiers-utils-make-file-config-module">multiview_platform.mono_multi_view_classifiers.utils.make_file_config module</a></li> +<li class="toctree-l4"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.utils.html#multiview-platform-mono-multi-view-classifiers-utils-multiclass-module">multiview_platform.mono_multi_view_classifiers.utils.multiclass module</a></li> +<li class="toctree-l4"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.utils.html#multiview-platform-mono-multi-view-classifiers-utils-multiview-result-analysis-module">multiview_platform.mono_multi_view_classifiers.utils.multiview_result_analysis module</a></li> +<li class="toctree-l4"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.utils.html#multiview-platform-mono-multi-view-classifiers-utils-transformations-module">multiview_platform.mono_multi_view_classifiers.utils.transformations module</a></li> +<li class="toctree-l4"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.utils.html#module-contents">Module contents</a></li> </ul> </li> </ul> </li> <li class="toctree-l2"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.html#submodules">Submodules</a></li> -<li class="toctree-l2"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.html#module-multiview_platform.mono_multi_view_classifiers.exec_classif">multiview_platform.mono_multi_view_classifiers.exec_classif module</a></li> -<li class="toctree-l2"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.html#module-multiview_platform.mono_multi_view_classifiers.result_analysis">multiview_platform.mono_multi_view_classifiers.result_analysis module</a></li> -<li class="toctree-l2"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.html#module-multiview_platform.mono_multi_view_classifiers">Module contents</a></li> +<li class="toctree-l2"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.html#multiview-platform-mono-multi-view-classifiers-exec-classif-module">multiview_platform.mono_multi_view_classifiers.exec_classif module</a></li> +<li class="toctree-l2"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.html#multiview-platform-mono-multi-view-classifiers-result-analysis-module">multiview_platform.mono_multi_view_classifiers.result_analysis module</a></li> +<li class="toctree-l2"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.html#module-contents">Module contents</a></li> </ul> </li> <li class="toctree-l1"><a class="reference internal" href="multiview_platform.tests.html">multiview_platform.tests package</a><ul> <li class="toctree-l2"><a class="reference internal" href="multiview_platform.tests.html#subpackages">Subpackages</a><ul> <li class="toctree-l3"><a class="reference internal" href="multiview_platform.tests.test_metrics.html">multiview_platform.tests.test_metrics package</a><ul> <li class="toctree-l4"><a class="reference internal" href="multiview_platform.tests.test_metrics.html#submodules">Submodules</a></li> -<li class="toctree-l4"><a class="reference internal" href="multiview_platform.tests.test_metrics.html#module-multiview_platform.tests.test_metrics.test_accuracy_score">multiview_platform.tests.test_metrics.test_accuracy_score module</a></li> -<li class="toctree-l4"><a class="reference internal" href="multiview_platform.tests.test_metrics.html#module-multiview_platform.tests.test_metrics">Module contents</a></li> +<li class="toctree-l4"><a class="reference internal" href="multiview_platform.tests.test_metrics.html#multiview-platform-tests-test-metrics-test-accuracy-score-module">multiview_platform.tests.test_metrics.test_accuracy_score module</a></li> +<li class="toctree-l4"><a class="reference internal" href="multiview_platform.tests.test_metrics.html#module-contents">Module contents</a></li> </ul> </li> <li class="toctree-l3"><a class="reference internal" href="multiview_platform.tests.test_mono_view.html">multiview_platform.tests.test_mono_view package</a><ul> <li class="toctree-l4"><a class="reference internal" href="multiview_platform.tests.test_mono_view.html#submodules">Submodules</a></li> -<li class="toctree-l4"><a class="reference internal" href="multiview_platform.tests.test_mono_view.html#module-multiview_platform.tests.test_mono_view.test_ExecClassifMonoView">multiview_platform.tests.test_mono_view.test_ExecClassifMonoView module</a></li> -<li class="toctree-l4"><a class="reference internal" href="multiview_platform.tests.test_mono_view.html#module-multiview_platform.tests.test_mono_view.test_MonoviewUtils">multiview_platform.tests.test_mono_view.test_MonoviewUtils module</a></li> -<li class="toctree-l4"><a class="reference internal" href="multiview_platform.tests.test_mono_view.html#module-multiview_platform.tests.test_mono_view">Module contents</a></li> +<li class="toctree-l4"><a class="reference internal" href="multiview_platform.tests.test_mono_view.html#multiview-platform-tests-test-mono-view-test-execclassifmonoview-module">multiview_platform.tests.test_mono_view.test_ExecClassifMonoView module</a></li> +<li class="toctree-l4"><a class="reference internal" href="multiview_platform.tests.test_mono_view.html#multiview-platform-tests-test-mono-view-test-monoviewutils-module">multiview_platform.tests.test_mono_view.test_MonoviewUtils module</a></li> +<li class="toctree-l4"><a class="reference internal" href="multiview_platform.tests.test_mono_view.html#module-contents">Module contents</a></li> </ul> </li> <li class="toctree-l3"><a class="reference internal" href="multiview_platform.tests.test_monoview_classifiers.html">multiview_platform.tests.test_monoview_classifiers package</a><ul> <li class="toctree-l4"><a class="reference internal" href="multiview_platform.tests.test_monoview_classifiers.html#submodules">Submodules</a></li> -<li class="toctree-l4"><a class="reference internal" href="multiview_platform.tests.test_monoview_classifiers.html#module-multiview_platform.tests.test_monoview_classifiers.test_adaboost">multiview_platform.tests.test_monoview_classifiers.test_adaboost module</a></li> -<li class="toctree-l4"><a class="reference internal" href="multiview_platform.tests.test_monoview_classifiers.html#module-multiview_platform.tests.test_monoview_classifiers.test_compatibility">multiview_platform.tests.test_monoview_classifiers.test_compatibility module</a></li> -<li class="toctree-l4"><a class="reference internal" href="multiview_platform.tests.test_monoview_classifiers.html#module-multiview_platform.tests.test_monoview_classifiers">Module contents</a></li> +<li class="toctree-l4"><a class="reference internal" href="multiview_platform.tests.test_monoview_classifiers.html#multiview-platform-tests-test-monoview-classifiers-test-adaboost-module">multiview_platform.tests.test_monoview_classifiers.test_adaboost module</a></li> +<li class="toctree-l4"><a class="reference internal" href="multiview_platform.tests.test_monoview_classifiers.html#multiview-platform-tests-test-monoview-classifiers-test-compatibility-module">multiview_platform.tests.test_monoview_classifiers.test_compatibility module</a></li> +<li class="toctree-l4"><a class="reference internal" href="multiview_platform.tests.test_monoview_classifiers.html#module-contents">Module contents</a></li> </ul> </li> <li class="toctree-l3"><a class="reference internal" href="multiview_platform.tests.test_multiview_classifiers.html">multiview_platform.tests.test_multiview_classifiers package</a><ul> @@ -226,32 +223,32 @@ </li> <li class="toctree-l5"><a class="reference internal" href="multiview_platform.tests.test_multiview_classifiers.Test_PseudoCQMeasure.html">multiview_platform.tests.test_multiview_classifiers.Test_PseudoCQMeasure package</a><ul> <li class="toctree-l6"><a class="reference internal" href="multiview_platform.tests.test_multiview_classifiers.Test_PseudoCQMeasure.html#submodules">Submodules</a></li> -<li class="toctree-l6"><a class="reference internal" href="multiview_platform.tests.test_multiview_classifiers.Test_PseudoCQMeasure.html#module-multiview_platform.tests.test_multiview_classifiers.Test_PseudoCQMeasure.test_PseudoCQFusionModule">multiview_platform.tests.test_multiview_classifiers.Test_PseudoCQMeasure.test_PseudoCQFusionModule module</a></li> -<li class="toctree-l6"><a class="reference internal" href="multiview_platform.tests.test_multiview_classifiers.Test_PseudoCQMeasure.html#module-multiview_platform.tests.test_multiview_classifiers.Test_PseudoCQMeasure">Module contents</a></li> +<li class="toctree-l6"><a class="reference internal" href="multiview_platform.tests.test_multiview_classifiers.Test_PseudoCQMeasure.html#multiview-platform-tests-test-multiview-classifiers-test-pseudocqmeasure-test-pseudocqfusionmodule-module">multiview_platform.tests.test_multiview_classifiers.Test_PseudoCQMeasure.test_PseudoCQFusionModule module</a></li> +<li class="toctree-l6"><a class="reference internal" href="multiview_platform.tests.test_multiview_classifiers.Test_PseudoCQMeasure.html#module-contents">Module contents</a></li> </ul> </li> </ul> </li> <li class="toctree-l4"><a class="reference internal" href="multiview_platform.tests.test_multiview_classifiers.html#submodules">Submodules</a></li> -<li class="toctree-l4"><a class="reference internal" href="multiview_platform.tests.test_multiview_classifiers.html#module-multiview_platform.tests.test_multiview_classifiers.test_diversity_utils">multiview_platform.tests.test_multiview_classifiers.test_diversity_utils module</a></li> -<li class="toctree-l4"><a class="reference internal" href="multiview_platform.tests.test_multiview_classifiers.html#module-multiview_platform.tests.test_multiview_classifiers">Module contents</a></li> +<li class="toctree-l4"><a class="reference internal" href="multiview_platform.tests.test_multiview_classifiers.html#multiview-platform-tests-test-multiview-classifiers-test-diversity-utils-module">multiview_platform.tests.test_multiview_classifiers.test_diversity_utils module</a></li> +<li class="toctree-l4"><a class="reference internal" href="multiview_platform.tests.test_multiview_classifiers.html#module-contents">Module contents</a></li> </ul> </li> <li class="toctree-l3"><a class="reference internal" href="multiview_platform.tests.test_utils.html">multiview_platform.tests.test_utils package</a><ul> <li class="toctree-l4"><a class="reference internal" href="multiview_platform.tests.test_utils.html#submodules">Submodules</a></li> -<li class="toctree-l4"><a class="reference internal" href="multiview_platform.tests.test_utils.html#module-multiview_platform.tests.test_utils.test_GetMultiviewDB">multiview_platform.tests.test_utils.test_GetMultiviewDB module</a></li> -<li class="toctree-l4"><a class="reference internal" href="multiview_platform.tests.test_utils.html#module-multiview_platform.tests.test_utils.test_configuration">multiview_platform.tests.test_utils.test_configuration module</a></li> -<li class="toctree-l4"><a class="reference internal" href="multiview_platform.tests.test_utils.html#module-multiview_platform.tests.test_utils.test_execution">multiview_platform.tests.test_utils.test_execution module</a></li> -<li class="toctree-l4"><a class="reference internal" href="multiview_platform.tests.test_utils.html#module-multiview_platform.tests.test_utils.test_multiclass">multiview_platform.tests.test_utils.test_multiclass module</a></li> -<li class="toctree-l4"><a class="reference internal" href="multiview_platform.tests.test_utils.html#module-multiview_platform.tests.test_utils">Module contents</a></li> +<li class="toctree-l4"><a class="reference internal" href="multiview_platform.tests.test_utils.html#multiview-platform-tests-test-utils-test-getmultiviewdb-module">multiview_platform.tests.test_utils.test_GetMultiviewDB module</a></li> +<li class="toctree-l4"><a class="reference internal" href="multiview_platform.tests.test_utils.html#multiview-platform-tests-test-utils-test-configuration-module">multiview_platform.tests.test_utils.test_configuration module</a></li> +<li class="toctree-l4"><a class="reference internal" href="multiview_platform.tests.test_utils.html#multiview-platform-tests-test-utils-test-execution-module">multiview_platform.tests.test_utils.test_execution module</a></li> +<li class="toctree-l4"><a class="reference internal" href="multiview_platform.tests.test_utils.html#multiview-platform-tests-test-utils-test-multiclass-module">multiview_platform.tests.test_utils.test_multiclass module</a></li> +<li class="toctree-l4"><a class="reference internal" href="multiview_platform.tests.test_utils.html#module-contents">Module contents</a></li> </ul> </li> </ul> </li> <li class="toctree-l2"><a class="reference internal" href="multiview_platform.tests.html#submodules">Submodules</a></li> -<li class="toctree-l2"><a class="reference internal" href="multiview_platform.tests.html#module-multiview_platform.tests.test_ExecClassif">multiview_platform.tests.test_ExecClassif module</a></li> -<li class="toctree-l2"><a class="reference internal" href="multiview_platform.tests.html#module-multiview_platform.tests.test_ResultAnalysis">multiview_platform.tests.test_ResultAnalysis module</a></li> -<li class="toctree-l2"><a class="reference internal" href="multiview_platform.tests.html#module-multiview_platform.tests">Module contents</a></li> +<li class="toctree-l2"><a class="reference internal" href="multiview_platform.tests.html#multiview-platform-tests-test-execclassif-module">multiview_platform.tests.test_ExecClassif module</a></li> +<li class="toctree-l2"><a class="reference internal" href="multiview_platform.tests.html#multiview-platform-tests-test-resultanalysis-module">multiview_platform.tests.test_ResultAnalysis module</a></li> +<li class="toctree-l2"><a class="reference internal" href="multiview_platform.tests.html#module-contents">Module contents</a></li> </ul> </li> </ul> @@ -260,30 +257,17 @@ <div class="section" id="submodules"> <h2>Submodules<a class="headerlink" href="#submodules" title="Permalink to this headline">¶</a></h2> </div> -<div class="section" id="module-multiview_platform.execute"> -<span id="multiview-platform-execute-module"></span><h2>multiview_platform.execute module<a class="headerlink" href="#module-multiview_platform.execute" title="Permalink to this headline">¶</a></h2> -<p>This is the execution module, used to execute the code</p> -<dl class="function"> -<dt id="multiview_platform.execute.execute"> -<code class="descname">execute</code><span class="sig-paren">(</span><em>config_path='/home/baptiste/Documents/Gitwork/multiview-machine-learning-omis/multiview_platform/examples/config_files/config_example_1.yml'</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.execute.execute" title="Permalink to this definition">¶</a></dt> -<dd></dd></dl> - +<div class="section" id="multiview-platform-execute-module"> +<h2>multiview_platform.execute module<a class="headerlink" href="#multiview-platform-execute-module" title="Permalink to this headline">¶</a></h2> </div> -<div class="section" id="module-multiview_platform.tests"> -<span id="multiview-platform-tests-module"></span><h2>multiview_platform.tests module<a class="headerlink" href="#module-multiview_platform.tests" title="Permalink to this headline">¶</a></h2> +<div class="section" id="multiview-platform-tests-module"> +<h2>multiview_platform.tests module<a class="headerlink" href="#multiview-platform-tests-module" title="Permalink to this headline">¶</a></h2> </div> -<div class="section" id="module-multiview_platform.versions"> -<span id="multiview-platform-versions-module"></span><h2>multiview_platform.versions module<a class="headerlink" href="#module-multiview_platform.versions" title="Permalink to this headline">¶</a></h2> -<dl class="function"> -<dt id="multiview_platform.versions.test_versions"> -<code class="descname">test_versions</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.versions.test_versions" title="Permalink to this definition">¶</a></dt> -<dd><p>Used to test if all prerequisites are installed</p> -</dd></dl> - +<div class="section" id="multiview-platform-versions-module"> +<h2>multiview_platform.versions module<a class="headerlink" href="#multiview-platform-versions-module" title="Permalink to this headline">¶</a></h2> </div> -<div class="section" id="module-multiview_platform"> -<span id="module-contents"></span><h2>Module contents<a class="headerlink" href="#module-multiview_platform" title="Permalink to this headline">¶</a></h2> -<p>This is a test docstring to test stuff</p> +<div class="section" id="module-contents"> +<h2>Module contents<a class="headerlink" href="#module-contents" title="Permalink to this headline">¶</a></h2> </div> </div> @@ -298,10 +282,10 @@ <li><a class="reference internal" href="#">multiview_platform references</a><ul> <li><a class="reference internal" href="#subpackages">Subpackages</a></li> <li><a class="reference internal" href="#submodules">Submodules</a></li> -<li><a class="reference internal" href="#module-multiview_platform.execute">multiview_platform.execute module</a></li> -<li><a class="reference internal" href="#module-multiview_platform.tests">multiview_platform.tests module</a></li> -<li><a class="reference internal" href="#module-multiview_platform.versions">multiview_platform.versions module</a></li> -<li><a class="reference internal" href="#module-multiview_platform">Module contents</a></li> +<li><a class="reference internal" href="#multiview-platform-execute-module">multiview_platform.execute module</a></li> +<li><a class="reference internal" href="#multiview-platform-tests-module">multiview_platform.tests module</a></li> +<li><a class="reference internal" href="#multiview-platform-versions-module">multiview_platform.versions module</a></li> +<li><a class="reference internal" href="#module-contents">Module contents</a></li> </ul> </li> </ul> @@ -341,9 +325,6 @@ <li class="right" style="margin-right: 10px"> <a href="../genindex.html" title="General Index" >index</a></li> - <li class="right" > - <a href="../py-modindex.html" title="Python Module Index" - >modules</a> |</li> <li class="right" > <a href="multiview_platform.mono_multi_view_classifiers.html" title="multiview_platform.mono_multi_view_classifiers package" >next</a> |</li> diff --git a/docs/build/references/multiview_platform.mono_multi_view_classifiers.html b/docs/build/references/multiview_platform.mono_multi_view_classifiers.html index d1e97060..4685b977 100644 --- a/docs/build/references/multiview_platform.mono_multi_view_classifiers.html +++ b/docs/build/references/multiview_platform.mono_multi_view_classifiers.html @@ -27,9 +27,6 @@ <li class="right" style="margin-right: 10px"> <a href="../genindex.html" title="General Index" accesskey="I">index</a></li> - <li class="right" > - <a href="../py-modindex.html" title="Python Module Index" - >modules</a> |</li> <li class="right" > <a href="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.html" title="multiview_platform.mono_multi_view_classifiers.multiview_classifiers package" accesskey="N">next</a> |</li> @@ -58,28 +55,28 @@ <li class="toctree-l4"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.difficulty_fusion.html#submodules">Submodules</a></li> <li class="toctree-l4"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.difficulty_fusion.html#multiview-platform-mono-multi-view-classifiers-multiview-classifiers-difficulty-fusion-analyze-results-module">multiview_platform.mono_multi_view_classifiers.multiview_classifiers.difficulty_fusion.analyze_results module</a></li> <li class="toctree-l4"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.difficulty_fusion.html#multiview-platform-mono-multi-view-classifiers-multiview-classifiers-difficulty-fusion-difficulty-fusion-module">multiview_platform.mono_multi_view_classifiers.multiview_classifiers.difficulty_fusion.difficulty_fusion module</a></li> -<li class="toctree-l4"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.difficulty_fusion.html#module-multiview_platform.mono_multi_view_classifiers.multiview_classifiers.difficulty_fusion">Module contents</a></li> +<li class="toctree-l4"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.difficulty_fusion.html#module-contents">Module contents</a></li> </ul> </li> <li class="toctree-l3"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.disagree_fusion.html">multiview_platform.mono_multi_view_classifiers.multiview_classifiers.disagree_fusion package</a><ul> <li class="toctree-l4"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.disagree_fusion.html#submodules">Submodules</a></li> <li class="toctree-l4"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.disagree_fusion.html#multiview-platform-mono-multi-view-classifiers-multiview-classifiers-disagree-fusion-analyze-results-module">multiview_platform.mono_multi_view_classifiers.multiview_classifiers.disagree_fusion.analyze_results module</a></li> <li class="toctree-l4"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.disagree_fusion.html#multiview-platform-mono-multi-view-classifiers-multiview-classifiers-disagree-fusion-disagree-fusion-module">multiview_platform.mono_multi_view_classifiers.multiview_classifiers.disagree_fusion.disagree_fusion module</a></li> -<li class="toctree-l4"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.disagree_fusion.html#module-multiview_platform.mono_multi_view_classifiers.multiview_classifiers.disagree_fusion">Module contents</a></li> +<li class="toctree-l4"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.disagree_fusion.html#module-contents">Module contents</a></li> </ul> </li> <li class="toctree-l3"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.double_fault_fusion.html">multiview_platform.mono_multi_view_classifiers.multiview_classifiers.double_fault_fusion package</a><ul> <li class="toctree-l4"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.double_fault_fusion.html#submodules">Submodules</a></li> <li class="toctree-l4"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.double_fault_fusion.html#multiview-platform-mono-multi-view-classifiers-multiview-classifiers-double-fault-fusion-analyze-results-module">multiview_platform.mono_multi_view_classifiers.multiview_classifiers.double_fault_fusion.analyze_results module</a></li> <li class="toctree-l4"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.double_fault_fusion.html#multiview-platform-mono-multi-view-classifiers-multiview-classifiers-double-fault-fusion-double-fault-fusion-module">multiview_platform.mono_multi_view_classifiers.multiview_classifiers.double_fault_fusion.double_fault_fusion module</a></li> -<li class="toctree-l4"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.double_fault_fusion.html#module-multiview_platform.mono_multi_view_classifiers.multiview_classifiers.double_fault_fusion">Module contents</a></li> +<li class="toctree-l4"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.double_fault_fusion.html#module-contents">Module contents</a></li> </ul> </li> <li class="toctree-l3"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.entropy_fusion.html">multiview_platform.mono_multi_view_classifiers.multiview_classifiers.entropy_fusion package</a><ul> <li class="toctree-l4"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.entropy_fusion.html#submodules">Submodules</a></li> <li class="toctree-l4"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.entropy_fusion.html#multiview-platform-mono-multi-view-classifiers-multiview-classifiers-entropy-fusion-analyze-results-module">multiview_platform.mono_multi_view_classifiers.multiview_classifiers.entropy_fusion.analyze_results module</a></li> <li class="toctree-l4"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.entropy_fusion.html#multiview-platform-mono-multi-view-classifiers-multiview-classifiers-entropy-fusion-entropy-fusion-module">multiview_platform.mono_multi_view_classifiers.multiview_classifiers.entropy_fusion.entropy_fusion module</a></li> -<li class="toctree-l4"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.entropy_fusion.html#module-multiview_platform.mono_multi_view_classifiers.multiview_classifiers.entropy_fusion">Module contents</a></li> +<li class="toctree-l4"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.entropy_fusion.html#module-contents">Module contents</a></li> </ul> </li> <li class="toctree-l3"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.fat_late_fusion.html">multiview_platform.mono_multi_view_classifiers.multiview_classifiers.fat_late_fusion package</a><ul> @@ -141,21 +138,21 @@ </li> </ul> </li> -<li class="toctree-l2"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.html#module-multiview_platform.mono_multi_view_classifiers.multiview_classifiers">Module contents</a></li> +<li class="toctree-l2"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.html#module-contents">Module contents</a></li> </ul> </li> <li class="toctree-l1"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.utils.html">multiview_platform.mono_multi_view_classifiers.utils package</a><ul> <li class="toctree-l2"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.utils.html#submodules">Submodules</a></li> -<li class="toctree-l2"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.utils.html#module-multiview_platform.mono_multi_view_classifiers.utils.configuration">multiview_platform.mono_multi_view_classifiers.utils.configuration module</a></li> -<li class="toctree-l2"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.utils.html#module-multiview_platform.mono_multi_view_classifiers.utils.dataset">multiview_platform.mono_multi_view_classifiers.utils.dataset module</a></li> -<li class="toctree-l2"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.utils.html#module-multiview_platform.mono_multi_view_classifiers.utils.execution">multiview_platform.mono_multi_view_classifiers.utils.execution module</a></li> -<li class="toctree-l2"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.utils.html#module-multiview_platform.mono_multi_view_classifiers.utils.get_multiview_db">multiview_platform.mono_multi_view_classifiers.utils.get_multiview_db module</a></li> -<li class="toctree-l2"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.utils.html#module-multiview_platform.mono_multi_view_classifiers.utils.hyper_parameter_search">multiview_platform.mono_multi_view_classifiers.utils.hyper_parameter_search module</a></li> -<li class="toctree-l2"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.utils.html#module-multiview_platform.mono_multi_view_classifiers.utils.make_file_config">multiview_platform.mono_multi_view_classifiers.utils.make_file_config module</a></li> -<li class="toctree-l2"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.utils.html#module-multiview_platform.mono_multi_view_classifiers.utils.multiclass">multiview_platform.mono_multi_view_classifiers.utils.multiclass module</a></li> -<li class="toctree-l2"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.utils.html#module-multiview_platform.mono_multi_view_classifiers.utils.multiview_result_analysis">multiview_platform.mono_multi_view_classifiers.utils.multiview_result_analysis module</a></li> -<li class="toctree-l2"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.utils.html#module-multiview_platform.mono_multi_view_classifiers.utils.transformations">multiview_platform.mono_multi_view_classifiers.utils.transformations module</a></li> -<li class="toctree-l2"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.utils.html#module-multiview_platform.mono_multi_view_classifiers.utils">Module contents</a></li> +<li class="toctree-l2"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.utils.html#multiview-platform-mono-multi-view-classifiers-utils-configuration-module">multiview_platform.mono_multi_view_classifiers.utils.configuration module</a></li> +<li class="toctree-l2"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.utils.html#multiview-platform-mono-multi-view-classifiers-utils-dataset-module">multiview_platform.mono_multi_view_classifiers.utils.dataset module</a></li> +<li class="toctree-l2"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.utils.html#multiview-platform-mono-multi-view-classifiers-utils-execution-module">multiview_platform.mono_multi_view_classifiers.utils.execution module</a></li> +<li class="toctree-l2"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.utils.html#multiview-platform-mono-multi-view-classifiers-utils-get-multiview-db-module">multiview_platform.mono_multi_view_classifiers.utils.get_multiview_db module</a></li> +<li class="toctree-l2"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.utils.html#multiview-platform-mono-multi-view-classifiers-utils-hyper-parameter-search-module">multiview_platform.mono_multi_view_classifiers.utils.hyper_parameter_search module</a></li> +<li class="toctree-l2"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.utils.html#multiview-platform-mono-multi-view-classifiers-utils-make-file-config-module">multiview_platform.mono_multi_view_classifiers.utils.make_file_config module</a></li> +<li class="toctree-l2"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.utils.html#multiview-platform-mono-multi-view-classifiers-utils-multiclass-module">multiview_platform.mono_multi_view_classifiers.utils.multiclass module</a></li> +<li class="toctree-l2"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.utils.html#multiview-platform-mono-multi-view-classifiers-utils-multiview-result-analysis-module">multiview_platform.mono_multi_view_classifiers.utils.multiview_result_analysis module</a></li> +<li class="toctree-l2"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.utils.html#multiview-platform-mono-multi-view-classifiers-utils-transformations-module">multiview_platform.mono_multi_view_classifiers.utils.transformations module</a></li> +<li class="toctree-l2"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.utils.html#module-contents">Module contents</a></li> </ul> </li> </ul> @@ -164,869 +161,14 @@ <div class="section" id="submodules"> <h2>Submodules<a class="headerlink" href="#submodules" title="Permalink to this headline">¶</a></h2> </div> -<div class="section" id="module-multiview_platform.mono_multi_view_classifiers.exec_classif"> -<span id="multiview-platform-mono-multi-view-classifiers-exec-classif-module"></span><h2>multiview_platform.mono_multi_view_classifiers.exec_classif module<a class="headerlink" href="#module-multiview_platform.mono_multi_view_classifiers.exec_classif" title="Permalink to this headline">¶</a></h2> -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.exec_classif.arange_metrics"> -<code class="descname">arange_metrics</code><span class="sig-paren">(</span><em>metrics</em>, <em>metric_princ</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.exec_classif.arange_metrics" title="Permalink to this definition">¶</a></dt> -<dd><p>Used to get the metrics list in the right order so that -the first one is the principal metric specified in args</p> -<table class="docutils field-list" frame="void" rules="none"> -<col class="field-name" /> -<col class="field-body" /> -<tbody valign="top"> -<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple"> -<li><strong>metrics</strong> (<em>list of lists</em>) – The metrics that will be used in the benchmark</li> -<li><strong>metric_princ</strong> (<em>str</em>) – The name of the metric that need to be used for the hyper-parameter -optimization process</li> -</ul> -</td> -</tr> -<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first"><strong>metrics</strong> – The metrics list, but arranged so the first one is the principal one.</p> -</td> -</tr> -<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first last">list of lists</p> -</td> -</tr> -</tbody> -</table> -</dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.exec_classif.benchmark_init"> -<code class="descname">benchmark_init</code><span class="sig-paren">(</span><em>directory</em>, <em>classification_indices</em>, <em>labels</em>, <em>labels_dictionary</em>, <em>k_folds</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.exec_classif.benchmark_init" title="Permalink to this definition">¶</a></dt> -<dd><p>Initializes the benchmark, by saving the indices of the train -examples and the cross validation folds.</p> -<table class="docutils field-list" frame="void" rules="none"> -<col class="field-name" /> -<col class="field-body" /> -<tbody valign="top"> -<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple"> -<li><strong>directory</strong> (<em>str</em>) – The benchmark’s result directory</li> -<li><strong>classification_indices</strong> (<em>numpy array</em>) – The indices of the examples, splitted for the train/test split</li> -<li><strong>labels</strong> (<em>numpy array</em>) – The labels of the dataset</li> -<li><strong>labels_dictionary</strong> (<em>dict</em>) – The dictionary with labels as keys and their names as values</li> -<li><strong>k_folds</strong> (<em>sklearn.model_selection.Folds object</em>) – The folds for the cross validation process</li> -</ul> -</td> -</tr> -</tbody> -</table> -</dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.exec_classif.exec_benchmark"> -<code class="descname">exec_benchmark</code><span class="sig-paren">(</span><em>nb_cores</em>, <em>stats_iter</em>, <em>nb_multiclass</em>, <em>benchmark_arguments_dictionaries</em>, <em>classification_indices</em>, <em>directories</em>, <em>directory</em>, <em>multi_class_labels</em>, <em>metrics</em>, <em>labels_dictionary</em>, <em>nb_labels</em>, <em>dataset_var</em>, <em>exec_one_benchmark_mono_core=<function exec_one_benchmark_mono_core></em>, <em>get_results=<function get_results></em>, <em>delete=<function delete_HDF5></em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.exec_classif.exec_benchmark" title="Permalink to this definition">¶</a></dt> -<dd><p>Used to execute the needed benchmark(s) on multicore or mono-core functions.</p> -<table class="docutils field-list" frame="void" rules="none"> -<col class="field-name" /> -<col class="field-body" /> -<tbody valign="top"> -<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple"> -<li><strong>nb_cores</strong> (<em>int</em>) – Number of threads that the benchmarks can use.</li> -<li><strong>stats_iter</strong> (<em>int</em>) – Number of statistical iterations that have to be done.</li> -<li><strong>benchmark_arguments_dictionaries</strong> (<em>list of dictionaries</em>) – All the needed arguments for the benchmarks.</li> -<li><strong>classification_indices</strong> (<em>list of lists of numpy.ndarray</em>) – For each statistical iteration a couple of numpy.ndarrays is stored with the indices for the training set and -the ones of the testing set.</li> -<li><strong>directories</strong> (<em>list of strings</em>) – List of the paths to the result directories for each statistical iteration.</li> -<li><strong>directory</strong> (<em>string</em>) – Path to the main results directory.</li> -<li><strong>multi_class_labels</strong> (<em>ist of lists of numpy.ndarray</em>) – For each label couple, for each statistical iteration a triplet of numpy.ndarrays is stored with the -indices for the biclass training set, the ones for the biclass testing set and the ones for the -multiclass testing set.</li> -<li><strong>metrics</strong> (<em>list of lists</em>) – metrics that will be used to evaluate the algorithms performance.</li> -<li><strong>labels_dictionary</strong> (<em>dictionary</em>) – Dictionary mapping labels indices to labels names.</li> -<li><strong>nb_labels</strong> (<em>int</em>) – Total number of different labels in the dataset.</li> -<li><strong>dataset_var</strong> (<em>HDF5 dataset file</em>) – The full dataset that wil be used by the benchmark.</li> -<li><strong>classifiers_names</strong> (<em>list of strings</em>) – List of the benchmarks’s monoview classifiers names.</li> -<li><strong>rest_of_the_args</strong> – Just used for testing purposes</li> -</ul> -</td> -</tr> -<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first"><strong>results</strong> – The results of the benchmark.</p> -</td> -</tr> -<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first last">list of lists</p> -</td> -</tr> -</tbody> -</table> -</dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.exec_classif.exec_classif"> -<code class="descname">exec_classif</code><span class="sig-paren">(</span><em>arguments</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.exec_classif.exec_classif" title="Permalink to this definition">¶</a></dt> -<dd><p>Runs the benchmark with the given arguments</p> -<table class="docutils field-list" frame="void" rules="none"> -<col class="field-name" /> -<col class="field-body" /> -<tbody valign="top"> -<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>arguments</strong> – </td> -</tr> -<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><ul class="simple"> -<li><em>>>> exec_classif([–config_path, /path/to/config/files/])</em></li> -<li><em>>>></em></li> -</ul> -</td> -</tr> -</tbody> -</table> -</dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.exec_classif.exec_one_benchmark_mono_core"> -<code class="descname">exec_one_benchmark_mono_core</code><span class="sig-paren">(</span><em>dataset_var=None</em>, <em>labels_dictionary=None</em>, <em>directory=None</em>, <em>classification_indices=None</em>, <em>args=None</em>, <em>k_folds=None</em>, <em>random_state=None</em>, <em>hyper_param_search=None</em>, <em>metrics=None</em>, <em>argument_dictionaries=None</em>, <em>benchmark=None</em>, <em>views=None</em>, <em>views_indices=None</em>, <em>flag=None</em>, <em>labels=None</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.exec_classif.exec_one_benchmark_mono_core" title="Permalink to this definition">¶</a></dt> -<dd></dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.exec_classif.extract_dict"> -<code class="descname">extract_dict</code><span class="sig-paren">(</span><em>classifier_config</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.exec_classif.extract_dict" title="Permalink to this definition">¶</a></dt> -<dd><p>Reverse function of get_path_dict</p> -</dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.exec_classif.gen_multiple_args_dictionnaries"> -<code class="descname">gen_multiple_args_dictionnaries</code><span class="sig-paren">(</span><em>nb_class</em>, <em>kwargs_init</em>, <em>classifier</em>, <em>view_name=None</em>, <em>view_index=None</em>, <em>views_dictionary=None</em>, <em>framework='monoview'</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.exec_classif.gen_multiple_args_dictionnaries" title="Permalink to this definition">¶</a></dt> -<dd><p>Used in the case of mutliple arguments asked in the config file. -Will combine the arguments to explore all the possibilities.</p> -<table class="docutils field-list" frame="void" rules="none"> -<col class="field-name" /> -<col class="field-body" /> -<tbody valign="top"> -<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple"> -<li><strong>nb_class</strong> (<em>int</em><em>,</em>) – The number of classes in the dataset</li> -<li><strong>kwargs_init</strong> (<em>dict</em>) – The arguments given in the config file</li> -<li><strong>classifier</strong> (<em>str</em>) – The name of the classifier for which multiple arguments have been asked</li> -<li><strong>view_name</strong> (<em>str</em>) – The name of the view in consideration.</li> -<li><strong>view_index</strong> (<em>int</em>) – The index of the view in consideration</li> -<li><strong>views_dictionary</strong> (<em>dict</em>) – The dictionary of all the views indices and their names</li> -<li><strong>framework</strong> (<em>str</em>) – Either monoview or multiview</li> -</ul> -</td> -</tr> -<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first"><strong>args_dictionaries</strong> – The list of all the possible combination of asked arguments</p> -</td> -</tr> -<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first last">list</p> -</td> -</tr> -</tbody> -</table> -</dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.exec_classif.gen_multiple_kwargs_combinations"> -<code class="descname">gen_multiple_kwargs_combinations</code><span class="sig-paren">(</span><em>cl_kwrags</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.exec_classif.gen_multiple_kwargs_combinations" title="Permalink to this definition">¶</a></dt> -<dd><p>Generates all the possible combination of the asked args</p> -<table class="docutils field-list" frame="void" rules="none"> -<col class="field-name" /> -<col class="field-body" /> -<tbody valign="top"> -<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>cl_kwrags</strong> (<em>dict</em>) – The arguments, with one at least having multiple values</td> -</tr> -<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><ul class="simple"> -<li><strong>kwargs_combination</strong> (<em>list</em>) – The list of all the combinations of arguments</li> -<li><strong>reduced_kwargs_combination</strong> (<em>list</em>) – The reduced names and values of the arguments will be used in the naming -process of the different classifiers</li> -</ul> -</td> -</tr> -</tbody> -</table> -</dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.exec_classif.gen_single_monoview_arg_dictionary"> -<code class="descname">gen_single_monoview_arg_dictionary</code><span class="sig-paren">(</span><em>classifier_name</em>, <em>arguments</em>, <em>nb_class</em>, <em>view_index</em>, <em>view_name</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.exec_classif.gen_single_monoview_arg_dictionary" title="Permalink to this definition">¶</a></dt> -<dd></dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.exec_classif.gen_single_multiview_arg_dictionary"> -<code class="descname">gen_single_multiview_arg_dictionary</code><span class="sig-paren">(</span><em>classifier_name</em>, <em>arguments</em>, <em>nb_class</em>, <em>views_dictionary=None</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.exec_classif.gen_single_multiview_arg_dictionary" title="Permalink to this definition">¶</a></dt> -<dd></dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.exec_classif.get_path_dict"> -<code class="descname">get_path_dict</code><span class="sig-paren">(</span><em>multiview_classifier_args</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.exec_classif.get_path_dict" title="Permalink to this definition">¶</a></dt> -<dd><p>This function is used to generate a dictionary with each key being -the path to the value. -If given {“key1”:{“key1_1”:value1}, “key2”:value2}, it will return -{“key1.key1_1”:value1, “key2”:value2}</p> -</dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.exec_classif.init_argument_dictionaries"> -<code class="descname">init_argument_dictionaries</code><span class="sig-paren">(</span><em>benchmark</em>, <em>views_dictionary</em>, <em>nb_class</em>, <em>init_kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.exec_classif.init_argument_dictionaries" title="Permalink to this definition">¶</a></dt> -<dd></dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.exec_classif.init_benchmark"> -<code class="descname">init_benchmark</code><span class="sig-paren">(</span><em>cl_type</em>, <em>monoview_algos</em>, <em>multiview_algos</em>, <em>args</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.exec_classif.init_benchmark" title="Permalink to this definition">¶</a></dt> -<dd><p>Used to create a list of all the algorithm packages names used for the benchmark.</p> -<p>First this function will check if the benchmark need mono- or/and multiview -algorithms and adds to the right -dictionary the asked algorithms. If none is asked by the user, all will be added.</p> -<p>If the keyword <cite>“Benchmark”</cite> is used, all mono- and multiview algorithms will be added.</p> -<table class="docutils field-list" frame="void" rules="none"> -<col class="field-name" /> -<col class="field-body" /> -<tbody valign="top"> -<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple"> -<li><strong>cl_type</strong> (<em>List of string</em>) – List of types of needed benchmark</li> -<li><strong>multiview_algos</strong> (<em>List of strings</em>) – List of multiview algorithms needed for the benchmark</li> -<li><strong>monoview_algos</strong> (<em>Listof strings</em>) – List of monoview algorithms needed for the benchmark</li> -<li><strong>args</strong> (<em>ParsedArgumentParser args</em>) – All the input args (used to tune the algorithms)</li> -</ul> -</td> -</tr> -<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first"><strong>benchmark</strong> – Dictionary resuming which mono- and multiview algorithms which will be used in the benchmark.</p> -</td> -</tr> -<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first last">Dictionary of dictionaries</p> -</td> -</tr> -</tbody> -</table> -</dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.exec_classif.init_kwargs"> -<code class="descname">init_kwargs</code><span class="sig-paren">(</span><em>args</em>, <em>classifiers_names</em>, <em>framework='monoview'</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.exec_classif.init_kwargs" title="Permalink to this definition">¶</a></dt> -<dd><p>Used to init kwargs thanks to a function in each monoview classifier package.</p> -<table class="docutils field-list" frame="void" rules="none"> -<col class="field-name" /> -<col class="field-body" /> -<tbody valign="top"> -<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple"> -<li><strong>args</strong> (<em>parsed args objects</em>) – All the args passed by the user.</li> -<li><strong>classifiers_names</strong> (<em>list of strings</em>) – List of the benchmarks’s monoview classifiers names.</li> -</ul> -</td> -</tr> -<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first"><p><strong>kwargs</strong> – Dictionary resuming all the specific arguments for the benchmark, one dictionary for each classifier.</p> -<p>For example, for Adaboost, the KWARGS will be <cite>{“n_estimators”:<value>, “base_estimator”:<value>}</cite></p> -</p> -</td> -</tr> -<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first last">Dictionary</p> -</td> -</tr> -</tbody> -</table> -</dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.exec_classif.init_kwargs_func"> -<code class="descname">init_kwargs_func</code><span class="sig-paren">(</span><em>args</em>, <em>benchmark</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.exec_classif.init_kwargs_func" title="Permalink to this definition">¶</a></dt> -<dd><p>Dispached the kwargs initialization to monoview and multiview and creates -the kwargs variable</p> -<table class="docutils field-list" frame="void" rules="none"> -<col class="field-name" /> -<col class="field-body" /> -<tbody valign="top"> -<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple"> -<li><strong>args</strong> (<em>parsed args objects</em>) – All the args passed by the user.</li> -<li><strong>benchmark</strong> (<em>dict</em>) – The name of the mono- and mutli-view classifiers to run in the benchmark</li> -</ul> -</td> -</tr> -<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first"><strong>kwargs</strong> – The arguments for each mono- and multiview algorithms</p> -</td> -</tr> -<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first last">dict</p> -</td> -</tr> -</tbody> -</table> -</dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.exec_classif.init_monoview_exps"> -<code class="descname">init_monoview_exps</code><span class="sig-paren">(</span><em>classifier_names</em>, <em>views_dictionary</em>, <em>nb_class</em>, <em>kwargs_init</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.exec_classif.init_monoview_exps" title="Permalink to this definition">¶</a></dt> -<dd><p>Used to add each monoview exeperience args to the list of monoview experiences args.</p> -<p>First this function will check if the benchmark need mono- or/and multiview algorithms and adds to the right -dictionary the asked algorithms. If none is asked by the user, all will be added.</p> -<p>If the keyword <cite>“Benchmark”</cite> is used, all mono- and multiview algorithms will be added.</p> -<table class="docutils field-list" frame="void" rules="none"> -<col class="field-name" /> -<col class="field-body" /> -<tbody valign="top"> -<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple"> -<li><strong>classifier_names</strong> (<em>dictionary</em>) – All types of monoview and multiview experiments that have to be benchmarked</li> -<li><strong>argument_dictionaries</strong> (<em>dictionary</em>) – Maps monoview and multiview experiments arguments.</li> -<li><strong>views_dictionary</strong> (<em>dictionary</em>) – Maps the view names to their index in the HDF5 dataset</li> -<li><strong>nb_class</strong> (<em>integer</em>) – Number of different labels in the classification</li> -</ul> -</td> -</tr> -<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first"><strong>benchmark</strong> – Dictionary resuming which mono- and multiview algorithms which will be used in the benchmark.</p> -</td> -</tr> -<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first last">Dictionary of dictionaries</p> -</td> -</tr> -</tbody> -</table> -</dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.exec_classif.init_multiview_exps"> -<code class="descname">init_multiview_exps</code><span class="sig-paren">(</span><em>classifier_names</em>, <em>views_dictionary</em>, <em>nb_class</em>, <em>kwargs_init</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.exec_classif.init_multiview_exps" title="Permalink to this definition">¶</a></dt> -<dd></dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.exec_classif.is_dict_in"> -<code class="descname">is_dict_in</code><span class="sig-paren">(</span><em>dictionary</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.exec_classif.is_dict_in" title="Permalink to this definition">¶</a></dt> -<dd><p>Returns True if any of the dictionary value is a dictionary itself.</p> -<table class="docutils field-list" frame="void" rules="none"> -<col class="field-name" /> -<col class="field-body" /> -<tbody valign="top"> -<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>dictionary</strong> – </td> -</tr> -</tbody> -</table> -</dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.exec_classif.multiple_args"> -<code class="descname">multiple_args</code><span class="sig-paren">(</span><em>classifier_configuration</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.exec_classif.multiple_args" title="Permalink to this definition">¶</a></dt> -<dd><p>Checks if multiple values were provided for at least one arg</p> -</dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.exec_classif.set_element"> -<code class="descname">set_element</code><span class="sig-paren">(</span><em>dictionary</em>, <em>path</em>, <em>value</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.exec_classif.set_element" title="Permalink to this definition">¶</a></dt> -<dd><p>Set value in dictionary at the location indicated by path</p> -</dd></dl> - +<div class="section" id="multiview-platform-mono-multi-view-classifiers-exec-classif-module"> +<h2>multiview_platform.mono_multi_view_classifiers.exec_classif module<a class="headerlink" href="#multiview-platform-mono-multi-view-classifiers-exec-classif-module" title="Permalink to this headline">¶</a></h2> </div> -<div class="section" id="module-multiview_platform.mono_multi_view_classifiers.result_analysis"> -<span id="multiview-platform-mono-multi-view-classifiers-result-analysis-module"></span><h2>multiview_platform.mono_multi_view_classifiers.result_analysis module<a class="headerlink" href="#module-multiview_platform.mono_multi_view_classifiers.result_analysis" title="Permalink to this headline">¶</a></h2> -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.result_analysis.add_new_labels_combination"> -<code class="descname">add_new_labels_combination</code><span class="sig-paren">(</span><em>iterBiclassResults</em>, <em>labelsComination</em>, <em>nbClassifiers</em>, <em>nbExamples</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.result_analysis.add_new_labels_combination" title="Permalink to this definition">¶</a></dt> -<dd></dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.result_analysis.add_new_metric"> -<code class="descname">add_new_metric</code><span class="sig-paren">(</span><em>iter_biclass_results</em>, <em>metric</em>, <em>labels_combination</em>, <em>nb_classifiers</em>, <em>stats_iter</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.result_analysis.add_new_metric" title="Permalink to this definition">¶</a></dt> -<dd></dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.result_analysis.analyzeMulticlass"> -<code class="descname">analyzeMulticlass</code><span class="sig-paren">(</span><em>results</em>, <em>stats_iter</em>, <em>benchmark_argument_dictionaries</em>, <em>nb_examples</em>, <em>nb_labels</em>, <em>multiclass_labels</em>, <em>metrics</em>, <em>classification_indices</em>, <em>directories</em>, <em>example_ids</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.result_analysis.analyzeMulticlass" title="Permalink to this definition">¶</a></dt> -<dd><p>Used to transform one versus one results in multiclass results and to publish it</p> -</dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.result_analysis.analyze_biclass"> -<code class="descname">analyze_biclass</code><span class="sig-paren">(</span><em>results</em>, <em>benchmark_argument_dictionaries</em>, <em>stats_iter</em>, <em>metrics</em>, <em>example_ids</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.result_analysis.analyze_biclass" title="Permalink to this definition">¶</a></dt> -<dd><p>Used to extract and format the results of the different biclass experimentations performed.</p> -<table class="docutils field-list" frame="void" rules="none"> -<col class="field-name" /> -<col class="field-body" /> -<tbody valign="top"> -<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple"> -<li><strong>results</strong> (<em>list</em>) – The result list returned by the bencmark execution function. For each executed benchmark, contains -a flag & a result element. -The flag is a way to identify to which benchmark the results belong, formatted this way : -<cite>flag = iter_index, [classifierPositive, classifierNegative]</cite> with -- <cite>iter_index</cite> the index of the statistical iteration -- <cite>[classifierPositive, classifierNegative]</cite> the indices of the labels considered positive and negative -by the classifier (mainly useful for one versus one multiclass classification).</li> -<li><strong>benchmark_argument_dictionaries</strong> (<em>list of dicts</em>) – The list of all the arguments passed to the benchmark executing functions.</li> -<li><strong>statsIter</strong> (<em>int</em>) – The number of statistical iterations.</li> -<li><strong>metrics</strong> (<em>list of lists</em>) – THe list containing the metrics and their configuration.</li> -</ul> -</td> -</tr> -<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first"><strong>biclassResults</strong> – The list contains a dictionary for each statistical iteration. This dictionary contains a dictionary for each -label combination, regrouping the scores for each metrics and the information useful to plot errors on examples.</p> -</td> -</tr> -<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first last">list of dicts of dicts</p> -</td> -</tr> -</tbody> -</table> -</dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.result_analysis.analyze_iter_multiclass"> -<code class="descname">analyze_iter_multiclass</code><span class="sig-paren">(</span><em>multiclass_results</em>, <em>directory</em>, <em>stats_iter</em>, <em>metrics</em>, <em>data_base_name</em>, <em>nb_examples</em>, <em>example_ids</em>, <em>multiclass_labels</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.result_analysis.analyze_iter_multiclass" title="Permalink to this definition">¶</a></dt> -<dd><p>Used to mean the multiclass results on the iterations executed with different random states</p> -</dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.result_analysis.analyzebiclass_iter"> -<code class="descname">analyzebiclass_iter</code><span class="sig-paren">(</span><em>biclass_results</em>, <em>stats_iter</em>, <em>directory</em>, <em>labels_dictionary</em>, <em>data_base_name</em>, <em>example_ids</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.result_analysis.analyzebiclass_iter" title="Permalink to this definition">¶</a></dt> -<dd><p>Used to format the results in order to plot the mean results on the iterations</p> -</dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.result_analysis.autolabel"> -<code class="descname">autolabel</code><span class="sig-paren">(</span><em>rects</em>, <em>ax</em>, <em>set=1</em>, <em>std=None</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.result_analysis.autolabel" title="Permalink to this definition">¶</a></dt> -<dd><p>Used to print the score below the bars.</p> -<table class="docutils field-list" frame="void" rules="none"> -<col class="field-name" /> -<col class="field-body" /> -<tbody valign="top"> -<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple"> -<li><strong>rects</strong> (<em>pyplot bar object</em>) – THe bars.</li> -<li><strong>ax</strong> (<em>pyplot ax object</em>) – The ax.</li> -<li><strong>set</strong> (<em>integer</em>) – 1 means the test scores, anything else means the train score</li> -<li><strong>std</strong> (<em>None</em><em> or </em><em>array</em>) – The standard deviations in the case of statsIter results.</li> -</ul> -</td> -</tr> -</tbody> -</table> -</dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.result_analysis.format_previous_results"> -<code class="descname">format_previous_results</code><span class="sig-paren">(</span><em>biclass_results</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.result_analysis.format_previous_results" title="Permalink to this definition">¶</a></dt> -<dd><p>Formats each statistical iteration’s result into a mean/std analysis for -the metrics and adds the errors of each statistical iteration.</p> -<table class="docutils field-list" frame="void" rules="none"> -<col class="field-name" /> -<col class="field-body" /> -<tbody valign="top"> -<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>biclass_results</strong> (<em>The raw results</em><em>, </em><em>for each statistical iteration i contains</em>) – <ul class="simple"> -<li>biclass_results[i][“metrics_scores”] is a dictionary with a pd.dataframe -for each metrics</li> -<li>biclass_results[i][“example_errors”], a dicaitonary with a np.array</li> -</ul> -<p>for each classifier.</p> -</td> -</tr> -<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><ul class="simple"> -<li><strong>metrics_analysis</strong> (<em>The mean and std dataframes for each metrics</em>)</li> -<li><strong>error_analysis</strong> (<em>A dictionary containing the added errors</em>) – arrays for each classifier</li> -</ul> -</td> -</tr> -</tbody> -</table> -</dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.result_analysis.gen_classifiers_dict"> -<code class="descname">gen_classifiers_dict</code><span class="sig-paren">(</span><em>results</em>, <em>metrics</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.result_analysis.gen_classifiers_dict" title="Permalink to this definition">¶</a></dt> -<dd></dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.result_analysis.gen_error_data"> -<code class="descname">gen_error_data</code><span class="sig-paren">(</span><em>example_errors</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.result_analysis.gen_error_data" title="Permalink to this definition">¶</a></dt> -<dd><p>Used to format the error data in order to plot it efficiently. The data is saves in a <cite>.csv</cite> file.</p> -<table class="docutils field-list" frame="void" rules="none"> -<col class="field-name" /> -<col class="field-body" /> -<tbody valign="top"> -<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple"> -<li><strong>example_errors</strong> (<em>dict of dicts of np.arrays</em>) – A dictionary conatining all the useful data. Organized as : -<cite>example_errors[<classifier_name>][“error_on_examples”]</cite> is a np.array of ints with a -- 1 if the classifier <cite><classifier_name></cite> classifier well the example, -- 0 if it fail to classify the example, -- -100 if it did not classify the example (multiclass one versus one).</li> -<li><strong>base_file_name</strong> (<em>list of str</em>) – The name of the file in which the figure will be saved (“2D_plot_data.csv” and “bar_plot_data.csv” will -be added at the end).</li> -<li><strong>nbCopies</strong> (<em>int</em><em>, </em><em>optinal</em><em>, </em><em>default: 2</em>) – The number of times the data is copied (classifier wise) in order for the figure to be more readable.</li> -</ul> -</td> -</tr> -<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last"><ul class="simple"> -<li><strong>nbClassifiers</strong> (<em>int</em>) – Number of different classifiers.</li> -<li><strong>nbExamples</strong> (<em>int</em>) – NUmber of examples.</li> -<li><strong>nbCopies</strong> (<em>int</em>) – The number of times the data is copied (classifier wise) in order for the figure to be more readable.</li> -<li><strong>classifiers_names</strong> (<em>list of strs</em>) – The names fo the classifiers.</li> -<li><strong>data</strong> (np.array of shape <cite>(nbClassifiers, nbExamples)</cite>) – A matrix with zeros where the classifier failed to classifiy the example, ones where it classified it well -and -100 if the example was not classified.</li> -<li><strong>error_on_examples</strong> (np.array of shape <cite>(nbExamples,)</cite>) – An array counting how many classifiers failed to classifiy each examples.</li> -</ul> -</p> -</td> -</tr> -</tbody> -</table> -</dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.result_analysis.gen_error_data_glob"> -<code class="descname">gen_error_data_glob</code><span class="sig-paren">(</span><em>combi_results</em>, <em>stats_iter</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.result_analysis.gen_error_data_glob" title="Permalink to this definition">¶</a></dt> -<dd></dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.result_analysis.gen_metrics_scores_multiclass"> -<code class="descname">gen_metrics_scores_multiclass</code><span class="sig-paren">(</span><em>results</em>, <em>true_labels</em>, <em>metrics_list</em>, <em>arguments_dictionaries</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.result_analysis.gen_metrics_scores_multiclass" title="Permalink to this definition">¶</a></dt> -<dd><p>Used to add all the metrics scores to the multiclass result structure for each clf and each iteration</p> -</dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.result_analysis.get_arguments"> -<code class="descname">get_arguments</code><span class="sig-paren">(</span><em>benchmark_argument_dictionaries</em>, <em>flag</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.result_analysis.get_arguments" title="Permalink to this definition">¶</a></dt> -<dd><p>Used to get the arguments passed to the benchmark executing function corresponding to the flag of a -biclass experimentation.</p> -<table class="docutils field-list" frame="void" rules="none"> -<col class="field-name" /> -<col class="field-body" /> -<tbody valign="top"> -<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple"> -<li><strong>flag</strong> (<em>list</em>) – The needed experimentation’s flag.</li> -<li><strong>benchmark_argument_dictionaries</strong> (<em>list of dicts</em>) – The list of all the arguments passed to the benchmark executing functions.</li> -</ul> -</td> -</tr> -<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first"><strong>benchmarkArgumentDictionary</strong> – All the arguments passed to the benchmark executing function for the needed experimentation.</p> -</td> -</tr> -<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first last">dict</p> -</td> -</tr> -</tbody> -</table> -</dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.result_analysis.get_error_on_labels_multiclass"> -<code class="descname">get_error_on_labels_multiclass</code><span class="sig-paren">(</span><em>multiclass_results</em>, <em>multiclass_labels</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.result_analysis.get_error_on_labels_multiclass" title="Permalink to this definition">¶</a></dt> -<dd><p>Used to add all the arrays showing on which example there is an error for each clf and each iteration</p> -</dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.result_analysis.get_example_errors_biclass"> -<code class="descname">get_example_errors_biclass</code><span class="sig-paren">(</span><em>groud_truth</em>, <em>results</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.result_analysis.get_example_errors_biclass" title="Permalink to this definition">¶</a></dt> -<dd><p>Used to get for each classifier and each example whether the classifier has misclassified the example or not.</p> -<table class="docutils field-list" frame="void" rules="none"> -<col class="field-name" /> -<col class="field-body" /> -<tbody valign="top"> -<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple"> -<li><strong>ground_truth</strong> (<em>numpy array of 0</em><em>, </em><em>1 and -100</em><em> (</em><em>if multiclass</em><em>)</em>) – The array with the real labels of the examples</li> -<li><strong>results</strong> (<em>list of MonoviewResult and MultiviewResults objects</em>) – A list containing all the resluts for all the mono- & multi-view experimentations.</li> -</ul> -</td> -</tr> -<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first"><strong>example_errors</strong> – For each classifier, has an entry with a <cite>np.array</cite> over the examples, with a 1 if the examples was -well-classified, a 0 if not and if it’s multiclass classification, a -100 if the examples was not seen during -the one versus one classification.</p> -</td> -</tr> -<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first last">dict of np.array</p> -</td> -</tr> -</tbody> -</table> -</dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.result_analysis.get_feature_importances"> -<code class="descname">get_feature_importances</code><span class="sig-paren">(</span><em>result</em>, <em>feature_names=None</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.result_analysis.get_feature_importances" title="Permalink to this definition">¶</a></dt> -<dd><p>Extracts the feature importance from the monoview results and stores them in a dictionnary : -feature_importance[view_name] is a pandas.DataFrame of size n_feature*n_clf -containing a score of importance for each feature.</p> -<table class="docutils field-list" frame="void" rules="none"> -<col class="field-name" /> -<col class="field-body" /> -<tbody valign="top"> -<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>result</strong> (<em>list of results</em>) – </td> -</tr> -<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><strong>feature_importances</strong> – The dictionary containing all the feature importance for each view as pandas DataFrames</td> -</tr> -<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body">dict of pd.DataFrame</td> -</tr> -</tbody> -</table> -</dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.result_analysis.get_fig_size"> -<code class="descname">get_fig_size</code><span class="sig-paren">(</span><em>nb_results</em>, <em>min_size=15</em>, <em>multiplier=1.0</em>, <em>bar_width=0.35</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.result_analysis.get_fig_size" title="Permalink to this definition">¶</a></dt> -<dd><p>Used to get the image size to save the figure and the bar width, depending on the number of scores to plot.</p> -<table class="docutils field-list" frame="void" rules="none"> -<col class="field-name" /> -<col class="field-body" /> -<tbody valign="top"> -<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple"> -<li><strong>nb_results</strong> (<em>int</em>) – The number of couple of bar to plot.</li> -<li><strong>min_size</strong> (<em>int</em>) – The minimum size of the image, if there are few classifiers to plot.</li> -<li><strong>multiplier</strong> (<em>float</em>) – The ratio between the image size and the number of classifiers.</li> -<li><strong>bar_width</strong> (<em>float</em>) – The width of the bars in the figure. Mainly here to centralize bar_width.</li> -</ul> -</td> -</tr> -<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last"><ul class="simple"> -<li><strong>fig_kwargs</strong> (<em>dict of arguments</em>) – The argument restraining the size of the figure, usable directly in the <cite>subplots</cite> function of -<cite>matplotlib.pyplot</cite>.</li> -<li><strong>bar_width</strong> (<em>float</em>) – The width of the bars in the figure. Mainly here to centralize bar_width.</li> -</ul> -</p> -</td> -</tr> -</tbody> -</table> -</dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.result_analysis.get_metrics_scores_biclass"> -<code class="descname">get_metrics_scores_biclass</code><span class="sig-paren">(</span><em>metrics</em>, <em>results</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.result_analysis.get_metrics_scores_biclass" title="Permalink to this definition">¶</a></dt> -<dd><p>Used to extract metrics scores in case of biclass classification</p> -<table class="docutils field-list" frame="void" rules="none"> -<col class="field-name" /> -<col class="field-body" /> -<tbody valign="top"> -<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple"> -<li><strong>metrics</strong> (<em>list of lists</em>) – The metrics names with configuration metrics[i][0] = name of metric i</li> -<li><strong>results</strong> (<em>list of MonoviewResult and MultiviewResults objects</em>) – A list containing all the results for all the monoview experimentations.</li> -</ul> -</td> -</tr> -<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first"><strong>metricsScores</strong> – Regroups all the scores for each metrics for each classifier and for the train and test sets. -organized as : --<cite>metricScores[metric_name][“classifiers_names”]</cite> is a list of all the classifiers available for this metric, --<cite>metricScores[metric_name][“train_scores”]</cite> is a list of all the available classifiers scores on the train set, --<cite>metricScores[metric_name][“test_scores”]</cite> is a list of all the available classifiers scores on the test set.</p> -</td> -</tr> -<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first last">dict of dict of list</p> -</td> -</tr> -</tbody> -</table> -</dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.result_analysis.get_results"> -<code class="descname">get_results</code><span class="sig-paren">(</span><em>results</em>, <em>stats_iter</em>, <em>nb_multiclass</em>, <em>benchmark_argument_dictionaries</em>, <em>multiclass_labels</em>, <em>metrics</em>, <em>classification_indices</em>, <em>directories</em>, <em>directory</em>, <em>labels_dictionary</em>, <em>nb_examples</em>, <em>nb_labels</em>, <em>example_ids</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.result_analysis.get_results" title="Permalink to this definition">¶</a></dt> -<dd><p>Used to analyze the results of the previous benchmarks</p> -</dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.result_analysis.init_plot"> -<code class="descname">init_plot</code><span class="sig-paren">(</span><em>results</em>, <em>metric_name</em>, <em>metric_dataframe</em>, <em>directory</em>, <em>database_name</em>, <em>labels_names</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.result_analysis.init_plot" title="Permalink to this definition">¶</a></dt> -<dd></dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.result_analysis.iterCmap"> -<code class="descname">iterCmap</code><span class="sig-paren">(</span><em>statsIter</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.result_analysis.iterCmap" title="Permalink to this definition">¶</a></dt> -<dd><p>Used to generate a colormap that will have a tick for each iteration : the whiter the better.</p> -<table class="docutils field-list" frame="void" rules="none"> -<col class="field-name" /> -<col class="field-body" /> -<tbody valign="top"> -<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>statsIter</strong> (<em>int</em>) – The number of statistical iterations.</td> -</tr> -<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><ul class="simple"> -<li><strong>cmap</strong> (<em>matplotlib.colors.ListedColorMap object</em>) – The colormap.</li> -<li><strong>norm</strong> (<em>matplotlib.colors.BoundaryNorm object</em>) – The bounds for the colormap.</li> -</ul> -</td> -</tr> -</tbody> -</table> -</dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.result_analysis.numpy_mean_and_std"> -<code class="descname">numpy_mean_and_std</code><span class="sig-paren">(</span><em>scores_array</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.result_analysis.numpy_mean_and_std" title="Permalink to this definition">¶</a></dt> -<dd></dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.result_analysis.plot_2d"> -<code class="descname">plot_2d</code><span class="sig-paren">(</span><em>data</em>, <em>classifiers_names</em>, <em>nbClassifiers</em>, <em>nbExamples</em>, <em>file_name</em>, <em>minSize=10</em>, <em>labels=None</em>, <em>width_denominator=2.0</em>, <em>height_denominator=20.0</em>, <em>stats_iter=1</em>, <em>use_plotly=True</em>, <em>example_ids=None</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.result_analysis.plot_2d" title="Permalink to this definition">¶</a></dt> -<dd><p>Used to generate a 2D plot of the errors.</p> -<table class="docutils field-list" frame="void" rules="none"> -<col class="field-name" /> -<col class="field-body" /> -<tbody valign="top"> -<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple"> -<li><strong>data</strong> (np.array of shape <cite>(nbClassifiers, nbExamples)</cite>) – A matrix with zeros where the classifier failed to classifiy the example, ones where it classified it well -and -100 if the example was not classified.</li> -<li><strong>classifiers_names</strong> (<em>list of str</em>) – The names of the classifiers.</li> -<li><strong>nbClassifiers</strong> (<em>int</em>) – The number of classifiers.</li> -<li><strong>nbExamples</strong> (<em>int</em>) – The number of examples.</li> -<li><strong>nbCopies</strong> (<em>int</em>) – The number of times the data is copied (classifier wise) in order for the figure to be more readable</li> -<li><strong>file_name</strong> (<em>str</em>) – The name of the file in which the figure will be saved (“error_analysis_2D.png” will be added at the end)</li> -<li><strong>minSize</strong> (<em>int</em><em>, </em><em>optinal</em><em>, </em><em>default: 10</em>) – The minimum width and height of the figure.</li> -<li><strong>width_denominator</strong> (<em>float</em><em>, </em><em>optional</em><em>, </em><em>default: 1.0</em>) – To obtain the image width, the number of classifiers will be divided by this number.</li> -<li><strong>height_denominator</strong> (<em>float</em><em>, </em><em>optional</em><em>, </em><em>default: 1.0</em>) – To obtain the image width, the number of examples will be divided by this number.</li> -<li><strong>stats_iter</strong> (<em>int</em><em>, </em><em>optional</em><em>, </em><em>default: 1</em>) – The number of statistical iterations realized.</li> -</ul> -</td> -</tr> -</tbody> -</table> -</dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.result_analysis.plot_errors_bar"> -<code class="descname">plot_errors_bar</code><span class="sig-paren">(</span><em>error_on_examples</em>, <em>nbClassifiers</em>, <em>nbExamples</em>, <em>fileName</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.result_analysis.plot_errors_bar" title="Permalink to this definition">¶</a></dt> -<dd><p>Used to generate a barplot of the muber of classifiers that failed to classify each examples</p> -<table class="docutils field-list" frame="void" rules="none"> -<col class="field-name" /> -<col class="field-body" /> -<tbody valign="top"> -<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple"> -<li><strong>error_on_examples</strong> (np.array of shape <cite>(nbExamples,)</cite>) – An array counting how many classifiers failed to classifiy each examples.</li> -<li><strong>classifiers_names</strong> (<em>list of str</em>) – The names of the classifiers.</li> -<li><strong>nbClassifiers</strong> (<em>int</em>) – The number of classifiers.</li> -<li><strong>nbExamples</strong> (<em>int</em>) – The number of examples.</li> -<li><strong>fileName</strong> (<em>str</em>) – The name of the file in which the figure will be saved (“error_analysis_2D.png” will be added at the end)</li> -</ul> -</td> -</tr> -</tbody> -</table> -</dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.result_analysis.plot_metric_scores"> -<code class="descname">plot_metric_scores</code><span class="sig-paren">(</span><em>train_scores</em>, <em>test_scores</em>, <em>names</em>, <em>nb_results</em>, <em>metric_name</em>, <em>file_name</em>, <em>tag=''</em>, <em>train_STDs=None</em>, <em>test_STDs=None</em>, <em>use_plotly=True</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.result_analysis.plot_metric_scores" title="Permalink to this definition">¶</a></dt> -<dd><p>Used to plot and save the score barplot for a specific metric.</p> -<table class="docutils field-list" frame="void" rules="none"> -<col class="field-name" /> -<col class="field-body" /> -<tbody valign="top"> -<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple"> -<li><strong>train_scores</strong> (<em>list</em><em> or </em><em>np.array of floats</em>) – The scores of each classifier on the training set.</li> -<li><strong>test_scores</strong> (<em>list</em><em> or </em><em>np.array of floats</em>) – The scores of each classifier on the testing set.</li> -<li><strong>names</strong> (<em>list</em><em> or </em><em>np.array of strs</em>) – The names of all the classifiers.</li> -<li><strong>nb_results</strong> (<em>int</em>) – The number of classifiers to plot.</li> -<li><strong>metric_name</strong> (<em>str</em>) – The plotted metric’s name</li> -<li><strong>file_name</strong> (<em>str</em>) – The name of the file where the figure will be saved.</li> -<li><strong>tag</strong> (<em>str</em>) – Some text to personalize the title, must start with a whitespace.</li> -<li><strong>train_STDs</strong> (<em>np.array of floats</em><em> or </em><em>None</em>) – The array containing the standard deviations for the averaged scores on the training set.</li> -<li><strong>test_STDs</strong> (<em>np.array of floats</em><em> or </em><em>None</em>) – The array containing the standard deviations for the averaged scores on the testing set.</li> -</ul> -</td> -</tr> -</tbody> -</table> -</dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.result_analysis.plot_results_noise"> -<code class="descname">plot_results_noise</code><span class="sig-paren">(</span><em>directory</em>, <em>noise_results</em>, <em>metric_to_plot</em>, <em>name</em>, <em>width=0.1</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.result_analysis.plot_results_noise" title="Permalink to this definition">¶</a></dt> -<dd></dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.result_analysis.publishExampleErrors"> -<code class="descname">publishExampleErrors</code><span class="sig-paren">(</span><em>example_errors</em>, <em>directory</em>, <em>databaseName</em>, <em>labels_names</em>, <em>example_ids</em>, <em>labels</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.result_analysis.publishExampleErrors" title="Permalink to this definition">¶</a></dt> -<dd></dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.result_analysis.publishMetricsGraphs"> -<code class="descname">publishMetricsGraphs</code><span class="sig-paren">(</span><em>metrics_scores</em>, <em>directory</em>, <em>database_name</em>, <em>labels_names</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.result_analysis.publishMetricsGraphs" title="Permalink to this definition">¶</a></dt> -<dd><p>Used to sort the results (names and both scores) in descending test score order.</p> -<table class="docutils field-list" frame="void" rules="none"> -<col class="field-name" /> -<col class="field-body" /> -<tbody valign="top"> -<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple"> -<li><strong>metrics_scores</strong> (<em>dict of dicts of lists</em><em> or </em><em>np.arrays</em>) – Keys : The names of the metrics. -Values : The scores and names of each classifier .</li> -<li><strong>directory</strong> (<em>str</em>) – The path to the directory where the figures will be saved.</li> -<li><strong>database_name</strong> (<em>str</em>) – The name of the database on which the experiments where conducted.</li> -<li><strong>labels_names</strong> (<em>list of strs</em>) – The name corresponding to each numerical label.</li> -</ul> -</td> -</tr> -<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first"></p> -</td> -</tr> -<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first last">results</p> -</td> -</tr> -</tbody> -</table> -</dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.result_analysis.publishMulticlassExmapleErrors"> -<code class="descname">publishMulticlassExmapleErrors</code><span class="sig-paren">(</span><em>multiclass_results</em>, <em>directories</em>, <em>databaseName</em>, <em>example_ids</em>, <em>multiclass_labels</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.result_analysis.publishMulticlassExmapleErrors" title="Permalink to this definition">¶</a></dt> -<dd></dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.result_analysis.publishMulticlassScores"> -<code class="descname">publishMulticlassScores</code><span class="sig-paren">(</span><em>multiclass_results</em>, <em>metrics</em>, <em>stats_iter</em>, <em>direcories</em>, <em>databaseName</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.result_analysis.publishMulticlassScores" title="Permalink to this definition">¶</a></dt> -<dd></dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.result_analysis.publish_feature_importances"> -<code class="descname">publish_feature_importances</code><span class="sig-paren">(</span><em>feature_importances</em>, <em>directory</em>, <em>database_name</em>, <em>labels_names</em>, <em>feature_stds=None</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.result_analysis.publish_feature_importances" title="Permalink to this definition">¶</a></dt> -<dd></dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.result_analysis.publish_iter_biclass_example_errors"> -<code class="descname">publish_iter_biclass_example_errors</code><span class="sig-paren">(</span><em>iter_results</em>, <em>directory</em>, <em>labels_dictionary</em>, <em>stats_iter</em>, <em>example_ids</em>, <em>labels</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.result_analysis.publish_iter_biclass_example_errors" title="Permalink to this definition">¶</a></dt> -<dd></dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.result_analysis.publish_iter_biclass_metrics_scores"> -<code class="descname">publish_iter_biclass_metrics_scores</code><span class="sig-paren">(</span><em>iter_results</em>, <em>directory</em>, <em>labels_dictionary</em>, <em>data_base_name</em>, <em>stats_iter</em>, <em>min_size=10</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.result_analysis.publish_iter_biclass_metrics_scores" title="Permalink to this definition">¶</a></dt> -<dd></dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.result_analysis.publish_iter_multiclass_example_errors"> -<code class="descname">publish_iter_multiclass_example_errors</code><span class="sig-paren">(</span><em>iter_multiclass_results</em>, <em>directory</em>, <em>classifiers_names</em>, <em>stats_iter</em>, <em>example_ids</em>, <em>multiclass_labels</em>, <em>min_size=10</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.result_analysis.publish_iter_multiclass_example_errors" title="Permalink to this definition">¶</a></dt> -<dd></dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.result_analysis.publish_iter_multiclass_metrics_scores"> -<code class="descname">publish_iter_multiclass_metrics_scores</code><span class="sig-paren">(</span><em>iter_multiclass_results</em>, <em>classifiers_names</em>, <em>data_base_name</em>, <em>directory</em>, <em>stats_iter</em>, <em>min_size=10</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.result_analysis.publish_iter_multiclass_metrics_scores" title="Permalink to this definition">¶</a></dt> -<dd></dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.result_analysis.publish_tracebacks"> -<code class="descname">publish_tracebacks</code><span class="sig-paren">(</span><em>directory</em>, <em>database_name</em>, <em>labels_names</em>, <em>tracebacks</em>, <em>flag</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.result_analysis.publish_tracebacks" title="Permalink to this definition">¶</a></dt> -<dd></dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.result_analysis.save_dict_to_text"> -<code class="descname">save_dict_to_text</code><span class="sig-paren">(</span><em>dictionnary</em>, <em>output_file</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.result_analysis.save_dict_to_text" title="Permalink to this definition">¶</a></dt> -<dd></dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.result_analysis.save_failed"> -<code class="descname">save_failed</code><span class="sig-paren">(</span><em>failed_list</em>, <em>directory</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.result_analysis.save_failed" title="Permalink to this definition">¶</a></dt> -<dd></dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.result_analysis.sort_by_test_score"> -<code class="descname">sort_by_test_score</code><span class="sig-paren">(</span><em>train_scores</em>, <em>test_scores</em>, <em>names</em>, <em>train_STDs=None</em>, <em>test_STDs=None</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.result_analysis.sort_by_test_score" title="Permalink to this definition">¶</a></dt> -<dd><p>Used to sort the results (names and both scores) in descending test score order.</p> -<table class="docutils field-list" frame="void" rules="none"> -<col class="field-name" /> -<col class="field-body" /> -<tbody valign="top"> -<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple"> -<li><strong>train_scores</strong> (<em>np.array of floats</em>) – The scores of each classifier on the training set.</li> -<li><strong>test_scores</strong> (<em>np.array of floats</em>) – The scores of each classifier on the testing set.</li> -<li><strong>names</strong> (<em>np.array of strs</em>) – The names of all the classifiers.</li> -<li><strong>train_STDs</strong> (<em>np.array of floats</em><em> or </em><em>None</em>) – The array containing the standard deviations for the averaged scores on the training set.</li> -<li><strong>test_STDs</strong> (<em>np.array of floats</em><em> or </em><em>None</em>) – The array containing the standard deviations for the averaged scores on the testing set.</li> -</ul> -</td> -</tr> -<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last"><ul class="simple"> -<li><strong>sorted_names</strong> (<em>np.array of strs</em>) – The names of all the classifiers, sorted in descending test score order.</li> -<li><strong>sorted_train_scores</strong> (<em>np.array of floats</em>) – The scores of each classifier on the training set, sorted in descending test score order.</li> -<li><strong>sorted_test_scores</strong> (<em>np.array of floats</em>) – The scores of each classifier on the testing set, sorted in descending test score order.</li> -<li><strong>sorted_train_STDs</strong> (<em>np.array of floats or None</em>) – The array containing the standard deviations for the averaged scores on the training set, -sorted in descending test score order.</li> -<li><strong>sorted_test_STDs</strong> (<em>np.array of floats or None</em>) – The array containing the standard deviations for the averaged scores on the testing set, -sorted in descending test score order.</li> -</ul> -</p> -</td> -</tr> -</tbody> -</table> -</dd></dl> - +<div class="section" id="multiview-platform-mono-multi-view-classifiers-result-analysis-module"> +<h2>multiview_platform.mono_multi_view_classifiers.result_analysis module<a class="headerlink" href="#multiview-platform-mono-multi-view-classifiers-result-analysis-module" title="Permalink to this headline">¶</a></h2> </div> -<div class="section" id="module-multiview_platform.mono_multi_view_classifiers"> -<span id="module-contents"></span><h2>Module contents<a class="headerlink" href="#module-multiview_platform.mono_multi_view_classifiers" title="Permalink to this headline">¶</a></h2> +<div class="section" id="module-contents"> +<h2>Module contents<a class="headerlink" href="#module-contents" title="Permalink to this headline">¶</a></h2> </div> </div> @@ -1041,9 +183,9 @@ sorted in descending test score order.</li> <li><a class="reference internal" href="#">multiview_platform.mono_multi_view_classifiers package</a><ul> <li><a class="reference internal" href="#subpackages">Subpackages</a></li> <li><a class="reference internal" href="#submodules">Submodules</a></li> -<li><a class="reference internal" href="#module-multiview_platform.mono_multi_view_classifiers.exec_classif">multiview_platform.mono_multi_view_classifiers.exec_classif module</a></li> -<li><a class="reference internal" href="#module-multiview_platform.mono_multi_view_classifiers.result_analysis">multiview_platform.mono_multi_view_classifiers.result_analysis module</a></li> -<li><a class="reference internal" href="#module-multiview_platform.mono_multi_view_classifiers">Module contents</a></li> +<li><a class="reference internal" href="#multiview-platform-mono-multi-view-classifiers-exec-classif-module">multiview_platform.mono_multi_view_classifiers.exec_classif module</a></li> +<li><a class="reference internal" href="#multiview-platform-mono-multi-view-classifiers-result-analysis-module">multiview_platform.mono_multi_view_classifiers.result_analysis module</a></li> +<li><a class="reference internal" href="#module-contents">Module contents</a></li> </ul> </li> </ul> @@ -1083,9 +225,6 @@ sorted in descending test score order.</li> <li class="right" style="margin-right: 10px"> <a href="../genindex.html" title="General Index" >index</a></li> - <li class="right" > - <a href="../py-modindex.html" title="Python Module Index" - >modules</a> |</li> <li class="right" > <a href="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.html" title="multiview_platform.mono_multi_view_classifiers.multiview_classifiers package" >next</a> |</li> diff --git a/docs/build/references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.difficulty_fusion.html b/docs/build/references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.difficulty_fusion.html index 0566fed9..1bbfbc99 100644 --- a/docs/build/references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.difficulty_fusion.html +++ b/docs/build/references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.difficulty_fusion.html @@ -27,9 +27,6 @@ <li class="right" style="margin-right: 10px"> <a href="../genindex.html" title="General Index" accesskey="I">index</a></li> - <li class="right" > - <a href="../py-modindex.html" title="Python Module Index" - >modules</a> |</li> <li class="right" > <a href="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.disagree_fusion.html" title="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.disagree_fusion package" accesskey="N">next</a> |</li> @@ -59,19 +56,8 @@ <div class="section" id="multiview-platform-mono-multi-view-classifiers-multiview-classifiers-difficulty-fusion-difficulty-fusion-module"> <h2>multiview_platform.mono_multi_view_classifiers.multiview_classifiers.difficulty_fusion.difficulty_fusion module<a class="headerlink" href="#multiview-platform-mono-multi-view-classifiers-multiview-classifiers-difficulty-fusion-difficulty-fusion-module" title="Permalink to this headline">¶</a></h2> </div> -<div class="section" id="module-multiview_platform.mono_multi_view_classifiers.multiview_classifiers.difficulty_fusion"> -<span id="module-contents"></span><h2>Module contents<a class="headerlink" href="#module-multiview_platform.mono_multi_view_classifiers.multiview_classifiers.difficulty_fusion" title="Permalink to this headline">¶</a></h2> -<dl class="class"> -<dt id="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.difficulty_fusion.DifficultyFusion"> -<em class="property">class </em><code class="descname">DifficultyFusion</code><span class="sig-paren">(</span><em>random_state=None</em>, <em>classifier_names=None</em>, <em>monoview_estimators=None</em>, <em>classifier_configs=None</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.multiview_classifiers.difficulty_fusion.DifficultyFusion" title="Permalink to this definition">¶</a></dt> -<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">multiview_platform.mono_multi_view_classifiers.multiview_classifiers.additions.diversity_utils.GlobalDiversityFusionClassifier</span></code></p> -<dl class="method"> -<dt id="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.difficulty_fusion.DifficultyFusion.diversity_measure"> -<code class="descname">diversity_measure</code><span class="sig-paren">(</span><em>classifiers_decisions</em>, <em>combination</em>, <em>y</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.multiview_classifiers.difficulty_fusion.DifficultyFusion.diversity_measure" title="Permalink to this definition">¶</a></dt> -<dd></dd></dl> - -</dd></dl> - +<div class="section" id="module-contents"> +<h2>Module contents<a class="headerlink" href="#module-contents" title="Permalink to this headline">¶</a></h2> </div> </div> @@ -87,7 +73,7 @@ <li><a class="reference internal" href="#submodules">Submodules</a></li> <li><a class="reference internal" href="#multiview-platform-mono-multi-view-classifiers-multiview-classifiers-difficulty-fusion-analyze-results-module">multiview_platform.mono_multi_view_classifiers.multiview_classifiers.difficulty_fusion.analyze_results module</a></li> <li><a class="reference internal" href="#multiview-platform-mono-multi-view-classifiers-multiview-classifiers-difficulty-fusion-difficulty-fusion-module">multiview_platform.mono_multi_view_classifiers.multiview_classifiers.difficulty_fusion.difficulty_fusion module</a></li> -<li><a class="reference internal" href="#module-multiview_platform.mono_multi_view_classifiers.multiview_classifiers.difficulty_fusion">Module contents</a></li> +<li><a class="reference internal" href="#module-contents">Module contents</a></li> </ul> </li> </ul> @@ -127,9 +113,6 @@ <li class="right" style="margin-right: 10px"> <a href="../genindex.html" title="General Index" >index</a></li> - <li class="right" > - <a href="../py-modindex.html" title="Python Module Index" - >modules</a> |</li> <li class="right" > <a href="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.disagree_fusion.html" title="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.disagree_fusion package" >next</a> |</li> diff --git a/docs/build/references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.disagree_fusion.html b/docs/build/references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.disagree_fusion.html index e55d7572..480edca2 100644 --- a/docs/build/references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.disagree_fusion.html +++ b/docs/build/references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.disagree_fusion.html @@ -27,9 +27,6 @@ <li class="right" style="margin-right: 10px"> <a href="../genindex.html" title="General Index" accesskey="I">index</a></li> - <li class="right" > - <a href="../py-modindex.html" title="Python Module Index" - >modules</a> |</li> <li class="right" > <a href="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.double_fault_fusion.html" title="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.double_fault_fusion package" accesskey="N">next</a> |</li> @@ -59,19 +56,8 @@ <div class="section" id="multiview-platform-mono-multi-view-classifiers-multiview-classifiers-disagree-fusion-disagree-fusion-module"> <h2>multiview_platform.mono_multi_view_classifiers.multiview_classifiers.disagree_fusion.disagree_fusion module<a class="headerlink" href="#multiview-platform-mono-multi-view-classifiers-multiview-classifiers-disagree-fusion-disagree-fusion-module" title="Permalink to this headline">¶</a></h2> </div> -<div class="section" id="module-multiview_platform.mono_multi_view_classifiers.multiview_classifiers.disagree_fusion"> -<span id="module-contents"></span><h2>Module contents<a class="headerlink" href="#module-multiview_platform.mono_multi_view_classifiers.multiview_classifiers.disagree_fusion" title="Permalink to this headline">¶</a></h2> -<dl class="class"> -<dt id="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.disagree_fusion.DisagreeFusion"> -<em class="property">class </em><code class="descname">DisagreeFusion</code><span class="sig-paren">(</span><em>random_state=None</em>, <em>classifier_names=None</em>, <em>monoview_estimators=None</em>, <em>classifier_configs=None</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.multiview_classifiers.disagree_fusion.DisagreeFusion" title="Permalink to this definition">¶</a></dt> -<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">multiview_platform.mono_multi_view_classifiers.multiview_classifiers.additions.diversity_utils.CoupleDiversityFusionClassifier</span></code></p> -<dl class="method"> -<dt id="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.disagree_fusion.DisagreeFusion.diversity_measure"> -<code class="descname">diversity_measure</code><span class="sig-paren">(</span><em>first_classifier_decision</em>, <em>second_classifier_decision</em>, <em>_</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.multiview_classifiers.disagree_fusion.DisagreeFusion.diversity_measure" title="Permalink to this definition">¶</a></dt> -<dd></dd></dl> - -</dd></dl> - +<div class="section" id="module-contents"> +<h2>Module contents<a class="headerlink" href="#module-contents" title="Permalink to this headline">¶</a></h2> </div> </div> @@ -87,7 +73,7 @@ <li><a class="reference internal" href="#submodules">Submodules</a></li> <li><a class="reference internal" href="#multiview-platform-mono-multi-view-classifiers-multiview-classifiers-disagree-fusion-analyze-results-module">multiview_platform.mono_multi_view_classifiers.multiview_classifiers.disagree_fusion.analyze_results module</a></li> <li><a class="reference internal" href="#multiview-platform-mono-multi-view-classifiers-multiview-classifiers-disagree-fusion-disagree-fusion-module">multiview_platform.mono_multi_view_classifiers.multiview_classifiers.disagree_fusion.disagree_fusion module</a></li> -<li><a class="reference internal" href="#module-multiview_platform.mono_multi_view_classifiers.multiview_classifiers.disagree_fusion">Module contents</a></li> +<li><a class="reference internal" href="#module-contents">Module contents</a></li> </ul> </li> </ul> @@ -127,9 +113,6 @@ <li class="right" style="margin-right: 10px"> <a href="../genindex.html" title="General Index" >index</a></li> - <li class="right" > - <a href="../py-modindex.html" title="Python Module Index" - >modules</a> |</li> <li class="right" > <a href="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.double_fault_fusion.html" title="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.double_fault_fusion package" >next</a> |</li> diff --git a/docs/build/references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.double_fault_fusion.html b/docs/build/references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.double_fault_fusion.html index 34622a05..90f76513 100644 --- a/docs/build/references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.double_fault_fusion.html +++ b/docs/build/references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.double_fault_fusion.html @@ -27,9 +27,6 @@ <li class="right" style="margin-right: 10px"> <a href="../genindex.html" title="General Index" accesskey="I">index</a></li> - <li class="right" > - <a href="../py-modindex.html" title="Python Module Index" - >modules</a> |</li> <li class="right" > <a href="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.entropy_fusion.html" title="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.entropy_fusion package" accesskey="N">next</a> |</li> @@ -59,19 +56,8 @@ <div class="section" id="multiview-platform-mono-multi-view-classifiers-multiview-classifiers-double-fault-fusion-double-fault-fusion-module"> <h2>multiview_platform.mono_multi_view_classifiers.multiview_classifiers.double_fault_fusion.double_fault_fusion module<a class="headerlink" href="#multiview-platform-mono-multi-view-classifiers-multiview-classifiers-double-fault-fusion-double-fault-fusion-module" title="Permalink to this headline">¶</a></h2> </div> -<div class="section" id="module-multiview_platform.mono_multi_view_classifiers.multiview_classifiers.double_fault_fusion"> -<span id="module-contents"></span><h2>Module contents<a class="headerlink" href="#module-multiview_platform.mono_multi_view_classifiers.multiview_classifiers.double_fault_fusion" title="Permalink to this headline">¶</a></h2> -<dl class="class"> -<dt id="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.double_fault_fusion.DoubleFaultFusion"> -<em class="property">class </em><code class="descname">DoubleFaultFusion</code><span class="sig-paren">(</span><em>random_state=None</em>, <em>classifier_names=None</em>, <em>monoview_estimators=None</em>, <em>classifier_configs=None</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.multiview_classifiers.double_fault_fusion.DoubleFaultFusion" title="Permalink to this definition">¶</a></dt> -<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">multiview_platform.mono_multi_view_classifiers.multiview_classifiers.additions.diversity_utils.CoupleDiversityFusionClassifier</span></code></p> -<dl class="method"> -<dt id="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.double_fault_fusion.DoubleFaultFusion.diversity_measure"> -<code class="descname">diversity_measure</code><span class="sig-paren">(</span><em>first_classifier_decision</em>, <em>second_classifier_decision</em>, <em>y</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.multiview_classifiers.double_fault_fusion.DoubleFaultFusion.diversity_measure" title="Permalink to this definition">¶</a></dt> -<dd></dd></dl> - -</dd></dl> - +<div class="section" id="module-contents"> +<h2>Module contents<a class="headerlink" href="#module-contents" title="Permalink to this headline">¶</a></h2> </div> </div> @@ -87,7 +73,7 @@ <li><a class="reference internal" href="#submodules">Submodules</a></li> <li><a class="reference internal" href="#multiview-platform-mono-multi-view-classifiers-multiview-classifiers-double-fault-fusion-analyze-results-module">multiview_platform.mono_multi_view_classifiers.multiview_classifiers.double_fault_fusion.analyze_results module</a></li> <li><a class="reference internal" href="#multiview-platform-mono-multi-view-classifiers-multiview-classifiers-double-fault-fusion-double-fault-fusion-module">multiview_platform.mono_multi_view_classifiers.multiview_classifiers.double_fault_fusion.double_fault_fusion module</a></li> -<li><a class="reference internal" href="#module-multiview_platform.mono_multi_view_classifiers.multiview_classifiers.double_fault_fusion">Module contents</a></li> +<li><a class="reference internal" href="#module-contents">Module contents</a></li> </ul> </li> </ul> @@ -127,9 +113,6 @@ <li class="right" style="margin-right: 10px"> <a href="../genindex.html" title="General Index" >index</a></li> - <li class="right" > - <a href="../py-modindex.html" title="Python Module Index" - >modules</a> |</li> <li class="right" > <a href="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.entropy_fusion.html" title="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.entropy_fusion package" >next</a> |</li> diff --git a/docs/build/references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.entropy_fusion.html b/docs/build/references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.entropy_fusion.html index 8cecf9e3..eafd7203 100644 --- a/docs/build/references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.entropy_fusion.html +++ b/docs/build/references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.entropy_fusion.html @@ -27,9 +27,6 @@ <li class="right" style="margin-right: 10px"> <a href="../genindex.html" title="General Index" accesskey="I">index</a></li> - <li class="right" > - <a href="../py-modindex.html" title="Python Module Index" - >modules</a> |</li> <li class="right" > <a href="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.fat_late_fusion.html" title="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.fat_late_fusion package" accesskey="N">next</a> |</li> @@ -59,19 +56,8 @@ <div class="section" id="multiview-platform-mono-multi-view-classifiers-multiview-classifiers-entropy-fusion-entropy-fusion-module"> <h2>multiview_platform.mono_multi_view_classifiers.multiview_classifiers.entropy_fusion.entropy_fusion module<a class="headerlink" href="#multiview-platform-mono-multi-view-classifiers-multiview-classifiers-entropy-fusion-entropy-fusion-module" title="Permalink to this headline">¶</a></h2> </div> -<div class="section" id="module-multiview_platform.mono_multi_view_classifiers.multiview_classifiers.entropy_fusion"> -<span id="module-contents"></span><h2>Module contents<a class="headerlink" href="#module-multiview_platform.mono_multi_view_classifiers.multiview_classifiers.entropy_fusion" title="Permalink to this headline">¶</a></h2> -<dl class="class"> -<dt id="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.entropy_fusion.EntropyFusion"> -<em class="property">class </em><code class="descname">EntropyFusion</code><span class="sig-paren">(</span><em>random_state=None</em>, <em>classifier_names=None</em>, <em>monoview_estimators=None</em>, <em>classifier_configs=None</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.multiview_classifiers.entropy_fusion.EntropyFusion" title="Permalink to this definition">¶</a></dt> -<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">multiview_platform.mono_multi_view_classifiers.multiview_classifiers.additions.diversity_utils.GlobalDiversityFusionClassifier</span></code></p> -<dl class="method"> -<dt id="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.entropy_fusion.EntropyFusion.diversity_measure"> -<code class="descname">diversity_measure</code><span class="sig-paren">(</span><em>classifiers_decisions</em>, <em>combination</em>, <em>y</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.multiview_classifiers.entropy_fusion.EntropyFusion.diversity_measure" title="Permalink to this definition">¶</a></dt> -<dd></dd></dl> - -</dd></dl> - +<div class="section" id="module-contents"> +<h2>Module contents<a class="headerlink" href="#module-contents" title="Permalink to this headline">¶</a></h2> </div> </div> @@ -87,7 +73,7 @@ <li><a class="reference internal" href="#submodules">Submodules</a></li> <li><a class="reference internal" href="#multiview-platform-mono-multi-view-classifiers-multiview-classifiers-entropy-fusion-analyze-results-module">multiview_platform.mono_multi_view_classifiers.multiview_classifiers.entropy_fusion.analyze_results module</a></li> <li><a class="reference internal" href="#multiview-platform-mono-multi-view-classifiers-multiview-classifiers-entropy-fusion-entropy-fusion-module">multiview_platform.mono_multi_view_classifiers.multiview_classifiers.entropy_fusion.entropy_fusion module</a></li> -<li><a class="reference internal" href="#module-multiview_platform.mono_multi_view_classifiers.multiview_classifiers.entropy_fusion">Module contents</a></li> +<li><a class="reference internal" href="#module-contents">Module contents</a></li> </ul> </li> </ul> @@ -127,9 +113,6 @@ <li class="right" style="margin-right: 10px"> <a href="../genindex.html" title="General Index" >index</a></li> - <li class="right" > - <a href="../py-modindex.html" title="Python Module Index" - >modules</a> |</li> <li class="right" > <a href="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.fat_late_fusion.html" title="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.fat_late_fusion package" >next</a> |</li> diff --git a/docs/build/references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.fat_late_fusion.html b/docs/build/references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.fat_late_fusion.html index 64856de4..617b595f 100644 --- a/docs/build/references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.fat_late_fusion.html +++ b/docs/build/references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.fat_late_fusion.html @@ -27,9 +27,6 @@ <li class="right" style="margin-right: 10px"> <a href="../genindex.html" title="General Index" accesskey="I">index</a></li> - <li class="right" > - <a href="../py-modindex.html" title="Python Module Index" - >modules</a> |</li> <li class="right" > <a href="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.fat_scm_late_fusion.html" title="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.fat_scm_late_fusion package" accesskey="N">next</a> |</li> @@ -116,9 +113,6 @@ <li class="right" style="margin-right: 10px"> <a href="../genindex.html" title="General Index" >index</a></li> - <li class="right" > - <a href="../py-modindex.html" title="Python Module Index" - >modules</a> |</li> <li class="right" > <a href="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.fat_scm_late_fusion.html" title="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.fat_scm_late_fusion package" >next</a> |</li> diff --git a/docs/build/references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.fat_scm_late_fusion.html b/docs/build/references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.fat_scm_late_fusion.html index 6d5fe37f..03968623 100644 --- a/docs/build/references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.fat_scm_late_fusion.html +++ b/docs/build/references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.fat_scm_late_fusion.html @@ -27,9 +27,6 @@ <li class="right" style="margin-right: 10px"> <a href="../genindex.html" title="General Index" accesskey="I">index</a></li> - <li class="right" > - <a href="../py-modindex.html" title="Python Module Index" - >modules</a> |</li> <li class="right" > <a href="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.fusion.html" title="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.fusion package" accesskey="N">next</a> |</li> @@ -116,9 +113,6 @@ <li class="right" style="margin-right: 10px"> <a href="../genindex.html" title="General Index" >index</a></li> - <li class="right" > - <a href="../py-modindex.html" title="Python Module Index" - >modules</a> |</li> <li class="right" > <a href="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.fusion.html" title="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.fusion package" >next</a> |</li> diff --git a/docs/build/references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.fusion.Methods.EarlyFusionPackage.html b/docs/build/references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.fusion.Methods.EarlyFusionPackage.html index 2316b55b..74e655a4 100644 --- a/docs/build/references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.fusion.Methods.EarlyFusionPackage.html +++ b/docs/build/references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.fusion.Methods.EarlyFusionPackage.html @@ -27,9 +27,6 @@ <li class="right" style="margin-right: 10px"> <a href="../genindex.html" title="General Index" accesskey="I">index</a></li> - <li class="right" > - <a href="../py-modindex.html" title="Python Module Index" - >modules</a> |</li> <li class="right" > <a href="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.fusion.Methods.LateFusionPackage.html" title="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.fusion.Methods.LateFusionPackage package" accesskey="N">next</a> |</li> @@ -114,9 +111,6 @@ <li class="right" style="margin-right: 10px"> <a href="../genindex.html" title="General Index" >index</a></li> - <li class="right" > - <a href="../py-modindex.html" title="Python Module Index" - >modules</a> |</li> <li class="right" > <a href="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.fusion.Methods.LateFusionPackage.html" title="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.fusion.Methods.LateFusionPackage package" >next</a> |</li> diff --git a/docs/build/references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.fusion.Methods.LateFusionPackage.html b/docs/build/references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.fusion.Methods.LateFusionPackage.html index 842ee9c9..91b384a5 100644 --- a/docs/build/references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.fusion.Methods.LateFusionPackage.html +++ b/docs/build/references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.fusion.Methods.LateFusionPackage.html @@ -27,9 +27,6 @@ <li class="right" style="margin-right: 10px"> <a href="../genindex.html" title="General Index" accesskey="I">index</a></li> - <li class="right" > - <a href="../py-modindex.html" title="Python Module Index" - >modules</a> |</li> <li class="right" > <a href="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.pseudo_cq_fusion.html" title="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.pseudo_cq_fusion package" accesskey="N">next</a> |</li> @@ -130,9 +127,6 @@ <li class="right" style="margin-right: 10px"> <a href="../genindex.html" title="General Index" >index</a></li> - <li class="right" > - <a href="../py-modindex.html" title="Python Module Index" - >modules</a> |</li> <li class="right" > <a href="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.pseudo_cq_fusion.html" title="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.pseudo_cq_fusion package" >next</a> |</li> diff --git a/docs/build/references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.fusion.Methods.html b/docs/build/references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.fusion.Methods.html index 4496903c..5bca95d8 100644 --- a/docs/build/references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.fusion.Methods.html +++ b/docs/build/references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.fusion.Methods.html @@ -27,9 +27,6 @@ <li class="right" style="margin-right: 10px"> <a href="../genindex.html" title="General Index" accesskey="I">index</a></li> - <li class="right" > - <a href="../py-modindex.html" title="Python Module Index" - >modules</a> |</li> <li class="right" > <a href="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.fusion.Methods.EarlyFusionPackage.html" title="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.fusion.Methods.EarlyFusionPackage package" accesskey="N">next</a> |</li> @@ -141,9 +138,6 @@ <li class="right" style="margin-right: 10px"> <a href="../genindex.html" title="General Index" >index</a></li> - <li class="right" > - <a href="../py-modindex.html" title="Python Module Index" - >modules</a> |</li> <li class="right" > <a href="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.fusion.Methods.EarlyFusionPackage.html" title="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.fusion.Methods.EarlyFusionPackage package" >next</a> |</li> diff --git a/docs/build/references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.fusion.html b/docs/build/references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.fusion.html index 0a8a4de4..9b360c2e 100644 --- a/docs/build/references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.fusion.html +++ b/docs/build/references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.fusion.html @@ -27,9 +27,6 @@ <li class="right" style="margin-right: 10px"> <a href="../genindex.html" title="General Index" accesskey="I">index</a></li> - <li class="right" > - <a href="../py-modindex.html" title="Python Module Index" - >modules</a> |</li> <li class="right" > <a href="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.fusion.Methods.html" title="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.fusion.Methods package" accesskey="N">next</a> |</li> @@ -150,9 +147,6 @@ <li class="right" style="margin-right: 10px"> <a href="../genindex.html" title="General Index" >index</a></li> - <li class="right" > - <a href="../py-modindex.html" title="Python Module Index" - >modules</a> |</li> <li class="right" > <a href="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.fusion.Methods.html" title="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.fusion.Methods package" >next</a> |</li> diff --git a/docs/build/references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.html b/docs/build/references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.html index 91fa9125..9df84d3b 100644 --- a/docs/build/references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.html +++ b/docs/build/references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.html @@ -27,9 +27,6 @@ <li class="right" style="margin-right: 10px"> <a href="../genindex.html" title="General Index" accesskey="I">index</a></li> - <li class="right" > - <a href="../py-modindex.html" title="Python Module Index" - >modules</a> |</li> <li class="right" > <a href="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.difficulty_fusion.html" title="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.difficulty_fusion package" accesskey="N">next</a> |</li> @@ -57,28 +54,28 @@ <li class="toctree-l2"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.difficulty_fusion.html#submodules">Submodules</a></li> <li class="toctree-l2"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.difficulty_fusion.html#multiview-platform-mono-multi-view-classifiers-multiview-classifiers-difficulty-fusion-analyze-results-module">multiview_platform.mono_multi_view_classifiers.multiview_classifiers.difficulty_fusion.analyze_results module</a></li> <li class="toctree-l2"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.difficulty_fusion.html#multiview-platform-mono-multi-view-classifiers-multiview-classifiers-difficulty-fusion-difficulty-fusion-module">multiview_platform.mono_multi_view_classifiers.multiview_classifiers.difficulty_fusion.difficulty_fusion module</a></li> -<li class="toctree-l2"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.difficulty_fusion.html#module-multiview_platform.mono_multi_view_classifiers.multiview_classifiers.difficulty_fusion">Module contents</a></li> +<li class="toctree-l2"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.difficulty_fusion.html#module-contents">Module contents</a></li> </ul> </li> <li class="toctree-l1"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.disagree_fusion.html">multiview_platform.mono_multi_view_classifiers.multiview_classifiers.disagree_fusion package</a><ul> <li class="toctree-l2"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.disagree_fusion.html#submodules">Submodules</a></li> <li class="toctree-l2"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.disagree_fusion.html#multiview-platform-mono-multi-view-classifiers-multiview-classifiers-disagree-fusion-analyze-results-module">multiview_platform.mono_multi_view_classifiers.multiview_classifiers.disagree_fusion.analyze_results module</a></li> <li class="toctree-l2"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.disagree_fusion.html#multiview-platform-mono-multi-view-classifiers-multiview-classifiers-disagree-fusion-disagree-fusion-module">multiview_platform.mono_multi_view_classifiers.multiview_classifiers.disagree_fusion.disagree_fusion module</a></li> -<li class="toctree-l2"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.disagree_fusion.html#module-multiview_platform.mono_multi_view_classifiers.multiview_classifiers.disagree_fusion">Module contents</a></li> +<li class="toctree-l2"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.disagree_fusion.html#module-contents">Module contents</a></li> </ul> </li> <li class="toctree-l1"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.double_fault_fusion.html">multiview_platform.mono_multi_view_classifiers.multiview_classifiers.double_fault_fusion package</a><ul> <li class="toctree-l2"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.double_fault_fusion.html#submodules">Submodules</a></li> <li class="toctree-l2"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.double_fault_fusion.html#multiview-platform-mono-multi-view-classifiers-multiview-classifiers-double-fault-fusion-analyze-results-module">multiview_platform.mono_multi_view_classifiers.multiview_classifiers.double_fault_fusion.analyze_results module</a></li> <li class="toctree-l2"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.double_fault_fusion.html#multiview-platform-mono-multi-view-classifiers-multiview-classifiers-double-fault-fusion-double-fault-fusion-module">multiview_platform.mono_multi_view_classifiers.multiview_classifiers.double_fault_fusion.double_fault_fusion module</a></li> -<li class="toctree-l2"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.double_fault_fusion.html#module-multiview_platform.mono_multi_view_classifiers.multiview_classifiers.double_fault_fusion">Module contents</a></li> +<li class="toctree-l2"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.double_fault_fusion.html#module-contents">Module contents</a></li> </ul> </li> <li class="toctree-l1"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.entropy_fusion.html">multiview_platform.mono_multi_view_classifiers.multiview_classifiers.entropy_fusion package</a><ul> <li class="toctree-l2"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.entropy_fusion.html#submodules">Submodules</a></li> <li class="toctree-l2"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.entropy_fusion.html#multiview-platform-mono-multi-view-classifiers-multiview-classifiers-entropy-fusion-analyze-results-module">multiview_platform.mono_multi_view_classifiers.multiview_classifiers.entropy_fusion.analyze_results module</a></li> <li class="toctree-l2"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.entropy_fusion.html#multiview-platform-mono-multi-view-classifiers-multiview-classifiers-entropy-fusion-entropy-fusion-module">multiview_platform.mono_multi_view_classifiers.multiview_classifiers.entropy_fusion.entropy_fusion module</a></li> -<li class="toctree-l2"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.entropy_fusion.html#module-multiview_platform.mono_multi_view_classifiers.multiview_classifiers.entropy_fusion">Module contents</a></li> +<li class="toctree-l2"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.entropy_fusion.html#module-contents">Module contents</a></li> </ul> </li> <li class="toctree-l1"><a class="reference internal" href="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.fat_late_fusion.html">multiview_platform.mono_multi_view_classifiers.multiview_classifiers.fat_late_fusion package</a><ul> @@ -141,8 +138,8 @@ </ul> </div> </div> -<div class="section" id="module-multiview_platform.mono_multi_view_classifiers.multiview_classifiers"> -<span id="module-contents"></span><h2>Module contents<a class="headerlink" href="#module-multiview_platform.mono_multi_view_classifiers.multiview_classifiers" title="Permalink to this headline">¶</a></h2> +<div class="section" id="module-contents"> +<h2>Module contents<a class="headerlink" href="#module-contents" title="Permalink to this headline">¶</a></h2> </div> </div> @@ -156,7 +153,7 @@ <ul> <li><a class="reference internal" href="#">multiview_platform.mono_multi_view_classifiers.multiview_classifiers package</a><ul> <li><a class="reference internal" href="#subpackages">Subpackages</a></li> -<li><a class="reference internal" href="#module-multiview_platform.mono_multi_view_classifiers.multiview_classifiers">Module contents</a></li> +<li><a class="reference internal" href="#module-contents">Module contents</a></li> </ul> </li> </ul> @@ -196,9 +193,6 @@ <li class="right" style="margin-right: 10px"> <a href="../genindex.html" title="General Index" >index</a></li> - <li class="right" > - <a href="../py-modindex.html" title="Python Module Index" - >modules</a> |</li> <li class="right" > <a href="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.difficulty_fusion.html" title="multiview_platform.mono_multi_view_classifiers.multiview_classifiers.difficulty_fusion package" >next</a> |</li> diff --git a/docs/build/references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.pseudo_cq_fusion.html b/docs/build/references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.pseudo_cq_fusion.html index 41e15752..a7ff742a 100644 --- a/docs/build/references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.pseudo_cq_fusion.html +++ b/docs/build/references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.pseudo_cq_fusion.html @@ -27,9 +27,6 @@ <li class="right" style="margin-right: 10px"> <a href="../genindex.html" title="General Index" accesskey="I">index</a></li> - <li class="right" > - <a href="../py-modindex.html" title="Python Module Index" - >modules</a> |</li> <li class="right" > <a href="multiview_platform.mono_multi_view_classifiers.utils.html" title="multiview_platform.mono_multi_view_classifiers.utils package" accesskey="N">next</a> |</li> @@ -116,9 +113,6 @@ <li class="right" style="margin-right: 10px"> <a href="../genindex.html" title="General Index" >index</a></li> - <li class="right" > - <a href="../py-modindex.html" title="Python Module Index" - >modules</a> |</li> <li class="right" > <a href="multiview_platform.mono_multi_view_classifiers.utils.html" title="multiview_platform.mono_multi_view_classifiers.utils package" >next</a> |</li> diff --git a/docs/build/references/multiview_platform.mono_multi_view_classifiers.utils.html b/docs/build/references/multiview_platform.mono_multi_view_classifiers.utils.html index 2d9b2723..d6acaa22 100644 --- a/docs/build/references/multiview_platform.mono_multi_view_classifiers.utils.html +++ b/docs/build/references/multiview_platform.mono_multi_view_classifiers.utils.html @@ -27,9 +27,6 @@ <li class="right" style="margin-right: 10px"> <a href="../genindex.html" title="General Index" accesskey="I">index</a></li> - <li class="right" > - <a href="../py-modindex.html" title="Python Module Index" - >modules</a> |</li> <li class="right" > <a href="multiview_platform.tests.html" title="multiview_platform.tests package" accesskey="N">next</a> |</li> @@ -52,911 +49,35 @@ <div class="section" id="submodules"> <h2>Submodules<a class="headerlink" href="#submodules" title="Permalink to this headline">¶</a></h2> </div> -<div class="section" id="module-multiview_platform.mono_multi_view_classifiers.utils.configuration"> -<span id="multiview-platform-mono-multi-view-classifiers-utils-configuration-module"></span><h2>multiview_platform.mono_multi_view_classifiers.utils.configuration module<a class="headerlink" href="#module-multiview_platform.mono_multi_view_classifiers.utils.configuration" title="Permalink to this headline">¶</a></h2> -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.utils.configuration.get_the_args"> -<code class="descname">get_the_args</code><span class="sig-paren">(</span><em>path_to_config_file='../config_files/config.yml'</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.utils.configuration.get_the_args" title="Permalink to this definition">¶</a></dt> -<dd><p>The function for extracting the args for a ‘.yml’ file.</p> -<table class="docutils field-list" frame="void" rules="none"> -<col class="field-name" /> -<col class="field-body" /> -<tbody valign="top"> -<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>path_to_config_file</strong> (<em>str</em><em>, </em><em>path to the yml file containing the configuration</em>) – </td> -</tr> -<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><ul class="simple"> -<li><strong>yaml_config</strong> (<em>dict, the dictionary conaining the configuration for the</em>)</li> -<li><em>benchmark</em></li> -</ul> -</td> -</tr> -</tbody> -</table> -</dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.utils.configuration.save_config"> -<code class="descname">save_config</code><span class="sig-paren">(</span><em>directory</em>, <em>arguments</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.utils.configuration.save_config" title="Permalink to this definition">¶</a></dt> -<dd><p>Saves the config file in the result directory.</p> -</dd></dl> - +<div class="section" id="multiview-platform-mono-multi-view-classifiers-utils-configuration-module"> +<h2>multiview_platform.mono_multi_view_classifiers.utils.configuration module<a class="headerlink" href="#multiview-platform-mono-multi-view-classifiers-utils-configuration-module" title="Permalink to this headline">¶</a></h2> </div> -<div class="section" id="module-multiview_platform.mono_multi_view_classifiers.utils.dataset"> -<span id="multiview-platform-mono-multi-view-classifiers-utils-dataset-module"></span><h2>multiview_platform.mono_multi_view_classifiers.utils.dataset module<a class="headerlink" href="#module-multiview_platform.mono_multi_view_classifiers.utils.dataset" title="Permalink to this headline">¶</a></h2> -<dl class="class"> -<dt id="multiview_platform.mono_multi_view_classifiers.utils.dataset.Dataset"> -<em class="property">class </em><code class="descname">Dataset</code><span class="sig-paren">(</span><em>views=None</em>, <em>labels=None</em>, <em>are_sparse=False</em>, <em>file_name='dataset.hdf5'</em>, <em>view_names=None</em>, <em>path=''</em>, <em>hdf5_file=None</em>, <em>labels_names=None</em>, <em>is_temp=False</em>, <em>example_ids=None</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.utils.dataset.Dataset" title="Permalink to this definition">¶</a></dt> -<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p> -<p>Class of Dataset</p> -<p>This class is used to encapsulate the multiview dataset</p> -<table class="docutils field-list" frame="void" rules="none"> -<col class="field-name" /> -<col class="field-body" /> -<tbody valign="top"> -<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple"> -<li><strong>views</strong> (<em>list of numpy arrays</em><em> or </em><em>None</em>) – The list containing each view of the dataset as a numpy array of shape -(nb examples, nb features).</li> -<li><strong>labels</strong> (<em>numpy array</em><em> or </em><em>None</em>) – The labels for the multiview dataset, of shape (nb examples, ).</li> -<li><strong>are_sparse</strong> (<em>list of bool</em><em>, or </em><em>None</em>) – The list of boolean telling if each view is sparse or not.</li> -<li><strong>file_name</strong> (<em>str</em><em>, or </em><em>None</em>) – The name of the hdf5 file that will be created to store the multiview -dataset.</li> -<li><strong>view_names</strong> (<em>list of str</em><em>, or </em><em>None</em>) – The name of each view.</li> -<li><strong>path</strong> (<em>str</em><em>, or </em><em>None</em>) – The path where the hdf5 dataset file will be stored</li> -<li><strong>hdf5_file</strong> (<em>h5py.File object</em><em>, or </em><em>None</em>) – If not None, the dataset will be imported directly from this file.</li> -<li><strong>labels_names</strong> (<em>list of str</em><em>, or </em><em>None</em>) – The name for each unique value of the labels given in labels.</li> -<li><strong>is_temp</strong> (<em>bool</em>) – Used if a temporary dataset has to be used by the benchmark.</li> -</ul> -</td> -</tr> -</tbody> -</table> -<dl class="attribute"> -<dt id="multiview_platform.mono_multi_view_classifiers.utils.dataset.Dataset.dataset"> -<code class="descname">dataset</code><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.utils.dataset.Dataset.dataset" title="Permalink to this definition">¶</a></dt> -<dd><p>The h5py file pbject that points to the hdf5 dataset on the disk.</p> -<table class="docutils field-list" frame="void" rules="none"> -<col class="field-name" /> -<col class="field-body" /> -<tbody valign="top"> -<tr class="field-odd field"><th class="field-name">Type:</th><td class="field-body">h5py.File object</td> -</tr> -</tbody> -</table> -</dd></dl> - -<dl class="attribute"> -<dt id="multiview_platform.mono_multi_view_classifiers.utils.dataset.Dataset.nb_view"> -<code class="descname">nb_view</code><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.utils.dataset.Dataset.nb_view" title="Permalink to this definition">¶</a></dt> -<dd><p>The number of views in the dataset.</p> -<table class="docutils field-list" frame="void" rules="none"> -<col class="field-name" /> -<col class="field-body" /> -<tbody valign="top"> -<tr class="field-odd field"><th class="field-name">Type:</th><td class="field-body">int</td> -</tr> -</tbody> -</table> -</dd></dl> - -<dl class="attribute"> -<dt id="multiview_platform.mono_multi_view_classifiers.utils.dataset.Dataset.view_dict"> -<code class="descname">view_dict</code><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.utils.dataset.Dataset.view_dict" title="Permalink to this definition">¶</a></dt> -<dd><dl class="docutils"> -<dt>The dictionnary with the name of each view as the keys and their indices</dt> -<dd>as values</dd> -</dl> -<table class="docutils field-list" frame="void" rules="none"> -<col class="field-name" /> -<col class="field-body" /> -<tbody valign="top"> -<tr class="field-odd field"><th class="field-name">Type:</th><td class="field-body">dict</td> -</tr> -</tbody> -</table> -</dd></dl> - -<dl class="method"> -<dt id="multiview_platform.mono_multi_view_classifiers.utils.dataset.Dataset.add_gaussian_noise"> -<code class="descname">add_gaussian_noise</code><span class="sig-paren">(</span><em>random_state</em>, <em>path</em>, <em>noise_std=0.15</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.utils.dataset.Dataset.add_gaussian_noise" title="Permalink to this definition">¶</a></dt> -<dd><p>In this function, we add a guaussian noise centered in 0 with specified -std to each view, according to it’s range (the noise will be -mutliplied by this range) and we crop the noisy signal according to the -view’s attributes limits. -This is done by creating a new dataset, to keep clean data.</p> -</dd></dl> - -<dl class="method"> -<dt id="multiview_platform.mono_multi_view_classifiers.utils.dataset.Dataset.check_selected_label_names"> -<code class="descname">check_selected_label_names</code><span class="sig-paren">(</span><em>nb_labels=None</em>, <em>selected_label_names=None</em>, <em>random_state=<mtrand.RandomState object></em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.utils.dataset.Dataset.check_selected_label_names" title="Permalink to this definition">¶</a></dt> -<dd></dd></dl> - -<dl class="method"> -<dt id="multiview_platform.mono_multi_view_classifiers.utils.dataset.Dataset.copy_view"> -<code class="descname">copy_view</code><span class="sig-paren">(</span><em>target_dataset=None</em>, <em>source_view_name=None</em>, <em>target_view_index=None</em>, <em>example_indices=None</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.utils.dataset.Dataset.copy_view" title="Permalink to this definition">¶</a></dt> -<dd></dd></dl> - -<dl class="method"> -<dt id="multiview_platform.mono_multi_view_classifiers.utils.dataset.Dataset.filter"> -<code class="descname">filter</code><span class="sig-paren">(</span><em>labels</em>, <em>label_names</em>, <em>example_indices</em>, <em>view_names</em>, <em>path</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.utils.dataset.Dataset.filter" title="Permalink to this definition">¶</a></dt> -<dd></dd></dl> - -<dl class="method"> -<dt id="multiview_platform.mono_multi_view_classifiers.utils.dataset.Dataset.get_label_names"> -<code class="descname">get_label_names</code><span class="sig-paren">(</span><em>decode=True</em>, <em>example_indices=None</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.utils.dataset.Dataset.get_label_names" title="Permalink to this definition">¶</a></dt> -<dd><p>Used to get the list of the label names for the give set of examples</p> -<table class="docutils field-list" frame="void" rules="none"> -<col class="field-name" /> -<col class="field-body" /> -<tbody valign="top"> -<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple"> -<li><strong>decode</strong> (<em>bool</em>) – If True, will decode the label names before lsiting them</li> -<li><strong>example_indices</strong> (<em>numpy.ndarray</em>) – The array containig the indices of the needed examples</li> -</ul> -</td> -</tr> -</tbody> -</table> -</dd></dl> - -<dl class="method"> -<dt id="multiview_platform.mono_multi_view_classifiers.utils.dataset.Dataset.get_labels"> -<code class="descname">get_labels</code><span class="sig-paren">(</span><em>example_indices=None</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.utils.dataset.Dataset.get_labels" title="Permalink to this definition">¶</a></dt> -<dd></dd></dl> - -<dl class="method"> -<dt id="multiview_platform.mono_multi_view_classifiers.utils.dataset.Dataset.get_name"> -<code class="descname">get_name</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.utils.dataset.Dataset.get_name" title="Permalink to this definition">¶</a></dt> -<dd><p>Ony works if there are not multiple dots in the files name</p> -</dd></dl> - -<dl class="method"> -<dt id="multiview_platform.mono_multi_view_classifiers.utils.dataset.Dataset.get_nb_class"> -<code class="descname">get_nb_class</code><span class="sig-paren">(</span><em>example_indices=None</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.utils.dataset.Dataset.get_nb_class" title="Permalink to this definition">¶</a></dt> -<dd><p>Gets the number of class of the dataset</p> -</dd></dl> - -<dl class="method"> -<dt id="multiview_platform.mono_multi_view_classifiers.utils.dataset.Dataset.get_nb_examples"> -<code class="descname">get_nb_examples</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.utils.dataset.Dataset.get_nb_examples" title="Permalink to this definition">¶</a></dt> -<dd><p>Used to get the number of examples available</p> -</dd></dl> - -<dl class="method"> -<dt id="multiview_platform.mono_multi_view_classifiers.utils.dataset.Dataset.get_shape"> -<code class="descname">get_shape</code><span class="sig-paren">(</span><em>view_index=0</em>, <em>example_indices=None</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.utils.dataset.Dataset.get_shape" title="Permalink to this definition">¶</a></dt> -<dd><p>Gets the shape of the needed view</p> -</dd></dl> - -<dl class="method"> -<dt id="multiview_platform.mono_multi_view_classifiers.utils.dataset.Dataset.get_v"> -<code class="descname">get_v</code><span class="sig-paren">(</span><em>view_index</em>, <em>example_indices=None</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.utils.dataset.Dataset.get_v" title="Permalink to this definition">¶</a></dt> -<dd><p>Selects the view to extract -:param view_index: The index of the view to extract -:type view_index: int -:param example_indices: The array containing the indices of the examples to extract. -:type example_indices: numpy.ndarray</p> -<table class="docutils field-list" frame="void" rules="none"> -<col class="field-name" /> -<col class="field-body" /> -<tbody valign="top"> -<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body"></td> -</tr> -<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body">A numpy.ndarray containing the view data for the needed examples</td> -</tr> -</tbody> -</table> -</dd></dl> - -<dl class="method"> -<dt id="multiview_platform.mono_multi_view_classifiers.utils.dataset.Dataset.get_view_dict"> -<code class="descname">get_view_dict</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.utils.dataset.Dataset.get_view_dict" title="Permalink to this definition">¶</a></dt> -<dd><p>Returns the dictionary with view indices as keys and the corresponding -names as values</p> -</dd></dl> - -<dl class="method"> -<dt id="multiview_platform.mono_multi_view_classifiers.utils.dataset.Dataset.get_view_name"> -<code class="descname">get_view_name</code><span class="sig-paren">(</span><em>view_idx</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.utils.dataset.Dataset.get_view_name" title="Permalink to this definition">¶</a></dt> -<dd><p>Method to get a view’s name for it’s index.</p> -<table class="docutils field-list" frame="void" rules="none"> -<col class="field-name" /> -<col class="field-body" /> -<tbody valign="top"> -<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>view_idx</strong> (<em>int</em>) – The index of the view in the dataset</td> -</tr> -<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"></td> -</tr> -<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body">The view’s name.</td> -</tr> -</tbody> -</table> -</dd></dl> - -<dl class="method"> -<dt id="multiview_platform.mono_multi_view_classifiers.utils.dataset.Dataset.init_attrs"> -<code class="descname">init_attrs</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.utils.dataset.Dataset.init_attrs" title="Permalink to this definition">¶</a></dt> -<dd><p>Used to init the two attributes that are modified when self.dataset -changes</p> -</dd></dl> - -<dl class="method"> -<dt id="multiview_platform.mono_multi_view_classifiers.utils.dataset.Dataset.init_example_indces"> -<code class="descname">init_example_indces</code><span class="sig-paren">(</span><em>example_indices=None</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.utils.dataset.Dataset.init_example_indces" title="Permalink to this definition">¶</a></dt> -<dd><p>If no example indices are provided, selects all the examples.</p> -</dd></dl> - -<dl class="method"> -<dt id="multiview_platform.mono_multi_view_classifiers.utils.dataset.Dataset.init_view_names"> -<code class="descname">init_view_names</code><span class="sig-paren">(</span><em>view_names=None</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.utils.dataset.Dataset.init_view_names" title="Permalink to this definition">¶</a></dt> -<dd></dd></dl> - -<dl class="method"> -<dt id="multiview_platform.mono_multi_view_classifiers.utils.dataset.Dataset.rm"> -<code class="descname">rm</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.utils.dataset.Dataset.rm" title="Permalink to this definition">¶</a></dt> -<dd><p>Method used to delete the dataset file on the disk if the dataset is -temporary.</p> -</dd></dl> - -<dl class="method"> -<dt id="multiview_platform.mono_multi_view_classifiers.utils.dataset.Dataset.select_labels"> -<code class="descname">select_labels</code><span class="sig-paren">(</span><em>selected_label_names</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.utils.dataset.Dataset.select_labels" title="Permalink to this definition">¶</a></dt> -<dd></dd></dl> - -<dl class="method"> -<dt id="multiview_platform.mono_multi_view_classifiers.utils.dataset.Dataset.select_views_and_labels"> -<code class="descname">select_views_and_labels</code><span class="sig-paren">(</span><em>nb_labels=None</em>, <em>selected_label_names=None</em>, <em>random_state=None</em>, <em>view_names=None</em>, <em>path_for_new='../data/'</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.utils.dataset.Dataset.select_views_and_labels" title="Permalink to this definition">¶</a></dt> -<dd></dd></dl> - -<dl class="method"> -<dt id="multiview_platform.mono_multi_view_classifiers.utils.dataset.Dataset.to_numpy_array"> -<code class="descname">to_numpy_array</code><span class="sig-paren">(</span><em>example_indices=None</em>, <em>view_indices=None</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.utils.dataset.Dataset.to_numpy_array" title="Permalink to this definition">¶</a></dt> -<dd><p>To concanteant the needed views in one big numpy array while saving the -limits of each view in a list, to be bale to retrieve them later.</p> -<table class="docutils field-list" frame="void" rules="none"> -<col class="field-name" /> -<col class="field-body" /> -<tbody valign="top"> -<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple"> -<li><strong>example_indices</strong> (<em>array like</em><em>,</em>) – </li> -<li><strong>indices of the examples to extract from the dataset</strong> (<em>The</em>) – </li> -<li><strong>view_indices</strong> (<em>array like</em><em>,</em>) – </li> -<li><strong>indices of the view to concatenate in the numpy array</strong> (<em>The</em>) – </li> -</ul> -</td> -</tr> -<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last"><ul class="simple"> -<li><strong>concat_views</strong> (<em>numpy array,</em>)</li> -<li><em>The numpy array containing all the needed views.</em></li> -<li><strong>view_limits</strong> (<em>list of int</em>)</li> -<li><em>The limits of each slice used to extract the views.</em></li> -</ul> -</p> -</td> -</tr> -</tbody> -</table> -</dd></dl> - -<dl class="method"> -<dt id="multiview_platform.mono_multi_view_classifiers.utils.dataset.Dataset.update_hdf5_dataset"> -<code class="descname">update_hdf5_dataset</code><span class="sig-paren">(</span><em>path</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.utils.dataset.Dataset.update_hdf5_dataset" title="Permalink to this definition">¶</a></dt> -<dd></dd></dl> - -</dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.utils.dataset.confirm"> -<code class="descname">confirm</code><span class="sig-paren">(</span><em>resp=True</em>, <em>timeout=15</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.utils.dataset.confirm" title="Permalink to this definition">¶</a></dt> -<dd><p>Used to process answer</p> -</dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.utils.dataset.copy_hdf5"> -<code class="descname">copy_hdf5</code><span class="sig-paren">(</span><em>pathF</em>, <em>name</em>, <em>nbCores</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.utils.dataset.copy_hdf5" title="Permalink to this definition">¶</a></dt> -<dd><p>Used to copy a HDF5 database in case of multicore computing</p> -</dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.utils.dataset.datasets_already_exist"> -<code class="descname">datasets_already_exist</code><span class="sig-paren">(</span><em>pathF</em>, <em>name</em>, <em>nbCores</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.utils.dataset.datasets_already_exist" title="Permalink to this definition">¶</a></dt> -<dd><p>Used to check if it’s necessary to copy datasets</p> -</dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.utils.dataset.delete_HDF5"> -<code class="descname">delete_HDF5</code><span class="sig-paren">(</span><em>benchmarkArgumentsDictionaries</em>, <em>nbCores</em>, <em>dataset</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.utils.dataset.delete_HDF5" title="Permalink to this definition">¶</a></dt> -<dd><p>Used to delete temporary copies at the end of the benchmark</p> -</dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.utils.dataset.extract_subset"> -<code class="descname">extract_subset</code><span class="sig-paren">(</span><em>matrix</em>, <em>used_indices</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.utils.dataset.extract_subset" title="Permalink to this definition">¶</a></dt> -<dd><p>Used to extract a subset of a matrix even if it’s sparse</p> -</dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.utils.dataset.init_multiple_datasets"> -<code class="descname">init_multiple_datasets</code><span class="sig-paren">(</span><em>path_f</em>, <em>name</em>, <em>nb_cores</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.utils.dataset.init_multiple_datasets" title="Permalink to this definition">¶</a></dt> -<dd><p>Used to create copies of the dataset if multicore computation is used.</p> -<p>This is a temporary solution to fix the sharing memory issue with HDF5 datasets.</p> -<table class="docutils field-list" frame="void" rules="none"> -<col class="field-name" /> -<col class="field-body" /> -<tbody valign="top"> -<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple"> -<li><strong>path_f</strong> (<em>string</em>) – Path to the original dataset directory</li> -<li><strong>name</strong> (<em>string</em>) – Name of the dataset</li> -<li><strong>nb_cores</strong> (<em>int</em>) – The number of threads that the benchmark can use</li> -</ul> -</td> -</tr> -<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first"><strong>datasetFiles</strong> – Dictionary resuming which mono- and multiview algorithms which will be used in the benchmark.</p> -</td> -</tr> -<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first last">None</p> -</td> -</tr> -</tbody> -</table> -</dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.utils.dataset.input_"> -<code class="descname">input_</code><span class="sig-paren">(</span><em>timeout=15</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.utils.dataset.input_" title="Permalink to this definition">¶</a></dt> -<dd><p>used as a UI to stop if too much HDD space will be used</p> -</dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.utils.dataset.is_just_number"> -<code class="descname">is_just_number</code><span class="sig-paren">(</span><em>string</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.utils.dataset.is_just_number" title="Permalink to this definition">¶</a></dt> -<dd></dd></dl> - +<div class="section" id="multiview-platform-mono-multi-view-classifiers-utils-dataset-module"> +<h2>multiview_platform.mono_multi_view_classifiers.utils.dataset module<a class="headerlink" href="#multiview-platform-mono-multi-view-classifiers-utils-dataset-module" title="Permalink to this headline">¶</a></h2> </div> -<div class="section" id="module-multiview_platform.mono_multi_view_classifiers.utils.execution"> -<span id="multiview-platform-mono-multi-view-classifiers-utils-execution-module"></span><h2>multiview_platform.mono_multi_view_classifiers.utils.execution module<a class="headerlink" href="#module-multiview_platform.mono_multi_view_classifiers.utils.execution" title="Permalink to this headline">¶</a></h2> -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.utils.execution.find_dataset_names"> -<code class="descname">find_dataset_names</code><span class="sig-paren">(</span><em>path</em>, <em>type</em>, <em>names</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.utils.execution.find_dataset_names" title="Permalink to this definition">¶</a></dt> -<dd><p>This function goal is to browse the dataset directory and extrats all -the needed dataset names.</p> -</dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.utils.execution.gen_argument_dictionaries"> -<code class="descname">gen_argument_dictionaries</code><span class="sig-paren">(</span><em>labels_dictionary</em>, <em>directories</em>, <em>multiclass_labels</em>, <em>labels_combinations</em>, <em>indices_multiclass</em>, <em>hyper_param_search</em>, <em>args</em>, <em>k_folds</em>, <em>stats_iter_random_states</em>, <em>metrics</em>, <em>argument_dictionaries</em>, <em>benchmark</em>, <em>nb_views</em>, <em>views</em>, <em>views_indices</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.utils.execution.gen_argument_dictionaries" title="Permalink to this definition">¶</a></dt> -<dd><p>Used to generate a dictionary for each benchmark.</p> -<p>One for each label combination (if multiclass), for each statistical iteration, generates an dictionary with -all necessary information to perform the benchmark</p> -<table class="docutils field-list" frame="void" rules="none"> -<col class="field-name" /> -<col class="field-body" /> -<tbody valign="top"> -<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple"> -<li><strong>labels_dictionary</strong> (<em>dictionary</em>) – Dictionary mapping labels indices to labels names.</li> -<li><strong>directories</strong> (<em>list of strings</em>) – List of the paths to the result directories for each statistical iteration.</li> -<li><strong>multiclass_labels</strong> (<em>list of lists of numpy.ndarray</em>) – For each label couple, for each statistical iteration a triplet of numpy.ndarrays is stored with the -indices for the biclass training set, the ones for the biclass testing set and the ones for the -multiclass testing set.</li> -<li><strong>labels_combinations</strong> (<em>list of lists of numpy.ndarray</em>) – Each original couple of different labels.</li> -<li><strong>indices_multiclass</strong> (<em>list of lists of numpy.ndarray</em>) – For each combination, contains a biclass labels numpy.ndarray with the 0/1 labels of combination.</li> -<li><strong>hyper_param_search</strong> (<em>string</em>) – Type of hyper parameter optimization method</li> -<li><strong>args</strong> (<em>parsed args objects</em>) – All the args passed by the user.</li> -<li><strong>k_folds</strong> (<em>list of list of sklearn.model_selection.StratifiedKFold</em>) – For each statistical iteration a Kfold stratified (keeping the ratio between classes in each fold).</li> -<li><strong>stats_iter_random_states</strong> (<em>list of numpy.random.RandomState objects</em>) – Multiple random states, one for each sattistical iteration of the same benchmark.</li> -<li><strong>metrics</strong> (<em>list of lists</em>) – metrics that will be used to evaluate the algorithms performance.</li> -<li><strong>argument_dictionaries</strong> (<em>dictionary</em>) – Dictionary resuming all the specific arguments for the benchmark, oe dictionary for each classifier.</li> -<li><strong>benchmark</strong> (<em>dictionary</em>) – Dictionary resuming which mono- and multiview algorithms which will be used in the benchmark.</li> -<li><strong>nb_views</strong> (<em>int</em>) – THe number of views used by the benchmark.</li> -<li><strong>views</strong> (<em>list of strings</em>) – List of the names of the used views.</li> -<li><strong>views_indices</strong> (<em>list of ints</em>) – List of indices (according to the dataset) of the used views.</li> -</ul> -</td> -</tr> -<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first"><strong>benchmarkArgumentDictionaries</strong> – All the needed arguments for the benchmarks.</p> -</td> -</tr> -<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first last">list of dicts</p> -</td> -</tr> -</tbody> -</table> -</dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.utils.execution.gen_direcorties_names"> -<code class="descname">gen_direcorties_names</code><span class="sig-paren">(</span><em>directory</em>, <em>stats_iter</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.utils.execution.gen_direcorties_names" title="Permalink to this definition">¶</a></dt> -<dd><p>Used to generate the different directories of each iteration if needed.</p> -<table class="docutils field-list" frame="void" rules="none"> -<col class="field-name" /> -<col class="field-body" /> -<tbody valign="top"> -<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple"> -<li><strong>directory</strong> (<em>string</em>) – Path to the results directory.</li> -<li><strong>statsIter</strong> (<em>int</em>) – The number of statistical iterations.</li> -</ul> -</td> -</tr> -<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first"><strong>directories</strong> – Paths to each statistical iterations result directory.</p> -</td> -</tr> -<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first last">list of strings</p> -</td> -</tr> -</tbody> -</table> -</dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.utils.execution.gen_k_folds"> -<code class="descname">gen_k_folds</code><span class="sig-paren">(</span><em>stats_iter</em>, <em>nb_folds</em>, <em>stats_iter_random_states</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.utils.execution.gen_k_folds" title="Permalink to this definition">¶</a></dt> -<dd><p>Used to generate folds indices for cross validation for each statistical iteration.</p> -<table class="docutils field-list" frame="void" rules="none"> -<col class="field-name" /> -<col class="field-body" /> -<tbody valign="top"> -<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple"> -<li><strong>stats_iter</strong> (<em>integer</em>) – Number of statistical iterations of the benchmark.</li> -<li><strong>nb_folds</strong> (<em>integer</em>) – The number of cross-validation folds for the benchmark.</li> -<li><strong>stats_iter_random_states</strong> (<em>list of numpy.random.RandomState</em>) – The random states for each statistical iteration.</li> -</ul> -</td> -</tr> -<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first"><strong>folds_list</strong> – For each statistical iteration a Kfold stratified (keeping the ratio between classes in each fold).</p> -</td> -</tr> -<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first last">list of list of sklearn.model_selection.StratifiedKFold</p> -</td> -</tr> -</tbody> -</table> -</dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.utils.execution.gen_splits"> -<code class="descname">gen_splits</code><span class="sig-paren">(</span><em>labels</em>, <em>split_ratio</em>, <em>stats_iter_random_states</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.utils.execution.gen_splits" title="Permalink to this definition">¶</a></dt> -<dd><p>Used to _gen the train/test splits using one or multiple random states.</p> -<table class="docutils field-list" frame="void" rules="none"> -<col class="field-name" /> -<col class="field-body" /> -<tbody valign="top"> -<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple"> -<li><strong>labels</strong> (<em>numpy.ndarray</em>) – Name of the database.</li> -<li><strong>split_ratio</strong> (<em>float</em>) – The ratio of examples between train and test set.</li> -<li><strong>stats_iter_random_states</strong> (<em>list of numpy.random.RandomState</em>) – The random states for each statistical iteration.</li> -</ul> -</td> -</tr> -<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first"><strong>splits</strong> – For each statistical iteration a couple of numpy.ndarrays is stored with the indices for the training set and -the ones of the testing set.</p> -</td> -</tr> -<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first last">list of lists of numpy.ndarray</p> -</td> -</tr> -</tbody> -</table> -</dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.utils.execution.get_database_function"> -<code class="descname">get_database_function</code><span class="sig-paren">(</span><em>name</em>, <em>type_var</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.utils.execution.get_database_function" title="Permalink to this definition">¶</a></dt> -<dd><p>Used to get the right database extraction function according to the type of database and it’s name</p> -<table class="docutils field-list" frame="void" rules="none"> -<col class="field-name" /> -<col class="field-body" /> -<tbody valign="top"> -<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple"> -<li><strong>name</strong> (<em>string</em>) – Name of the database.</li> -<li><strong>type_var</strong> (<em>string</em>) – type of dataset hdf5 or csv</li> -</ul> -</td> -</tr> -<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first"><strong>getDatabase</strong> – The function that will be used to extract the database</p> -</td> -</tr> -<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first last">function</p> -</td> -</tr> -</tbody> -</table> -</dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.utils.execution.init_log_file"> -<code class="descname">init_log_file</code><span class="sig-paren">(</span><em>name</em>, <em>views</em>, <em>cl_type</em>, <em>log</em>, <em>debug</em>, <em>label</em>, <em>result_directory</em>, <em>add_noise</em>, <em>noise_std</em>, <em>args</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.utils.execution.init_log_file" title="Permalink to this definition">¶</a></dt> -<dd><p>Used to init the directory where the preds will be stored and the log file.</p> -<p>First this function will check if the result directory already exists (only one per minute is allowed).</p> -<p>If the the result directory name is available, it is created, and the logfile is initiated.</p> -<table class="docutils field-list" frame="void" rules="none"> -<col class="field-name" /> -<col class="field-body" /> -<tbody valign="top"> -<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple"> -<li><strong>name</strong> (<em>string</em>) – Name of the database.</li> -<li><strong>views</strong> (<em>list of strings</em>) – List of the view names that will be used in the benchmark.</li> -<li><strong>cl_type</strong> (<em>list of strings</em>) – Type of benchmark that will be made .</li> -<li><strong>log</strong> (<em>bool</em>) – Whether to show the log file in console or hide it.</li> -<li><strong>debug</strong> (<em>bool</em>) – for debug option</li> -<li><strong>label</strong> (<em>str for label</em>) – </li> -<li><strong>result_directory</strong> (<em>str name of the result directory</em>) – </li> -<li><strong>add_noise</strong> (<em>bool for add noise</em>) – </li> -<li><strong>noise_std</strong> (<em>level of std noise</em>) – </li> -</ul> -</td> -</tr> -<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first"><strong>results_directory</strong> – Reference to the main results directory for the benchmark.</p> -</td> -</tr> -<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first last">string</p> -</td> -</tr> -</tbody> -</table> -</dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.utils.execution.init_random_state"> -<code class="descname">init_random_state</code><span class="sig-paren">(</span><em>random_state_arg</em>, <em>directory</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.utils.execution.init_random_state" title="Permalink to this definition">¶</a></dt> -<dd><p>Used to init a random state. -If no random state is specified, it will generate a ‘random’ seed. -If the <cite>randomSateArg</cite> is a string containing only numbers, it will be converted in</p> -<blockquote> -<div>an int to generate a seed.</div></blockquote> -<p>If the <cite>randomSateArg</cite> is a string with letters, it must be a path to a pickled random -state file that will be loaded. -The function will also pickle the new random state in a file tobe able to retrieve it later. -Tested</p> -<table class="docutils field-list" frame="void" rules="none"> -<col class="field-name" /> -<col class="field-body" /> -<tbody valign="top"> -<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple"> -<li><strong>random_state_arg</strong> (<em>None</em><em> or </em><em>string</em>) – See function description.</li> -<li><strong>directory</strong> (<em>string</em>) – Path to the results directory.</li> -</ul> -</td> -</tr> -<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first"><strong>random_state</strong> – This random state will be used all along the benchmark .</p> -</td> -</tr> -<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first last">numpy.random.RandomState object</p> -</td> -</tr> -</tbody> -</table> -</dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.utils.execution.init_stats_iter_random_states"> -<code class="descname">init_stats_iter_random_states</code><span class="sig-paren">(</span><em>stats_iter</em>, <em>random_state</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.utils.execution.init_stats_iter_random_states" title="Permalink to this definition">¶</a></dt> -<dd><p>Used to initialize multiple random states if needed because of multiple statistical iteration of the same benchmark</p> -<table class="docutils field-list" frame="void" rules="none"> -<col class="field-name" /> -<col class="field-body" /> -<tbody valign="top"> -<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple"> -<li><strong>stats_iter</strong> (<em>int</em>) – Number of statistical iterations of the same benchmark done (with a different random state).</li> -<li><strong>random_state</strong> (<em>numpy.random.RandomState object</em>) – The random state of the whole experimentation, that will be used to generate the ones for each -statistical iteration.</li> -</ul> -</td> -</tr> -<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first"><strong>stats_iter_random_states</strong> – Multiple random states, one for each sattistical iteration of the same benchmark.</p> -</td> -</tr> -<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first last">list of numpy.random.RandomState objects</p> -</td> -</tr> -</tbody> -</table> -</dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.utils.execution.init_views"> -<code class="descname">init_views</code><span class="sig-paren">(</span><em>dataset_var</em>, <em>arg_views</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.utils.execution.init_views" title="Permalink to this definition">¶</a></dt> -<dd><p>Used to return the views names that will be used by the -benchmark, their indices and all the views names.</p> -<table class="docutils field-list" frame="void" rules="none"> -<col class="field-name" /> -<col class="field-body" /> -<tbody valign="top"> -<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple"> -<li><strong>dataset_var</strong> (<em>HDF5 dataset file</em>) – The full dataset that wil be used by the benchmark.</li> -<li><strong>arg_views</strong> (<em>list of strings</em>) – The views that will be used by the benchmark (arg).</li> -</ul> -</td> -</tr> -<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last"><ul class="simple"> -<li><strong>views</strong> (<em>list of strings</em>) – Names of the views that will be used by the benchmark.</li> -<li><strong>view_indices</strong> (<em>list of ints</em>) – The list of the indices of the view that will be used in the benchmark (according to the dataset).</li> -<li><strong>all_views</strong> (<em>list of strings</em>) – Names of all the available views in the dataset.</li> -</ul> -</p> -</td> -</tr> -</tbody> -</table> -</dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.utils.execution.parse_the_args"> -<code class="descname">parse_the_args</code><span class="sig-paren">(</span><em>arguments</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.utils.execution.parse_the_args" title="Permalink to this definition">¶</a></dt> -<dd><p>Used to parse the args entered by the user</p> -</dd></dl> - +<div class="section" id="multiview-platform-mono-multi-view-classifiers-utils-execution-module"> +<h2>multiview_platform.mono_multi_view_classifiers.utils.execution module<a class="headerlink" href="#multiview-platform-mono-multi-view-classifiers-utils-execution-module" title="Permalink to this headline">¶</a></h2> </div> -<div class="section" id="module-multiview_platform.mono_multi_view_classifiers.utils.get_multiview_db"> -<span id="multiview-platform-mono-multi-view-classifiers-utils-get-multiview-db-module"></span><h2>multiview_platform.mono_multi_view_classifiers.utils.get_multiview_db module<a class="headerlink" href="#module-multiview_platform.mono_multi_view_classifiers.utils.get_multiview_db" title="Permalink to this headline">¶</a></h2> -<dl class="exception"> -<dt id="multiview_platform.mono_multi_view_classifiers.utils.get_multiview_db.DatasetError"> -<em class="property">exception </em><code class="descname">DatasetError</code><span class="sig-paren">(</span><em>*args</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.utils.get_multiview_db.DatasetError" title="Permalink to this definition">¶</a></dt> -<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">Exception</span></code></p> -</dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.utils.get_multiview_db.get_classic_db_csv"> -<code class="descname">get_classic_db_csv</code><span class="sig-paren">(</span><em>views</em>, <em>pathF</em>, <em>nameDB</em>, <em>NB_CLASS</em>, <em>askedLabelsNames</em>, <em>random_state</em>, <em>full=False</em>, <em>add_noise=False</em>, <em>noise_std=0.15</em>, <em>delimiter='</em>, <em>'</em>, <em>path_for_new='../data/'</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.utils.get_multiview_db.get_classic_db_csv" title="Permalink to this definition">¶</a></dt> -<dd></dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.utils.get_multiview_db.get_classic_db_hdf5"> -<code class="descname">get_classic_db_hdf5</code><span class="sig-paren">(</span><em>views</em>, <em>path_f</em>, <em>name_DB</em>, <em>nb_class</em>, <em>asked_labels_names</em>, <em>random_state</em>, <em>full=False</em>, <em>add_noise=False</em>, <em>noise_std=0.15</em>, <em>path_for_new='../data/'</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.utils.get_multiview_db.get_classic_db_hdf5" title="Permalink to this definition">¶</a></dt> -<dd><p>Used to load a hdf5 database</p> -</dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.utils.get_multiview_db.get_plausible_db_hdf5"> -<code class="descname">get_plausible_db_hdf5</code><span class="sig-paren">(</span><em>features, path, file_name, nb_class=3, label_names=[b'No', b'Yes', b'Maybe'], random_state=None, full=True, add_noise=False, noise_std=0.15, nb_view=3, nb_examples=100, nb_features=10</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.utils.get_multiview_db.get_plausible_db_hdf5" title="Permalink to this definition">¶</a></dt> -<dd><p>Used to generate a plausible dataset to test the algorithms</p> -</dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.utils.get_multiview_db.make_me_noisy"> -<code class="descname">make_me_noisy</code><span class="sig-paren">(</span><em>view_data</em>, <em>random_state</em>, <em>percentage=5</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.utils.get_multiview_db.make_me_noisy" title="Permalink to this definition">¶</a></dt> -<dd><p>used to introduce some noise in the generated data</p> -</dd></dl> - +<div class="section" id="multiview-platform-mono-multi-view-classifiers-utils-get-multiview-db-module"> +<h2>multiview_platform.mono_multi_view_classifiers.utils.get_multiview_db module<a class="headerlink" href="#multiview-platform-mono-multi-view-classifiers-utils-get-multiview-db-module" title="Permalink to this headline">¶</a></h2> </div> -<div class="section" id="module-multiview_platform.mono_multi_view_classifiers.utils.hyper_parameter_search"> -<span id="multiview-platform-mono-multi-view-classifiers-utils-hyper-parameter-search-module"></span><h2>multiview_platform.mono_multi_view_classifiers.utils.hyper_parameter_search module<a class="headerlink" href="#module-multiview_platform.mono_multi_view_classifiers.utils.hyper_parameter_search" title="Permalink to this headline">¶</a></h2> -<dl class="class"> -<dt id="multiview_platform.mono_multi_view_classifiers.utils.hyper_parameter_search.CustomRandint"> -<em class="property">class </em><code class="descname">CustomRandint</code><span class="sig-paren">(</span><em>low=0</em>, <em>high=0</em>, <em>multiplier=''</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.utils.hyper_parameter_search.CustomRandint" title="Permalink to this definition">¶</a></dt> -<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p> -<p>Used as a distribution returning a integer between low and high-1. -It can be used with a multiplier agrument to be able to perform more complex generation -for example 10 e -(randint)</p> -<dl class="method"> -<dt id="multiview_platform.mono_multi_view_classifiers.utils.hyper_parameter_search.CustomRandint.get_nb_possibilities"> -<code class="descname">get_nb_possibilities</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.utils.hyper_parameter_search.CustomRandint.get_nb_possibilities" title="Permalink to this definition">¶</a></dt> -<dd></dd></dl> - -<dl class="method"> -<dt id="multiview_platform.mono_multi_view_classifiers.utils.hyper_parameter_search.CustomRandint.rvs"> -<code class="descname">rvs</code><span class="sig-paren">(</span><em>random_state=None</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.utils.hyper_parameter_search.CustomRandint.rvs" title="Permalink to this definition">¶</a></dt> -<dd></dd></dl> - -</dd></dl> - -<dl class="class"> -<dt id="multiview_platform.mono_multi_view_classifiers.utils.hyper_parameter_search.CustomUniform"> -<em class="property">class </em><code class="descname">CustomUniform</code><span class="sig-paren">(</span><em>loc=0</em>, <em>state=1</em>, <em>multiplier=''</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.utils.hyper_parameter_search.CustomUniform" title="Permalink to this definition">¶</a></dt> -<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p> -<p>Used as a distribution returning a float between loc and loc + scale.. -It can be used with a multiplier agrument to be able to perform more complex generation -for example 10 e -(float)</p> -<dl class="method"> -<dt id="multiview_platform.mono_multi_view_classifiers.utils.hyper_parameter_search.CustomUniform.rvs"> -<code class="descname">rvs</code><span class="sig-paren">(</span><em>random_state=None</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.utils.hyper_parameter_search.CustomUniform.rvs" title="Permalink to this definition">¶</a></dt> -<dd></dd></dl> - -</dd></dl> - -<dl class="class"> -<dt id="multiview_platform.mono_multi_view_classifiers.utils.hyper_parameter_search.MultiviewCompatibleRandomizedSearchCV"> -<em class="property">class </em><code class="descname">MultiviewCompatibleRandomizedSearchCV</code><span class="sig-paren">(</span><em>estimator</em>, <em>param_distributions</em>, <em>n_iter=10</em>, <em>refit=True</em>, <em>n_jobs=1</em>, <em>scoring=None</em>, <em>cv=None</em>, <em>random_state=None</em>, <em>learning_indices=None</em>, <em>view_indices=None</em>, <em>framework='monoview'</em>, <em>equivalent_draws=True</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.utils.hyper_parameter_search.MultiviewCompatibleRandomizedSearchCV" title="Permalink to this definition">¶</a></dt> -<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">sklearn.model_selection._search.RandomizedSearchCV</span></code></p> -<dl class="method"> -<dt id="multiview_platform.mono_multi_view_classifiers.utils.hyper_parameter_search.MultiviewCompatibleRandomizedSearchCV.fit"> -<code class="descname">fit</code><span class="sig-paren">(</span><em>X</em>, <em>y=None</em>, <em>groups=None</em>, <em>**fit_params</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.utils.hyper_parameter_search.MultiviewCompatibleRandomizedSearchCV.fit" title="Permalink to this definition">¶</a></dt> -<dd><p>Run fit with all sets of parameters.</p> -<table class="docutils field-list" frame="void" rules="none"> -<col class="field-name" /> -<col class="field-body" /> -<tbody valign="top"> -<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple"> -<li><strong>X</strong> (<em>array-like</em><em>, </em><em>shape =</em><em> [</em><em>n_samples</em><em>, </em><em>n_features</em><em>]</em>) – Training vector, where n_samples is the number of samples and -n_features is the number of features.</li> -<li><strong>y</strong> (<em>array-like</em><em>, </em><em>shape =</em><em> [</em><em>n_samples</em><em>] or </em><em>[</em><em>n_samples</em><em>, </em><em>n_output</em><em>]</em><em>, </em><em>optional</em>) – Target relative to X for classification or regression; -None for unsupervised learning.</li> -<li><strong>groups</strong> (<em>array-like</em><em>, </em><em>with shape</em><em> (</em><em>n_samples</em><em>,</em><em>)</em><em>, </em><em>optional</em>) – Group labels for the samples used while splitting the dataset into -train/test set.</li> -<li><strong>**fit_params</strong> (<em>dict of string -> object</em>) – Parameters passed to the <code class="docutils literal notranslate"><span class="pre">fit</span></code> method of the estimator</li> -</ul> -</td> -</tr> -</tbody> -</table> -</dd></dl> - -<dl class="method"> -<dt id="multiview_platform.mono_multi_view_classifiers.utils.hyper_parameter_search.MultiviewCompatibleRandomizedSearchCV.fit_multiview"> -<code class="descname">fit_multiview</code><span class="sig-paren">(</span><em>X</em>, <em>y=None</em>, <em>groups=None</em>, <em>**fit_params</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.utils.hyper_parameter_search.MultiviewCompatibleRandomizedSearchCV.fit_multiview" title="Permalink to this definition">¶</a></dt> -<dd></dd></dl> - -<dl class="method"> -<dt id="multiview_platform.mono_multi_view_classifiers.utils.hyper_parameter_search.MultiviewCompatibleRandomizedSearchCV.get_test_folds_preds"> -<code class="descname">get_test_folds_preds</code><span class="sig-paren">(</span><em>X</em>, <em>y</em>, <em>estimator</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.utils.hyper_parameter_search.MultiviewCompatibleRandomizedSearchCV.get_test_folds_preds" title="Permalink to this definition">¶</a></dt> -<dd></dd></dl> - -</dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.utils.hyper_parameter_search.compute_possible_combinations"> -<code class="descname">compute_possible_combinations</code><span class="sig-paren">(</span><em>params_dict</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.utils.hyper_parameter_search.compute_possible_combinations" title="Permalink to this definition">¶</a></dt> -<dd></dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.utils.hyper_parameter_search.gen_heat_maps"> -<code class="descname">gen_heat_maps</code><span class="sig-paren">(</span><em>params</em>, <em>scores_array</em>, <em>output_file_name</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.utils.hyper_parameter_search.gen_heat_maps" title="Permalink to this definition">¶</a></dt> -<dd><p>Used to generate a heat map for each doublet of hyperparms optimized on the previous function</p> -</dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.utils.hyper_parameter_search.get_test_folds_preds"> -<code class="descname">get_test_folds_preds</code><span class="sig-paren">(</span><em>X</em>, <em>y</em>, <em>cv</em>, <em>estimator</em>, <em>framework</em>, <em>available_indices=None</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.utils.hyper_parameter_search.get_test_folds_preds" title="Permalink to this definition">¶</a></dt> -<dd></dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.utils.hyper_parameter_search.grid_search"> -<code class="descname">grid_search</code><span class="sig-paren">(</span><em>dataset</em>, <em>classifier_name</em>, <em>views_indices=None</em>, <em>k_folds=None</em>, <em>n_iter=1</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.utils.hyper_parameter_search.grid_search" title="Permalink to this definition">¶</a></dt> -<dd><p>Used to perfom gridsearch on the classifiers</p> -</dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.utils.hyper_parameter_search.randomized_search"> -<code class="descname">randomized_search</code><span class="sig-paren">(</span><em>X, y, framework, random_state, output_file_name, classifier_module, classifier_name, folds=4, nb_cores=1, metric=['accuracy_score', None], n_iter=30, classifier_kwargs=None, learning_indices=None, view_indices=None, equivalent_draws=True</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.utils.hyper_parameter_search.randomized_search" title="Permalink to this definition">¶</a></dt> -<dd></dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.utils.hyper_parameter_search.search_best_settings"> -<code class="descname">search_best_settings</code><span class="sig-paren">(</span><em>dataset_var</em>, <em>labels</em>, <em>classifier_module</em>, <em>classifier_name</em>, <em>metrics</em>, <em>learning_indices</em>, <em>i_k_folds</em>, <em>random_state</em>, <em>directory</em>, <em>views_indices=None</em>, <em>nb_cores=1</em>, <em>searching_tool='randomized_search-equiv'</em>, <em>n_iter=1</em>, <em>classifier_config=None</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.utils.hyper_parameter_search.search_best_settings" title="Permalink to this definition">¶</a></dt> -<dd><p>Used to select the right hyper-parameter optimization function -to optimize hyper parameters</p> -</dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.utils.hyper_parameter_search.spear_mint"> -<code class="descname">spear_mint</code><span class="sig-paren">(</span><em>dataset</em>, <em>classifier_name</em>, <em>views_indices=None</em>, <em>k_folds=None</em>, <em>n_iter=1</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.utils.hyper_parameter_search.spear_mint" title="Permalink to this definition">¶</a></dt> -<dd><p>Used to perform spearmint on the classifiers to optimize hyper parameters, -longer than randomsearch (can’t be parallelized)</p> -</dd></dl> - +<div class="section" id="multiview-platform-mono-multi-view-classifiers-utils-hyper-parameter-search-module"> +<h2>multiview_platform.mono_multi_view_classifiers.utils.hyper_parameter_search module<a class="headerlink" href="#multiview-platform-mono-multi-view-classifiers-utils-hyper-parameter-search-module" title="Permalink to this headline">¶</a></h2> </div> -<div class="section" id="module-multiview_platform.mono_multi_view_classifiers.utils.make_file_config"> -<span id="multiview-platform-mono-multi-view-classifiers-utils-make-file-config-module"></span><h2>multiview_platform.mono_multi_view_classifiers.utils.make_file_config module<a class="headerlink" href="#module-multiview_platform.mono_multi_view_classifiers.utils.make_file_config" title="Permalink to this headline">¶</a></h2> -<dl class="class"> -<dt id="multiview_platform.mono_multi_view_classifiers.utils.make_file_config.ConfigurationMaker"> -<em class="property">class </em><code class="descname">ConfigurationMaker</code><span class="sig-paren">(</span><em>classifier_dict=None</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.utils.make_file_config.ConfigurationMaker" title="Permalink to this definition">¶</a></dt> -<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p> -<p>Find the name of the classifier from the dict classier to report</p> -</dd></dl> - +<div class="section" id="multiview-platform-mono-multi-view-classifiers-utils-make-file-config-module"> +<h2>multiview_platform.mono_multi_view_classifiers.utils.make_file_config module<a class="headerlink" href="#multiview-platform-mono-multi-view-classifiers-utils-make-file-config-module" title="Permalink to this headline">¶</a></h2> </div> -<div class="section" id="module-multiview_platform.mono_multi_view_classifiers.utils.multiclass"> -<span id="multiview-platform-mono-multi-view-classifiers-utils-multiclass-module"></span><h2>multiview_platform.mono_multi_view_classifiers.utils.multiclass module<a class="headerlink" href="#module-multiview_platform.mono_multi_view_classifiers.utils.multiclass" title="Permalink to this headline">¶</a></h2> -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.utils.multiclass.gen_multiclass_labels"> -<code class="descname">gen_multiclass_labels</code><span class="sig-paren">(</span><em>labels</em>, <em>multiclass_method</em>, <em>splits</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.utils.multiclass.gen_multiclass_labels" title="Permalink to this definition">¶</a></dt> -<dd><p>Used to gen the train/test splits and to set up the framework of the adaptation of a multiclass dataset -to biclass algorithms.</p> -<p>First, the function checks whether the dataset is really multiclass.</p> -<p>Then, it generates all the possible couples of different labels in order to perform one versus one classification.</p> -<p>For each combination, it selects the examples in the training sets (for each statistical iteration) that have their -label in the combination and does the same for the testing set. It also saves the multiclass testing set in order to -use multiclass metrics on the decisions.</p> -<p>Lastly, it creates a new array of biclass labels (0/1) for the biclass classifications used in oneVersusOne</p> -<table class="docutils field-list" frame="void" rules="none"> -<col class="field-name" /> -<col class="field-body" /> -<tbody valign="top"> -<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple"> -<li><strong>labels</strong> (<em>numpy.ndarray</em>) – Name of the database.</li> -<li><strong>multiclass_method</strong> (<em>string</em>) – The name of the multiclass method used (oneVersusOne, oneVersusAll, …).</li> -<li><strong>splits</strong> (<em>list of lists of numpy.ndarray</em>) – For each statistical iteration a couple of numpy.ndarrays is stored with the indices for the training set and -the ones of the testing set.</li> -</ul> -</td> -</tr> -<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last"><ul class="simple"> -<li><strong>multiclass_labels</strong> (<em>list of lists of numpy.ndarray</em>) – For each label couple, for each statistical iteration a triplet of numpy.ndarrays is stored with the -indices for the biclass training set, the ones for the biclass testing set and the ones for the -multiclass testing set.</li> -<li><strong>labels_indices</strong> (<em>list of lists of numpy.ndarray</em>) – Each original couple of different labels.</li> -<li><strong>indices_multiclass</strong> (<em>list of lists of numpy.ndarray</em>) – For each combination, contains a biclass labels numpy.ndarray with the 0/1 labels of combination.</li> -</ul> -</p> -</td> -</tr> -</tbody> -</table> -</dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.utils.multiclass.gen_multiclass_monoview_decision"> -<code class="descname">gen_multiclass_monoview_decision</code><span class="sig-paren">(</span><em>monoview_result</em>, <em>classification_indices</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.utils.multiclass.gen_multiclass_monoview_decision" title="Permalink to this definition">¶</a></dt> -<dd></dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.utils.multiclass.is_biclass"> -<code class="descname">is_biclass</code><span class="sig-paren">(</span><em>multiclass_preds</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.utils.multiclass.is_biclass" title="Permalink to this definition">¶</a></dt> -<dd></dd></dl> - +<div class="section" id="multiview-platform-mono-multi-view-classifiers-utils-multiclass-module"> +<h2>multiview_platform.mono_multi_view_classifiers.utils.multiclass module<a class="headerlink" href="#multiview-platform-mono-multi-view-classifiers-utils-multiclass-module" title="Permalink to this headline">¶</a></h2> </div> -<div class="section" id="module-multiview_platform.mono_multi_view_classifiers.utils.multiview_result_analysis"> -<span id="multiview-platform-mono-multi-view-classifiers-utils-multiview-result-analysis-module"></span><h2>multiview_platform.mono_multi_view_classifiers.utils.multiview_result_analysis module<a class="headerlink" href="#module-multiview_platform.mono_multi_view_classifiers.utils.multiview_result_analysis" title="Permalink to this headline">¶</a></h2> -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.utils.multiview_result_analysis.get_metrics_scores"> -<code class="descname">get_metrics_scores</code><span class="sig-paren">(</span><em>metrics_var</em>, <em>train_labels</em>, <em>test_labels</em>, <em>validation_indices</em>, <em>learning_indices</em>, <em>labels</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.utils.multiview_result_analysis.get_metrics_scores" title="Permalink to this definition">¶</a></dt> -<dd></dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.utils.multiview_result_analysis.get_total_metric_scores"> -<code class="descname">get_total_metric_scores</code><span class="sig-paren">(</span><em>metric</em>, <em>train_labels</em>, <em>test_labels</em>, <em>validation_indices</em>, <em>learning_indices</em>, <em>labels</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.utils.multiview_result_analysis.get_total_metric_scores" title="Permalink to this definition">¶</a></dt> -<dd></dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.utils.multiview_result_analysis.print_metric_score"> -<code class="descname">print_metric_score</code><span class="sig-paren">(</span><em>metric_scores</em>, <em>metrics</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.utils.multiview_result_analysis.print_metric_score" title="Permalink to this definition">¶</a></dt> -<dd></dd></dl> - +<div class="section" id="multiview-platform-mono-multi-view-classifiers-utils-multiview-result-analysis-module"> +<h2>multiview_platform.mono_multi_view_classifiers.utils.multiview_result_analysis module<a class="headerlink" href="#multiview-platform-mono-multi-view-classifiers-utils-multiview-result-analysis-module" title="Permalink to this headline">¶</a></h2> </div> -<div class="section" id="module-multiview_platform.mono_multi_view_classifiers.utils.transformations"> -<span id="multiview-platform-mono-multi-view-classifiers-utils-transformations-module"></span><h2>multiview_platform.mono_multi_view_classifiers.utils.transformations module<a class="headerlink" href="#module-multiview_platform.mono_multi_view_classifiers.utils.transformations" title="Permalink to this headline">¶</a></h2> -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.utils.transformations.sign_labels"> -<code class="descname">sign_labels</code><span class="sig-paren">(</span><em>labels</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.utils.transformations.sign_labels" title="Permalink to this definition">¶</a></dt> -<dd><p>Returns a label array with (-1,1) as labels. -If labels was already made of (-1,1), returns labels. -If labels is made of (0,1), returns labels with all -zeros transformed in -1.</p> -<table class="docutils field-list" frame="void" rules="none"> -<col class="field-name" /> -<col class="field-body" /> -<tbody valign="top"> -<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple"> -<li><strong>labels</strong> – </li> -<li><strong>original label numpy array</strong> (<em>The</em>) – </li> -</ul> -</td> -</tr> -<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first"></p> -</td> -</tr> -<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first last">A np.array with labels made of (-1,1)</p> -</td> -</tr> -</tbody> -</table> -</dd></dl> - -<dl class="function"> -<dt id="multiview_platform.mono_multi_view_classifiers.utils.transformations.unsign_labels"> -<code class="descname">unsign_labels</code><span class="sig-paren">(</span><em>labels</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.mono_multi_view_classifiers.utils.transformations.unsign_labels" title="Permalink to this definition">¶</a></dt> -<dd><p>The inverse function</p> -<table class="docutils field-list" frame="void" rules="none"> -<col class="field-name" /> -<col class="field-body" /> -<tbody valign="top"> -<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>labels</strong> – </td> -</tr> -</tbody> -</table> -</dd></dl> - +<div class="section" id="multiview-platform-mono-multi-view-classifiers-utils-transformations-module"> +<h2>multiview_platform.mono_multi_view_classifiers.utils.transformations module<a class="headerlink" href="#multiview-platform-mono-multi-view-classifiers-utils-transformations-module" title="Permalink to this headline">¶</a></h2> </div> -<div class="section" id="module-multiview_platform.mono_multi_view_classifiers.utils"> -<span id="module-contents"></span><h2>Module contents<a class="headerlink" href="#module-multiview_platform.mono_multi_view_classifiers.utils" title="Permalink to this headline">¶</a></h2> +<div class="section" id="module-contents"> +<h2>Module contents<a class="headerlink" href="#module-contents" title="Permalink to this headline">¶</a></h2> </div> </div> @@ -970,16 +91,16 @@ zeros transformed in -1.</p> <ul> <li><a class="reference internal" href="#">multiview_platform.mono_multi_view_classifiers.utils package</a><ul> <li><a class="reference internal" href="#submodules">Submodules</a></li> -<li><a class="reference internal" href="#module-multiview_platform.mono_multi_view_classifiers.utils.configuration">multiview_platform.mono_multi_view_classifiers.utils.configuration module</a></li> -<li><a class="reference internal" href="#module-multiview_platform.mono_multi_view_classifiers.utils.dataset">multiview_platform.mono_multi_view_classifiers.utils.dataset module</a></li> -<li><a class="reference internal" href="#module-multiview_platform.mono_multi_view_classifiers.utils.execution">multiview_platform.mono_multi_view_classifiers.utils.execution module</a></li> -<li><a class="reference internal" href="#module-multiview_platform.mono_multi_view_classifiers.utils.get_multiview_db">multiview_platform.mono_multi_view_classifiers.utils.get_multiview_db module</a></li> -<li><a class="reference internal" href="#module-multiview_platform.mono_multi_view_classifiers.utils.hyper_parameter_search">multiview_platform.mono_multi_view_classifiers.utils.hyper_parameter_search module</a></li> -<li><a class="reference internal" href="#module-multiview_platform.mono_multi_view_classifiers.utils.make_file_config">multiview_platform.mono_multi_view_classifiers.utils.make_file_config module</a></li> -<li><a class="reference internal" href="#module-multiview_platform.mono_multi_view_classifiers.utils.multiclass">multiview_platform.mono_multi_view_classifiers.utils.multiclass module</a></li> -<li><a class="reference internal" href="#module-multiview_platform.mono_multi_view_classifiers.utils.multiview_result_analysis">multiview_platform.mono_multi_view_classifiers.utils.multiview_result_analysis module</a></li> -<li><a class="reference internal" href="#module-multiview_platform.mono_multi_view_classifiers.utils.transformations">multiview_platform.mono_multi_view_classifiers.utils.transformations module</a></li> -<li><a class="reference internal" href="#module-multiview_platform.mono_multi_view_classifiers.utils">Module contents</a></li> +<li><a class="reference internal" href="#multiview-platform-mono-multi-view-classifiers-utils-configuration-module">multiview_platform.mono_multi_view_classifiers.utils.configuration module</a></li> +<li><a class="reference internal" href="#multiview-platform-mono-multi-view-classifiers-utils-dataset-module">multiview_platform.mono_multi_view_classifiers.utils.dataset module</a></li> +<li><a class="reference internal" href="#multiview-platform-mono-multi-view-classifiers-utils-execution-module">multiview_platform.mono_multi_view_classifiers.utils.execution module</a></li> +<li><a class="reference internal" href="#multiview-platform-mono-multi-view-classifiers-utils-get-multiview-db-module">multiview_platform.mono_multi_view_classifiers.utils.get_multiview_db module</a></li> +<li><a class="reference internal" href="#multiview-platform-mono-multi-view-classifiers-utils-hyper-parameter-search-module">multiview_platform.mono_multi_view_classifiers.utils.hyper_parameter_search module</a></li> +<li><a class="reference internal" href="#multiview-platform-mono-multi-view-classifiers-utils-make-file-config-module">multiview_platform.mono_multi_view_classifiers.utils.make_file_config module</a></li> +<li><a class="reference internal" href="#multiview-platform-mono-multi-view-classifiers-utils-multiclass-module">multiview_platform.mono_multi_view_classifiers.utils.multiclass module</a></li> +<li><a class="reference internal" href="#multiview-platform-mono-multi-view-classifiers-utils-multiview-result-analysis-module">multiview_platform.mono_multi_view_classifiers.utils.multiview_result_analysis module</a></li> +<li><a class="reference internal" href="#multiview-platform-mono-multi-view-classifiers-utils-transformations-module">multiview_platform.mono_multi_view_classifiers.utils.transformations module</a></li> +<li><a class="reference internal" href="#module-contents">Module contents</a></li> </ul> </li> </ul> @@ -1019,9 +140,6 @@ zeros transformed in -1.</p> <li class="right" style="margin-right: 10px"> <a href="../genindex.html" title="General Index" >index</a></li> - <li class="right" > - <a href="../py-modindex.html" title="Python Module Index" - >modules</a> |</li> <li class="right" > <a href="multiview_platform.tests.html" title="multiview_platform.tests package" >next</a> |</li> diff --git a/docs/build/references/multiview_platform.tests.html b/docs/build/references/multiview_platform.tests.html index 54b2c5eb..7cc0f4f9 100644 --- a/docs/build/references/multiview_platform.tests.html +++ b/docs/build/references/multiview_platform.tests.html @@ -27,9 +27,6 @@ <li class="right" style="margin-right: 10px"> <a href="../genindex.html" title="General Index" accesskey="I">index</a></li> - <li class="right" > - <a href="../py-modindex.html" title="Python Module Index" - >modules</a> |</li> <li class="right" > <a href="multiview_platform.tests.test_metrics.html" title="multiview_platform.tests.test_metrics package" accesskey="N">next</a> |</li> @@ -54,22 +51,22 @@ <ul> <li class="toctree-l1"><a class="reference internal" href="multiview_platform.tests.test_metrics.html">multiview_platform.tests.test_metrics package</a><ul> <li class="toctree-l2"><a class="reference internal" href="multiview_platform.tests.test_metrics.html#submodules">Submodules</a></li> -<li class="toctree-l2"><a class="reference internal" href="multiview_platform.tests.test_metrics.html#module-multiview_platform.tests.test_metrics.test_accuracy_score">multiview_platform.tests.test_metrics.test_accuracy_score module</a></li> -<li class="toctree-l2"><a class="reference internal" href="multiview_platform.tests.test_metrics.html#module-multiview_platform.tests.test_metrics">Module contents</a></li> +<li class="toctree-l2"><a class="reference internal" href="multiview_platform.tests.test_metrics.html#multiview-platform-tests-test-metrics-test-accuracy-score-module">multiview_platform.tests.test_metrics.test_accuracy_score module</a></li> +<li class="toctree-l2"><a class="reference internal" href="multiview_platform.tests.test_metrics.html#module-contents">Module contents</a></li> </ul> </li> <li class="toctree-l1"><a class="reference internal" href="multiview_platform.tests.test_mono_view.html">multiview_platform.tests.test_mono_view package</a><ul> <li class="toctree-l2"><a class="reference internal" href="multiview_platform.tests.test_mono_view.html#submodules">Submodules</a></li> -<li class="toctree-l2"><a class="reference internal" href="multiview_platform.tests.test_mono_view.html#module-multiview_platform.tests.test_mono_view.test_ExecClassifMonoView">multiview_platform.tests.test_mono_view.test_ExecClassifMonoView module</a></li> -<li class="toctree-l2"><a class="reference internal" href="multiview_platform.tests.test_mono_view.html#module-multiview_platform.tests.test_mono_view.test_MonoviewUtils">multiview_platform.tests.test_mono_view.test_MonoviewUtils module</a></li> -<li class="toctree-l2"><a class="reference internal" href="multiview_platform.tests.test_mono_view.html#module-multiview_platform.tests.test_mono_view">Module contents</a></li> +<li class="toctree-l2"><a class="reference internal" href="multiview_platform.tests.test_mono_view.html#multiview-platform-tests-test-mono-view-test-execclassifmonoview-module">multiview_platform.tests.test_mono_view.test_ExecClassifMonoView module</a></li> +<li class="toctree-l2"><a class="reference internal" href="multiview_platform.tests.test_mono_view.html#multiview-platform-tests-test-mono-view-test-monoviewutils-module">multiview_platform.tests.test_mono_view.test_MonoviewUtils module</a></li> +<li class="toctree-l2"><a class="reference internal" href="multiview_platform.tests.test_mono_view.html#module-contents">Module contents</a></li> </ul> </li> <li class="toctree-l1"><a class="reference internal" href="multiview_platform.tests.test_monoview_classifiers.html">multiview_platform.tests.test_monoview_classifiers package</a><ul> <li class="toctree-l2"><a class="reference internal" href="multiview_platform.tests.test_monoview_classifiers.html#submodules">Submodules</a></li> -<li class="toctree-l2"><a class="reference internal" href="multiview_platform.tests.test_monoview_classifiers.html#module-multiview_platform.tests.test_monoview_classifiers.test_adaboost">multiview_platform.tests.test_monoview_classifiers.test_adaboost module</a></li> -<li class="toctree-l2"><a class="reference internal" href="multiview_platform.tests.test_monoview_classifiers.html#module-multiview_platform.tests.test_monoview_classifiers.test_compatibility">multiview_platform.tests.test_monoview_classifiers.test_compatibility module</a></li> -<li class="toctree-l2"><a class="reference internal" href="multiview_platform.tests.test_monoview_classifiers.html#module-multiview_platform.tests.test_monoview_classifiers">Module contents</a></li> +<li class="toctree-l2"><a class="reference internal" href="multiview_platform.tests.test_monoview_classifiers.html#multiview-platform-tests-test-monoview-classifiers-test-adaboost-module">multiview_platform.tests.test_monoview_classifiers.test_adaboost module</a></li> +<li class="toctree-l2"><a class="reference internal" href="multiview_platform.tests.test_monoview_classifiers.html#multiview-platform-tests-test-monoview-classifiers-test-compatibility-module">multiview_platform.tests.test_monoview_classifiers.test_compatibility module</a></li> +<li class="toctree-l2"><a class="reference internal" href="multiview_platform.tests.test_monoview_classifiers.html#module-contents">Module contents</a></li> </ul> </li> <li class="toctree-l1"><a class="reference internal" href="multiview_platform.tests.test_multiview_classifiers.html">multiview_platform.tests.test_multiview_classifiers package</a><ul> @@ -109,24 +106,24 @@ </li> <li class="toctree-l3"><a class="reference internal" href="multiview_platform.tests.test_multiview_classifiers.Test_PseudoCQMeasure.html">multiview_platform.tests.test_multiview_classifiers.Test_PseudoCQMeasure package</a><ul> <li class="toctree-l4"><a class="reference internal" href="multiview_platform.tests.test_multiview_classifiers.Test_PseudoCQMeasure.html#submodules">Submodules</a></li> -<li class="toctree-l4"><a class="reference internal" href="multiview_platform.tests.test_multiview_classifiers.Test_PseudoCQMeasure.html#module-multiview_platform.tests.test_multiview_classifiers.Test_PseudoCQMeasure.test_PseudoCQFusionModule">multiview_platform.tests.test_multiview_classifiers.Test_PseudoCQMeasure.test_PseudoCQFusionModule module</a></li> -<li class="toctree-l4"><a class="reference internal" href="multiview_platform.tests.test_multiview_classifiers.Test_PseudoCQMeasure.html#module-multiview_platform.tests.test_multiview_classifiers.Test_PseudoCQMeasure">Module contents</a></li> +<li class="toctree-l4"><a class="reference internal" href="multiview_platform.tests.test_multiview_classifiers.Test_PseudoCQMeasure.html#multiview-platform-tests-test-multiview-classifiers-test-pseudocqmeasure-test-pseudocqfusionmodule-module">multiview_platform.tests.test_multiview_classifiers.Test_PseudoCQMeasure.test_PseudoCQFusionModule module</a></li> +<li class="toctree-l4"><a class="reference internal" href="multiview_platform.tests.test_multiview_classifiers.Test_PseudoCQMeasure.html#module-contents">Module contents</a></li> </ul> </li> </ul> </li> <li class="toctree-l2"><a class="reference internal" href="multiview_platform.tests.test_multiview_classifiers.html#submodules">Submodules</a></li> -<li class="toctree-l2"><a class="reference internal" href="multiview_platform.tests.test_multiview_classifiers.html#module-multiview_platform.tests.test_multiview_classifiers.test_diversity_utils">multiview_platform.tests.test_multiview_classifiers.test_diversity_utils module</a></li> -<li class="toctree-l2"><a class="reference internal" href="multiview_platform.tests.test_multiview_classifiers.html#module-multiview_platform.tests.test_multiview_classifiers">Module contents</a></li> +<li class="toctree-l2"><a class="reference internal" href="multiview_platform.tests.test_multiview_classifiers.html#multiview-platform-tests-test-multiview-classifiers-test-diversity-utils-module">multiview_platform.tests.test_multiview_classifiers.test_diversity_utils module</a></li> +<li class="toctree-l2"><a class="reference internal" href="multiview_platform.tests.test_multiview_classifiers.html#module-contents">Module contents</a></li> </ul> </li> <li class="toctree-l1"><a class="reference internal" href="multiview_platform.tests.test_utils.html">multiview_platform.tests.test_utils package</a><ul> <li class="toctree-l2"><a class="reference internal" href="multiview_platform.tests.test_utils.html#submodules">Submodules</a></li> -<li class="toctree-l2"><a class="reference internal" href="multiview_platform.tests.test_utils.html#module-multiview_platform.tests.test_utils.test_GetMultiviewDB">multiview_platform.tests.test_utils.test_GetMultiviewDB module</a></li> -<li class="toctree-l2"><a class="reference internal" href="multiview_platform.tests.test_utils.html#module-multiview_platform.tests.test_utils.test_configuration">multiview_platform.tests.test_utils.test_configuration module</a></li> -<li class="toctree-l2"><a class="reference internal" href="multiview_platform.tests.test_utils.html#module-multiview_platform.tests.test_utils.test_execution">multiview_platform.tests.test_utils.test_execution module</a></li> -<li class="toctree-l2"><a class="reference internal" href="multiview_platform.tests.test_utils.html#module-multiview_platform.tests.test_utils.test_multiclass">multiview_platform.tests.test_utils.test_multiclass module</a></li> -<li class="toctree-l2"><a class="reference internal" href="multiview_platform.tests.test_utils.html#module-multiview_platform.tests.test_utils">Module contents</a></li> +<li class="toctree-l2"><a class="reference internal" href="multiview_platform.tests.test_utils.html#multiview-platform-tests-test-utils-test-getmultiviewdb-module">multiview_platform.tests.test_utils.test_GetMultiviewDB module</a></li> +<li class="toctree-l2"><a class="reference internal" href="multiview_platform.tests.test_utils.html#multiview-platform-tests-test-utils-test-configuration-module">multiview_platform.tests.test_utils.test_configuration module</a></li> +<li class="toctree-l2"><a class="reference internal" href="multiview_platform.tests.test_utils.html#multiview-platform-tests-test-utils-test-execution-module">multiview_platform.tests.test_utils.test_execution module</a></li> +<li class="toctree-l2"><a class="reference internal" href="multiview_platform.tests.test_utils.html#multiview-platform-tests-test-utils-test-multiclass-module">multiview_platform.tests.test_utils.test_multiclass module</a></li> +<li class="toctree-l2"><a class="reference internal" href="multiview_platform.tests.test_utils.html#module-contents">Module contents</a></li> </ul> </li> </ul> @@ -135,301 +132,14 @@ <div class="section" id="submodules"> <h2>Submodules<a class="headerlink" href="#submodules" title="Permalink to this headline">¶</a></h2> </div> -<div class="section" id="module-multiview_platform.tests.test_ExecClassif"> -<span id="multiview-platform-tests-test-execclassif-module"></span><h2>multiview_platform.tests.test_ExecClassif module<a class="headerlink" href="#module-multiview_platform.tests.test_ExecClassif" title="Permalink to this headline">¶</a></h2> -<dl class="class"> -<dt id="multiview_platform.tests.test_ExecClassif.FakeKfold"> -<em class="property">class </em><code class="descname">FakeKfold</code><a class="headerlink" href="#multiview_platform.tests.test_ExecClassif.FakeKfold" title="Permalink to this definition">¶</a></dt> -<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p> -<dl class="method"> -<dt id="multiview_platform.tests.test_ExecClassif.FakeKfold.split"> -<code class="descname">split</code><span class="sig-paren">(</span><em>X</em>, <em>Y</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_ExecClassif.FakeKfold.split" title="Permalink to this definition">¶</a></dt> -<dd></dd></dl> - -</dd></dl> - -<dl class="class"> -<dt id="multiview_platform.tests.test_ExecClassif.Test_InitArgumentDictionaries"> -<em class="property">class </em><code class="descname">Test_InitArgumentDictionaries</code><span class="sig-paren">(</span><em>methodName='runTest'</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_ExecClassif.Test_InitArgumentDictionaries" title="Permalink to this definition">¶</a></dt> -<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">unittest.case.TestCase</span></code></p> -<dl class="classmethod"> -<dt id="multiview_platform.tests.test_ExecClassif.Test_InitArgumentDictionaries.setUpClass"> -<em class="property">classmethod </em><code class="descname">setUpClass</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_ExecClassif.Test_InitArgumentDictionaries.setUpClass" title="Permalink to this definition">¶</a></dt> -<dd><p>Hook method for setting up class fixture before running tests in the class.</p> -</dd></dl> - -<dl class="method"> -<dt id="multiview_platform.tests.test_ExecClassif.Test_InitArgumentDictionaries.test_init_argument_dictionaries_monoview"> -<code class="descname">test_init_argument_dictionaries_monoview</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_ExecClassif.Test_InitArgumentDictionaries.test_init_argument_dictionaries_monoview" title="Permalink to this definition">¶</a></dt> -<dd></dd></dl> - -<dl class="method"> -<dt id="multiview_platform.tests.test_ExecClassif.Test_InitArgumentDictionaries.test_init_argument_dictionaries_multiview"> -<code class="descname">test_init_argument_dictionaries_multiview</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_ExecClassif.Test_InitArgumentDictionaries.test_init_argument_dictionaries_multiview" title="Permalink to this definition">¶</a></dt> -<dd></dd></dl> - -<dl class="method"> -<dt id="multiview_platform.tests.test_ExecClassif.Test_InitArgumentDictionaries.test_init_argument_dictionaries_multiview_complex"> -<code class="descname">test_init_argument_dictionaries_multiview_complex</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_ExecClassif.Test_InitArgumentDictionaries.test_init_argument_dictionaries_multiview_complex" title="Permalink to this definition">¶</a></dt> -<dd></dd></dl> - -<dl class="method"> -<dt id="multiview_platform.tests.test_ExecClassif.Test_InitArgumentDictionaries.test_init_argument_dictionaries_multiview_multiple"> -<code class="descname">test_init_argument_dictionaries_multiview_multiple</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_ExecClassif.Test_InitArgumentDictionaries.test_init_argument_dictionaries_multiview_multiple" title="Permalink to this definition">¶</a></dt> -<dd></dd></dl> - -<dl class="method"> -<dt id="multiview_platform.tests.test_ExecClassif.Test_InitArgumentDictionaries.test_init_argument_dictionaries_multiview_multiple_complex"> -<code class="descname">test_init_argument_dictionaries_multiview_multiple_complex</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_ExecClassif.Test_InitArgumentDictionaries.test_init_argument_dictionaries_multiview_multiple_complex" title="Permalink to this definition">¶</a></dt> -<dd></dd></dl> - -</dd></dl> - -<dl class="class"> -<dt id="multiview_platform.tests.test_ExecClassif.Test_execBenchmark"> -<em class="property">class </em><code class="descname">Test_execBenchmark</code><span class="sig-paren">(</span><em>methodName='runTest'</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_ExecClassif.Test_execBenchmark" title="Permalink to this definition">¶</a></dt> -<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">unittest.case.TestCase</span></code></p> -<dl class="classmethod"> -<dt id="multiview_platform.tests.test_ExecClassif.Test_execBenchmark.setUpClass"> -<em class="property">classmethod </em><code class="descname">setUpClass</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_ExecClassif.Test_execBenchmark.setUpClass" title="Permalink to this definition">¶</a></dt> -<dd><p>Hook method for setting up class fixture before running tests in the class.</p> -</dd></dl> - -<dl class="classmethod"> -<dt id="multiview_platform.tests.test_ExecClassif.Test_execBenchmark.tearDownClass"> -<em class="property">classmethod </em><code class="descname">tearDownClass</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_ExecClassif.Test_execBenchmark.tearDownClass" title="Permalink to this definition">¶</a></dt> -<dd><p>Hook method for deconstructing the class fixture after running all tests in the class.</p> -</dd></dl> - -<dl class="method"> -<dt id="multiview_platform.tests.test_ExecClassif.Test_execBenchmark.test_multiclass_and_iter"> -<code class="descname">test_multiclass_and_iter</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_ExecClassif.Test_execBenchmark.test_multiclass_and_iter" title="Permalink to this definition">¶</a></dt> -<dd></dd></dl> - -<dl class="method"> -<dt id="multiview_platform.tests.test_ExecClassif.Test_execBenchmark.test_multiclass_no_iter"> -<code class="descname">test_multiclass_no_iter</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_ExecClassif.Test_execBenchmark.test_multiclass_no_iter" title="Permalink to this definition">¶</a></dt> -<dd></dd></dl> - -<dl class="method"> -<dt id="multiview_platform.tests.test_ExecClassif.Test_execBenchmark.test_no_iter_biclass_multicore"> -<code class="descname">test_no_iter_biclass_multicore</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_ExecClassif.Test_execBenchmark.test_no_iter_biclass_multicore" title="Permalink to this definition">¶</a></dt> -<dd></dd></dl> - -<dl class="method"> -<dt id="multiview_platform.tests.test_ExecClassif.Test_execBenchmark.test_simple"> -<code class="descname">test_simple</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_ExecClassif.Test_execBenchmark.test_simple" title="Permalink to this definition">¶</a></dt> -<dd></dd></dl> - -</dd></dl> - -<dl class="class"> -<dt id="multiview_platform.tests.test_ExecClassif.Test_get_path_dict"> -<em class="property">class </em><code class="descname">Test_get_path_dict</code><span class="sig-paren">(</span><em>methodName='runTest'</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_ExecClassif.Test_get_path_dict" title="Permalink to this definition">¶</a></dt> -<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">unittest.case.TestCase</span></code></p> -<dl class="classmethod"> -<dt id="multiview_platform.tests.test_ExecClassif.Test_get_path_dict.setUpClass"> -<em class="property">classmethod </em><code class="descname">setUpClass</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_ExecClassif.Test_get_path_dict.setUpClass" title="Permalink to this definition">¶</a></dt> -<dd><p>Hook method for setting up class fixture before running tests in the class.</p> -</dd></dl> - -<dl class="classmethod"> -<dt id="multiview_platform.tests.test_ExecClassif.Test_get_path_dict.tearDownClass"> -<em class="property">classmethod </em><code class="descname">tearDownClass</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_ExecClassif.Test_get_path_dict.tearDownClass" title="Permalink to this definition">¶</a></dt> -<dd><p>Hook method for deconstructing the class fixture after running all tests in the class.</p> -</dd></dl> - -<dl class="method"> -<dt id="multiview_platform.tests.test_ExecClassif.Test_get_path_dict.test_simple"> -<code class="descname">test_simple</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_ExecClassif.Test_get_path_dict.test_simple" title="Permalink to this definition">¶</a></dt> -<dd></dd></dl> - -</dd></dl> - -<dl class="class"> -<dt id="multiview_platform.tests.test_ExecClassif.Test_initBenchmark"> -<em class="property">class </em><code class="descname">Test_initBenchmark</code><span class="sig-paren">(</span><em>methodName='runTest'</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_ExecClassif.Test_initBenchmark" title="Permalink to this definition">¶</a></dt> -<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">unittest.case.TestCase</span></code></p> -<dl class="method"> -<dt id="multiview_platform.tests.test_ExecClassif.Test_initBenchmark.test_benchmark_wanted"> -<code class="descname">test_benchmark_wanted</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_ExecClassif.Test_initBenchmark.test_benchmark_wanted" title="Permalink to this definition">¶</a></dt> -<dd></dd></dl> - -</dd></dl> - -<dl class="class"> -<dt id="multiview_platform.tests.test_ExecClassif.Test_initKWARGS"> -<em class="property">class </em><code class="descname">Test_initKWARGS</code><span class="sig-paren">(</span><em>methodName='runTest'</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_ExecClassif.Test_initKWARGS" title="Permalink to this definition">¶</a></dt> -<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">unittest.case.TestCase</span></code></p> -<dl class="method"> -<dt id="multiview_platform.tests.test_ExecClassif.Test_initKWARGS.test_initKWARGSFunc_no_monoview"> -<code class="descname">test_initKWARGSFunc_no_monoview</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_ExecClassif.Test_initKWARGS.test_initKWARGSFunc_no_monoview" title="Permalink to this definition">¶</a></dt> -<dd></dd></dl> - -</dd></dl> - -<dl class="class"> -<dt id="multiview_platform.tests.test_ExecClassif.Test_set_element"> -<em class="property">class </em><code class="descname">Test_set_element</code><span class="sig-paren">(</span><em>methodName='runTest'</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_ExecClassif.Test_set_element" title="Permalink to this definition">¶</a></dt> -<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">unittest.case.TestCase</span></code></p> -<dl class="classmethod"> -<dt id="multiview_platform.tests.test_ExecClassif.Test_set_element.setUpClass"> -<em class="property">classmethod </em><code class="descname">setUpClass</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_ExecClassif.Test_set_element.setUpClass" title="Permalink to this definition">¶</a></dt> -<dd><p>Hook method for setting up class fixture before running tests in the class.</p> -</dd></dl> - -<dl class="classmethod"> -<dt id="multiview_platform.tests.test_ExecClassif.Test_set_element.tearDownClass"> -<em class="property">classmethod </em><code class="descname">tearDownClass</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_ExecClassif.Test_set_element.tearDownClass" title="Permalink to this definition">¶</a></dt> -<dd><p>Hook method for deconstructing the class fixture after running all tests in the class.</p> -</dd></dl> - -<dl class="method"> -<dt id="multiview_platform.tests.test_ExecClassif.Test_set_element.test_simple"> -<code class="descname">test_simple</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_ExecClassif.Test_set_element.test_simple" title="Permalink to this definition">¶</a></dt> -<dd></dd></dl> - -</dd></dl> - -<dl class="function"> -<dt id="multiview_platform.tests.test_ExecClassif.fakeBenchmarkExec"> -<code class="descname">fakeBenchmarkExec</code><span class="sig-paren">(</span><em>core_index=-1</em>, <em>a=7</em>, <em>args=1</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_ExecClassif.fakeBenchmarkExec" title="Permalink to this definition">¶</a></dt> -<dd></dd></dl> - -<dl class="function"> -<dt id="multiview_platform.tests.test_ExecClassif.fakeBenchmarkExec_monocore"> -<code class="descname">fakeBenchmarkExec_monocore</code><span class="sig-paren">(</span><em>dataset_var=1</em>, <em>a=4</em>, <em>args=1</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_ExecClassif.fakeBenchmarkExec_monocore" title="Permalink to this definition">¶</a></dt> -<dd></dd></dl> - -<dl class="function"> -<dt id="multiview_platform.tests.test_ExecClassif.fakeBenchmarkExec_mutlicore"> -<code class="descname">fakeBenchmarkExec_mutlicore</code><span class="sig-paren">(</span><em>nb_cores=-1</em>, <em>a=6</em>, <em>args=1</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_ExecClassif.fakeBenchmarkExec_mutlicore" title="Permalink to this definition">¶</a></dt> -<dd></dd></dl> - -<dl class="function"> -<dt id="multiview_platform.tests.test_ExecClassif.fakeDelete"> -<code class="descname">fakeDelete</code><span class="sig-paren">(</span><em>a</em>, <em>b</em>, <em>c</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_ExecClassif.fakeDelete" title="Permalink to this definition">¶</a></dt> -<dd></dd></dl> - -<dl class="function"> -<dt id="multiview_platform.tests.test_ExecClassif.fakeExecMono"> -<code class="descname">fakeExecMono</code><span class="sig-paren">(</span><em>directory</em>, <em>name</em>, <em>labels_names</em>, <em>classification_indices</em>, <em>k_folds</em>, <em>coreIndex</em>, <em>type</em>, <em>pathF</em>, <em>random_state</em>, <em>labels</em>, <em>hyper_param_search='try'</em>, <em>metrics='try'</em>, <em>n_iter=1</em>, <em>**arguments</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_ExecClassif.fakeExecMono" title="Permalink to this definition">¶</a></dt> -<dd></dd></dl> - -<dl class="function"> -<dt id="multiview_platform.tests.test_ExecClassif.fakeExecMulti"> -<code class="descname">fakeExecMulti</code><span class="sig-paren">(</span><em>directory</em>, <em>coreIndex</em>, <em>name</em>, <em>classification_indices</em>, <em>k_folds</em>, <em>type</em>, <em>pathF</em>, <em>labels_dictionary</em>, <em>random_state</em>, <em>labels</em>, <em>hyper_param_search=''</em>, <em>metrics=None</em>, <em>n_iter=1</em>, <em>**arguments</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_ExecClassif.fakeExecMulti" title="Permalink to this definition">¶</a></dt> -<dd></dd></dl> - -<dl class="function"> -<dt id="multiview_platform.tests.test_ExecClassif.fakeInitMulti"> -<code class="descname">fakeInitMulti</code><span class="sig-paren">(</span><em>args</em>, <em>benchmark</em>, <em>views</em>, <em>views_indices</em>, <em>argument_dictionaries</em>, <em>random_state</em>, <em>directory</em>, <em>resultsMonoview</em>, <em>classification_indices</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_ExecClassif.fakeInitMulti" title="Permalink to this definition">¶</a></dt> -<dd></dd></dl> - -<dl class="function"> -<dt id="multiview_platform.tests.test_ExecClassif.fakegetResults"> -<code class="descname">fakegetResults</code><span class="sig-paren">(</span><em>results</em>, <em>stats_iter</em>, <em>nb_multiclass</em>, <em>benchmark_arguments_dictionaries</em>, <em>multi_class_labels</em>, <em>metrics</em>, <em>classification_indices</em>, <em>directories</em>, <em>directory</em>, <em>labels_dictionary</em>, <em>nb_examples</em>, <em>nb_labels</em>, <em>example_ids</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_ExecClassif.fakegetResults" title="Permalink to this definition">¶</a></dt> -<dd></dd></dl> - +<div class="section" id="multiview-platform-tests-test-execclassif-module"> +<h2>multiview_platform.tests.test_ExecClassif module<a class="headerlink" href="#multiview-platform-tests-test-execclassif-module" title="Permalink to this headline">¶</a></h2> </div> -<div class="section" id="module-multiview_platform.tests.test_ResultAnalysis"> -<span id="multiview-platform-tests-test-resultanalysis-module"></span><h2>multiview_platform.tests.test_ResultAnalysis module<a class="headerlink" href="#module-multiview_platform.tests.test_ResultAnalysis" title="Permalink to this headline">¶</a></h2> -<dl class="class"> -<dt id="multiview_platform.tests.test_ResultAnalysis.Test_format_previous_results"> -<em class="property">class </em><code class="descname">Test_format_previous_results</code><span class="sig-paren">(</span><em>methodName='runTest'</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_ResultAnalysis.Test_format_previous_results" title="Permalink to this definition">¶</a></dt> -<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">unittest.case.TestCase</span></code></p> -<dl class="method"> -<dt id="multiview_platform.tests.test_ResultAnalysis.Test_format_previous_results.test_simple"> -<code class="descname">test_simple</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_ResultAnalysis.Test_format_previous_results.test_simple" title="Permalink to this definition">¶</a></dt> -<dd></dd></dl> - -</dd></dl> - -<dl class="class"> -<dt id="multiview_platform.tests.test_ResultAnalysis.Test_gen_error_data"> -<em class="property">class </em><code class="descname">Test_gen_error_data</code><span class="sig-paren">(</span><em>methodName='runTest'</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_ResultAnalysis.Test_gen_error_data" title="Permalink to this definition">¶</a></dt> -<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">unittest.case.TestCase</span></code></p> -<dl class="method"> -<dt id="multiview_platform.tests.test_ResultAnalysis.Test_gen_error_data.test_simple"> -<code class="descname">test_simple</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_ResultAnalysis.Test_gen_error_data.test_simple" title="Permalink to this definition">¶</a></dt> -<dd></dd></dl> - -</dd></dl> - -<dl class="class"> -<dt id="multiview_platform.tests.test_ResultAnalysis.Test_gen_error_data_glob"> -<em class="property">class </em><code class="descname">Test_gen_error_data_glob</code><span class="sig-paren">(</span><em>methodName='runTest'</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_ResultAnalysis.Test_gen_error_data_glob" title="Permalink to this definition">¶</a></dt> -<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">unittest.case.TestCase</span></code></p> -<dl class="method"> -<dt id="multiview_platform.tests.test_ResultAnalysis.Test_gen_error_data_glob.test_simple"> -<code class="descname">test_simple</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_ResultAnalysis.Test_gen_error_data_glob.test_simple" title="Permalink to this definition">¶</a></dt> -<dd></dd></dl> - -</dd></dl> - -<dl class="class"> -<dt id="multiview_platform.tests.test_ResultAnalysis.Test_get_arguments"> -<em class="property">class </em><code class="descname">Test_get_arguments</code><span class="sig-paren">(</span><em>methodName='runTest'</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_ResultAnalysis.Test_get_arguments" title="Permalink to this definition">¶</a></dt> -<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">unittest.case.TestCase</span></code></p> -<dl class="method"> -<dt id="multiview_platform.tests.test_ResultAnalysis.Test_get_arguments.setUp"> -<code class="descname">setUp</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_ResultAnalysis.Test_get_arguments.setUp" title="Permalink to this definition">¶</a></dt> -<dd><p>Hook method for setting up the test fixture before exercising it.</p> -</dd></dl> - -<dl class="method"> -<dt id="multiview_platform.tests.test_ResultAnalysis.Test_get_arguments.test_benchmark_wanted"> -<code class="descname">test_benchmark_wanted</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_ResultAnalysis.Test_get_arguments.test_benchmark_wanted" title="Permalink to this definition">¶</a></dt> -<dd></dd></dl> - -</dd></dl> - -<dl class="class"> -<dt id="multiview_platform.tests.test_ResultAnalysis.Test_get_example_errors_biclass"> -<em class="property">class </em><code class="descname">Test_get_example_errors_biclass</code><span class="sig-paren">(</span><em>methodName='runTest'</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_ResultAnalysis.Test_get_example_errors_biclass" title="Permalink to this definition">¶</a></dt> -<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">unittest.case.TestCase</span></code></p> -<dl class="method"> -<dt id="multiview_platform.tests.test_ResultAnalysis.Test_get_example_errors_biclass.test_simple"> -<code class="descname">test_simple</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_ResultAnalysis.Test_get_example_errors_biclass.test_simple" title="Permalink to this definition">¶</a></dt> -<dd></dd></dl> - -</dd></dl> - -<dl class="class"> -<dt id="multiview_platform.tests.test_ResultAnalysis.Test_get_metrics_scores_biclass"> -<em class="property">class </em><code class="descname">Test_get_metrics_scores_biclass</code><span class="sig-paren">(</span><em>methodName='runTest'</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_ResultAnalysis.Test_get_metrics_scores_biclass" title="Permalink to this definition">¶</a></dt> -<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">unittest.case.TestCase</span></code></p> -<dl class="method"> -<dt id="multiview_platform.tests.test_ResultAnalysis.Test_get_metrics_scores_biclass.multiple_monoview_classifiers"> -<code class="descname">multiple_monoview_classifiers</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_ResultAnalysis.Test_get_metrics_scores_biclass.multiple_monoview_classifiers" title="Permalink to this definition">¶</a></dt> -<dd></dd></dl> - -<dl class="method"> -<dt id="multiview_platform.tests.test_ResultAnalysis.Test_get_metrics_scores_biclass.mutiview_result"> -<code class="descname">mutiview_result</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_ResultAnalysis.Test_get_metrics_scores_biclass.mutiview_result" title="Permalink to this definition">¶</a></dt> -<dd></dd></dl> - -<dl class="method"> -<dt id="multiview_platform.tests.test_ResultAnalysis.Test_get_metrics_scores_biclass.test_simple"> -<code class="descname">test_simple</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_ResultAnalysis.Test_get_metrics_scores_biclass.test_simple" title="Permalink to this definition">¶</a></dt> -<dd></dd></dl> - -</dd></dl> - -<dl class="class"> -<dt id="multiview_platform.tests.test_ResultAnalysis.Test_init_plot"> -<em class="property">class </em><code class="descname">Test_init_plot</code><span class="sig-paren">(</span><em>methodName='runTest'</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_ResultAnalysis.Test_init_plot" title="Permalink to this definition">¶</a></dt> -<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">unittest.case.TestCase</span></code></p> -<dl class="method"> -<dt id="multiview_platform.tests.test_ResultAnalysis.Test_init_plot.test_simple"> -<code class="descname">test_simple</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_ResultAnalysis.Test_init_plot.test_simple" title="Permalink to this definition">¶</a></dt> -<dd></dd></dl> - -</dd></dl> - +<div class="section" id="multiview-platform-tests-test-resultanalysis-module"> +<h2>multiview_platform.tests.test_ResultAnalysis module<a class="headerlink" href="#multiview-platform-tests-test-resultanalysis-module" title="Permalink to this headline">¶</a></h2> </div> -<div class="section" id="module-multiview_platform.tests"> -<span id="module-contents"></span><h2>Module contents<a class="headerlink" href="#module-multiview_platform.tests" title="Permalink to this headline">¶</a></h2> +<div class="section" id="module-contents"> +<h2>Module contents<a class="headerlink" href="#module-contents" title="Permalink to this headline">¶</a></h2> </div> </div> @@ -444,9 +154,9 @@ <li><a class="reference internal" href="#">multiview_platform.tests package</a><ul> <li><a class="reference internal" href="#subpackages">Subpackages</a></li> <li><a class="reference internal" href="#submodules">Submodules</a></li> -<li><a class="reference internal" href="#module-multiview_platform.tests.test_ExecClassif">multiview_platform.tests.test_ExecClassif module</a></li> -<li><a class="reference internal" href="#module-multiview_platform.tests.test_ResultAnalysis">multiview_platform.tests.test_ResultAnalysis module</a></li> -<li><a class="reference internal" href="#module-multiview_platform.tests">Module contents</a></li> +<li><a class="reference internal" href="#multiview-platform-tests-test-execclassif-module">multiview_platform.tests.test_ExecClassif module</a></li> +<li><a class="reference internal" href="#multiview-platform-tests-test-resultanalysis-module">multiview_platform.tests.test_ResultAnalysis module</a></li> +<li><a class="reference internal" href="#module-contents">Module contents</a></li> </ul> </li> </ul> @@ -486,9 +196,6 @@ <li class="right" style="margin-right: 10px"> <a href="../genindex.html" title="General Index" >index</a></li> - <li class="right" > - <a href="../py-modindex.html" title="Python Module Index" - >modules</a> |</li> <li class="right" > <a href="multiview_platform.tests.test_metrics.html" title="multiview_platform.tests.test_metrics package" >next</a> |</li> diff --git a/docs/build/references/multiview_platform.tests.test_metrics.html b/docs/build/references/multiview_platform.tests.test_metrics.html index 4c0c63d4..75bc98d3 100644 --- a/docs/build/references/multiview_platform.tests.test_metrics.html +++ b/docs/build/references/multiview_platform.tests.test_metrics.html @@ -27,9 +27,6 @@ <li class="right" style="margin-right: 10px"> <a href="../genindex.html" title="General Index" accesskey="I">index</a></li> - <li class="right" > - <a href="../py-modindex.html" title="Python Module Index" - >modules</a> |</li> <li class="right" > <a href="multiview_platform.tests.test_mono_view.html" title="multiview_platform.tests.test_mono_view package" accesskey="N">next</a> |</li> @@ -52,28 +49,11 @@ <div class="section" id="submodules"> <h2>Submodules<a class="headerlink" href="#submodules" title="Permalink to this headline">¶</a></h2> </div> -<div class="section" id="module-multiview_platform.tests.test_metrics.test_accuracy_score"> -<span id="multiview-platform-tests-test-metrics-test-accuracy-score-module"></span><h2>multiview_platform.tests.test_metrics.test_accuracy_score module<a class="headerlink" href="#module-multiview_platform.tests.test_metrics.test_accuracy_score" title="Permalink to this headline">¶</a></h2> -<dl class="class"> -<dt id="multiview_platform.tests.test_metrics.test_accuracy_score.Test_accuracy_score"> -<em class="property">class </em><code class="descname">Test_accuracy_score</code><span class="sig-paren">(</span><em>methodName='runTest'</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_metrics.test_accuracy_score.Test_accuracy_score" title="Permalink to this definition">¶</a></dt> -<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">unittest.case.TestCase</span></code></p> -<dl class="method"> -<dt id="multiview_platform.tests.test_metrics.test_accuracy_score.Test_accuracy_score.score_test"> -<code class="descname">score_test</code><span class="sig-paren">(</span><em>metric_module</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_metrics.test_accuracy_score.Test_accuracy_score.score_test" title="Permalink to this definition">¶</a></dt> -<dd></dd></dl> - -<dl class="method"> -<dt id="multiview_platform.tests.test_metrics.test_accuracy_score.Test_accuracy_score.setUpClass"> -<code class="descname">setUpClass</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_metrics.test_accuracy_score.Test_accuracy_score.setUpClass" title="Permalink to this definition">¶</a></dt> -<dd><p>Hook method for setting up class fixture before running tests in the class.</p> -</dd></dl> - -</dd></dl> - +<div class="section" id="multiview-platform-tests-test-metrics-test-accuracy-score-module"> +<h2>multiview_platform.tests.test_metrics.test_accuracy_score module<a class="headerlink" href="#multiview-platform-tests-test-metrics-test-accuracy-score-module" title="Permalink to this headline">¶</a></h2> </div> -<div class="section" id="module-multiview_platform.tests.test_metrics"> -<span id="module-contents"></span><h2>Module contents<a class="headerlink" href="#module-multiview_platform.tests.test_metrics" title="Permalink to this headline">¶</a></h2> +<div class="section" id="module-contents"> +<h2>Module contents<a class="headerlink" href="#module-contents" title="Permalink to this headline">¶</a></h2> </div> </div> @@ -87,8 +67,8 @@ <ul> <li><a class="reference internal" href="#">multiview_platform.tests.test_metrics package</a><ul> <li><a class="reference internal" href="#submodules">Submodules</a></li> -<li><a class="reference internal" href="#module-multiview_platform.tests.test_metrics.test_accuracy_score">multiview_platform.tests.test_metrics.test_accuracy_score module</a></li> -<li><a class="reference internal" href="#module-multiview_platform.tests.test_metrics">Module contents</a></li> +<li><a class="reference internal" href="#multiview-platform-tests-test-metrics-test-accuracy-score-module">multiview_platform.tests.test_metrics.test_accuracy_score module</a></li> +<li><a class="reference internal" href="#module-contents">Module contents</a></li> </ul> </li> </ul> @@ -128,9 +108,6 @@ <li class="right" style="margin-right: 10px"> <a href="../genindex.html" title="General Index" >index</a></li> - <li class="right" > - <a href="../py-modindex.html" title="Python Module Index" - >modules</a> |</li> <li class="right" > <a href="multiview_platform.tests.test_mono_view.html" title="multiview_platform.tests.test_mono_view package" >next</a> |</li> diff --git a/docs/build/references/multiview_platform.tests.test_mono_view.html b/docs/build/references/multiview_platform.tests.test_mono_view.html index 797c0629..cadba693 100644 --- a/docs/build/references/multiview_platform.tests.test_mono_view.html +++ b/docs/build/references/multiview_platform.tests.test_mono_view.html @@ -27,9 +27,6 @@ <li class="right" style="margin-right: 10px"> <a href="../genindex.html" title="General Index" accesskey="I">index</a></li> - <li class="right" > - <a href="../py-modindex.html" title="Python Module Index" - >modules</a> |</li> <li class="right" > <a href="multiview_platform.tests.test_monoview_classifiers.html" title="multiview_platform.tests.test_monoview_classifiers package" accesskey="N">next</a> |</li> @@ -52,94 +49,14 @@ <div class="section" id="submodules"> <h2>Submodules<a class="headerlink" href="#submodules" title="Permalink to this headline">¶</a></h2> </div> -<div class="section" id="module-multiview_platform.tests.test_mono_view.test_ExecClassifMonoView"> -<span id="multiview-platform-tests-test-mono-view-test-execclassifmonoview-module"></span><h2>multiview_platform.tests.test_mono_view.test_ExecClassifMonoView module<a class="headerlink" href="#module-multiview_platform.tests.test_mono_view.test_ExecClassifMonoView" title="Permalink to this headline">¶</a></h2> -<dl class="class"> -<dt id="multiview_platform.tests.test_mono_view.test_ExecClassifMonoView.Test_getHPs"> -<em class="property">class </em><code class="descname">Test_getHPs</code><span class="sig-paren">(</span><em>methodName='runTest'</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_mono_view.test_ExecClassifMonoView.Test_getHPs" title="Permalink to this definition">¶</a></dt> -<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">unittest.case.TestCase</span></code></p> -<dl class="classmethod"> -<dt id="multiview_platform.tests.test_mono_view.test_ExecClassifMonoView.Test_getHPs.setUpClass"> -<em class="property">classmethod </em><code class="descname">setUpClass</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_mono_view.test_ExecClassifMonoView.Test_getHPs.setUpClass" title="Permalink to this definition">¶</a></dt> -<dd><p>Hook method for setting up class fixture before running tests in the class.</p> -</dd></dl> - -<dl class="classmethod"> -<dt id="multiview_platform.tests.test_mono_view.test_ExecClassifMonoView.Test_getHPs.tearDownClass"> -<em class="property">classmethod </em><code class="descname">tearDownClass</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_mono_view.test_ExecClassifMonoView.Test_getHPs.tearDownClass" title="Permalink to this definition">¶</a></dt> -<dd><p>Hook method for deconstructing the class fixture after running all tests in the class.</p> -</dd></dl> - -<dl class="method"> -<dt id="multiview_platform.tests.test_mono_view.test_ExecClassifMonoView.Test_getHPs.test_simple"> -<code class="descname">test_simple</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_mono_view.test_ExecClassifMonoView.Test_getHPs.test_simple" title="Permalink to this definition">¶</a></dt> -<dd></dd></dl> - -</dd></dl> - -<dl class="class"> -<dt id="multiview_platform.tests.test_mono_view.test_ExecClassifMonoView.Test_initConstants"> -<em class="property">class </em><code class="descname">Test_initConstants</code><span class="sig-paren">(</span><em>methodName='runTest'</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_mono_view.test_ExecClassifMonoView.Test_initConstants" title="Permalink to this definition">¶</a></dt> -<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">unittest.case.TestCase</span></code></p> -<dl class="classmethod"> -<dt id="multiview_platform.tests.test_mono_view.test_ExecClassifMonoView.Test_initConstants.setUpClass"> -<em class="property">classmethod </em><code class="descname">setUpClass</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_mono_view.test_ExecClassifMonoView.Test_initConstants.setUpClass" title="Permalink to this definition">¶</a></dt> -<dd><p>Hook method for setting up class fixture before running tests in the class.</p> -</dd></dl> - -<dl class="classmethod"> -<dt id="multiview_platform.tests.test_mono_view.test_ExecClassifMonoView.Test_initConstants.tearDownClass"> -<em class="property">classmethod </em><code class="descname">tearDownClass</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_mono_view.test_ExecClassifMonoView.Test_initConstants.tearDownClass" title="Permalink to this definition">¶</a></dt> -<dd><p>Hook method for deconstructing the class fixture after running all tests in the class.</p> -</dd></dl> - -<dl class="method"> -<dt id="multiview_platform.tests.test_mono_view.test_ExecClassifMonoView.Test_initConstants.test_simple"> -<code class="descname">test_simple</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_mono_view.test_ExecClassifMonoView.Test_initConstants.test_simple" title="Permalink to this definition">¶</a></dt> -<dd></dd></dl> - -</dd></dl> - -<dl class="class"> -<dt id="multiview_platform.tests.test_mono_view.test_ExecClassifMonoView.Test_initTrainTest"> -<em class="property">class </em><code class="descname">Test_initTrainTest</code><span class="sig-paren">(</span><em>methodName='runTest'</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_mono_view.test_ExecClassifMonoView.Test_initTrainTest" title="Permalink to this definition">¶</a></dt> -<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">unittest.case.TestCase</span></code></p> -<dl class="classmethod"> -<dt id="multiview_platform.tests.test_mono_view.test_ExecClassifMonoView.Test_initTrainTest.setUpClass"> -<em class="property">classmethod </em><code class="descname">setUpClass</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_mono_view.test_ExecClassifMonoView.Test_initTrainTest.setUpClass" title="Permalink to this definition">¶</a></dt> -<dd><p>Hook method for setting up class fixture before running tests in the class.</p> -</dd></dl> - -<dl class="method"> -<dt id="multiview_platform.tests.test_mono_view.test_ExecClassifMonoView.Test_initTrainTest.test_simple"> -<code class="descname">test_simple</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_mono_view.test_ExecClassifMonoView.Test_initTrainTest.test_simple" title="Permalink to this definition">¶</a></dt> -<dd></dd></dl> - -</dd></dl> - +<div class="section" id="multiview-platform-tests-test-mono-view-test-execclassifmonoview-module"> +<h2>multiview_platform.tests.test_mono_view.test_ExecClassifMonoView module<a class="headerlink" href="#multiview-platform-tests-test-mono-view-test-execclassifmonoview-module" title="Permalink to this headline">¶</a></h2> </div> -<div class="section" id="module-multiview_platform.tests.test_mono_view.test_MonoviewUtils"> -<span id="multiview-platform-tests-test-mono-view-test-monoviewutils-module"></span><h2>multiview_platform.tests.test_mono_view.test_MonoviewUtils module<a class="headerlink" href="#module-multiview_platform.tests.test_mono_view.test_MonoviewUtils" title="Permalink to this headline">¶</a></h2> -<dl class="class"> -<dt id="multiview_platform.tests.test_mono_view.test_MonoviewUtils.Test_genTestFoldsPreds"> -<em class="property">class </em><code class="descname">Test_genTestFoldsPreds</code><span class="sig-paren">(</span><em>methodName='runTest'</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_mono_view.test_MonoviewUtils.Test_genTestFoldsPreds" title="Permalink to this definition">¶</a></dt> -<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">unittest.case.TestCase</span></code></p> -<dl class="classmethod"> -<dt id="multiview_platform.tests.test_mono_view.test_MonoviewUtils.Test_genTestFoldsPreds.setUpClass"> -<em class="property">classmethod </em><code class="descname">setUpClass</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_mono_view.test_MonoviewUtils.Test_genTestFoldsPreds.setUpClass" title="Permalink to this definition">¶</a></dt> -<dd><p>Hook method for setting up class fixture before running tests in the class.</p> -</dd></dl> - -<dl class="method"> -<dt id="multiview_platform.tests.test_mono_view.test_MonoviewUtils.Test_genTestFoldsPreds.test_simple"> -<code class="descname">test_simple</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_mono_view.test_MonoviewUtils.Test_genTestFoldsPreds.test_simple" title="Permalink to this definition">¶</a></dt> -<dd></dd></dl> - -</dd></dl> - +<div class="section" id="multiview-platform-tests-test-mono-view-test-monoviewutils-module"> +<h2>multiview_platform.tests.test_mono_view.test_MonoviewUtils module<a class="headerlink" href="#multiview-platform-tests-test-mono-view-test-monoviewutils-module" title="Permalink to this headline">¶</a></h2> </div> -<div class="section" id="module-multiview_platform.tests.test_mono_view"> -<span id="module-contents"></span><h2>Module contents<a class="headerlink" href="#module-multiview_platform.tests.test_mono_view" title="Permalink to this headline">¶</a></h2> +<div class="section" id="module-contents"> +<h2>Module contents<a class="headerlink" href="#module-contents" title="Permalink to this headline">¶</a></h2> </div> </div> @@ -153,9 +70,9 @@ <ul> <li><a class="reference internal" href="#">multiview_platform.tests.test_mono_view package</a><ul> <li><a class="reference internal" href="#submodules">Submodules</a></li> -<li><a class="reference internal" href="#module-multiview_platform.tests.test_mono_view.test_ExecClassifMonoView">multiview_platform.tests.test_mono_view.test_ExecClassifMonoView module</a></li> -<li><a class="reference internal" href="#module-multiview_platform.tests.test_mono_view.test_MonoviewUtils">multiview_platform.tests.test_mono_view.test_MonoviewUtils module</a></li> -<li><a class="reference internal" href="#module-multiview_platform.tests.test_mono_view">Module contents</a></li> +<li><a class="reference internal" href="#multiview-platform-tests-test-mono-view-test-execclassifmonoview-module">multiview_platform.tests.test_mono_view.test_ExecClassifMonoView module</a></li> +<li><a class="reference internal" href="#multiview-platform-tests-test-mono-view-test-monoviewutils-module">multiview_platform.tests.test_mono_view.test_MonoviewUtils module</a></li> +<li><a class="reference internal" href="#module-contents">Module contents</a></li> </ul> </li> </ul> @@ -195,9 +112,6 @@ <li class="right" style="margin-right: 10px"> <a href="../genindex.html" title="General Index" >index</a></li> - <li class="right" > - <a href="../py-modindex.html" title="Python Module Index" - >modules</a> |</li> <li class="right" > <a href="multiview_platform.tests.test_monoview_classifiers.html" title="multiview_platform.tests.test_monoview_classifiers package" >next</a> |</li> diff --git a/docs/build/references/multiview_platform.tests.test_monoview_classifiers.html b/docs/build/references/multiview_platform.tests.test_monoview_classifiers.html index 267618ac..560a3607 100644 --- a/docs/build/references/multiview_platform.tests.test_monoview_classifiers.html +++ b/docs/build/references/multiview_platform.tests.test_monoview_classifiers.html @@ -27,9 +27,6 @@ <li class="right" style="margin-right: 10px"> <a href="../genindex.html" title="General Index" accesskey="I">index</a></li> - <li class="right" > - <a href="../py-modindex.html" title="Python Module Index" - >modules</a> |</li> <li class="right" > <a href="multiview_platform.tests.test_multiview_classifiers.html" title="multiview_platform.tests.test_multiview_classifiers package" accesskey="N">next</a> |</li> @@ -52,14 +49,14 @@ <div class="section" id="submodules"> <h2>Submodules<a class="headerlink" href="#submodules" title="Permalink to this headline">¶</a></h2> </div> -<div class="section" id="module-multiview_platform.tests.test_monoview_classifiers.test_adaboost"> -<span id="multiview-platform-tests-test-monoview-classifiers-test-adaboost-module"></span><h2>multiview_platform.tests.test_monoview_classifiers.test_adaboost module<a class="headerlink" href="#module-multiview_platform.tests.test_monoview_classifiers.test_adaboost" title="Permalink to this headline">¶</a></h2> +<div class="section" id="multiview-platform-tests-test-monoview-classifiers-test-adaboost-module"> +<h2>multiview_platform.tests.test_monoview_classifiers.test_adaboost module<a class="headerlink" href="#multiview-platform-tests-test-monoview-classifiers-test-adaboost-module" title="Permalink to this headline">¶</a></h2> </div> -<div class="section" id="module-multiview_platform.tests.test_monoview_classifiers.test_compatibility"> -<span id="multiview-platform-tests-test-monoview-classifiers-test-compatibility-module"></span><h2>multiview_platform.tests.test_monoview_classifiers.test_compatibility module<a class="headerlink" href="#module-multiview_platform.tests.test_monoview_classifiers.test_compatibility" title="Permalink to this headline">¶</a></h2> +<div class="section" id="multiview-platform-tests-test-monoview-classifiers-test-compatibility-module"> +<h2>multiview_platform.tests.test_monoview_classifiers.test_compatibility module<a class="headerlink" href="#multiview-platform-tests-test-monoview-classifiers-test-compatibility-module" title="Permalink to this headline">¶</a></h2> </div> -<div class="section" id="module-multiview_platform.tests.test_monoview_classifiers"> -<span id="module-contents"></span><h2>Module contents<a class="headerlink" href="#module-multiview_platform.tests.test_monoview_classifiers" title="Permalink to this headline">¶</a></h2> +<div class="section" id="module-contents"> +<h2>Module contents<a class="headerlink" href="#module-contents" title="Permalink to this headline">¶</a></h2> </div> </div> @@ -73,9 +70,9 @@ <ul> <li><a class="reference internal" href="#">multiview_platform.tests.test_monoview_classifiers package</a><ul> <li><a class="reference internal" href="#submodules">Submodules</a></li> -<li><a class="reference internal" href="#module-multiview_platform.tests.test_monoview_classifiers.test_adaboost">multiview_platform.tests.test_monoview_classifiers.test_adaboost module</a></li> -<li><a class="reference internal" href="#module-multiview_platform.tests.test_monoview_classifiers.test_compatibility">multiview_platform.tests.test_monoview_classifiers.test_compatibility module</a></li> -<li><a class="reference internal" href="#module-multiview_platform.tests.test_monoview_classifiers">Module contents</a></li> +<li><a class="reference internal" href="#multiview-platform-tests-test-monoview-classifiers-test-adaboost-module">multiview_platform.tests.test_monoview_classifiers.test_adaboost module</a></li> +<li><a class="reference internal" href="#multiview-platform-tests-test-monoview-classifiers-test-compatibility-module">multiview_platform.tests.test_monoview_classifiers.test_compatibility module</a></li> +<li><a class="reference internal" href="#module-contents">Module contents</a></li> </ul> </li> </ul> @@ -115,9 +112,6 @@ <li class="right" style="margin-right: 10px"> <a href="../genindex.html" title="General Index" >index</a></li> - <li class="right" > - <a href="../py-modindex.html" title="Python Module Index" - >modules</a> |</li> <li class="right" > <a href="multiview_platform.tests.test_multiview_classifiers.html" title="multiview_platform.tests.test_multiview_classifiers package" >next</a> |</li> diff --git a/docs/build/references/multiview_platform.tests.test_multiview_classifiers.Test_DifficultyMeasure.html b/docs/build/references/multiview_platform.tests.test_multiview_classifiers.Test_DifficultyMeasure.html index 8b4625f9..2c461acb 100644 --- a/docs/build/references/multiview_platform.tests.test_multiview_classifiers.Test_DifficultyMeasure.html +++ b/docs/build/references/multiview_platform.tests.test_multiview_classifiers.Test_DifficultyMeasure.html @@ -27,9 +27,6 @@ <li class="right" style="margin-right: 10px"> <a href="../genindex.html" title="General Index" accesskey="I">index</a></li> - <li class="right" > - <a href="../py-modindex.html" title="Python Module Index" - >modules</a> |</li> <li class="right" > <a href="multiview_platform.tests.test_multiview_classifiers.Test_DisagreeFusion.html" title="multiview_platform.tests.test_multiview_classifiers.Test_DisagreeFusion package" accesskey="N">next</a> |</li> @@ -112,9 +109,6 @@ <li class="right" style="margin-right: 10px"> <a href="../genindex.html" title="General Index" >index</a></li> - <li class="right" > - <a href="../py-modindex.html" title="Python Module Index" - >modules</a> |</li> <li class="right" > <a href="multiview_platform.tests.test_multiview_classifiers.Test_DisagreeFusion.html" title="multiview_platform.tests.test_multiview_classifiers.Test_DisagreeFusion package" >next</a> |</li> diff --git a/docs/build/references/multiview_platform.tests.test_multiview_classifiers.Test_DisagreeFusion.html b/docs/build/references/multiview_platform.tests.test_multiview_classifiers.Test_DisagreeFusion.html index e6e938a0..88747905 100644 --- a/docs/build/references/multiview_platform.tests.test_multiview_classifiers.Test_DisagreeFusion.html +++ b/docs/build/references/multiview_platform.tests.test_multiview_classifiers.Test_DisagreeFusion.html @@ -27,9 +27,6 @@ <li class="right" style="margin-right: 10px"> <a href="../genindex.html" title="General Index" accesskey="I">index</a></li> - <li class="right" > - <a href="../py-modindex.html" title="Python Module Index" - >modules</a> |</li> <li class="right" > <a href="multiview_platform.tests.test_multiview_classifiers.Test_DoubleFaultFusion.html" title="multiview_platform.tests.test_multiview_classifiers.Test_DoubleFaultFusion package" accesskey="N">next</a> |</li> @@ -112,9 +109,6 @@ <li class="right" style="margin-right: 10px"> <a href="../genindex.html" title="General Index" >index</a></li> - <li class="right" > - <a href="../py-modindex.html" title="Python Module Index" - >modules</a> |</li> <li class="right" > <a href="multiview_platform.tests.test_multiview_classifiers.Test_DoubleFaultFusion.html" title="multiview_platform.tests.test_multiview_classifiers.Test_DoubleFaultFusion package" >next</a> |</li> diff --git a/docs/build/references/multiview_platform.tests.test_multiview_classifiers.Test_DoubleFaultFusion.html b/docs/build/references/multiview_platform.tests.test_multiview_classifiers.Test_DoubleFaultFusion.html index 08c733c2..8c26579d 100644 --- a/docs/build/references/multiview_platform.tests.test_multiview_classifiers.Test_DoubleFaultFusion.html +++ b/docs/build/references/multiview_platform.tests.test_multiview_classifiers.Test_DoubleFaultFusion.html @@ -27,9 +27,6 @@ <li class="right" style="margin-right: 10px"> <a href="../genindex.html" title="General Index" accesskey="I">index</a></li> - <li class="right" > - <a href="../py-modindex.html" title="Python Module Index" - >modules</a> |</li> <li class="right" > <a href="multiview_platform.tests.test_multiview_classifiers.Test_EntropyFusion.html" title="multiview_platform.tests.test_multiview_classifiers.Test_EntropyFusion package" accesskey="N">next</a> |</li> @@ -112,9 +109,6 @@ <li class="right" style="margin-right: 10px"> <a href="../genindex.html" title="General Index" >index</a></li> - <li class="right" > - <a href="../py-modindex.html" title="Python Module Index" - >modules</a> |</li> <li class="right" > <a href="multiview_platform.tests.test_multiview_classifiers.Test_EntropyFusion.html" title="multiview_platform.tests.test_multiview_classifiers.Test_EntropyFusion package" >next</a> |</li> diff --git a/docs/build/references/multiview_platform.tests.test_multiview_classifiers.Test_EntropyFusion.html b/docs/build/references/multiview_platform.tests.test_multiview_classifiers.Test_EntropyFusion.html index 6c5942c7..a88f1019 100644 --- a/docs/build/references/multiview_platform.tests.test_multiview_classifiers.Test_EntropyFusion.html +++ b/docs/build/references/multiview_platform.tests.test_multiview_classifiers.Test_EntropyFusion.html @@ -27,9 +27,6 @@ <li class="right" style="margin-right: 10px"> <a href="../genindex.html" title="General Index" accesskey="I">index</a></li> - <li class="right" > - <a href="../py-modindex.html" title="Python Module Index" - >modules</a> |</li> <li class="right" > <a href="multiview_platform.tests.test_multiview_classifiers.Test_Fusion.html" title="multiview_platform.tests.test_multiview_classifiers.Test_Fusion package" accesskey="N">next</a> |</li> @@ -112,9 +109,6 @@ <li class="right" style="margin-right: 10px"> <a href="../genindex.html" title="General Index" >index</a></li> - <li class="right" > - <a href="../py-modindex.html" title="Python Module Index" - >modules</a> |</li> <li class="right" > <a href="multiview_platform.tests.test_multiview_classifiers.Test_Fusion.html" title="multiview_platform.tests.test_multiview_classifiers.Test_Fusion package" >next</a> |</li> diff --git a/docs/build/references/multiview_platform.tests.test_multiview_classifiers.Test_Fusion.html b/docs/build/references/multiview_platform.tests.test_multiview_classifiers.Test_Fusion.html index 99697078..899b6efc 100644 --- a/docs/build/references/multiview_platform.tests.test_multiview_classifiers.Test_Fusion.html +++ b/docs/build/references/multiview_platform.tests.test_multiview_classifiers.Test_Fusion.html @@ -27,9 +27,6 @@ <li class="right" style="margin-right: 10px"> <a href="../genindex.html" title="General Index" accesskey="I">index</a></li> - <li class="right" > - <a href="../py-modindex.html" title="Python Module Index" - >modules</a> |</li> <li class="right" > <a href="multiview_platform.tests.test_multiview_classifiers.Test_PseudoCQMeasure.html" title="multiview_platform.tests.test_multiview_classifiers.Test_PseudoCQMeasure package" accesskey="N">next</a> |</li> @@ -118,9 +115,6 @@ <li class="right" style="margin-right: 10px"> <a href="../genindex.html" title="General Index" >index</a></li> - <li class="right" > - <a href="../py-modindex.html" title="Python Module Index" - >modules</a> |</li> <li class="right" > <a href="multiview_platform.tests.test_multiview_classifiers.Test_PseudoCQMeasure.html" title="multiview_platform.tests.test_multiview_classifiers.Test_PseudoCQMeasure package" >next</a> |</li> diff --git a/docs/build/references/multiview_platform.tests.test_multiview_classifiers.Test_PseudoCQMeasure.html b/docs/build/references/multiview_platform.tests.test_multiview_classifiers.Test_PseudoCQMeasure.html index 8c5b9d70..41a8e5ab 100644 --- a/docs/build/references/multiview_platform.tests.test_multiview_classifiers.Test_PseudoCQMeasure.html +++ b/docs/build/references/multiview_platform.tests.test_multiview_classifiers.Test_PseudoCQMeasure.html @@ -27,9 +27,6 @@ <li class="right" style="margin-right: 10px"> <a href="../genindex.html" title="General Index" accesskey="I">index</a></li> - <li class="right" > - <a href="../py-modindex.html" title="Python Module Index" - >modules</a> |</li> <li class="right" > <a href="multiview_platform.tests.test_utils.html" title="multiview_platform.tests.test_utils package" accesskey="N">next</a> |</li> @@ -53,11 +50,11 @@ <div class="section" id="submodules"> <h2>Submodules<a class="headerlink" href="#submodules" title="Permalink to this headline">¶</a></h2> </div> -<div class="section" id="module-multiview_platform.tests.test_multiview_classifiers.Test_PseudoCQMeasure.test_PseudoCQFusionModule"> -<span id="multiview-platform-tests-test-multiview-classifiers-test-pseudocqmeasure-test-pseudocqfusionmodule-module"></span><h2>multiview_platform.tests.test_multiview_classifiers.Test_PseudoCQMeasure.test_PseudoCQFusionModule module<a class="headerlink" href="#module-multiview_platform.tests.test_multiview_classifiers.Test_PseudoCQMeasure.test_PseudoCQFusionModule" title="Permalink to this headline">¶</a></h2> +<div class="section" id="multiview-platform-tests-test-multiview-classifiers-test-pseudocqmeasure-test-pseudocqfusionmodule-module"> +<h2>multiview_platform.tests.test_multiview_classifiers.Test_PseudoCQMeasure.test_PseudoCQFusionModule module<a class="headerlink" href="#multiview-platform-tests-test-multiview-classifiers-test-pseudocqmeasure-test-pseudocqfusionmodule-module" title="Permalink to this headline">¶</a></h2> </div> -<div class="section" id="module-multiview_platform.tests.test_multiview_classifiers.Test_PseudoCQMeasure"> -<span id="module-contents"></span><h2>Module contents<a class="headerlink" href="#module-multiview_platform.tests.test_multiview_classifiers.Test_PseudoCQMeasure" title="Permalink to this headline">¶</a></h2> +<div class="section" id="module-contents"> +<h2>Module contents<a class="headerlink" href="#module-contents" title="Permalink to this headline">¶</a></h2> </div> </div> @@ -71,8 +68,8 @@ <ul> <li><a class="reference internal" href="#">multiview_platform.tests.test_multiview_classifiers.Test_PseudoCQMeasure package</a><ul> <li><a class="reference internal" href="#submodules">Submodules</a></li> -<li><a class="reference internal" href="#module-multiview_platform.tests.test_multiview_classifiers.Test_PseudoCQMeasure.test_PseudoCQFusionModule">multiview_platform.tests.test_multiview_classifiers.Test_PseudoCQMeasure.test_PseudoCQFusionModule module</a></li> -<li><a class="reference internal" href="#module-multiview_platform.tests.test_multiview_classifiers.Test_PseudoCQMeasure">Module contents</a></li> +<li><a class="reference internal" href="#multiview-platform-tests-test-multiview-classifiers-test-pseudocqmeasure-test-pseudocqfusionmodule-module">multiview_platform.tests.test_multiview_classifiers.Test_PseudoCQMeasure.test_PseudoCQFusionModule module</a></li> +<li><a class="reference internal" href="#module-contents">Module contents</a></li> </ul> </li> </ul> @@ -112,9 +109,6 @@ <li class="right" style="margin-right: 10px"> <a href="../genindex.html" title="General Index" >index</a></li> - <li class="right" > - <a href="../py-modindex.html" title="Python Module Index" - >modules</a> |</li> <li class="right" > <a href="multiview_platform.tests.test_utils.html" title="multiview_platform.tests.test_utils package" >next</a> |</li> diff --git a/docs/build/references/multiview_platform.tests.test_multiview_classifiers.html b/docs/build/references/multiview_platform.tests.test_multiview_classifiers.html index 039cf045..e98c4f88 100644 --- a/docs/build/references/multiview_platform.tests.test_multiview_classifiers.html +++ b/docs/build/references/multiview_platform.tests.test_multiview_classifiers.html @@ -27,9 +27,6 @@ <li class="right" style="margin-right: 10px"> <a href="../genindex.html" title="General Index" accesskey="I">index</a></li> - <li class="right" > - <a href="../py-modindex.html" title="Python Module Index" - >modules</a> |</li> <li class="right" > <a href="multiview_platform.tests.test_multiview_classifiers.Test_DifficultyMeasure.html" title="multiview_platform.tests.test_multiview_classifiers.Test_DifficultyMeasure package" accesskey="N">next</a> |</li> @@ -88,8 +85,8 @@ </li> <li class="toctree-l1"><a class="reference internal" href="multiview_platform.tests.test_multiview_classifiers.Test_PseudoCQMeasure.html">multiview_platform.tests.test_multiview_classifiers.Test_PseudoCQMeasure package</a><ul> <li class="toctree-l2"><a class="reference internal" href="multiview_platform.tests.test_multiview_classifiers.Test_PseudoCQMeasure.html#submodules">Submodules</a></li> -<li class="toctree-l2"><a class="reference internal" href="multiview_platform.tests.test_multiview_classifiers.Test_PseudoCQMeasure.html#module-multiview_platform.tests.test_multiview_classifiers.Test_PseudoCQMeasure.test_PseudoCQFusionModule">multiview_platform.tests.test_multiview_classifiers.Test_PseudoCQMeasure.test_PseudoCQFusionModule module</a></li> -<li class="toctree-l2"><a class="reference internal" href="multiview_platform.tests.test_multiview_classifiers.Test_PseudoCQMeasure.html#module-multiview_platform.tests.test_multiview_classifiers.Test_PseudoCQMeasure">Module contents</a></li> +<li class="toctree-l2"><a class="reference internal" href="multiview_platform.tests.test_multiview_classifiers.Test_PseudoCQMeasure.html#multiview-platform-tests-test-multiview-classifiers-test-pseudocqmeasure-test-pseudocqfusionmodule-module">multiview_platform.tests.test_multiview_classifiers.Test_PseudoCQMeasure.test_PseudoCQFusionModule module</a></li> +<li class="toctree-l2"><a class="reference internal" href="multiview_platform.tests.test_multiview_classifiers.Test_PseudoCQMeasure.html#module-contents">Module contents</a></li> </ul> </li> </ul> @@ -98,11 +95,11 @@ <div class="section" id="submodules"> <h2>Submodules<a class="headerlink" href="#submodules" title="Permalink to this headline">¶</a></h2> </div> -<div class="section" id="module-multiview_platform.tests.test_multiview_classifiers.test_diversity_utils"> -<span id="multiview-platform-tests-test-multiview-classifiers-test-diversity-utils-module"></span><h2>multiview_platform.tests.test_multiview_classifiers.test_diversity_utils module<a class="headerlink" href="#module-multiview_platform.tests.test_multiview_classifiers.test_diversity_utils" title="Permalink to this headline">¶</a></h2> +<div class="section" id="multiview-platform-tests-test-multiview-classifiers-test-diversity-utils-module"> +<h2>multiview_platform.tests.test_multiview_classifiers.test_diversity_utils module<a class="headerlink" href="#multiview-platform-tests-test-multiview-classifiers-test-diversity-utils-module" title="Permalink to this headline">¶</a></h2> </div> -<div class="section" id="module-multiview_platform.tests.test_multiview_classifiers"> -<span id="module-contents"></span><h2>Module contents<a class="headerlink" href="#module-multiview_platform.tests.test_multiview_classifiers" title="Permalink to this headline">¶</a></h2> +<div class="section" id="module-contents"> +<h2>Module contents<a class="headerlink" href="#module-contents" title="Permalink to this headline">¶</a></h2> </div> </div> @@ -117,8 +114,8 @@ <li><a class="reference internal" href="#">multiview_platform.tests.test_multiview_classifiers package</a><ul> <li><a class="reference internal" href="#subpackages">Subpackages</a></li> <li><a class="reference internal" href="#submodules">Submodules</a></li> -<li><a class="reference internal" href="#module-multiview_platform.tests.test_multiview_classifiers.test_diversity_utils">multiview_platform.tests.test_multiview_classifiers.test_diversity_utils module</a></li> -<li><a class="reference internal" href="#module-multiview_platform.tests.test_multiview_classifiers">Module contents</a></li> +<li><a class="reference internal" href="#multiview-platform-tests-test-multiview-classifiers-test-diversity-utils-module">multiview_platform.tests.test_multiview_classifiers.test_diversity_utils module</a></li> +<li><a class="reference internal" href="#module-contents">Module contents</a></li> </ul> </li> </ul> @@ -158,9 +155,6 @@ <li class="right" style="margin-right: 10px"> <a href="../genindex.html" title="General Index" >index</a></li> - <li class="right" > - <a href="../py-modindex.html" title="Python Module Index" - >modules</a> |</li> <li class="right" > <a href="multiview_platform.tests.test_multiview_classifiers.Test_DifficultyMeasure.html" title="multiview_platform.tests.test_multiview_classifiers.Test_DifficultyMeasure package" >next</a> |</li> diff --git a/docs/build/references/multiview_platform.tests.test_utils.html b/docs/build/references/multiview_platform.tests.test_utils.html index fe1bd445..6d13f1aa 100644 --- a/docs/build/references/multiview_platform.tests.test_utils.html +++ b/docs/build/references/multiview_platform.tests.test_utils.html @@ -26,9 +26,6 @@ <li class="right" style="margin-right: 10px"> <a href="../genindex.html" title="General Index" accesskey="I">index</a></li> - <li class="right" > - <a href="../py-modindex.html" title="Python Module Index" - >modules</a> |</li> <li class="right" > <a href="multiview_platform.tests.test_multiview_classifiers.Test_PseudoCQMeasure.html" title="multiview_platform.tests.test_multiview_classifiers.Test_PseudoCQMeasure package" accesskey="P">previous</a> |</li> @@ -48,327 +45,20 @@ <div class="section" id="submodules"> <h2>Submodules<a class="headerlink" href="#submodules" title="Permalink to this headline">¶</a></h2> </div> -<div class="section" id="module-multiview_platform.tests.test_utils.test_GetMultiviewDB"> -<span id="multiview-platform-tests-test-utils-test-getmultiviewdb-module"></span><h2>multiview_platform.tests.test_utils.test_GetMultiviewDB module<a class="headerlink" href="#module-multiview_platform.tests.test_utils.test_GetMultiviewDB" title="Permalink to this headline">¶</a></h2> -<dl class="class"> -<dt id="multiview_platform.tests.test_utils.test_GetMultiviewDB.Test_get_classic_db_csv"> -<em class="property">class </em><code class="descname">Test_get_classic_db_csv</code><span class="sig-paren">(</span><em>methodName='runTest'</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_utils.test_GetMultiviewDB.Test_get_classic_db_csv" title="Permalink to this definition">¶</a></dt> -<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">unittest.case.TestCase</span></code></p> -<dl class="method"> -<dt id="multiview_platform.tests.test_utils.test_GetMultiviewDB.Test_get_classic_db_csv.setUp"> -<code class="descname">setUp</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_utils.test_GetMultiviewDB.Test_get_classic_db_csv.setUp" title="Permalink to this definition">¶</a></dt> -<dd><p>Hook method for setting up the test fixture before exercising it.</p> -</dd></dl> - -<dl class="classmethod"> -<dt id="multiview_platform.tests.test_utils.test_GetMultiviewDB.Test_get_classic_db_csv.tearDown"> -<em class="property">classmethod </em><code class="descname">tearDown</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_utils.test_GetMultiviewDB.Test_get_classic_db_csv.tearDown" title="Permalink to this definition">¶</a></dt> -<dd><p>Hook method for deconstructing the test fixture after testing it.</p> -</dd></dl> - -<dl class="method"> -<dt id="multiview_platform.tests.test_utils.test_GetMultiviewDB.Test_get_classic_db_csv.test_simple"> -<code class="descname">test_simple</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_utils.test_GetMultiviewDB.Test_get_classic_db_csv.test_simple" title="Permalink to this definition">¶</a></dt> -<dd></dd></dl> - -</dd></dl> - -<dl class="class"> -<dt id="multiview_platform.tests.test_utils.test_GetMultiviewDB.Test_get_classic_db_hdf5"> -<em class="property">class </em><code class="descname">Test_get_classic_db_hdf5</code><span class="sig-paren">(</span><em>methodName='runTest'</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_utils.test_GetMultiviewDB.Test_get_classic_db_hdf5" title="Permalink to this definition">¶</a></dt> -<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">unittest.case.TestCase</span></code></p> -<dl class="method"> -<dt id="multiview_platform.tests.test_utils.test_GetMultiviewDB.Test_get_classic_db_hdf5.setUp"> -<code class="descname">setUp</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_utils.test_GetMultiviewDB.Test_get_classic_db_hdf5.setUp" title="Permalink to this definition">¶</a></dt> -<dd><p>Hook method for setting up the test fixture before exercising it.</p> -</dd></dl> - -<dl class="method"> -<dt id="multiview_platform.tests.test_utils.test_GetMultiviewDB.Test_get_classic_db_hdf5.tearDown"> -<code class="descname">tearDown</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_utils.test_GetMultiviewDB.Test_get_classic_db_hdf5.tearDown" title="Permalink to this definition">¶</a></dt> -<dd><p>Hook method for deconstructing the test fixture after testing it.</p> -</dd></dl> - -<dl class="method"> -<dt id="multiview_platform.tests.test_utils.test_GetMultiviewDB.Test_get_classic_db_hdf5.test_all_views_asked"> -<code class="descname">test_all_views_asked</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_utils.test_GetMultiviewDB.Test_get_classic_db_hdf5.test_all_views_asked" title="Permalink to this definition">¶</a></dt> -<dd></dd></dl> - -<dl class="method"> -<dt id="multiview_platform.tests.test_utils.test_GetMultiviewDB.Test_get_classic_db_hdf5.test_asked_the_whole_dataset"> -<code class="descname">test_asked_the_whole_dataset</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_utils.test_GetMultiviewDB.Test_get_classic_db_hdf5.test_asked_the_whole_dataset" title="Permalink to this definition">¶</a></dt> -<dd></dd></dl> - -<dl class="method"> -<dt id="multiview_platform.tests.test_utils.test_GetMultiviewDB.Test_get_classic_db_hdf5.test_simple"> -<code class="descname">test_simple</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_utils.test_GetMultiviewDB.Test_get_classic_db_hdf5.test_simple" title="Permalink to this definition">¶</a></dt> -<dd></dd></dl> - -</dd></dl> - -<dl class="class"> -<dt id="multiview_platform.tests.test_utils.test_GetMultiviewDB.Test_get_plausible_db_hdf5"> -<em class="property">class </em><code class="descname">Test_get_plausible_db_hdf5</code><span class="sig-paren">(</span><em>methodName='runTest'</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_utils.test_GetMultiviewDB.Test_get_plausible_db_hdf5" title="Permalink to this definition">¶</a></dt> -<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">unittest.case.TestCase</span></code></p> -<dl class="classmethod"> -<dt id="multiview_platform.tests.test_utils.test_GetMultiviewDB.Test_get_plausible_db_hdf5.setUpClass"> -<em class="property">classmethod </em><code class="descname">setUpClass</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_utils.test_GetMultiviewDB.Test_get_plausible_db_hdf5.setUpClass" title="Permalink to this definition">¶</a></dt> -<dd><p>Hook method for setting up class fixture before running tests in the class.</p> -</dd></dl> - -<dl class="classmethod"> -<dt id="multiview_platform.tests.test_utils.test_GetMultiviewDB.Test_get_plausible_db_hdf5.tearDownClass"> -<em class="property">classmethod </em><code class="descname">tearDownClass</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_utils.test_GetMultiviewDB.Test_get_plausible_db_hdf5.tearDownClass" title="Permalink to this definition">¶</a></dt> -<dd><p>Hook method for deconstructing the class fixture after running all tests in the class.</p> -</dd></dl> - -<dl class="method"> -<dt id="multiview_platform.tests.test_utils.test_GetMultiviewDB.Test_get_plausible_db_hdf5.test_simple"> -<code class="descname">test_simple</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_utils.test_GetMultiviewDB.Test_get_plausible_db_hdf5.test_simple" title="Permalink to this definition">¶</a></dt> -<dd></dd></dl> - -<dl class="method"> -<dt id="multiview_platform.tests.test_utils.test_GetMultiviewDB.Test_get_plausible_db_hdf5.test_two_class"> -<code class="descname">test_two_class</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_utils.test_GetMultiviewDB.Test_get_plausible_db_hdf5.test_two_class" title="Permalink to this definition">¶</a></dt> -<dd></dd></dl> - -</dd></dl> - +<div class="section" id="multiview-platform-tests-test-utils-test-getmultiviewdb-module"> +<h2>multiview_platform.tests.test_utils.test_GetMultiviewDB module<a class="headerlink" href="#multiview-platform-tests-test-utils-test-getmultiviewdb-module" title="Permalink to this headline">¶</a></h2> </div> -<div class="section" id="module-multiview_platform.tests.test_utils.test_configuration"> -<span id="multiview-platform-tests-test-utils-test-configuration-module"></span><h2>multiview_platform.tests.test_utils.test_configuration module<a class="headerlink" href="#module-multiview_platform.tests.test_utils.test_configuration" title="Permalink to this headline">¶</a></h2> -<dl class="class"> -<dt id="multiview_platform.tests.test_utils.test_configuration.Test_get_the_args"> -<em class="property">class </em><code class="descname">Test_get_the_args</code><span class="sig-paren">(</span><em>methodName='runTest'</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_utils.test_configuration.Test_get_the_args" title="Permalink to this definition">¶</a></dt> -<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">unittest.case.TestCase</span></code></p> -<dl class="classmethod"> -<dt id="multiview_platform.tests.test_utils.test_configuration.Test_get_the_args.setUpClass"> -<em class="property">classmethod </em><code class="descname">setUpClass</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_utils.test_configuration.Test_get_the_args.setUpClass" title="Permalink to this definition">¶</a></dt> -<dd><p>Hook method for setting up class fixture before running tests in the class.</p> -</dd></dl> - -<dl class="classmethod"> -<dt id="multiview_platform.tests.test_utils.test_configuration.Test_get_the_args.tearDownClass"> -<em class="property">classmethod </em><code class="descname">tearDownClass</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_utils.test_configuration.Test_get_the_args.tearDownClass" title="Permalink to this definition">¶</a></dt> -<dd><p>Hook method for deconstructing the class fixture after running all tests in the class.</p> -</dd></dl> - -<dl class="method"> -<dt id="multiview_platform.tests.test_utils.test_configuration.Test_get_the_args.test_arguments"> -<code class="descname">test_arguments</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_utils.test_configuration.Test_get_the_args.test_arguments" title="Permalink to this definition">¶</a></dt> -<dd></dd></dl> - -<dl class="method"> -<dt id="multiview_platform.tests.test_utils.test_configuration.Test_get_the_args.test_dict_format"> -<code class="descname">test_dict_format</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_utils.test_configuration.Test_get_the_args.test_dict_format" title="Permalink to this definition">¶</a></dt> -<dd></dd></dl> - -<dl class="method"> -<dt id="multiview_platform.tests.test_utils.test_configuration.Test_get_the_args.test_file_loading"> -<code class="descname">test_file_loading</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_utils.test_configuration.Test_get_the_args.test_file_loading" title="Permalink to this definition">¶</a></dt> -<dd></dd></dl> - -</dd></dl> - +<div class="section" id="multiview-platform-tests-test-utils-test-configuration-module"> +<h2>multiview_platform.tests.test_utils.test_configuration module<a class="headerlink" href="#multiview-platform-tests-test-utils-test-configuration-module" title="Permalink to this headline">¶</a></h2> </div> -<div class="section" id="module-multiview_platform.tests.test_utils.test_execution"> -<span id="multiview-platform-tests-test-utils-test-execution-module"></span><h2>multiview_platform.tests.test_utils.test_execution module<a class="headerlink" href="#module-multiview_platform.tests.test_utils.test_execution" title="Permalink to this headline">¶</a></h2> -<dl class="class"> -<dt id="multiview_platform.tests.test_utils.test_execution.FakeArg"> -<em class="property">class </em><code class="descname">FakeArg</code><a class="headerlink" href="#multiview_platform.tests.test_utils.test_execution.FakeArg" title="Permalink to this definition">¶</a></dt> -<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p> -</dd></dl> - -<dl class="class"> -<dt id="multiview_platform.tests.test_utils.test_execution.Test_genArgumentDictionaries"> -<em class="property">class </em><code class="descname">Test_genArgumentDictionaries</code><span class="sig-paren">(</span><em>methodName='runTest'</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_utils.test_execution.Test_genArgumentDictionaries" title="Permalink to this definition">¶</a></dt> -<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">unittest.case.TestCase</span></code></p> -<dl class="classmethod"> -<dt id="multiview_platform.tests.test_utils.test_execution.Test_genArgumentDictionaries.setUpClass"> -<em class="property">classmethod </em><code class="descname">setUpClass</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_utils.test_execution.Test_genArgumentDictionaries.setUpClass" title="Permalink to this definition">¶</a></dt> -<dd><p>Hook method for setting up class fixture before running tests in the class.</p> -</dd></dl> - -</dd></dl> - -<dl class="class"> -<dt id="multiview_platform.tests.test_utils.test_execution.Test_genDirecortiesNames"> -<em class="property">class </em><code class="descname">Test_genDirecortiesNames</code><span class="sig-paren">(</span><em>methodName='runTest'</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_utils.test_execution.Test_genDirecortiesNames" title="Permalink to this definition">¶</a></dt> -<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">unittest.case.TestCase</span></code></p> -<dl class="classmethod"> -<dt id="multiview_platform.tests.test_utils.test_execution.Test_genDirecortiesNames.setUpClass"> -<em class="property">classmethod </em><code class="descname">setUpClass</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_utils.test_execution.Test_genDirecortiesNames.setUpClass" title="Permalink to this definition">¶</a></dt> -<dd><p>Hook method for setting up class fixture before running tests in the class.</p> -</dd></dl> - -<dl class="method"> -<dt id="multiview_platform.tests.test_utils.test_execution.Test_genDirecortiesNames.test_ovo_no_iter"> -<code class="descname">test_ovo_no_iter</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_utils.test_execution.Test_genDirecortiesNames.test_ovo_no_iter" title="Permalink to this definition">¶</a></dt> -<dd></dd></dl> - -<dl class="method"> -<dt id="multiview_platform.tests.test_utils.test_execution.Test_genDirecortiesNames.test_simple_ovo"> -<code class="descname">test_simple_ovo</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_utils.test_execution.Test_genDirecortiesNames.test_simple_ovo" title="Permalink to this definition">¶</a></dt> -<dd></dd></dl> - -</dd></dl> - -<dl class="class"> -<dt id="multiview_platform.tests.test_utils.test_execution.Test_genKFolds"> -<em class="property">class </em><code class="descname">Test_genKFolds</code><span class="sig-paren">(</span><em>methodName='runTest'</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_utils.test_execution.Test_genKFolds" title="Permalink to this definition">¶</a></dt> -<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">unittest.case.TestCase</span></code></p> -<dl class="method"> -<dt id="multiview_platform.tests.test_utils.test_execution.Test_genKFolds.setUp"> -<code class="descname">setUp</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_utils.test_execution.Test_genKFolds.setUp" title="Permalink to this definition">¶</a></dt> -<dd><p>Hook method for setting up the test fixture before exercising it.</p> -</dd></dl> - -<dl class="method"> -<dt id="multiview_platform.tests.test_utils.test_execution.Test_genKFolds.test_genKFolds_iter"> -<code class="descname">test_genKFolds_iter</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_utils.test_execution.Test_genKFolds.test_genKFolds_iter" title="Permalink to this definition">¶</a></dt> -<dd></dd></dl> - -</dd></dl> - -<dl class="class"> -<dt id="multiview_platform.tests.test_utils.test_execution.Test_genSplits"> -<em class="property">class </em><code class="descname">Test_genSplits</code><span class="sig-paren">(</span><em>methodName='runTest'</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_utils.test_execution.Test_genSplits" title="Permalink to this definition">¶</a></dt> -<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">unittest.case.TestCase</span></code></p> -<dl class="method"> -<dt id="multiview_platform.tests.test_utils.test_execution.Test_genSplits.setUp"> -<code class="descname">setUp</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_utils.test_execution.Test_genSplits.setUp" title="Permalink to this definition">¶</a></dt> -<dd><p>Hook method for setting up the test fixture before exercising it.</p> -</dd></dl> - -<dl class="method"> -<dt id="multiview_platform.tests.test_utils.test_execution.Test_genSplits.test_genSplits_no_iter"> -<code class="descname">test_genSplits_no_iter</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_utils.test_execution.Test_genSplits.test_genSplits_no_iter" title="Permalink to this definition">¶</a></dt> -<dd></dd></dl> - -<dl class="method"> -<dt id="multiview_platform.tests.test_utils.test_execution.Test_genSplits.test_simple"> -<code class="descname">test_simple</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_utils.test_execution.Test_genSplits.test_simple" title="Permalink to this definition">¶</a></dt> -<dd></dd></dl> - -</dd></dl> - -<dl class="class"> -<dt id="multiview_platform.tests.test_utils.test_execution.Test_getDatabaseFunction"> -<em class="property">class </em><code class="descname">Test_getDatabaseFunction</code><span class="sig-paren">(</span><em>methodName='runTest'</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_utils.test_execution.Test_getDatabaseFunction" title="Permalink to this definition">¶</a></dt> -<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">unittest.case.TestCase</span></code></p> -<dl class="classmethod"> -<dt id="multiview_platform.tests.test_utils.test_execution.Test_getDatabaseFunction.setUpClass"> -<em class="property">classmethod </em><code class="descname">setUpClass</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_utils.test_execution.Test_getDatabaseFunction.setUpClass" title="Permalink to this definition">¶</a></dt> -<dd><p>Hook method for setting up class fixture before running tests in the class.</p> -</dd></dl> - -<dl class="method"> -<dt id="multiview_platform.tests.test_utils.test_execution.Test_getDatabaseFunction.test_hdf5"> -<code class="descname">test_hdf5</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_utils.test_execution.Test_getDatabaseFunction.test_hdf5" title="Permalink to this definition">¶</a></dt> -<dd></dd></dl> - -<dl class="method"> -<dt id="multiview_platform.tests.test_utils.test_execution.Test_getDatabaseFunction.test_plausible_hdf5"> -<code class="descname">test_plausible_hdf5</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_utils.test_execution.Test_getDatabaseFunction.test_plausible_hdf5" title="Permalink to this definition">¶</a></dt> -<dd></dd></dl> - -<dl class="method"> -<dt id="multiview_platform.tests.test_utils.test_execution.Test_getDatabaseFunction.test_simple"> -<code class="descname">test_simple</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_utils.test_execution.Test_getDatabaseFunction.test_simple" title="Permalink to this definition">¶</a></dt> -<dd></dd></dl> - -</dd></dl> - -<dl class="class"> -<dt id="multiview_platform.tests.test_utils.test_execution.Test_initRandomState"> -<em class="property">class </em><code class="descname">Test_initRandomState</code><span class="sig-paren">(</span><em>methodName='runTest'</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_utils.test_execution.Test_initRandomState" title="Permalink to this definition">¶</a></dt> -<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">unittest.case.TestCase</span></code></p> -<dl class="method"> -<dt id="multiview_platform.tests.test_utils.test_execution.Test_initRandomState.setUp"> -<code class="descname">setUp</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_utils.test_execution.Test_initRandomState.setUp" title="Permalink to this definition">¶</a></dt> -<dd><p>Hook method for setting up the test fixture before exercising it.</p> -</dd></dl> - -<dl class="method"> -<dt id="multiview_platform.tests.test_utils.test_execution.Test_initRandomState.tearDown"> -<code class="descname">tearDown</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_utils.test_execution.Test_initRandomState.tearDown" title="Permalink to this definition">¶</a></dt> -<dd><p>Hook method for deconstructing the test fixture after testing it.</p> -</dd></dl> - -<dl class="method"> -<dt id="multiview_platform.tests.test_utils.test_execution.Test_initRandomState.test_random_state_42"> -<code class="descname">test_random_state_42</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_utils.test_execution.Test_initRandomState.test_random_state_42" title="Permalink to this definition">¶</a></dt> -<dd></dd></dl> - -<dl class="method"> -<dt id="multiview_platform.tests.test_utils.test_execution.Test_initRandomState.test_random_state_pickle"> -<code class="descname">test_random_state_pickle</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_utils.test_execution.Test_initRandomState.test_random_state_pickle" title="Permalink to this definition">¶</a></dt> -<dd></dd></dl> - -</dd></dl> - -<dl class="class"> -<dt id="multiview_platform.tests.test_utils.test_execution.Test_initStatsIterRandomStates"> -<em class="property">class </em><code class="descname">Test_initStatsIterRandomStates</code><span class="sig-paren">(</span><em>methodName='runTest'</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_utils.test_execution.Test_initStatsIterRandomStates" title="Permalink to this definition">¶</a></dt> -<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">unittest.case.TestCase</span></code></p> -<dl class="classmethod"> -<dt id="multiview_platform.tests.test_utils.test_execution.Test_initStatsIterRandomStates.setUpClass"> -<em class="property">classmethod </em><code class="descname">setUpClass</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_utils.test_execution.Test_initStatsIterRandomStates.setUpClass" title="Permalink to this definition">¶</a></dt> -<dd><p>Hook method for setting up class fixture before running tests in the class.</p> -</dd></dl> - -<dl class="method"> -<dt id="multiview_platform.tests.test_utils.test_execution.Test_initStatsIterRandomStates.test_multiple_iter"> -<code class="descname">test_multiple_iter</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_utils.test_execution.Test_initStatsIterRandomStates.test_multiple_iter" title="Permalink to this definition">¶</a></dt> -<dd></dd></dl> - -<dl class="method"> -<dt id="multiview_platform.tests.test_utils.test_execution.Test_initStatsIterRandomStates.test_one_statiter"> -<code class="descname">test_one_statiter</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_utils.test_execution.Test_initStatsIterRandomStates.test_one_statiter" title="Permalink to this definition">¶</a></dt> -<dd></dd></dl> - -</dd></dl> - -<dl class="class"> -<dt id="multiview_platform.tests.test_utils.test_execution.Test_parseTheArgs"> -<em class="property">class </em><code class="descname">Test_parseTheArgs</code><span class="sig-paren">(</span><em>methodName='runTest'</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_utils.test_execution.Test_parseTheArgs" title="Permalink to this definition">¶</a></dt> -<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">unittest.case.TestCase</span></code></p> -<dl class="method"> -<dt id="multiview_platform.tests.test_utils.test_execution.Test_parseTheArgs.setUp"> -<code class="descname">setUp</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_utils.test_execution.Test_parseTheArgs.setUp" title="Permalink to this definition">¶</a></dt> -<dd><p>Hook method for setting up the test fixture before exercising it.</p> -</dd></dl> - -<dl class="method"> -<dt id="multiview_platform.tests.test_utils.test_execution.Test_parseTheArgs.test_empty_args"> -<code class="descname">test_empty_args</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_utils.test_execution.Test_parseTheArgs.test_empty_args" title="Permalink to this definition">¶</a></dt> -<dd></dd></dl> - -</dd></dl> - +<div class="section" id="multiview-platform-tests-test-utils-test-execution-module"> +<h2>multiview_platform.tests.test_utils.test_execution module<a class="headerlink" href="#multiview-platform-tests-test-utils-test-execution-module" title="Permalink to this headline">¶</a></h2> </div> -<div class="section" id="module-multiview_platform.tests.test_utils.test_multiclass"> -<span id="multiview-platform-tests-test-utils-test-multiclass-module"></span><h2>multiview_platform.tests.test_utils.test_multiclass module<a class="headerlink" href="#module-multiview_platform.tests.test_utils.test_multiclass" title="Permalink to this headline">¶</a></h2> -<dl class="class"> -<dt id="multiview_platform.tests.test_utils.test_multiclass.Test_genMulticlassLabels"> -<em class="property">class </em><code class="descname">Test_genMulticlassLabels</code><span class="sig-paren">(</span><em>methodName='runTest'</em><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_utils.test_multiclass.Test_genMulticlassLabels" title="Permalink to this definition">¶</a></dt> -<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">unittest.case.TestCase</span></code></p> -<dl class="classmethod"> -<dt id="multiview_platform.tests.test_utils.test_multiclass.Test_genMulticlassLabels.setUpClass"> -<em class="property">classmethod </em><code class="descname">setUpClass</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_utils.test_multiclass.Test_genMulticlassLabels.setUpClass" title="Permalink to this definition">¶</a></dt> -<dd><p>Hook method for setting up class fixture before running tests in the class.</p> -</dd></dl> - -<dl class="method"> -<dt id="multiview_platform.tests.test_utils.test_multiclass.Test_genMulticlassLabels.test_one_versus_one"> -<code class="descname">test_one_versus_one</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#multiview_platform.tests.test_utils.test_multiclass.Test_genMulticlassLabels.test_one_versus_one" title="Permalink to this definition">¶</a></dt> -<dd></dd></dl> - -</dd></dl> - +<div class="section" id="multiview-platform-tests-test-utils-test-multiclass-module"> +<h2>multiview_platform.tests.test_utils.test_multiclass module<a class="headerlink" href="#multiview-platform-tests-test-utils-test-multiclass-module" title="Permalink to this headline">¶</a></h2> </div> -<div class="section" id="module-multiview_platform.tests.test_utils"> -<span id="module-contents"></span><h2>Module contents<a class="headerlink" href="#module-multiview_platform.tests.test_utils" title="Permalink to this headline">¶</a></h2> +<div class="section" id="module-contents"> +<h2>Module contents<a class="headerlink" href="#module-contents" title="Permalink to this headline">¶</a></h2> </div> </div> @@ -382,11 +72,11 @@ <ul> <li><a class="reference internal" href="#">multiview_platform.tests.test_utils package</a><ul> <li><a class="reference internal" href="#submodules">Submodules</a></li> -<li><a class="reference internal" href="#module-multiview_platform.tests.test_utils.test_GetMultiviewDB">multiview_platform.tests.test_utils.test_GetMultiviewDB module</a></li> -<li><a class="reference internal" href="#module-multiview_platform.tests.test_utils.test_configuration">multiview_platform.tests.test_utils.test_configuration module</a></li> -<li><a class="reference internal" href="#module-multiview_platform.tests.test_utils.test_execution">multiview_platform.tests.test_utils.test_execution module</a></li> -<li><a class="reference internal" href="#module-multiview_platform.tests.test_utils.test_multiclass">multiview_platform.tests.test_utils.test_multiclass module</a></li> -<li><a class="reference internal" href="#module-multiview_platform.tests.test_utils">Module contents</a></li> +<li><a class="reference internal" href="#multiview-platform-tests-test-utils-test-getmultiviewdb-module">multiview_platform.tests.test_utils.test_GetMultiviewDB module</a></li> +<li><a class="reference internal" href="#multiview-platform-tests-test-utils-test-configuration-module">multiview_platform.tests.test_utils.test_configuration module</a></li> +<li><a class="reference internal" href="#multiview-platform-tests-test-utils-test-execution-module">multiview_platform.tests.test_utils.test_execution module</a></li> +<li><a class="reference internal" href="#multiview-platform-tests-test-utils-test-multiclass-module">multiview_platform.tests.test_utils.test_multiclass module</a></li> +<li><a class="reference internal" href="#module-contents">Module contents</a></li> </ul> </li> </ul> @@ -423,9 +113,6 @@ <li class="right" style="margin-right: 10px"> <a href="../genindex.html" title="General Index" >index</a></li> - <li class="right" > - <a href="../py-modindex.html" title="Python Module Index" - >modules</a> |</li> <li class="right" > <a href="multiview_platform.tests.test_multiview_classifiers.Test_PseudoCQMeasure.html" title="multiview_platform.tests.test_multiview_classifiers.Test_PseudoCQMeasure package" >previous</a> |</li> diff --git a/docs/build/search.html b/docs/build/search.html index 2b02fed2..f0c641e0 100644 --- a/docs/build/search.html +++ b/docs/build/search.html @@ -34,9 +34,6 @@ <li class="right" style="margin-right: 10px"> <a href="genindex.html" title="General Index" accesskey="I">index</a></li> - <li class="right" > - <a href="py-modindex.html" title="Python Module Index" - >modules</a> |</li> <li class="nav-item nav-item-0"><a href="index.html">MultiviewPlatform 0 documentation</a> »</li> </ul> </div> @@ -85,9 +82,6 @@ <li class="right" style="margin-right: 10px"> <a href="genindex.html" title="General Index" >index</a></li> - <li class="right" > - <a href="py-modindex.html" title="Python Module Index" - >modules</a> |</li> <li class="nav-item nav-item-0"><a href="index.html">MultiviewPlatform 0 documentation</a> »</li> </ul> </div> diff --git a/docs/build/searchindex.js b/docs/build/searchindex.js index fa03a8b9..a1fdf32d 100644 --- a/docs/build/searchindex.js +++ b/docs/build/searchindex.js @@ -1 +1 @@ -Search.setIndex({docnames:["analyzeresult","api","execution","index","modules","readme_link","references/monomulti/exec_classif","references/monomulti/metrics","references/monomulti/multiview_classifiers/classifiers","references/monomulti/multiview_classifiers/diversity_fusion","references/monomulti/utils/execution","references/monomulti/utils/multiclass","references/monomultidoc","references/multiview_platform","references/multiview_platform.mono_multi_view_classifiers","references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers","references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.difficulty_fusion","references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.disagree_fusion","references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.double_fault_fusion","references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.entropy_fusion","references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.fat_late_fusion","references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.fat_scm_late_fusion","references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.fusion","references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.fusion.Methods","references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.fusion.Methods.EarlyFusionPackage","references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.fusion.Methods.LateFusionPackage","references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.pseudo_cq_fusion","references/multiview_platform.mono_multi_view_classifiers.utils","references/multiview_platform.tests","references/multiview_platform.tests.test_metrics","references/multiview_platform.tests.test_mono_view","references/multiview_platform.tests.test_monoview_classifiers","references/multiview_platform.tests.test_multiview_classifiers","references/multiview_platform.tests.test_multiview_classifiers.Test_DifficultyMeasure","references/multiview_platform.tests.test_multiview_classifiers.Test_DisagreeFusion","references/multiview_platform.tests.test_multiview_classifiers.Test_DoubleFaultFusion","references/multiview_platform.tests.test_multiview_classifiers.Test_EntropyFusion","references/multiview_platform.tests.test_multiview_classifiers.Test_Fusion","references/multiview_platform.tests.test_multiview_classifiers.Test_PseudoCQMeasure","references/multiview_platform.tests.test_utils","tutorials/example1","tutorials/example2","tutorials/example3","tutorials/example4","tutorials/example5","tutorials/index","tutorials/installation"],envversion:{"sphinx.domains.c":1,"sphinx.domains.changeset":1,"sphinx.domains.cpp":1,"sphinx.domains.javascript":1,"sphinx.domains.math":2,"sphinx.domains.python":1,"sphinx.domains.rst":1,"sphinx.domains.std":1,sphinx:55},filenames:["analyzeresult.rst","api.rst","execution.rst","index.rst","modules.rst","readme_link.rst","references/monomulti/exec_classif.rst","references/monomulti/metrics.rst","references/monomulti/multiview_classifiers/classifiers.rst","references/monomulti/multiview_classifiers/diversity_fusion.rst","references/monomulti/utils/execution.rst","references/monomulti/utils/multiclass.rst","references/monomultidoc.rst","references/multiview_platform.rst","references/multiview_platform.mono_multi_view_classifiers.rst","references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.rst","references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.difficulty_fusion.rst","references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.disagree_fusion.rst","references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.double_fault_fusion.rst","references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.entropy_fusion.rst","references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.fat_late_fusion.rst","references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.fat_scm_late_fusion.rst","references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.fusion.rst","references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.fusion.Methods.rst","references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.fusion.Methods.EarlyFusionPackage.rst","references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.fusion.Methods.LateFusionPackage.rst","references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.pseudo_cq_fusion.rst","references/multiview_platform.mono_multi_view_classifiers.utils.rst","references/multiview_platform.tests.rst","references/multiview_platform.tests.test_metrics.rst","references/multiview_platform.tests.test_mono_view.rst","references/multiview_platform.tests.test_monoview_classifiers.rst","references/multiview_platform.tests.test_multiview_classifiers.rst","references/multiview_platform.tests.test_multiview_classifiers.Test_DifficultyMeasure.rst","references/multiview_platform.tests.test_multiview_classifiers.Test_DisagreeFusion.rst","references/multiview_platform.tests.test_multiview_classifiers.Test_DoubleFaultFusion.rst","references/multiview_platform.tests.test_multiview_classifiers.Test_EntropyFusion.rst","references/multiview_platform.tests.test_multiview_classifiers.Test_Fusion.rst","references/multiview_platform.tests.test_multiview_classifiers.Test_PseudoCQMeasure.rst","references/multiview_platform.tests.test_utils.rst","tutorials/example1.rst","tutorials/example2.rst","tutorials/example3.rst","tutorials/example4.rst","tutorials/example5.rst","tutorials/index.rst","tutorials/installation.rst"],objects:{"":{multiview_platform:[13,0,0,"-"]},"multiview_platform.execute":{execute:[13,1,1,""]},"multiview_platform.mono_multi_view_classifiers":{exec_classif:[14,0,0,"-"],multiview_classifiers:[15,0,0,"-"],result_analysis:[14,0,0,"-"],utils:[27,0,0,"-"]},"multiview_platform.mono_multi_view_classifiers.exec_classif":{arange_metrics:[14,1,1,""],benchmark_init:[14,1,1,""],exec_benchmark:[14,1,1,""],exec_classif:[14,1,1,""],exec_one_benchmark_mono_core:[14,1,1,""],extract_dict:[14,1,1,""],gen_multiple_args_dictionnaries:[14,1,1,""],gen_multiple_kwargs_combinations:[14,1,1,""],gen_single_monoview_arg_dictionary:[14,1,1,""],gen_single_multiview_arg_dictionary:[14,1,1,""],get_path_dict:[14,1,1,""],init_argument_dictionaries:[14,1,1,""],init_benchmark:[14,1,1,""],init_kwargs:[14,1,1,""],init_kwargs_func:[14,1,1,""],init_monoview_exps:[14,1,1,""],init_multiview_exps:[14,1,1,""],is_dict_in:[14,1,1,""],multiple_args:[14,1,1,""],set_element:[14,1,1,""]},"multiview_platform.mono_multi_view_classifiers.metrics":{framework:[7,0,0,"-"]},"multiview_platform.mono_multi_view_classifiers.metrics.framework":{getConfig:[7,1,1,""],get_scorer:[7,1,1,""],score:[7,1,1,""]},"multiview_platform.mono_multi_view_classifiers.multiview_classifiers":{difficulty_fusion:[16,0,0,"-"],disagree_fusion:[17,0,0,"-"],double_fault_fusion:[18,0,0,"-"],entropy_fusion:[19,0,0,"-"]},"multiview_platform.mono_multi_view_classifiers.multiview_classifiers.difficulty_fusion":{DifficultyFusion:[16,2,1,""]},"multiview_platform.mono_multi_view_classifiers.multiview_classifiers.difficulty_fusion.DifficultyFusion":{diversity_measure:[16,3,1,""]},"multiview_platform.mono_multi_view_classifiers.multiview_classifiers.disagree_fusion":{DisagreeFusion:[17,2,1,""]},"multiview_platform.mono_multi_view_classifiers.multiview_classifiers.disagree_fusion.DisagreeFusion":{diversity_measure:[17,3,1,""]},"multiview_platform.mono_multi_view_classifiers.multiview_classifiers.double_fault_fusion":{DoubleFaultFusion:[18,2,1,""]},"multiview_platform.mono_multi_view_classifiers.multiview_classifiers.double_fault_fusion.DoubleFaultFusion":{diversity_measure:[18,3,1,""]},"multiview_platform.mono_multi_view_classifiers.multiview_classifiers.entropy_fusion":{EntropyFusion:[19,2,1,""]},"multiview_platform.mono_multi_view_classifiers.multiview_classifiers.entropy_fusion.EntropyFusion":{diversity_measure:[19,3,1,""]},"multiview_platform.mono_multi_view_classifiers.result_analysis":{add_new_labels_combination:[14,1,1,""],add_new_metric:[14,1,1,""],analyzeMulticlass:[14,1,1,""],analyze_biclass:[14,1,1,""],analyze_iter_multiclass:[14,1,1,""],analyzebiclass_iter:[14,1,1,""],autolabel:[14,1,1,""],format_previous_results:[14,1,1,""],gen_classifiers_dict:[14,1,1,""],gen_error_data:[14,1,1,""],gen_error_data_glob:[14,1,1,""],gen_metrics_scores_multiclass:[14,1,1,""],get_arguments:[14,1,1,""],get_error_on_labels_multiclass:[14,1,1,""],get_example_errors_biclass:[14,1,1,""],get_feature_importances:[14,1,1,""],get_fig_size:[14,1,1,""],get_metrics_scores_biclass:[14,1,1,""],get_results:[14,1,1,""],init_plot:[14,1,1,""],iterCmap:[14,1,1,""],numpy_mean_and_std:[14,1,1,""],plot_2d:[14,1,1,""],plot_errors_bar:[14,1,1,""],plot_metric_scores:[14,1,1,""],plot_results_noise:[14,1,1,""],publishExampleErrors:[14,1,1,""],publishMetricsGraphs:[14,1,1,""],publishMulticlassExmapleErrors:[14,1,1,""],publishMulticlassScores:[14,1,1,""],publish_feature_importances:[14,1,1,""],publish_iter_biclass_example_errors:[14,1,1,""],publish_iter_biclass_metrics_scores:[14,1,1,""],publish_iter_multiclass_example_errors:[14,1,1,""],publish_iter_multiclass_metrics_scores:[14,1,1,""],publish_tracebacks:[14,1,1,""],save_dict_to_text:[14,1,1,""],save_failed:[14,1,1,""],sort_by_test_score:[14,1,1,""]},"multiview_platform.mono_multi_view_classifiers.utils":{configuration:[27,0,0,"-"],dataset:[27,0,0,"-"],execution:[27,0,0,"-"],get_multiview_db:[27,0,0,"-"],hyper_parameter_search:[27,0,0,"-"],make_file_config:[27,0,0,"-"],multiclass:[27,0,0,"-"],multiview_result_analysis:[27,0,0,"-"],transformations:[27,0,0,"-"]},"multiview_platform.mono_multi_view_classifiers.utils.configuration":{get_the_args:[27,1,1,""],save_config:[27,1,1,""]},"multiview_platform.mono_multi_view_classifiers.utils.dataset":{Dataset:[27,2,1,""],confirm:[27,1,1,""],copy_hdf5:[27,1,1,""],datasets_already_exist:[27,1,1,""],delete_HDF5:[27,1,1,""],extract_subset:[27,1,1,""],init_multiple_datasets:[27,1,1,""],input_:[27,1,1,""],is_just_number:[27,1,1,""]},"multiview_platform.mono_multi_view_classifiers.utils.dataset.Dataset":{add_gaussian_noise:[27,3,1,""],check_selected_label_names:[27,3,1,""],copy_view:[27,3,1,""],dataset:[27,4,1,""],filter:[27,3,1,""],get_label_names:[27,3,1,""],get_labels:[27,3,1,""],get_name:[27,3,1,""],get_nb_class:[27,3,1,""],get_nb_examples:[27,3,1,""],get_shape:[27,3,1,""],get_v:[27,3,1,""],get_view_dict:[27,3,1,""],get_view_name:[27,3,1,""],init_attrs:[27,3,1,""],init_example_indces:[27,3,1,""],init_view_names:[27,3,1,""],nb_view:[27,4,1,""],rm:[27,3,1,""],select_labels:[27,3,1,""],select_views_and_labels:[27,3,1,""],to_numpy_array:[27,3,1,""],update_hdf5_dataset:[27,3,1,""],view_dict:[27,4,1,""]},"multiview_platform.mono_multi_view_classifiers.utils.execution":{find_dataset_names:[27,1,1,""],gen_argument_dictionaries:[27,1,1,""],gen_direcorties_names:[27,1,1,""],gen_k_folds:[27,1,1,""],gen_splits:[27,1,1,""],get_database_function:[27,1,1,""],init_log_file:[27,1,1,""],init_random_state:[27,1,1,""],init_stats_iter_random_states:[27,1,1,""],init_views:[27,1,1,""],parse_the_args:[27,1,1,""]},"multiview_platform.mono_multi_view_classifiers.utils.get_multiview_db":{DatasetError:[27,5,1,""],get_classic_db_csv:[27,1,1,""],get_classic_db_hdf5:[27,1,1,""],get_plausible_db_hdf5:[27,1,1,""],make_me_noisy:[27,1,1,""]},"multiview_platform.mono_multi_view_classifiers.utils.hyper_parameter_search":{CustomRandint:[27,2,1,""],CustomUniform:[27,2,1,""],MultiviewCompatibleRandomizedSearchCV:[27,2,1,""],compute_possible_combinations:[27,1,1,""],gen_heat_maps:[27,1,1,""],get_test_folds_preds:[27,1,1,""],grid_search:[27,1,1,""],randomized_search:[27,1,1,""],search_best_settings:[27,1,1,""],spear_mint:[27,1,1,""]},"multiview_platform.mono_multi_view_classifiers.utils.hyper_parameter_search.CustomRandint":{get_nb_possibilities:[27,3,1,""],rvs:[27,3,1,""]},"multiview_platform.mono_multi_view_classifiers.utils.hyper_parameter_search.CustomUniform":{rvs:[27,3,1,""]},"multiview_platform.mono_multi_view_classifiers.utils.hyper_parameter_search.MultiviewCompatibleRandomizedSearchCV":{fit:[27,3,1,""],fit_multiview:[27,3,1,""],get_test_folds_preds:[27,3,1,""]},"multiview_platform.mono_multi_view_classifiers.utils.make_file_config":{ConfigurationMaker:[27,2,1,""]},"multiview_platform.mono_multi_view_classifiers.utils.multiclass":{gen_multiclass_labels:[27,1,1,""],gen_multiclass_monoview_decision:[27,1,1,""],is_biclass:[27,1,1,""]},"multiview_platform.mono_multi_view_classifiers.utils.multiview_result_analysis":{get_metrics_scores:[27,1,1,""],get_total_metric_scores:[27,1,1,""],print_metric_score:[27,1,1,""]},"multiview_platform.mono_multi_view_classifiers.utils.transformations":{sign_labels:[27,1,1,""],unsign_labels:[27,1,1,""]},"multiview_platform.tests":{test_ExecClassif:[28,0,0,"-"],test_ResultAnalysis:[28,0,0,"-"],test_metrics:[29,0,0,"-"],test_mono_view:[30,0,0,"-"],test_monoview_classifiers:[31,0,0,"-"],test_multiview_classifiers:[32,0,0,"-"],test_utils:[39,0,0,"-"]},"multiview_platform.tests.test_ExecClassif":{FakeKfold:[28,2,1,""],Test_InitArgumentDictionaries:[28,2,1,""],Test_execBenchmark:[28,2,1,""],Test_get_path_dict:[28,2,1,""],Test_initBenchmark:[28,2,1,""],Test_initKWARGS:[28,2,1,""],Test_set_element:[28,2,1,""],fakeBenchmarkExec:[28,1,1,""],fakeBenchmarkExec_monocore:[28,1,1,""],fakeBenchmarkExec_mutlicore:[28,1,1,""],fakeDelete:[28,1,1,""],fakeExecMono:[28,1,1,""],fakeExecMulti:[28,1,1,""],fakeInitMulti:[28,1,1,""],fakegetResults:[28,1,1,""]},"multiview_platform.tests.test_ExecClassif.FakeKfold":{split:[28,3,1,""]},"multiview_platform.tests.test_ExecClassif.Test_InitArgumentDictionaries":{setUpClass:[28,6,1,""],test_init_argument_dictionaries_monoview:[28,3,1,""],test_init_argument_dictionaries_multiview:[28,3,1,""],test_init_argument_dictionaries_multiview_complex:[28,3,1,""],test_init_argument_dictionaries_multiview_multiple:[28,3,1,""],test_init_argument_dictionaries_multiview_multiple_complex:[28,3,1,""]},"multiview_platform.tests.test_ExecClassif.Test_execBenchmark":{setUpClass:[28,6,1,""],tearDownClass:[28,6,1,""],test_multiclass_and_iter:[28,3,1,""],test_multiclass_no_iter:[28,3,1,""],test_no_iter_biclass_multicore:[28,3,1,""],test_simple:[28,3,1,""]},"multiview_platform.tests.test_ExecClassif.Test_get_path_dict":{setUpClass:[28,6,1,""],tearDownClass:[28,6,1,""],test_simple:[28,3,1,""]},"multiview_platform.tests.test_ExecClassif.Test_initBenchmark":{test_benchmark_wanted:[28,3,1,""]},"multiview_platform.tests.test_ExecClassif.Test_initKWARGS":{test_initKWARGSFunc_no_monoview:[28,3,1,""]},"multiview_platform.tests.test_ExecClassif.Test_set_element":{setUpClass:[28,6,1,""],tearDownClass:[28,6,1,""],test_simple:[28,3,1,""]},"multiview_platform.tests.test_ResultAnalysis":{Test_format_previous_results:[28,2,1,""],Test_gen_error_data:[28,2,1,""],Test_gen_error_data_glob:[28,2,1,""],Test_get_arguments:[28,2,1,""],Test_get_example_errors_biclass:[28,2,1,""],Test_get_metrics_scores_biclass:[28,2,1,""],Test_init_plot:[28,2,1,""]},"multiview_platform.tests.test_ResultAnalysis.Test_format_previous_results":{test_simple:[28,3,1,""]},"multiview_platform.tests.test_ResultAnalysis.Test_gen_error_data":{test_simple:[28,3,1,""]},"multiview_platform.tests.test_ResultAnalysis.Test_gen_error_data_glob":{test_simple:[28,3,1,""]},"multiview_platform.tests.test_ResultAnalysis.Test_get_arguments":{setUp:[28,3,1,""],test_benchmark_wanted:[28,3,1,""]},"multiview_platform.tests.test_ResultAnalysis.Test_get_example_errors_biclass":{test_simple:[28,3,1,""]},"multiview_platform.tests.test_ResultAnalysis.Test_get_metrics_scores_biclass":{multiple_monoview_classifiers:[28,3,1,""],mutiview_result:[28,3,1,""],test_simple:[28,3,1,""]},"multiview_platform.tests.test_ResultAnalysis.Test_init_plot":{test_simple:[28,3,1,""]},"multiview_platform.tests.test_metrics":{test_accuracy_score:[29,0,0,"-"]},"multiview_platform.tests.test_metrics.test_accuracy_score":{Test_accuracy_score:[29,2,1,""]},"multiview_platform.tests.test_metrics.test_accuracy_score.Test_accuracy_score":{score_test:[29,3,1,""],setUpClass:[29,3,1,""]},"multiview_platform.tests.test_mono_view":{test_ExecClassifMonoView:[30,0,0,"-"],test_MonoviewUtils:[30,0,0,"-"]},"multiview_platform.tests.test_mono_view.test_ExecClassifMonoView":{Test_getHPs:[30,2,1,""],Test_initConstants:[30,2,1,""],Test_initTrainTest:[30,2,1,""]},"multiview_platform.tests.test_mono_view.test_ExecClassifMonoView.Test_getHPs":{setUpClass:[30,6,1,""],tearDownClass:[30,6,1,""],test_simple:[30,3,1,""]},"multiview_platform.tests.test_mono_view.test_ExecClassifMonoView.Test_initConstants":{setUpClass:[30,6,1,""],tearDownClass:[30,6,1,""],test_simple:[30,3,1,""]},"multiview_platform.tests.test_mono_view.test_ExecClassifMonoView.Test_initTrainTest":{setUpClass:[30,6,1,""],test_simple:[30,3,1,""]},"multiview_platform.tests.test_mono_view.test_MonoviewUtils":{Test_genTestFoldsPreds:[30,2,1,""]},"multiview_platform.tests.test_mono_view.test_MonoviewUtils.Test_genTestFoldsPreds":{setUpClass:[30,6,1,""],test_simple:[30,3,1,""]},"multiview_platform.tests.test_monoview_classifiers":{test_adaboost:[31,0,0,"-"],test_compatibility:[31,0,0,"-"]},"multiview_platform.tests.test_multiview_classifiers":{Test_PseudoCQMeasure:[38,0,0,"-"],test_diversity_utils:[32,0,0,"-"]},"multiview_platform.tests.test_multiview_classifiers.Test_PseudoCQMeasure":{test_PseudoCQFusionModule:[38,0,0,"-"]},"multiview_platform.tests.test_utils":{test_GetMultiviewDB:[39,0,0,"-"],test_configuration:[39,0,0,"-"],test_execution:[39,0,0,"-"],test_multiclass:[39,0,0,"-"]},"multiview_platform.tests.test_utils.test_GetMultiviewDB":{Test_get_classic_db_csv:[39,2,1,""],Test_get_classic_db_hdf5:[39,2,1,""],Test_get_plausible_db_hdf5:[39,2,1,""]},"multiview_platform.tests.test_utils.test_GetMultiviewDB.Test_get_classic_db_csv":{setUp:[39,3,1,""],tearDown:[39,6,1,""],test_simple:[39,3,1,""]},"multiview_platform.tests.test_utils.test_GetMultiviewDB.Test_get_classic_db_hdf5":{setUp:[39,3,1,""],tearDown:[39,3,1,""],test_all_views_asked:[39,3,1,""],test_asked_the_whole_dataset:[39,3,1,""],test_simple:[39,3,1,""]},"multiview_platform.tests.test_utils.test_GetMultiviewDB.Test_get_plausible_db_hdf5":{setUpClass:[39,6,1,""],tearDownClass:[39,6,1,""],test_simple:[39,3,1,""],test_two_class:[39,3,1,""]},"multiview_platform.tests.test_utils.test_configuration":{Test_get_the_args:[39,2,1,""]},"multiview_platform.tests.test_utils.test_configuration.Test_get_the_args":{setUpClass:[39,6,1,""],tearDownClass:[39,6,1,""],test_arguments:[39,3,1,""],test_dict_format:[39,3,1,""],test_file_loading:[39,3,1,""]},"multiview_platform.tests.test_utils.test_execution":{FakeArg:[39,2,1,""],Test_genArgumentDictionaries:[39,2,1,""],Test_genDirecortiesNames:[39,2,1,""],Test_genKFolds:[39,2,1,""],Test_genSplits:[39,2,1,""],Test_getDatabaseFunction:[39,2,1,""],Test_initRandomState:[39,2,1,""],Test_initStatsIterRandomStates:[39,2,1,""],Test_parseTheArgs:[39,2,1,""]},"multiview_platform.tests.test_utils.test_execution.Test_genArgumentDictionaries":{setUpClass:[39,6,1,""]},"multiview_platform.tests.test_utils.test_execution.Test_genDirecortiesNames":{setUpClass:[39,6,1,""],test_ovo_no_iter:[39,3,1,""],test_simple_ovo:[39,3,1,""]},"multiview_platform.tests.test_utils.test_execution.Test_genKFolds":{setUp:[39,3,1,""],test_genKFolds_iter:[39,3,1,""]},"multiview_platform.tests.test_utils.test_execution.Test_genSplits":{setUp:[39,3,1,""],test_genSplits_no_iter:[39,3,1,""],test_simple:[39,3,1,""]},"multiview_platform.tests.test_utils.test_execution.Test_getDatabaseFunction":{setUpClass:[39,6,1,""],test_hdf5:[39,3,1,""],test_plausible_hdf5:[39,3,1,""],test_simple:[39,3,1,""]},"multiview_platform.tests.test_utils.test_execution.Test_initRandomState":{setUp:[39,3,1,""],tearDown:[39,3,1,""],test_random_state_42:[39,3,1,""],test_random_state_pickle:[39,3,1,""]},"multiview_platform.tests.test_utils.test_execution.Test_initStatsIterRandomStates":{setUpClass:[39,6,1,""],test_multiple_iter:[39,3,1,""],test_one_statiter:[39,3,1,""]},"multiview_platform.tests.test_utils.test_execution.Test_parseTheArgs":{setUp:[39,3,1,""],test_empty_args:[39,3,1,""]},"multiview_platform.tests.test_utils.test_multiclass":{Test_genMulticlassLabels:[39,2,1,""]},"multiview_platform.tests.test_utils.test_multiclass.Test_genMulticlassLabels":{setUpClass:[39,6,1,""],test_one_versus_one:[39,3,1,""]},"multiview_platform.versions":{test_versions:[13,1,1,""]},multiview_platform:{execute:[13,0,0,"-"],mono_multi_view_classifiers:[14,0,0,"-"],tests:[28,0,0,"-"],versions:[13,0,0,"-"]}},objnames:{"0":["py","module","Python module"],"1":["py","function","Python function"],"2":["py","class","Python class"],"3":["py","method","Python method"],"4":["py","attribute","Python attribute"],"5":["py","exception","Python exception"],"6":["py","classmethod","Python class method"]},objtypes:{"0":"py:module","1":"py:function","2":"py:class","3":"py:method","4":"py:attribute","5":"py:exception","6":"py:classmethod"},terms:{"0x7f30a3a1bb40":40,"0x7f3186287e30":[],"12_42_":41,"12_42__":41,"15588087e":[],"1560_04_01":41,"1560_12_25":42,"15887658e":[],"15_42":42,"16493056e":[],"200x100":43,"200x40":43,"200x55":43,"25000130e":[],"25th":40,"2d_plot_data":[0,14,40,42],"345px":[],"55845734e":[],"56532883e":[],"68070076e":[],"78582022e":[],"78647881e":[],"84741585e":[],"95570764e":[],"99267234e":[],"99456183e":[],"boolean":[5,7,27],"case":[0,6,14,27,28,29,30,39],"class":[6,7,14,16,17,18,19,27,28,29,30,39,40,41,43,44],"default":[0,7,14,40,41],"final":40,"float":[0,7,14,27,41,44],"function":[0,6,7,14,27,40],"import":[0,5,14,27,40,41,43,44],"int":[0,5,6,14,27],"long":43,"new":[27,40,42],"return":[0,6,7,14,27,42,44],"static":[],"super":44,"true":[0,6,14,27,40],"try":[5,28,43],"while":[27,41,43],Adding:[3,40],And:[5,41,43],But:41,For:[0,5,6,14,27,40,41,42,43,44],HPS:41,IDs:43,Ids:[],One:[5,27,41,44],THe:[0,14,27,41,43],The:[0,3,5,6,7,14,27,40,41,42,45],Then:[27,40,42,43,44],These:[7,40,41],Ths:41,Use:[3,45],Used:[0,5,6,13,14,27],Will:[6,14],With:5,Yes:[27,40,42],__init__:44,_fit_stag:[],_gen:27,_search:27,_static:[],abl:[5,27,40,41,43,44],about:5,abs:[],absolut:5,access:[],accord:27,account:[],accuraci:[40,41],accuracy_scor:[27,41,42],adaboost:[6,14,40,41,42],adaboost_gra:[],adaboost_pregen10:[],adaboost_pregen:[],adaboost_pregen_tre:[],adaboostclassifi:[],adapt:[3,27],add:[0,3,6,7,14,27,40,41,42,43,44],add_gaussian_nois:27,add_new_labels_combin:14,add_new_metr:14,add_nois:27,added:[0,6,14,44],adding:43,addit:[3,5,16,17,18,19],advantag:3,advis:[],after:[28,30,39,42],again:[],agrument:27,aim:[5,40],alexandr:5,algo:44,algo_modul:44,algoclassifi:44,algorithm:[3,5,6,14,27,40,41,45],algortihm:40,algos_monoview:[40,41],algos_muliview:40,algos_multiview:41,all:[0,5,6,13,14,27,28,30,39,40,42,43,44],all_view:27,alloc:[],allow:[3,27,40,41,43,44],almost:[],along:27,alpha:[],alreadi:27,also:[27,40,41,43],alwai:[],among:[],amount:[40,41],analys:[],analysi:[1,14],analyz:[0,14,40,41,43],analyze_biclass:[0,14],analyze_iter_multiclass:[0,14],analyze_result:[13,14,15],analyzebiclass_it:[0,14],analyzemulticlass:[0,14],ani:[6,14,40,41],anim:43,anoth:[],answer:27,anyth:[0,14],appear:42,approx:[],approxim:[],arange_metr:[6,14],are_spars:27,area:[],arg:[6,14,27,28],arg_view:27,args_dictionari:[6,14],argument:[0,3,6,7,14,27,28,40,41,42],argument_dictionari:[6,14,27,28],arguments_dictionari:[0,14],around:5,arrai:[0,5,6,7,14,27],arrang:[6,14],art:40,asarrai:[],ask:[6,14,40],asked_labels_nam:27,askedlabelsnam:27,astyp:43,atm:5,attr:[5,43],attribur:5,attribut:[5,27,43,44],author:3,auto:[],autolabel:[0,14],automat:5,avail:[0,5,14,27,40,41,43,44],available_indic:27,averag:[0,14,40],avoid:[],axi:[],back:[],bale:27,baptist:[5,13],bar:[0,14,40,42],bar_plot_data:[0,14,40,42],bar_width:[0,14],bare:3,barplot:[0,14],base:[16,17,18,19,27,28,29,30,39],base_estim:[6,14,41],base_file_nam:[0,14],baseestim:[],baselin:40,basemonoviewclassifi:44,basemultiviewclassifi:44,basi:[],basic:40,bauvin:5,bayesian_inference_fus:[],bayesianinfer:[13,14,15,22,23],bboxinout:[],bea:43,bear:43,bear_112:43,becaus:27,becom:41,bee:[],been:[6,14,40,43],befor:[5,27,28,29,30,39],begin:40,behaviour:40,being:[5,6,14,41,43],belong:[0,14],below:[0,14,40,41],benchmark:[0,3,6,14,27,28,40,41,42,43],benchmark_argument_dictionari:[0,14],benchmark_arguments_dictionari:[6,14,28],benchmark_init:[6,14],benchmarkargumentdictionari:[0,14,27],benchmarkargumentsdictionari:27,benchmrak:41,bencmark:[0,14],best:[40,41,42],best_view_mod:44,better:[0,7,14,40,41],between:[0,14,27,41,42,43,44],biclass:[0,6,14,27,40],biclass_result:[0,14],biclassresult:[0,14],big:27,bigger:41,binari:40,bird:43,bird_785:43,black:40,blue:[],bool:27,boost:[],boosting_bound:[],boostutil:[],both:[0,14],bound:[0,14],bound_nam:[],boundari:[],boundarynorm:[0,14],bracket:41,brows:27,btween:41,build:41,bypass:41,c_greed:[],call:[5,40,41,44],callabl:7,can:[3,5,6,14,27,40,41,42,43],capac:[5,41],car:43,car_369:43,cardin:[],care:[],carefulli:5,carri:[],cast:[],categori:40,cb_boost:[],cbboostutil:[],center:27,central:[0,14],cfg:[],cg_desc10:[],cg_desc:[],cg_desc_tre:[],cgdescutil:[],chain:[],chang:27,change_label_to_minu:[],change_label_to_zero:[],check:[5,6,14,27],check_input:[],check_selected_label_nam:27,child:[],choos:43,chose:41,cl_gs_iter:5,cl_kwrag:[6,14],cl_nbfold:5,cl_split:5,cl_statsit:5,cl_type:[6,14,27],clariti:43,class_weight:[],classed_list:[],classed_param:[],classier:27,classif:[0,3,14,27,40,42],classifi:[0,3,5,6,12,14,27,41,42,43],classifiact:41,classification_indic:[0,6,14,27,28],classification_karg:[],classificationindic:[],classificationkwarg:[],classifier_class_nam:44,classifier_config:[6,14,16,17,18,19,27,41],classifier_configur:[6,14],classifier_dict:27,classifier_kwarg:27,classifier_modul:27,classifier_module_nam:[],classifier_nam:[0,6,14,16,17,18,19,27,41],classifiermixin:[],classifiermodul:[],classifierneg:[0,14],classifierposit:[0,14],classifiers_decis:[16,19],classifiers_nam:[0,6,14],classifii:[0,14],classlabelsnam:[],classmethod:[28,30,39],clean:27,clf:[0,14],click:40,clkwarg:[],clone:5,close:42,closer:41,cmap:[0,14],coarsest:[],code:[2,3,13,41,42,44],coeff:[],coeffs_approx:[],coeffs_detail1:[],coeffs_detail2:[],coeffs_iw:[],collbarr:[],color:[0,14],colormap:[0,14],column:40,combi_result:14,combin:[0,6,14,16,19,27,41],come:[],command:[5,46],comment:[40,41],commentari:43,commentary_dataset:43,commentary_matrix:43,common:40,compar:44,compat:3,compens:41,complement:[],complet:3,complex:[3,27,40,41],complic:[],comput:[5,27,41],compute_possible_combin:27,conain:27,conatin:[0,14],concant:27,concat_view:27,concaten:27,conclus:41,conduct:[0,14],config:[5,6,14,27,40,41,42,43],config_example_1:13,config_example_2_1_1:41,config_exmaple_1:40,config_fil:[5,13,27,42],config_path:[5,6,13,14],configgener:[],configstr:7,configur:[0,5,7,13,14,40,41],configurationmak:27,confirm:[27,40],connect:[],conresspond:[],consid:[0,14],consider:[6,14],consist:[41,43],consol:27,constain:[],constant:[],consum:41,contain:[0,3,5,14,27,40,44],containig:27,content:[1,3,4,12],context:3,contigu:[],continu:[],contribut:[],contributor:3,control:[3,40,41,42,45],convers:3,convert:[27,43],coo_matrix:[],coordin:[],coordinate_desc:[],copi:[0,14,27,40],copy_hdf5:27,copy_view:27,core:[3,6,14,40],core_index:28,coreindex:28,correctli:[5,43],correspond:[0,14,27,40,43,44],could:40,count:[0,5,14,40],coupl:[0,6,14,27],couplediversityfusionclassifi:[17,18],cq_boost:[],cq_boosttre:[],cq_boostv21:[],cq_boostv2:[],cqboostutil:[],creat:[3,5,6,14,27,43,44],create_dataset:43,create_group:43,criteria:[],criterion:41,crop:27,cross:[6,14,27,40],csr_matrix:[],csv:[0,14,27,41,42,43],current:[],custom:40,customdecisiontre:[],customrandint:[27,44],customuniform:[27,44],cvs_or_:5,dark:40,data:[0,3,14,27,40,41,43],data_base_nam:[0,14],databas:[0,14,27,40],database_nam:[0,5,14,43],database_typ:[],databasenam:14,databasetyp:[],datafram:[0,14],dataset:[3,6,13,14,40,41,42,45],dataset_file_index:[],dataset_var:[6,14,27,28],dataseterror:27,datasetfil:27,datasetlength:[5,43],datasets_already_exist:27,date:40,debug:27,decemb:40,decid:[],decis:[27,41],decision_tre:[40,41,42],decision_tree_pregen:[],decisiontre:[],decisiontreeclassifi:41,decod:27,decomposit:[],deconstruct:[28,30,39],decrypt:[7,40],dedic:[],deep:41,deeper:41,def:44,defend:41,defin:44,degre:[],delet:[6,14,27],delete_hdf5:[6,14,27],delimit:[27,43],demand:41,demo:[],depend:[0,14,41,42],depth:41,derectori:[],descend:[0,14],descent:[],describ:[3,7,43],descript:27,detail1:[],detail2:[],detail:5,detect:40,detector:[],develop:[5,40,43,46],deviat:[0,14,42],diagon:[],dicaitonari:[0,14],dict:[0,6,7,14,27],dictionari:[0,6,7,14,27],dictionnari:[0,14,27],dicument:44,did:[0,14],didn:40,differ:[0,3,5,6,14,27,40,41,42,43],difficulty_fus:[13,14,15,41],difficultyfus:16,direcori:14,direct:[3,41],directli:[0,14,27],directori:[0,5,6,14,27,28,40,42,46],disabl:41,disagree_fus:[13,14,15],disagreefus:17,discontinu:[],discov:3,disk:27,dispach:[6,14],displai:[40,42],distrib:44,distribut:[27,41,44],divers:12,diversity_measur:[16,17,18,19],diversity_util:[16,17,18,19],divid:[0,14,41],doc:44,docstr:13,document:[1,5,13],docutil:5,doe:27,don:41,done:[6,14,27,42],dot:27,double_fault_fus:[13,14,15,41],doublefaultfus:18,doublet:27,download:46,draw:[41,42],drawn:[],drive:5,drouin:5,dtype:43,due:[],durat:[41,42],dure:[0,14,40,41],each:[0,5,6,14,27,40,41,42,43,44],earli:[],earlyfus:[13,14,15,22],earlyfusionpackag:[13,14,15,22,23],easi:[3,5],easili:43,edg:44,effect:[],effici:[0,5,14,41],either:[5,6,14],element:[0,14],els:[0,14],enabl:41,encapsul:27,encod:[5,43],end:[0,14,27,41],ensembl:[],enter:27,entri:[0,14],entropy_fus:[13,14,15],entropyfus:19,environ:40,equal:41,equiv:[27,41],equival:[],equivalent_draw:27,eras:[],error:[0,14,40,44],error_2d:[],error_analysi:[0,14],error_analysis_2d:[0,14,42],error_analysis_bar:42,error_on_exampl:[0,14],estim:[3,27,41],etc:7,evalu:[5,6,14,27,40,41],even:[27,42],exact:[],exampl:[0,3,5,6,13,14,27,44,45],example2:41,example_1:40,example_2:[],example_2_1:41,example_error:[0,14],example_id:[0,14,27,28,43],example_indic:[27,44],examples_indic:[],except:27,exec_benchmark:[6,14],exec_classif:[4,6,13],exec_classif_mono_view:[],exec_monoview:[],exec_monoview_multicor:[],exec_multiview:[],exec_multiview_multicor:[],exec_one_benchmark:[],exec_one_benchmark_mono_cor:[6,14],exec_one_benchmark_multicor:[],exec_plot:[],execmonoview_multicor:[],exect:1,execut:[0,2,3,4,5,12,14,40,41],exeperi:[6,14],exercis:[28,39],exist:27,exmapl:[],expect:[],experi:[0,3,6,14,40],experiment:[0,14,27],explain:[7,45],explan:3,explor:[6,14],exponenti:[],export_result:[],extent:[],extern:43,extract:[0,14,27],extract_dict:[6,14],extract_subset:27,extrat:27,f1_score:[40,42],f_2:[],f_k:[],fact:41,fail:[0,14,40],failed_list:14,failur:40,fairest:41,fakearg:39,fakebenchmarkexec:28,fakebenchmarkexec_monocor:28,fakebenchmarkexec_mutlicor:28,fakedelet:28,fakeexecmono:28,fakeexecmulti:28,fakegetresult:28,fakeinitmulti:28,fakekfold:28,fals:[7,27,43],far:[40,41],fare:41,fashion:44,fat_late_fus:[13,14,15],fat_scm_late_fus:[13,14,15],fbeta_scor:[],feat:[],featur:[0,14,27,40,42,43],feature_import:[0,14,40,42],feature_importance_datafram:[40,42],feature_nam:[0,14],feature_std:14,few:[0,14],field:[],fig_kwarg:[0,14],figur:[0,14,40,41,42],file:[0,3,6,7,14,27,41,42,43,44],file_insertion_en:41,file_nam:[0,14,27],filenam:[0,14],fill:43,filter:27,find:[27,40,43],find_dataset_nam:27,finest:[],first:[3,5,6,14,27,41,43,45],first_classifier_decis:[17,18],fit:[27,41,44],fit_multiview:27,fit_param:27,five:40,fix:[27,40,43],fixtur:[28,29,30,39],flag:[0,14],float32:[],focu:41,fold:[6,14,27,40,42],folds_list:27,follow:[5,7,40,43,45,46],following_s:[],forest:[],format:[0,14,40,43],format_previous_result:[0,14],fortran:[],four:40,frac:41,framework:[6,12,14,27],from:[0,5,7,14,27,40,41,42,44],full:[5,6,14,27,40],full_label:[],full_labels_pr:[],fulli:43,further:5,fusion:[12,13,14,15,41],g_1:[],g_2:[],g_k:[],gap:43,gen:27,gen_argument_dictionari:27,gen_best_param:[],gen_classifiers_dict:14,gen_direcorties_nam:27,gen_error_data:[0,14],gen_error_data_glob:14,gen_heat_map:27,gen_k_fold:27,gen_metrics_scores_multiclass:[0,14],gen_multiclass_label:27,gen_multiclass_monoview_decis:27,gen_multiple_args_dictionnari:[6,14],gen_multiple_kwargs_combin:[6,14],gen_single_monoview_arg_dictionari:14,gen_single_multiview_arg_dictionari:14,gen_split:27,genbestparam:[],gendistrib:[],gener:[0,5,6,14,27,40,41],generic_scor:[],genfromtxt:43,genparamsfromdetector:[],gentestfoldspr:[],geq:[],get:[0,3,6,7,14,27,41,42],get_accuracy_graph:[],get_argu:[0,14],get_available_monoview_classifi:[],get_classic_db_csv:27,get_classic_db_hdf5:27,get_classifier_nam:[],get_database_funct:27,get_error_on_labels_multiclass:[0,14],get_example_errors_biclass:[0,14],get_examples_views_indic:44,get_feature_import:[0,14],get_fig_s:[0,14],get_interpret:[],get_label:27,get_label_nam:27,get_metrics_scor:27,get_metrics_scores_biclass:[0,14],get_monoview_classifi:[],get_multiview_db:[13,14],get_nam:27,get_name_for_fus:[],get_nb_class:27,get_nb_exampl:27,get_nb_poss:27,get_path_dict:[6,14],get_plausible_db_hdf5:27,get_result:[0,6,14],get_scor:7,get_shap:27,get_test_folds_pr:27,get_the_arg:27,get_total_metric_scor:27,get_v:27,get_view_dict:27,get_view_nam:27,getclassifierconfigstr:[],getconfig:7,getdatabas:27,getdbconfigstr:[],gethp:[],getinterpret:[],getmetricscor:[],getmetricsscor:[],gettotalmetricscor:[],gini:41,gitwork:13,give:[27,41],given:[5,6,14,27,41],globaldiversityfusionclassifi:[16,19],goal:[27,43,44],good:41,got:40,gradient:[],gradient_boost:[],gradientboost:[],gradientboostingclassifi:[],grai:40,graph:40,great:[41,42],greater:7,grid:[],grid_search:27,gridsearch:27,groud_truth:[0,14],ground:7,ground_truth:[0,14],group:[5,27,43],guaussian:27,guess:[],guidelin:44,h5py:[5,27,43],half:40,hamming_loss:[],hand:3,handl:[],happen:41,hard:[5,40],harder:40,has:[0,14,27,40,41,43],have:[0,6,14,27,40,41,42,44],hdd:27,hdf5:[3,6,14,27],hdf5_file:[27,43],heat:27,height:[0,14],height_denomin:[0,14],held:[],henc:[],here:[0,14,40,41,42,43],hide:27,high:27,higher:40,highli:[5,40],hing:[],hole:41,home:13,hook:[28,29,30,39],horizont:40,hover:40,how:[0,3,7,14,40,41,45],howev:[41,42],hpo:[41,42],hps_iter:41,hps_type:41,html:[5,42],huelsmann:5,huge:41,hyper:[3,6,14,27,40,42,44,45],hyper_param_search:[14,27,28],hyper_parameter_search:[13,14,44],hyperparamt:41,hyperparm:27,i_k_fold:27,id_tabl:43,idea:41,ideal:41,identifi:[0,14],ifram:[],ignor:[],imag:[0,14,40,43],image_dataset:43,image_matrix:43,images_analysi:[],imagesanalysi:[],implement:[41,44],includ:44,incorrectli:40,ind_detailj0:[],inde:[40,42,44],independ:40,index:[0,3,5,6,14,27,43],indic:[0,6,14,27],indices_multiclass:27,individu:42,inform:[0,3,5,14,27,40,41,44],inherit:[10,11,44],init:[6,14,27],init_argument_dictionari:14,init_attr:27,init_benchmark:[6,14],init_const:[],init_example_indc:27,init_kwarg:[6,14],init_kwargs_func:[6,14],init_log_fil:27,init_monoview_exp:[6,14],init_multiple_dataset:27,init_multiview_exp:14,init_plot:14,init_random_st:27,init_stats_iter_random_st:27,init_train_test:[],init_view:27,init_view_nam:27,initconst:[],initi:[6,14,27],initmultiviewargu:[],input:[6,14,42,43],input_:27,insid:[40,41],insignific:[],instal:[3,13,45],instanc:[],instead:[],instruct:41,integ:[0,6,7,14,27,44],interact:[5,40],intern:[],interpret:[5,40,44],interpret_str:[],introduc:27,introduct:3,introspect:[],intuit:3,invers:27,involv:41,is_biclass:27,is_dict_in:[6,14],is_just_numb:27,is_temp:27,issu:[27,42],ist:[6,14],iter:[0,3,6,14,27,40,45],iter_1:42,iter_2:42,iter_3:42,iter_:42,iter_biclass_result:14,iter_index:[0,14],iter_multiclass_result:14,iter_result:14,iterbiclassresult:14,itercmap:[0,14],its:[3,41,43],itself:[6,14],jaccard_similarity_scor:[],jan:3,joblib:5,just:[5,6,14,43],k_fold:[6,14,27,28],keep:[27,40,41,42,43],kei:[0,6,7,14,27],kernel:[],key1:[6,14],key1_1:[6,14],key2:[6,14],keyword:[6,14],kfold:27,kneighborsclassifi:[],knn:[],know:41,kwarg:[6,7,14,27],kwargs_combin:[6,14],kwargs_init:[6,14],label:[0,5,6,7,14,27,28,40,43],label_nam:27,labels_combin:[14,27],labels_dataset:43,labels_dictionari:[0,6,14,27,28],labels_indic:27,labels_nam:[0,14,27,28],labelscomin:14,laplacian:[],larger:42,lasso:[40,41],last:[5,41],lastli:27,late:41,latefus:[13,14,15,22],latefusionpackag:[13,14,15,22,23],later:27,latter:[],launch:3,layer:[],lbarr:[],lbarre0:[],lbarre0m:[],learn:[5,13,27,40,41,42,46],learning_indic:27,learning_r:[],learningindic:[],learningr:[],learnrate_0:[],least:[3,5,6,14,40],left:40,less:40,let:[40,41,43,44],letter:27,level:27,levels_coeff:[],licenc:[],light:40,like:[3,7,27,41,42],limit:[5,27],limits_:[],linalg:[],line:[40,41,42,43],linear:[],linear_model:[],linearregress:[],list:[0,5,6,14,27,43],listedcolormap:[0,14],listof:[6,14],load:[27,43],loadabl:40,loc:27,local:[],locat:[6,14,40],log:[5,27,42],log_loss:[],logfil:27,longer:[27,41],look:42,loop:42,loss:[],lot:40,low:27,lsite:27,lucki:42,m2r:5,machin:[5,13,40,46],made:[27,40,41],mai:5,main:[3,6,14,27,40,42,44],mainli:[0,14,40],major:41,majority_voting_fus:41,majorityvot:[13,14,15,22,23],make:43,make_file_config:[13,14],make_me_noisi:27,make_scor:7,mandatori:[7,43],mani:[0,14,40,41],manipul:5,map:[6,14,27],markers:[],markov:[],master:3,matplotlib:[0,5,14],matric:[40,43],matrix:[0,14,27,40,43],matter:41,matthews_corrcoef:[],max:41,max_depth:[41,44],max_featur:[],max_it:[],max_leaf_nod:[],maximum:[],mayb:27,mazid:5,mean:[0,14,40,41,42],meaning:[5,42],mearn:5,member:[10,11],memori:27,memoryview:[],metadata:[5,43],metadata_group:43,method:[13,14,15,22,27,28,29,30,39,41,44],methodnam:[28,29,30,39],metric:[0,6,12,14,27,28,40],metric_datafram:14,metric_list:[],metric_modul:29,metric_nam:[0,14],metric_princ:[6,14,41],metric_scor:27,metric_score_str:[],metric_to_plot:14,metrics_analysi:[0,14],metrics_list:[0,14],metrics_scor:[0,14],metrics_var:27,metricscor:[0,14],metricsscor:[0,14],mimbo:44,mimboclassifi:44,min_cq:[],min_cq_graalpi:[],min_cq_graalpy_tre:[],min_impurity_decreas:[],min_impurity_split:[],min_samples_leaf:[],min_samples_split:[],min_siz:[0,14],min_weight_fraction_leaf:[],mincqutil:[],minimum:[0,14,43],minsiz:[0,14],minu:[],minut:[27,40],misclassifi:[0,14],miss:43,missclassifi:40,mod:[],model:41,model_select:[6,14,27],modifi:[3,27,42,44],modul:[1,2,3,4,5,12,41,44],moment:[41,43],mon:3,monitor:[],mono:[0,3,6,14,27],mono_multi_view_classifi:[3,4,13,44],monomutliviewclassifi:5,monoview:[0,3,5,6,14,27,40,41,42],monoview_algo:[6,14],monoview_classifi:44,monoview_estim:[16,17,18,19],monoview_result:27,monoview_util:44,monoviewresult:[0,14],more:[0,3,5,14,27,41,42,43],morev:40,most:[40,41,43],mtrand:[27,40],muber:[0,14],much:[27,41],multi:[0,3,14],multi_class_label:[6,14,28],multiclass:[0,6,7,12,13,14],multiclass_label:[0,14,27],multiclass_method:27,multiclass_pr:27,multiclass_result:[0,14],multicor:[6,14,27],multipl:[6,14,27,40,42],multiple_arg:[6,14],multiple_monoview_classifi:28,multipli:[0,14,27],multiresolut:[],multivew:41,multiview:[3,5,6,13,14,27,41,42,43],multiview_algo:[6,14],multiview_classifi:[13,14],multiview_classifier_arg:[6,14],multiview_machin:5,multiview_platform:[3,5,40,41,44],multiview_result_analysi:[13,14],multiview_util:44,multiviewcompatiblerandomizedsearchcv:27,multiviewresult:[0,14],must:[0,7,14,27,43,44],mutiview_result:28,mutli:[6,14],mutlipl:[6,14],mutlipli:27,mutliview:[],n_0:[40,41],n_clf:[0,14],n_estim:[6,14,41,44],n_featur:[0,14,27],n_iter:[27,28],n_job:27,n_neighbor:[],n_output:27,n_sampl:[7,27],n_target:[],naiv:40,name:[0,5,6,14,27,28,40,41,43,44],name_db:27,namedb:27,namig:5,napprox:[],nb_class:[6,14,27],nb_classifi:14,nb_considered_feat:[],nb_core:[6,14,27,28],nb_exampl:[0,14,27,28],nb_featur:27,nb_fold:[27,41],nb_label:[0,6,14,27,28],nb_multiclass:[0,6,14,28],nb_result:[0,14],nb_view:[27,41],nbarr:[],nbclass:[5,43],nbclassifi:[0,14],nbcopi:[0,14],nbcore:27,nbexampl:[0,14],nbview:[5,43],ndarrai:[6,14,27],ndetail1:[],nearli:42,necess:[3,41],necessari:27,need:[0,5,6,7,14,27,41,44,46],need_proba:[],neg:[0,14],neighbor:[],neq:[],net:[],nikola:5,nint:[],niter:[],no_vs_y:41,node:[],nois:[27,40],noise_result:14,noise_std:27,noisi:27,non:[],none:[0,6,14,16,17,18,19,27,28,40,41,44],norm:[0,14],norm_typ:44,note:[],now:[41,43,44],number:[0,5,6,14,27,40,41,43],numer:[0,14],numpi:[0,5,6,14,27,40,43],numpy_mean_and_std:14,numpy_x:44,object:[0,6,7,14,27,28,39,40,43],obtain:[0,14,41],omi:[5,13,40,46],onc:5,one:[0,5,6,14,27,40,41,42,43],ones:[0,6,14,27,40,41,44],oneversusal:27,oneversuson:27,oni:27,onli:[27,41,43],oper:[],optim:[3,6,14,27,44,45],optin:[0,14],option:[0,14,27,41],order:[0,5,6,7,14,27,40,41,42,43,44],ordinari:[],organ:[0,14,40],origin:27,osseni:5,other:[40,42,44],otherwis:[],our:[],out:[],outlier:40,output:[40,41,42],output_fil:14,output_file_nam:27,outputfilenam:[],over:[0,14,40,42],overfit:41,own:[3,5,45],packag:[3,4,6,7,13,46],page:[3,41],panda:[0,5,14,40],parallel:27,param:27,param_distribut:27,param_nam:44,paramet:[0,3,5,6,7,14,27,40,42,44,45],params_dict:27,params_to_str:[],paramsset:[],paramstoset:[],paramt:41,pars:[6,14,27,40],parse_the_arg:27,parsedargumentpars:[6,14],part:[40,41],partial:43,particular:40,pass:[0,6,14,27,41],path:[0,5,6,14,27,43],path_f:27,path_for_new:27,path_to_config_fil:27,path_to_your_dataset:5,pathf:[5,27,28,43],pbject:27,penalti:[],per:27,percent:[],percentag:27,perf:[],perfom:27,perform:[0,3,6,14,27,40,41,42],perofm:41,person:[0,14,41],pickl:[5,27,42],pip:[5,46],pixel:5,plai:5,plane:43,plane_452:43,platform:[3,5,7,41,42,43,44],platfro:[],platfrom:44,platofrm:41,plausibl:[27,40,41],plot:[0,5,14,40,42],plot_2d:[0,14],plot_errors_bar:[0,14],plot_metric_scor:[0,14],plot_results_nois:14,plotli:5,plotted_data:[],plotted_metr:[],plotted_metric_nam:[],plt:[],png:[0,14,42],point:27,poor:42,pos:[],pos_label:40,posit:[0,14],possibl:[6,14,27,40,41],potenti:41,precis:[40,41],precision_scor:[],precomput:[],pred:27,predict:[7,41,44],prefer:[],pregenutil:[],prerequisit:[3,13],present:40,preset:41,presort:[],previou:[0,14,27,40,41,42,43],princip:[6,14],print:[0,14,40,42],print_metric_scor:27,printmetricscor:[],prior:5,priovid:40,problem:[40,41],procedur:3,process:[6,14,27,41],process_analysi:[],process_analysis_flag:[],process_coeffici:[],process_reconstruction_sign:[],process_sign:[],project:5,propos:[5,41],provid:[6,14,27,40,41,44],pseudo:[41,42],pseudo_cq_fus:[13,14,15],publish:[0,14],publish_feature_import:14,publish_iter_biclass_example_error:14,publish_iter_biclass_metrics_scor:14,publish_iter_multiclass_example_error:14,publish_iter_multiclass_metrics_scor:14,publish_traceback:14,publishexampleerror:14,publishmetricsgraph:[0,14],publishmulticlassexmapleerror:14,publishmulticlassscor:14,purpos:[6,14],put:[],pyplot:[0,14],python3:46,python:[5,41,43,44,46],pywp:[],pyyaml:5,qar_boost:[],qar_boost_nc3:[],qar_boostv2:[],qar_boostv3:[],quickstart:3,ram:5,randint:27,random:[0,14,27,40,42,44],random_forest:[],random_s:44,random_st:[14,16,17,18,19,27,28,42,44],random_state_arg:27,randomforest:[],randomforestclassifi:[],randomised_search:41,randomized_search:[27,41],randomizedsearchcv:27,randomli:41,randomsatearg:27,randomsearch:27,randomst:[27,40],rang:[5,27],rate:40,ratio:[0,14,27,41],ration:41,raw:[0,14],read:5,readabl:[0,14],readi:43,readm:3,real:[0,5,14],realiz:[0,14],realli:27,reason:[],recal:[],recall_scor:[],recod:43,recommend:[5,40],reconstruct:[],recov:[],rect:[0,14],rectangl:40,red:[],reduc:[6,14,41],reduced_kwargs_combin:[6,14],ref:44,refer:[3,27],refit:27,regress:27,regroup:[0,14,40,42],rel:[27,43],relat:[40,41,44],relev:41,rememb:[],remov:3,repeat:41,report:27,repositori:5,repres:41,represent:40,reproduc:44,reproduct:40,reproductilb:41,requir:[43,44,46],res_dir:40,reslut:[0,14],resp:27,rest_of_the_arg:[6,14],restrain:[0,14],result:[1,5,6,14,27,28,40,41,42,43],result_analysi:[4,13],result_directori:27,results_directori:27,resultsmonoview:28,resum:[6,14,27],retriev:27,retuern:[],reus:[],revers:[6,14],right:[5,6,14,27,40,41,43],robust:41,roc_auc_scor:[],root:3,row:40,rowlbarr:[],run:[3,6,14,27,28,29,30,39,40,41,42,43,46],runtest:[28,29,30,39],runtim:41,rvs:27,s10:43,sai:[40,44],same:[27,40,41,43],sampl:27,sample_weight:40,satatisitc:42,satisfi:43,sattist:27,save:[0,6,14,27,40,42,43],save_config:27,save_dict_to_text:14,save_fail:14,save_result:[],saveresult:[],scalar:7,scale:27,schur:[],scipi:5,scm:[],scm_pregen:[],scm_pregen_tre:[],scm_sparsiti:[],scm_sparsity_tte:[],scmforlinear:[13,14,15,22,23],score:[0,7,14,27,40,41,42],score_test:29,scorer:7,scores_arrai:[14,27],script:[5,43],scroe:[],search:[3,40],search_best_set:27,searching_tool:27,second:[40,41],second_classifier_decis:[17,18],section:[40,41,42],secur:41,see:[5,27,41,44],seed:[27,40],seem:40,seen:[0,14,41,42],select:[27,41],select_label:27,select_views_and_label:27,selected_label_nam:27,self:[27,44],semin:[],sequenc:[],serach:41,serv:41,server:[],set:[0,6,14,27,28,29,30,39,40,41,42,43],set_el:[6,14],settl:42,setup:[3,28,39],setupclass:[28,29,30,39],sever:[],sgd:41,sgdclassifi:[],shape:[0,7,14,27,40],shapelbarr:[],share:27,should:[3,40,41,43],show:[0,14,27,40,42],shuffl:[],sig:[],sig_l:[],sig_r:[],sign_label:27,signal:27,similar:40,similarli:[41,43],simpl:[3,40],simplest:[40,41],simul:[3,40,41],sinc:[],singl:[42,43],six:5,size:[0,14],sklearn:[5,6,7,14,27,41,44],slice:27,slightli:42,snapshot:[],solut:[5,27],solv:41,some:[0,5,14,27,40,41,44,45],sort:[0,14,43],sort_by_test_scor:[0,14],sorted_nam:[0,14],sorted_test_scor:[0,14],sorted_test_std:[0,14],sorted_train_scor:[0,14],sorted_train_std:[0,14],sound:43,sound_dataset:43,sound_matrix:43,source_view_nam:27,space:[27,41],spare:5,spars:[5,27,43],sparsif:[],sparsifi:[],spear_mint:27,spearmint:27,specif:[0,5,6,14,27,41,42],specifi:[5,6,7,14,27,40,41],spectacularli:40,sphinx:3,split:[3,6,14,27,28,40,42],split_ratio:27,splitter:41,spy:[],squar:[],src:[],standard:[0,14,42],start:[0,3,14],started_1560_04_01:41,started_1560_12_25:[40,42],startl:40,stat:42,state:[0,14,27,40,41,44],statist:[0,3,6,14,27,45],stats_it:[0,6,14,27,28,42],stats_iter_random_st:27,statsit:[0,14,27],std:[0,14,27,42],step:[3,45],step_predict:[],still:5,stochastic_gradi:[],stop:27,store:[0,5,6,7,14,27,40,41,43],str:[0,6,14,27],stratifi:27,stratifiedkfold:27,stratifiedshufflesplit:41,string:[5,6,7,14,27,44],string_analysi:[],stringanalysi:[],strongli:41,struct_mana_r:[],struct_mres_gr:[],struct_multires_lbarr:[],structur:[0,3,14,40,42],stuff:13,sub:41,subgraph:[],submodul:[3,4,15],subpackag:[3,4],subplot:[0,14],subsampl:[],subset:[27,41],success:40,successfulli:40,sucess:5,sum:46,summari:[40,42],suppos:[43,44],sure:43,svc:[],svcc:[],svcclassifi:[],svm_linear:40,svm_poli:41,svm_rbf:[],svmforlinear:[13,14,15,22,23],svmlinear:[],svmlinearwith:40,svmpoli:[],svmrbf:[],symmetr:40,t_start:[],tab:[],tab_multir:[],tab_struct_multires_lbarr:[],tabl:41,tag:[0,14],take:[3,40,41,45],taken:[],target:[7,27],target_dataset:27,target_view_index:27,task:[3,40,41],teardown:39,teardownclass:[28,30,39],tell:27,templat:[],temporari:27,term:[40,41,42],termin:[40,46],test:[0,3,4,6,14,27,40,42],test_accuracy_scor:[13,28],test_adaboost:[13,28],test_all_views_ask:39,test_argu:39,test_asked_the_whole_dataset:39,test_benchmark_w:28,test_compat:[13,28],test_configur:[13,28],test_dict_format:39,test_difficultymeasur:[13,28,32],test_difficultymeasuremodul:[13,28,32],test_disagreefus:[13,28,32],test_disagreefusionmodul:[13,28,32],test_diversity_util:[13,28],test_doublefaultfus:[13,28,32],test_doublefaultfusionmodul:[13,28,32],test_empty_arg:39,test_entropyfus:[13,28,32],test_entropyfusionmodul:[13,28,32],test_execbenchmark:28,test_execclassif:[4,13],test_execclassifmonoview:[13,28],test_execonebenchmark:[],test_execonebenchmark_multicor:[],test_execut:[13,28],test_file_load:39,test_folds_pr:[],test_format_previous_result:28,test_fus:[13,28,32],test_fusionmodul:[13,28,32],test_gen_error_data:28,test_gen_error_data_glob:28,test_genargumentdictionari:39,test_gendirecortiesnam:39,test_genkfold:39,test_genkfolds_it:39,test_genmulticlasslabel:39,test_gensplit:39,test_gensplits_no_it:39,test_gentestfoldspr:30,test_get_argu:28,test_get_classic_db_csv:39,test_get_classic_db_hdf5:39,test_get_example_errors_biclass:28,test_get_metrics_scores_biclass:28,test_get_path_dict:28,test_get_plausible_db_hdf5:39,test_get_the_arg:39,test_getdatabasefunct:39,test_gethp:30,test_getmultiviewdb:[13,28],test_hdf5:39,test_init_argument_dictionaries_monoview:28,test_init_argument_dictionaries_multiview:28,test_init_argument_dictionaries_multiview_complex:28,test_init_argument_dictionaries_multiview_multipl:28,test_init_argument_dictionaries_multiview_multiple_complex:28,test_init_plot:28,test_initargumentdictionari:28,test_initbenchmark:28,test_initconst:30,test_initkwarg:28,test_initkwargsfunc_no_monoview:28,test_initrandomst:39,test_initstatsiterrandomst:39,test_inittraintest:30,test_label:27,test_labels_multiclass:[],test_metr:[13,28],test_mono_view:[13,28],test_monoview_classifi:[13,28],test_monoviewutil:[13,28],test_multiclass:[13,28],test_multiclass_and_it:28,test_multiclass_no_it:28,test_multiple_it:39,test_multiview_classifi:[13,28],test_no_iter_biclass_multicor:28,test_one_statit:39,test_one_versus_on:39,test_ovo_no_it:39,test_parsethearg:39,test_plausible_hdf5:39,test_pseudocqfusionmodul:[13,28,32],test_pseudocqmeasur:[13,28,32],test_random_state_42:39,test_random_state_pickl:39,test_resultanalysi:[4,13],test_scor:[0,14],test_set_el:28,test_simpl:[28,30,39],test_simple_ovo:39,test_std:[0,14],test_two_class:39,test_util:[13,28],test_vers:13,testcas:[28,29,30,39],testlabel:[],testscor:[],text:[0,14,41],tha:41,than:[27,40,41,42],thank:[6,14,41],thei:[5,41,44],them:[0,14,27,40,41,43],thi:[0,2,3,5,6,7,13,14,27,41,42,43,44],thing:[],third:[],thoroughli:3,those:40,thread:[5,6,14,27],three:[41,43,44],through:40,ths:7,thu:41,tick:[0,14],time:[0,5,14,40,41],timeout:27,titl:[0,14],to_numpy_arrai:[27,44],to_str:[],tobe:27,toctre:3,todo:[40,41,44],tol:[],too:[27,41],took:40,tool:[3,43],toolbox:45,top:42,top_directori:5,total:[5,6,14],traceback:14,trade_off:44,tradeoff:41,train:[0,3,6,14,27,40,42],train_indic:[40,42,44],train_label:[27,40,42],train_scor:[0,14],train_std:[0,14],trainlabel:[],trainscor:[],transform:[0,13,14],tree:41,triplet:[6,14,27],true_label:[0,14],truth:7,tune:[6,14],tupl:[],tutori:3,two:[27,40,41,43,44],txt:[40,42],type:[0,5,6,7,14,27,28,40,41],type_var:27,unbalanc:41,under:[40,42],understand:[3,40,45],uniform:41,uniqu:27,unittest:[5,28,29,30,39],unknown:41,unless:[],unlucki:42,unseen:41,unsign_label:27,unsupervis:27,update_hdf5_dataset:27,url:41,usabl:[0,14,44],usag:[],use:[3,5,6,14,27,40,41,43,44,45],use_plotli:[0,14],used:[2,3,6,13,14,27,40,41,43,44],used_indic:27,useful:[0,14,40,41],usefulness:41,user:[6,14,27,40,41],user_exemple_analysis_recon:[],uses:[40,41,42],using:[5,27,40,41,43],usual:43,utf:5,util:[12,13,14,44],valid:[6,14,27,40],validation_indic:27,validationindic:[],valu:[0,6,7,14,27,40,41,43],value1:[6,14],value2:[6,14],vanish:[],variabl:[6,14],variou:[],vector:27,veri:40,version:[3,4,5,40],versu:[0,14,27],vertex:[],vertic:42,view0:43,view1:43,view2:43,view:[0,3,6,14,27,28,40,41,42,43],view_data:27,view_dict:27,view_idx:27,view_index:[6,14,27],view_indic:[27,44],view_limit:[27,44],view_nam:[0,5,6,14,27],viewnumber0:[40,41,42],viewnumber1:[40,41,42],viewnumber2:[40,41,42],views_dictionari:[6,14],views_indic:[14,27,28],viewx:5,visibl:40,visual:[5,40],vote:41,wai:[0,14,40,41,43],want:[41,44],warm_start:[],warn:41,watch:[],weight:[],weight_boost:[],weighted_linear_late_fus:[40,42],weightedlinear:[13,14,15,22,23],weird_str:[],welcom:1,well:[0,14],were:[6,14,41],what:46,when:27,where:[0,14,27,40],whether:[0,5,7,14,27],which:[0,5,6,7,14,27,41,42,44,45],white:40,whiter:[0,14],whitespac:[0,14],whole:[27,40,41,42],whose:[],width:[0,14],width_denomin:[0,14],wil:[6,14,27,44],wise:[0,14,41],wit:43,within:41,without:[3,44],won:41,word:[],work:[7,27,41,43],worst:40,would:[],written:43,x_train:[],xbarr:[],xbarrei:[],xlabel:[],y_pred:7,y_test:[],y_test_multiclass_pr:[],y_test_pr:[],y_train:[],y_train_pr:[],y_true:7,yaml:5,yaml_config:27,yield:[],yml:[5,13,27,41,42],you:[3,40,41,42,43,46],your:[3,45],your_dataset_nam:5,zero:[0,14,27],zero_one_loss:[],zero_to_on:[],zoom:40},titles:["Result analysis module","Multiview Platform","Welcome to the exection documentation","Welcome to MultiviewPlatform\u2019s documentation!","multiview_platform","Readme","Classification execution module","Metrics framework","Classifiers","Diversity Fusion Classifiers","Utils execution module","Utils Multiclass module","Mono and mutliview classification","multiview_platform references","multiview_platform.mono_multi_view_classifiers package","multiview_platform.mono_multi_view_classifiers.multiview_classifiers package","multiview_platform.mono_multi_view_classifiers.multiview_classifiers.difficulty_fusion package","multiview_platform.mono_multi_view_classifiers.multiview_classifiers.disagree_fusion package","multiview_platform.mono_multi_view_classifiers.multiview_classifiers.double_fault_fusion package","multiview_platform.mono_multi_view_classifiers.multiview_classifiers.entropy_fusion package","multiview_platform.mono_multi_view_classifiers.multiview_classifiers.fat_late_fusion package","multiview_platform.mono_multi_view_classifiers.multiview_classifiers.fat_scm_late_fusion package","multiview_platform.mono_multi_view_classifiers.multiview_classifiers.fusion package","multiview_platform.mono_multi_view_classifiers.multiview_classifiers.fusion.Methods package","multiview_platform.mono_multi_view_classifiers.multiview_classifiers.fusion.Methods.EarlyFusionPackage package","multiview_platform.mono_multi_view_classifiers.multiview_classifiers.fusion.Methods.LateFusionPackage package","multiview_platform.mono_multi_view_classifiers.multiview_classifiers.pseudo_cq_fusion package","multiview_platform.mono_multi_view_classifiers.utils package","multiview_platform.tests package","multiview_platform.tests.test_metrics package","multiview_platform.tests.test_mono_view package","multiview_platform.tests.test_monoview_classifiers package","multiview_platform.tests.test_multiview_classifiers package","multiview_platform.tests.test_multiview_classifiers.Test_DifficultyMeasure package","multiview_platform.tests.test_multiview_classifiers.Test_DisagreeFusion package","multiview_platform.tests.test_multiview_classifiers.Test_DoubleFaultFusion package","multiview_platform.tests.test_multiview_classifiers.Test_EntropyFusion package","multiview_platform.tests.test_multiview_classifiers.Test_Fusion package","multiview_platform.tests.test_multiview_classifiers.Test_PseudoCQMeasure package","multiview_platform.tests.test_utils package","Example 1 : First steps with Multiview Platform","Example 2 : Understanding the hyper-parameter optimization","Example 3 : Understanding the statistical iterations","Taking control : Use your own dataset","Taking control : Use your own algorithms","Multiview Platform Tutorials","Install Multiview Platform"],titleterms:{"1560_12_25":40,"15_42":40,Adding:[43,44],The:43,Use:[43,44],accuracy_scor:40,adaboost:[],adaboost_gra:[],adaboost_pregen10:[],adaboost_pregen:[],adaboost_pregen_tre:[],addit:43,algorithm:44,alreadi:5,analysi:0,analyze_result:[16,17,18,19,20,21,22,26],argument:5,author:5,bare:43,bayesianinfer:25,benchmark:5,boostutil:[],c_greed:[],cb_boost:[],cbboostutil:[],cg_desc10:[],cg_desc:[],cg_desc_tre:[],cgdescutil:[],choic:41,classif:[5,6,12],classifi:[8,9,40,44],coeffici:[],compat:5,complex:44,comput:[],config_fil:40,configur:27,content:[13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39],context:[40,42],contributor:5,control:[43,44],convers:43,cq_boost:[],cq_boosttre:[],cq_boostv21:[],cq_boostv2:[],cqboostutil:[],cross:41,csv:[5,40],data:5,dataset:[5,27,43],decision_tre:[],decision_tree_pregen:[],depend:40,difficulty_fus:16,disagree_fus:17,discov:5,divers:9,diversity_util:[],document:[2,3],double_fault_fus:18,earlyfus:23,earlyfusionpackag:24,entropy_fus:19,error_analysis_2d:40,error_analysis_bar:40,exampl:[40,41,42,43],exec_classif:14,exec_classif_mono_view:[],exec_multiview:[],exec_plot:[],exect:2,execut:[6,10,13,27],experi:41,explan:41,export_result:[],f1_score:[],fat_late_fus:20,fat_scm_late_fus:21,fbeta_scor:[],file:[5,40],first:40,fold:41,format:5,framework:7,fusion:[9,22,23,24,25],generic_scor:[],get:[5,40],get_multiview_db:27,gradient_boost:[],graph:[],hamming_loss:[],hand:41,have:5,hdf5:[5,43],how:42,html:40,hyper:41,hyper_parameter_search:27,impact:41,indic:3,inform:43,instal:[5,46],intertwin:[],introduct:40,intuit:41,iter:42,jaccard_similarity_scor:[],knn:[],lasso:[],latefus:23,latefusionpackag:25,launch:46,log:40,log_loss:[],majorityvot:25,make_file_config:27,matthews_corrcoef:[],method:[23,24,25],metric:[7,41],min_cq:[],min_cq_graalpi:[],min_cq_graalpy_tre:[],mincqutil:[],modul:[0,6,10,11,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39],mono:[5,12],mono_multi_view_classifi:[14,15,16,17,18,19,20,21,22,23,24,25,26,27],monoview:44,monoview_classifi:[],monoview_util:[],more:44,multi:5,multiclass:[11,27],multipl:5,multiview:[1,40,44,45,46],multiview_classifi:[15,16,17,18,19,20,21,22,23,24,25,26],multiview_platform:[4,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39],multiview_result_analysi:27,multiview_util:[],multiviewplatform:3,must:5,mutliview:12,necess:43,oper:[],optim:41,organ:5,own:[43,44],packag:[14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39],paramet:41,pickl:40,platform:[1,40,45,46],png:40,precision_scor:[],pregenutil:[],prerequisit:5,process:[],pseudo_cq_fus:26,qar_boost:[],qar_boost_nc3:[],qar_boostv2:[],qar_boostv3:[],random:41,random_forest:[],random_st:40,readm:5,recall_scor:[],reconstruct:[],refer:13,result:0,result_analysi:14,roc_auc_scor:[],run:5,scm:[],scm_pregen:[],scm_pregen_tre:[],scm_sparsiti:[],scm_sparsity_tte:[],scmforlinear:25,search:41,setup:46,sgd:[],signal:[],simpl:44,simul:5,size:41,split:41,start:[5,40],statist:42,step:40,structur:43,subgraph:[],submodul:[13,14,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39],subpackag:[13,14,15,22,23,28,32,37],svcclassifi:[],svm_linear:[],svm_poli:[],svm_rbf:[],svmforlinear:25,tabl:3,take:[43,44],task:44,test:[5,13,28,29,30,31,32,33,34,35,36,37,38,39,41],test_accuracy_scor:29,test_adaboost:31,test_compat:31,test_configur:39,test_difficultymeasur:33,test_difficultymeasuremodul:33,test_disagreefus:34,test_disagreefusionmodul:34,test_diversity_util:32,test_doublefaultfus:35,test_doublefaultfusionmodul:35,test_entropyfus:36,test_entropyfusionmodul:36,test_execclassif:28,test_execclassifmonoview:30,test_execut:39,test_fus:37,test_fusionmodul:37,test_getmultiviewdb:39,test_metr:29,test_mono_view:30,test_monoview_classifi:31,test_monoviewutil:30,test_multiclass:39,test_multiview_classifi:[32,33,34,35,36,37,38],test_pseudocqfusionmodul:38,test_pseudocqmeasur:38,test_resultanalysi:28,test_util:39,them:5,thi:40,tool:46,train:41,transform:27,tutori:[40,45],understand:[41,42],usag:41,use:42,util:[10,11,27],valid:41,version:13,view:5,wavelet:[],weightedlinear:[24,25],welcom:[2,3],yml:40,you:5,your:[5,43,44],zero_one_loss:[]}}) \ No newline at end of file +Search.setIndex({docnames:["analyzeresult","api","execution","index","modules","readme_link","references/monomulti/exec_classif","references/monomulti/metrics","references/monomulti/multiview_classifiers/classifiers","references/monomulti/multiview_classifiers/diversity_fusion","references/monomulti/utils/execution","references/monomulti/utils/multiclass","references/monomultidoc","references/multiview_platform","references/multiview_platform.mono_multi_view_classifiers","references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers","references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.difficulty_fusion","references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.disagree_fusion","references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.double_fault_fusion","references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.entropy_fusion","references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.fat_late_fusion","references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.fat_scm_late_fusion","references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.fusion","references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.fusion.Methods","references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.fusion.Methods.EarlyFusionPackage","references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.fusion.Methods.LateFusionPackage","references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.pseudo_cq_fusion","references/multiview_platform.mono_multi_view_classifiers.utils","references/multiview_platform.tests","references/multiview_platform.tests.test_metrics","references/multiview_platform.tests.test_mono_view","references/multiview_platform.tests.test_monoview_classifiers","references/multiview_platform.tests.test_multiview_classifiers","references/multiview_platform.tests.test_multiview_classifiers.Test_DifficultyMeasure","references/multiview_platform.tests.test_multiview_classifiers.Test_DisagreeFusion","references/multiview_platform.tests.test_multiview_classifiers.Test_DoubleFaultFusion","references/multiview_platform.tests.test_multiview_classifiers.Test_EntropyFusion","references/multiview_platform.tests.test_multiview_classifiers.Test_Fusion","references/multiview_platform.tests.test_multiview_classifiers.Test_PseudoCQMeasure","references/multiview_platform.tests.test_utils","tutorials/example1","tutorials/example2","tutorials/example3","tutorials/example4","tutorials/example5","tutorials/index","tutorials/installation"],envversion:{"sphinx.domains.c":1,"sphinx.domains.changeset":1,"sphinx.domains.cpp":1,"sphinx.domains.javascript":1,"sphinx.domains.math":2,"sphinx.domains.python":1,"sphinx.domains.rst":1,"sphinx.domains.std":1,sphinx:55},filenames:["analyzeresult.rst","api.rst","execution.rst","index.rst","modules.rst","readme_link.rst","references/monomulti/exec_classif.rst","references/monomulti/metrics.rst","references/monomulti/multiview_classifiers/classifiers.rst","references/monomulti/multiview_classifiers/diversity_fusion.rst","references/monomulti/utils/execution.rst","references/monomulti/utils/multiclass.rst","references/monomultidoc.rst","references/multiview_platform.rst","references/multiview_platform.mono_multi_view_classifiers.rst","references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.rst","references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.difficulty_fusion.rst","references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.disagree_fusion.rst","references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.double_fault_fusion.rst","references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.entropy_fusion.rst","references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.fat_late_fusion.rst","references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.fat_scm_late_fusion.rst","references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.fusion.rst","references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.fusion.Methods.rst","references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.fusion.Methods.EarlyFusionPackage.rst","references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.fusion.Methods.LateFusionPackage.rst","references/multiview_platform.mono_multi_view_classifiers.multiview_classifiers.pseudo_cq_fusion.rst","references/multiview_platform.mono_multi_view_classifiers.utils.rst","references/multiview_platform.tests.rst","references/multiview_platform.tests.test_metrics.rst","references/multiview_platform.tests.test_mono_view.rst","references/multiview_platform.tests.test_monoview_classifiers.rst","references/multiview_platform.tests.test_multiview_classifiers.rst","references/multiview_platform.tests.test_multiview_classifiers.Test_DifficultyMeasure.rst","references/multiview_platform.tests.test_multiview_classifiers.Test_DisagreeFusion.rst","references/multiview_platform.tests.test_multiview_classifiers.Test_DoubleFaultFusion.rst","references/multiview_platform.tests.test_multiview_classifiers.Test_EntropyFusion.rst","references/multiview_platform.tests.test_multiview_classifiers.Test_Fusion.rst","references/multiview_platform.tests.test_multiview_classifiers.Test_PseudoCQMeasure.rst","references/multiview_platform.tests.test_utils.rst","tutorials/example1.rst","tutorials/example2.rst","tutorials/example3.rst","tutorials/example4.rst","tutorials/example5.rst","tutorials/index.rst","tutorials/installation.rst"],objects:{},objnames:{},objtypes:{},terms:{"0x7f30a3a1bb40":40,"0x7f3186287e30":[],"12_42_":41,"12_42__":41,"15588087e":[],"1560_04_01":41,"1560_12_25":42,"15887658e":[],"15_42":42,"16493056e":[],"200x100":43,"200x40":43,"200x55":43,"25000130e":[],"25th":40,"2d_plot_data":[40,42],"345px":[],"55845734e":[],"56532883e":[],"68070076e":[],"78582022e":[],"78647881e":[],"84741585e":[],"95570764e":[],"99267234e":[],"99456183e":[],"boolean":5,"case":[],"class":[40,41,42,43,44],"default":41,"final":40,"float":[41,44],"function":40,"import":[5,40,41,43,44],"int":5,"long":[41,43],"new":40,"return":[42,44],"static":[],"super":44,"true":[40,41],"try":[5,41,43],"while":[41,43],Adding:40,And:[5,41,43],But:41,For:[5,40,41,42,44],HPS:[],IDs:43,Ids:[],One:[5,41,44],THe:[],The:[3,5,40,41,42,45],Then:[40,42,43,44],These:[40,41],Ths:41,Use:45,Used:5,Will:[],With:5,Yes:40,__init__:44,_fit_stag:[],_gen:[],_iter:41,_search:[],_static:[],_view:41,abl:[5,40,41,43,44],about:5,abs:[],absolut:5,access:[],accord:[],account:[],accuraci:[40,41],accuracy_scor:[41,42],adaboost:[40,41,42],adaboost_gra:[],adaboost_pregen10:[],adaboost_pregen:[],adaboost_pregen_tre:[],adaboostclassifi:[],adapt:3,add:[3,40,41,42,43,44],add_gaussian_nois:[],add_new_labels_combin:[],add_new_metr:[],add_nois:[],added:44,adding:43,addit:5,advantag:3,advis:[],after:[40,42],again:[],agrument:[],aim:[5,40],alexandr:[],algo:44,algo_modul:44,algoclassifi:44,algorithm:[5,40,41,45],algortihm:[],algos_monoview:[40,41],algos_muliview:40,algos_multiview:41,all:[5,40,42,43,44],all_view:[],alloc:[],allow:[3,40,41,43,44],almost:[],along:[],alpha:[],alreadi:[],also:[40,41,43],alwai:[],among:[],amount:[40,41],analys:[],analysi:[1,43],analyz:[40,41,43],analyze_biclass:[],analyze_iter_multiclass:[],analyze_result:[13,14,15],analyzebiclass_it:[],analyzemulticlass:[],ani:[40,41],anim:43,anoth:[],answer:[],anyth:[],appear:42,approx:[],approxim:[],arange_metr:[],are_spars:[],area:[],arg:[],arg_view:[],args_dictionari:[],argument:[40,41,42],argument_dictionari:[],arguments_dictionari:[],around:5,arrai:[5,43],arrang:[],art:40,artifact:43,asarrai:[],ask:40,asked_labels_nam:[],askedlabelsnam:[],astyp:43,atm:43,attr:[5,43],attribur:5,attribut:[5,43,44],author:[],auto:[],autolabel:[],automat:[],avail:[5,40,41,43,44],available_indic:[],averag:40,avoid:[],axi:[],back:[],bale:[],baptist:5,bar:[40,42],bar_plot_data:[40,42],bar_width:[],bare:[],barplot:[],base:[],base_estim:41,base_file_nam:[],baseestim:[],baselin:40,basemonoviewclassifi:44,basemultiviewclassifi:44,basi:[],basic:40,bauvin:5,bayesian_inference_fus:[],bayesianinfer:[13,14,15,22,23],bboxinout:[],bea:[],bear:43,bear_112:43,becaus:[],becom:41,bee:[],been:[3,40,43],befor:5,begin:40,behaviour:40,being:[5,41,43],belong:[],below:[40,41],benchmark:[3,40,41,42,43],benchmark_argument_dictionari:[],benchmark_arguments_dictionari:[],benchmark_init:[],benchmarkargumentdictionari:[],benchmarkargumentsdictionari:[],benchmrak:41,bencmark:[],benielli:5,best:[40,41,42],best_view_mod:44,better:[40,41],between:[41,42,43,44],biclass:40,biclass_result:[],biclassresult:[],big:[],bigger:41,binari:40,bird:43,bird_785:43,black:40,blue:[],bool:[],boost:[],boosting_bound:[],boostutil:[],both:[],bound:[],bound_nam:[],boundari:[],boundarynorm:[],bracket:41,brows:[],btween:[],build:41,bypass:41,c_greed:[],call:[5,40,41,44],callabl:[],can:[3,5,40,41,42,43],capac:[5,41],car:43,car_369:43,cardin:[],care:[],carefulli:5,carri:[],cast:[],categori:[],cb_boost:[],cbboostutil:[],center:[],central:[],cfg:[],cg_desc10:[],cg_desc:[],cg_desc_tre:[],cgdescutil:[],chain:[],chang:[],change_label_to_minu:[],change_label_to_zero:[],check:[],check_input:[],check_selected_label_nam:[],child:[],choos:43,chose:[],cl_gs_iter:[],cl_kwrag:[],cl_nbfold:[],cl_split:[],cl_statsit:[],cl_type:[],clariti:43,class_weight:[],classed_list:[],classed_param:[],classier:[],classif:[3,40,41],classifi:[3,5,12,41,42,43],classifiact:41,classification_indic:[],classification_karg:[],classificationindic:[],classificationkwarg:[],classifier_class_nam:44,classifier_config:41,classifier_configur:[],classifier_dict:[],classifier_kwarg:[],classifier_modul:[],classifier_module_nam:[],classifier_nam:41,classifiermixin:[],classifiermodul:[],classifierneg:[],classifierposit:[],classifiers_decis:[],classifiers_nam:[],classifii:[],classlabelsnam:[],classmethod:[],clean:[],clf:[],click:[],clkwarg:[],clone:5,close:42,closer:41,cmap:[],coarsest:[],code:[3,41,42,44],coeff:[],coeffs_approx:[],coeffs_detail1:[],coeffs_detail2:[],coeffs_iw:[],collbarr:[],color:[],colormap:[],column:40,combi_result:[],combin:41,come:[],command:[5,46],comment:[5,40,41],commentari:43,commentary_dataset:[],commentary_matrix:[],common:40,compar:44,compat:[],compens:41,complement:[],complet:3,complex:[40,41],complic:[],comput:[5,41,42],compute_possible_combin:[],conain:[],conatin:[],concant:[],concat_view:[],concaten:[],conclus:41,conduct:[],config:[5,40,41,42,43],config_example_1:[],config_example_2_1_1:41,config_exmaple_1:40,config_fil:[5,42],config_path:5,configgener:[],configstr:[],configur:[5,13,14,40,41],configurationmak:[],confirm:40,confus:5,connect:[],conresspond:[],consid:[],consider:[],consist:[41,43],consol:[],constain:[],constant:[],consum:41,contain:[3,5,40,43,44],containig:[],content:[1,3,12],context:[],contigu:[],continu:[],contribut:[],contributor:[],control:[40,41,42,45],convers:[],convert:43,coo_matrix:[],coordin:[],coordinate_desc:[],copi:40,copy_hdf5:[],copy_view:[],core:[3,40],core_index:[],coreindex:[],correctli:[5,43],correspond:[40,43,44],costli:42,could:40,count:[5,40],coupl:[],couplediversityfusionclassifi:[],cq_boost:[],cq_boosttre:[],cq_boostv21:[],cq_boostv2:[],cqboostutil:[],creat:[3,5,43,44],create_dataset:43,create_group:43,criteria:[],criterion:41,crop:[],cross:40,csr_matrix:[],csv:[5,41,42,43],current:[],custom:40,customdecisiontre:[],customrandint:44,customuniform:44,cvs_or_:[],dark:[],data:[40,41,43],data_base_nam:[],data_file_path:43,databas:40,database_nam:5,database_typ:[],databasenam:[],databasetyp:[],datafram:[],dataset:[3,13,14,40,41,42,45],dataset_file_index:[],dataset_var:[],dataseterror:[],datasetfil:[],datasetlength:[5,43],datasets_already_exist:[],date:40,debug:[],decemb:40,decid:[],decis:41,decision_tre:[40,41,42],decision_tree_pregen:[],decisiontre:[],decisiontreeclassifi:41,decod:[],decomposit:[],deconstruct:[],decrypt:40,dedic:[],deep:41,deeper:41,def:44,defend:41,defin:[43,44],degre:[],delet:[],delete_hdf5:[],delimit:43,demand:41,demo:[],depend:[5,41,42],depth:41,derectori:[],descend:[],descent:[],describ:[3,43],descript:[],design:3,detail1:[],detail2:[],detail:5,detect:40,detector:[],develop:[40,43,46],deviat:42,diagon:[],dicaitonari:[],dict:[],dictionari:[],dictionnari:[],dicument:44,did:[],didn:40,differ:[3,5,40,41,42,43],difficulty_fus:[13,14,15,41],difficultyfus:[],direcori:[],direct:3,directli:[],directori:[5,40,42,46],disabl:[],disagree_fus:[13,14,15],disagreefus:[],discontinu:[],discov:[],disk:[],dispach:[],displai:[40,42],distrib:44,distribut:[41,44],divers:12,diversity_measur:[],diversity_util:[],divid:41,doc:44,docstr:[],document:[1,5],docutil:5,doe:[],doe_562:43,dominiqu:5,don:[],done:42,dot:[],double_fault_fus:[13,14,15,41],doublefaultfus:[],doublet:[],download:46,draw:[41,42],drawn:[],drive:5,drouin:[],dtype:43,due:[],durat:41,dure:[40,41],each:[5,40,41,42,43,44],earli:[],earlyfus:[13,14,15,22],earlyfusionpackag:[13,14,15,22,23],easi:[3,5],easili:43,edg:44,effect:[],effici:[5,41],either:[],element:[],els:[],enabl:41,encapsul:[],encod:[5,43],end:41,ensembl:[],enter:[],entri:[],entropy_fus:[13,14,15],entropyfus:[],enumer:43,environ:40,equal:41,equiv:[],equival:[],equivalent_draw:41,eras:[],error:[40,44],error_2d:[],error_analysi:[],error_analysis_2d:42,error_analysis_bar:42,error_on_exampl:[],estim:[3,41],etc:[],evalu:[5,40,41],even:42,exact:[],exampl:[5,44,45],example2:41,example_1:40,example_2:[],example_2_1:41,example_error:[],example_id:43,example_ids_path:43,example_indic:44,examples_indic:[],except:[],exec_benchmark:[],exec_classif:13,exec_classif_mono_view:[],exec_monoview:[],exec_monoview_multicor:[],exec_multiview:[],exec_multiview_multicor:[],exec_one_benchmark:[],exec_one_benchmark_mono_cor:[],exec_one_benchmark_multicor:[],exec_plot:[],execmonoview_multicor:[],exect:1,execut:[5,12,14,40,41],exeperi:[],exercis:[],exist:[],exmapl:[],expect:[],experi:40,experiment:[],explain:45,explan:[],explor:[],exponenti:[],export_result:[],extent:[],extern:43,extract:41,extract_dict:[],extract_subset:[],extrat:[],f1_score:[40,42],f_2:[],f_k:[],fact:41,fail:40,failed_list:[],failur:40,fair:41,fairest:41,fakearg:[],fakebenchmarkexec:[],fakebenchmarkexec_monocor:[],fakebenchmarkexec_mutlicor:[],fakedelet:[],fakeexecmono:[],fakeexecmulti:[],fakegetresult:[],fakeinitmulti:[],fakekfold:[],fals:43,far:[40,41],fare:[],fashion:44,faster:41,fat_late_fus:[13,14,15],fat_scm_late_fus:[13,14,15],fbeta_scor:[],feat:[],featur:[40,42,43],feature_import:[40,42],feature_importance_datafram:[40,42],feature_nam:[],feature_std:[],few:[],field:[],fig_kwarg:[],figur:[40,41,42],file:[3,41,42,43,44],file_insertion_en:[],file_nam:[],file_path:43,filenam:[],fill:43,filter:[],find:[40,43],find_dataset_nam:[],finest:[],first:[5,41,45],first_classifier_decis:[],fit:[41,43,44],fit_multiview:[],fit_param:[],five:40,fix:[40,43],fixtur:[],flag:[],float32:[],focu:41,fold:[40,42],folds_list:[],follow:[5,40,43,45,46],following_s:[],forest:[],format:[40,43],format_dataset:[5,43],format_previous_result:[],fortran:[],four:40,frac:41,framework:12,from:[5,40,41,42,43,44],full:[5,40],full_label:[],full_labels_pr:[],fulli:43,further:5,fusion:[12,13,14,15,41],futur:41,g_1:[],g_2:[],g_k:[],gap:43,gen:[],gen_argument_dictionari:[],gen_best_param:[],gen_classifiers_dict:[],gen_direcorties_nam:[],gen_error_data:[],gen_error_data_glob:[],gen_heat_map:[],gen_k_fold:[],gen_metrics_scores_multiclass:[],gen_multiclass_label:[],gen_multiclass_monoview_decis:[],gen_multiple_args_dictionnari:[],gen_multiple_kwargs_combin:[],gen_single_monoview_arg_dictionari:[],gen_single_multiview_arg_dictionari:[],gen_split:[],genbestparam:[],gendistrib:[],gener:[5,40,41],generic_scor:[],genfromtxt:43,genparamsfromdetector:[],gentestfoldspr:[],geq:[],get:[41,42,43],get_accuracy_graph:[],get_argu:[],get_available_monoview_classifi:[],get_classic_db_csv:[],get_classic_db_hdf5:[],get_classifier_nam:[],get_database_funct:[],get_error_on_labels_multiclass:[],get_example_errors_biclass:[],get_examples_views_indic:44,get_feature_import:[],get_fig_s:[],get_interpret:[],get_label:[],get_label_nam:[],get_metrics_scor:[],get_metrics_scores_biclass:[],get_monoview_classifi:[],get_multiview_db:[13,14],get_nam:[],get_name_for_fus:[],get_nb_class:[],get_nb_exampl:[],get_nb_poss:[],get_path_dict:[],get_plausible_db_hdf5:[],get_result:[],get_scor:[],get_shap:[],get_test_folds_pr:[],get_the_arg:[],get_total_metric_scor:[],get_v:[],get_view_dict:[],get_view_nam:[],getclassifierconfigstr:[],getconfig:[],getdatabas:[],getdbconfigstr:[],gethp:[],getinterpret:[],getmetricscor:[],getmetricsscor:[],gettotalmetricscor:[],gini:41,gitlab:5,gitwork:[],give:41,given:[5,41],globaldiversityfusionclassifi:[],goal:[43,44],good:41,got:40,gradient:[],gradient_boost:[],gradientboost:[],gradientboostingclassifi:[],grai:[],graph:40,great:[41,42],greater:[],grid:[],grid_search:[],gridsearch:[],groud_truth:[],ground:[],ground_truth:[],group:[5,43],guaussian:[],guess:[],guidelin:44,h5py:[5,43],half:40,hamming_loss:[],hand:[],handl:[],happen:41,hard:[5,40],harder:40,has:[40,41,43],have:[40,41,42,43,44],hdd:[],hdf5:[],hdf5_file:43,heat:[],height:[],height_denomin:[],held:[],henc:[],here:[40,41,42,43],hide:[],high:[],higher:40,highli:5,hing:[],hole:[],home:[],hook:[],horizont:40,hover:40,how:[40,41,45],howev:[41,42],hpo:[41,42],hps_arg:41,hps_iter:[],hps_type:41,href:5,html:[5,42],huelsmann:[],huge:41,human:43,hyper:[42,44,45],hyper_param_search:[],hyper_parameter_search:[13,14,44],hyperparamt:[],hyperparm:[],i_k_fold:[],id_tabl:[],idea:41,ideal:41,identifi:[],ids:43,ifram:[],ignor:[],imag:[40,43],image_dataset:[],image_matrix:[],images_analysi:[],imagesanalysi:[],implement:[41,44],includ:44,incorrectli:40,increas:42,ind_detailj0:[],inde:[40,42,44],independ:40,index:[3,5,43],indic:[],indices_multiclass:[],individu:42,inform:[5,40,41,44],inherit:[10,11,44],init:[],init_argument_dictionari:[],init_attr:[],init_benchmark:[],init_const:[],init_example_indc:[],init_kwarg:[],init_kwargs_func:[],init_log_fil:[],init_monoview_exp:[],init_multiple_dataset:[],init_multiview_exp:[],init_plot:[],init_random_st:[],init_stats_iter_random_st:[],init_train_test:[],init_view:[],init_view_nam:[],initconst:[],initi:43,initmultiviewargu:[],input:[42,43],input_:[],insid:[40,41],insignific:[],instal:45,instanc:[],instead:[],instruct:41,integ:[43,44],interact:[5,40],intern:[],interpret:[5,40,44],interpret_str:[],introduc:[],introduct:[],introspect:[],intuit:[],invers:[],involv:41,is_biclass:[],is_dict_in:[],is_just_numb:[],is_temp:[],issu:42,ist:[],iter:[40,41,45],iter_1:42,iter_2:42,iter_3:[],iter_:42,iter_biclass_result:[],iter_index:[],iter_multiclass_result:[],iter_result:[],iterbiclassresult:[],itercmap:[],its:[3,5,41,43],itself:[],jaccard_similarity_scor:[],jan:3,joblib:5,john_115:43,just:[5,43],k_fold:[],keep:[40,41,42,43],kei:43,kernel:[],key1:[],key1_1:[],key2:[],keyword:[],kfold:[],kneighborsclassifi:[],knn:[],know:41,knowledg:41,kwarg:[],kwargs_combin:[],kwargs_init:[],label:[5,40,43],label_nam:43,labels_combin:[],labels_data:43,labels_dataset:43,labels_dictionari:[],labels_dset:43,labels_file_path:43,labels_indic:[],labels_nam:43,labelscomin:[],laplacian:[],larger:42,lasso:[40,41],last:[5,41],lastli:[],late:41,latefus:[13,14,15,22],latefusionpackag:[13,14,15,22,23],later:[],latter:[],launch:[],layer:[],lbarr:[],lbarre0:[],lbarre0m:[],learn:[5,40,41,42,46],learning_indic:[],learning_r:[],learningindic:[],learningr:[],learnrate_0:[],least:[3,5,40],left:40,len:43,less:40,let:[40,41,43,44],letter:[],level:[],levels_coeff:[],licenc:[],light:[],like:[3,41,42],limit:5,limits_:[],linalg:[],line:[40,41,42,43],linear:41,linear_model:[],linearregress:[],list:[5,43],listedcolormap:[],listof:[],load:43,loadabl:40,loc:[],local:[],locat:40,log:42,log_loss:[],logfil:[],longer:41,look:42,loop:42,loss:[],lot:40,low:[],lsite:[],lucki:42,m2r:5,machin:[5,40,46],made:[40,41],mai:[],main:[3,40,42,44],mainli:40,major:41,majority_voting_fus:41,majorityvot:[13,14,15,22,23],make:43,make_file_config:[13,14],make_me_noisi:[],make_scor:[],mandatori:43,mani:[40,41],manipul:5,map:[],markers:[],markov:[],master:3,matplotlib:5,matric:[40,43],matrix:[5,40],matter:41,matthews_corrcoef:[],max:41,max_depth:[41,44],max_featur:[],max_it:[],max_leaf_nod:[],max_length:43,maximum:[],mayb:[],mazid:[],mean:[40,41,42],meaning:42,mearn:[],member:[10,11],memori:[],memoryview:[],metadata:[5,43],metadata_group:43,method:[13,14,15,22,41,44],methodnam:[],metric:[12,40],metric_datafram:[],metric_list:[],metric_modul:[],metric_nam:[],metric_princ:41,metric_scor:[],metric_score_str:[],metric_to_plot:[],metrics_analysi:[],metrics_list:[],metrics_scor:[],metrics_var:[],metricscor:[],metricsscor:[],mimbo:44,mimboclassifi:44,min_cq:[],min_cq_graalpi:[],min_cq_graalpy_tre:[],min_impurity_decreas:[],min_impurity_split:[],min_samples_leaf:[],min_samples_split:[],min_siz:[],min_weight_fraction_leaf:[],mincqutil:[],mind:41,minimum:43,minsiz:[],minu:[],minut:40,misclassifi:[],miss:43,missclassifi:40,mod:[],model:41,model_select:[],modifi:[3,5,42,43,44],modul:[1,3,5,12,41,44],moment:[41,43],mon:3,monitor:[],mono:3,mono_multi_view_classifi:[13,44],monomutliviewclassifi:[],monoview:[5,40,41,42],monoview_algo:[],monoview_classifi:44,monoview_estim:[],monoview_result:[],monoview_util:44,monoviewresult:[],more:[5,41,42,43],morev:40,most:[40,41,43],mtrand:40,muber:[],much:41,multi:3,multi_class_label:[],multiclass:[12,13,14],multiclass_label:[],multiclass_method:[],multiclass_pr:[],multiclass_result:[],multicor:[],multipl:[5,40,42],multiple_arg:[],multiple_monoview_classifi:[],multipli:[],multiresolut:[],multivew:41,multiview:[3,5,41,42,43],multiview_algo:[],multiview_classifi:[13,14],multiview_classifier_arg:[],multiview_machin:5,multiview_platform:[3,5,40,41,44],multiview_result_analysi:[13,14],multiview_util:44,multiviewcompatiblerandomizedsearchcv:[],multiviewplatform:3,multiviewresult:[],musch:41,must:[43,44],mutiview_result:[],mutli:[],mutlipl:[],mutlipli:[],mutliview:[],n_0:[40,41],n_clf:[],n_estim:[41,44],n_featur:[],n_iter:41,n_job:[],n_neighbor:[],n_output:[],n_sampl:[],n_target:[],naiv:40,name:[5,40,41,43,44],name_db:[],namedb:[],namig:5,napprox:[],nb_class:[],nb_classifi:[],nb_considered_feat:[],nb_core:[],nb_exampl:[],nb_featur:[],nb_fold:41,nb_label:[],nb_multiclass:[],nb_result:[],nb_view:[],nbarr:[],nbclass:[5,43],nbclassifi:[],nbcopi:[],nbcore:[],nbexampl:[],nbview:[5,43],ndarrai:[],ndetail1:[],nearli:42,necess:41,necessari:[],need:[5,41,44,46],need_proba:[],neg:[],neighbor:[],neq:[],net:[],nikola:[],nint:[],niter:[],no_vs_y:41,node:[],nois:40,noise_result:[],noise_std:[],noisi:[],non:[],none:[40,41,44],norm:[],norm_typ:44,note:[],now:[41,43,44],number:[5,40,41,42,43],numer:43,numpi:[5,40,43],numpy_mean_and_std:[],numpy_x:44,object:[40,43],obtain:41,off:41,omi:[5,40,46],onc:5,one:[5,40,41,42,43],ones:[40,41,44],oneversusal:[],oneversuson:[],oni:[],onli:[41,43],oper:[],optim:[44,45],optin:[],option:[],order:[5,40,41,42,43,44],ordinari:[],organ:[5,40],origin:[],osseni:[],other:[40,42,44],otherwis:[],our:[],out:[],outlier:40,output:[40,41,42],output_fil:[],output_file_nam:[],outputfilenam:[],over:42,overfit:41,own:[5,45],packag:[3,13,46],page:[3,40,41],panda:[5,40],parallel:[],param:[],param_distribut:[],param_nam:44,paramet:[5,42,44,45],params_dict:[],params_to_str:[],paramsset:[],paramstoset:[],paramt:[],pars:40,parse_the_arg:[],parsedargumentpars:[],part:[40,41],partial:43,particular:40,pass:41,path:[5,43],path_f:[],path_for_new:[],path_to_config_fil:[],path_to_your_dataset:[],pathf:[5,43],pbject:[],penalti:[],peopl:43,per:[],percent:[],percentag:[],perf:[],perfom:[],perform:[3,40,41,42],perofm:[],person:41,pickl:[5,42],pip:[5,46],pixel:5,plai:5,plane:43,plane_452:43,platform:[3,5,41,42,43,44],platfro:[],platfrom:44,platofrm:[],plausibl:[40,41],plot:[5,40,42],plot_2d:[],plot_errors_bar:[],plot_metric_scor:[],plot_results_nois:[],plotli:5,plotted_data:[],plotted_metr:[],plotted_metric_nam:[],plt:[],png:42,point:[],poor:42,pos:[],pos_label:40,posit:[],possibl:[40,41],potenti:[],precis:[40,41],precision_scor:[],precomput:[],pred:[],predict:[41,44],prefer:[],pregenutil:[],prerequisit:[],present:40,preset:41,presort:[],previou:[40,41,42,43],princip:40,print:[40,42],print_metric_scor:[],printmetricscor:[],prior:[5,41],priovid:[],problem:[40,41],procedur:3,process:41,process_analysi:[],process_analysis_flag:[],process_coeffici:[],process_reconstruction_sign:[],process_sign:[],progress:43,project:5,propos:[5,41],provid:[40,41,43,44],pseudo:[41,42],pseudo_cq_fus:[13,14,15],publish:[],publish_feature_import:[],publish_iter_biclass_example_error:[],publish_iter_biclass_metrics_scor:[],publish_iter_multiclass_example_error:[],publish_iter_multiclass_metrics_scor:[],publish_traceback:[],publishexampleerror:[],publishmetricsgraph:[],publishmulticlassexmapleerror:[],publishmulticlassscor:[],purpos:[],put:[],pyplot:[],python3:46,python:[5,41,43,44,46],pywp:[],pyyaml:5,qar_boost:[],qar_boost_nc3:[],qar_boostv2:[],qar_boostv3:[],quickstart:3,quit:41,ram:5,randint:[],random:[40,42,44],random_forest:[],random_s:44,random_st:[41,42,44],random_state_arg:[],randomforest:[],randomforestclassifi:[],randomised_search:[],randomized_search:[],randomizedsearchcv:[],randomli:41,randomsatearg:[],randomsearch:[],randomst:40,rang:5,rate:40,ratio:41,ration:41,raw:[],read:5,readabl:[],readi:43,readm:3,real:5,realiz:[],realli:[],reason:[],recal:[],recall_scor:[],recod:43,recommend:5,reconstruct:[],recov:[],rect:[],rectangl:40,red:[],reduc:41,reduced_kwargs_combin:[],ref:44,refer:[3,43],refit:[],regress:[],regroup:[40,42],rel:43,relat:[40,41,44],relev:41,rememb:[],remov:3,repeat:41,report:41,repositori:5,repres:[41,43],represent:40,reproduc:44,reproduct:[40,41],reproductilb:[],requir:[41,43,44,46],res_dir:40,reslut:[],resourc:42,resp:[],rest_of_the_arg:[],restrain:[],result:[1,5,40,41,42,43],result_analysi:13,result_directori:[],results_directori:[],resultsmonoview:[],resum:[],retriev:[],retuern:[],reus:[],revers:[],right:[5,40,41,43],robust:41,roc_auc_scor:[],root:3,row:40,rowlbarr:[],run:[40,41,42,43,46],runtest:[],runtim:[],rvs:[],s100:43,s10:[],sai:[40,41,44],same:[40,41,43],sampl:[],sample_weight:40,satatisitc:[],satisfi:43,sattist:[],save:[40,42,43],save_config:[],save_dict_to_text:[],save_fail:[],save_result:[],saveresult:[],scalar:[],scale:[],schur:[],scipi:5,scm:[],scm_pregen:[],scm_pregen_tre:[],scm_sparsiti:[],scm_sparsity_tte:[],scmforlinear:[13,14,15,22,23],score:[40,41,42],score_test:[],scorer:[],scores_arrai:[],script:43,scroe:[],search:[3,40],search_best_set:[],searching_tool:[],second:[40,41],second_classifier_decis:[],section:[40,41],secur:[],see:[5,41,44],seed:40,seem:40,seen:[41,42],select:41,select_label:[],select_views_and_label:[],selected_label_nam:[],self:44,semin:[],sequenc:[],serach:[],serv:41,server:[],set:[40,41,42,43],set_el:[],settl:42,setup:[],setupclass:[],sever:41,sgd:41,sgdclassifi:[],shape:[40,43],shapelbarr:[],share:[],shorter:41,should:[3,40,41,43],show:[40,42],shuffl:[],sig:[],sig_l:[],sig_r:[],sign_label:[],signal:[],similar:40,similarli:41,simpl:40,simplest:[40,41],simul:[40,41],sinc:[],singl:[42,43],six:5,size:[],sklearn:[5,41,44],slice:[],slightli:42,snapshot:[],solut:5,solv:41,some:[5,40,41,42,44,45],sore:43,sort:43,sort_by_test_scor:[],sorted_nam:[],sorted_test_scor:[],sorted_test_std:[],sorted_train_scor:[],sorted_train_std:[],sound:43,sound_dataset:[],sound_matrix:[],source_view_nam:[],space:41,spare:5,spars:[5,43],sparsif:[],sparsifi:[],spear_mint:[],spearmint:[],specif:[5,41,42],specifi:[5,40,41],spectacularli:40,sphinx:3,split:[40,42],split_ratio:[],splitter:41,spy:[],squar:[],src:[],standard:42,star:40,start:[],started_1560_04_01:41,started_1560_12_25:[40,42],startl:40,stat:[],state:[40,44],statist:45,stats_it:42,stats_iter_random_st:[],statsit:[],std:[],step:45,step_predict:[],still:[],stochastic_gradi:[],stop:[],store:[5,40,41,42,43],str:[],stratifi:[],stratifiedkfold:[],stratifiedshufflesplit:41,string:[5,43,44],string_analysi:[],stringanalysi:[],strongli:41,struct_mana_r:[],struct_mres_gr:[],struct_multires_lbarr:[],structur:[40,42],stuff:[],sub:41,subgraph:[],submodul:15,subpackag:[],subplot:[],subsampl:[],subset:41,success:40,successfulli:40,sucess:[],sum:46,summari:[40,42],summit:[5,41],support:43,suppos:[41,43,44],sure:43,svc:[],svcc:[],svcclassifi:[],svm:41,svm_linear:[40,41],svm_poli:41,svm_rbf:[],svmforlinear:[13,14,15,22,23],svmlinear:[],svmlinearwith:40,svmpoli:[],svmrbf:[],symmetr:40,t_start:[],tab:[],tab_multir:[],tab_struct_multires_lbarr:[],tabl:[],tabul:5,tag:[],take:[40,41,45],taken:[],target:[],target_dataset:[],target_view_index:[],task:[40,41],teardown:[],teardownclass:[],tell:[],templat:[],temporari:[],term:[40,41,42],termin:[40,46],test:[40,42],test_accuracy_scor:[13,28],test_adaboost:[13,28],test_all_views_ask:[],test_argu:[],test_asked_the_whole_dataset:[],test_benchmark_w:[],test_compat:[13,28],test_configur:[13,28],test_dict_format:[],test_difficultymeasur:[13,28,32],test_difficultymeasuremodul:[13,28,32],test_disagreefus:[13,28,32],test_disagreefusionmodul:[13,28,32],test_diversity_util:[13,28],test_doublefaultfus:[13,28,32],test_doublefaultfusionmodul:[13,28,32],test_empty_arg:[],test_entropyfus:[13,28,32],test_entropyfusionmodul:[13,28,32],test_execbenchmark:[],test_execclassif:13,test_execclassifmonoview:[13,28],test_execonebenchmark:[],test_execonebenchmark_multicor:[],test_execut:[13,28],test_file_load:[],test_folds_pr:[],test_format_previous_result:[],test_fus:[13,28,32],test_fusionmodul:[13,28,32],test_gen_error_data:[],test_gen_error_data_glob:[],test_genargumentdictionari:[],test_gendirecortiesnam:[],test_genkfold:[],test_genkfolds_it:[],test_genmulticlasslabel:[],test_gensplit:[],test_gensplits_no_it:[],test_gentestfoldspr:[],test_get_argu:[],test_get_classic_db_csv:[],test_get_classic_db_hdf5:[],test_get_example_errors_biclass:[],test_get_metrics_scores_biclass:[],test_get_path_dict:[],test_get_plausible_db_hdf5:[],test_get_the_arg:[],test_getdatabasefunct:[],test_gethp:[],test_getmultiviewdb:[13,28],test_hdf5:[],test_init_argument_dictionaries_monoview:[],test_init_argument_dictionaries_multiview:[],test_init_argument_dictionaries_multiview_complex:[],test_init_argument_dictionaries_multiview_multipl:[],test_init_argument_dictionaries_multiview_multiple_complex:[],test_init_plot:[],test_initargumentdictionari:[],test_initbenchmark:[],test_initconst:[],test_initkwarg:[],test_initkwargsfunc_no_monoview:[],test_initrandomst:[],test_initstatsiterrandomst:[],test_inittraintest:[],test_label:[],test_labels_multiclass:[],test_metr:[13,28],test_mono_view:[13,28],test_monoview_classifi:[13,28],test_monoviewutil:[13,28],test_multiclass:[13,28],test_multiclass_and_it:[],test_multiclass_no_it:[],test_multiple_it:[],test_multiview_classifi:[13,28],test_no_iter_biclass_multicor:[],test_one_statit:[],test_one_versus_on:[],test_ovo_no_it:[],test_parsethearg:[],test_plausible_hdf5:[],test_pseudocqfusionmodul:[13,28,32],test_pseudocqmeasur:[13,28,32],test_random_state_42:[],test_random_state_pickl:[],test_resultanalysi:13,test_scor:[],test_set_el:[],test_simpl:[],test_simple_ovo:[],test_std:[],test_two_class:[],test_util:[13,28],test_vers:[],testcas:[],testlabel:[],testscor:[],text:41,tha:[],than:[40,41,42],thank:41,thant:41,thei:[41,43,44],them:[5,40,41,43],theori:41,thi:[3,5,41,42,43,44],thing:[],third:[],thoroughli:3,those:40,thread:5,three:[41,43,44],through:40,ths:[],thu:41,tick:[],time:[40,41],timeout:[],titl:5,to_numpy_arrai:44,to_str:[],tobe:[],toctre:3,todo:[40,41,44],tol:[],too:41,took:40,tool:43,toolbox:45,top:42,top_directori:5,total:5,traceback:[],trade:41,trade_off:44,tradeoff:[],train:[40,42],train_indic:[40,42,44],train_label:[40,42],train_scor:[],train_std:[],trainlabel:[],trainscor:[],transform:[13,14],tree:41,triplet:[],true_label:[],truth:[],tune:[],tupl:[],tutori:[3,5],two:[40,41,44],txt:[40,42],type:[40,41,43],type_var:[],unbalanc:41,under:42,understand:[40,45],uniform:41,uniqu:43,unittest:[],unknown:41,unless:[],unlucki:42,unseen:41,unsign_label:[],unsupervis:[],update_hdf5_dataset:[],url:[],usabl:44,usag:[],use:[3,5,40,41,43,44,45],use_plotli:[],used:[5,40,41,43,44],used_indic:[],useful:[40,41],usefulness:41,user:[40,41],user_exemple_analysis_recon:[],uses:[40,41,42],using:[5,40,41,43],usual:43,utf:5,util:[12,13,14,44],valid:40,validation_indic:[],validationindic:[],valu:[41,43],value1:[],value2:[],vanish:[],variabl:43,variou:[],vector:[],veri:40,version:40,versu:[],vertex:[],vertic:42,view0:[],view1:[],view2:[],view:[3,40,41,42,43],view_data:43,view_dataset:43,view_dict:[],view_idx:[],view_index:43,view_indic:44,view_limit:44,view_nam:[5,43],viewi:5,viewnumber0:[40,41,42],viewnumber1:[40,41,42],viewnumber2:[40,41,42],views_dictionari:[],views_indic:[],viewx:[],visibl:40,visual:[5,40],vote:41,wai:[40,41,43],want:[41,44],warm_start:[],warn:[],watch:[],weight:[],weight_boost:[],weighted_linear_late_fus:[40,42],weightedlinear:[13,14,15,22,23],weird_str:[],welcom:1,well:[],were:41,what:46,when:41,where:40,whether:5,which:[41,42,44,45],white:40,whiter:[],whitespac:[],whole:[40,41,42],whose:[],width:[],width_denomin:[],wil:44,wise:41,wit:[],within:41,without:[3,41,44],won:41,word:[],work:43,worst:40,would:[],written:43,x_train:[],xbarr:[],xbarrei:[],xlabel:[],y_pred:[],y_test:[],y_test_multiclass_pr:[],y_test_pr:[],y_train:[],y_train_pr:[],y_true:[],yaml:5,yaml_config:[],yield:[],yml:[5,41,42],you:[3,40,41,42,43,46],your:[3,45],your_dataset_nam:[],your_file_nam:5,zero:[],zero_one_loss:[],zero_to_on:[],zip:43,zoom:[]},titles:["Result analysis module","Multiview Platform","Welcome to the exection documentation","Welcome to SuMMIT\u2019s documentation!","multiview_platform","Readme","Classification execution module","Metrics framework","Classifiers","Diversity Fusion Classifiers","Utils execution module","Utils Multiclass module","Mono and mutliview classification","multiview_platform references","multiview_platform.mono_multi_view_classifiers package","multiview_platform.mono_multi_view_classifiers.multiview_classifiers package","multiview_platform.mono_multi_view_classifiers.multiview_classifiers.difficulty_fusion package","multiview_platform.mono_multi_view_classifiers.multiview_classifiers.disagree_fusion package","multiview_platform.mono_multi_view_classifiers.multiview_classifiers.double_fault_fusion package","multiview_platform.mono_multi_view_classifiers.multiview_classifiers.entropy_fusion package","multiview_platform.mono_multi_view_classifiers.multiview_classifiers.fat_late_fusion package","multiview_platform.mono_multi_view_classifiers.multiview_classifiers.fat_scm_late_fusion package","multiview_platform.mono_multi_view_classifiers.multiview_classifiers.fusion package","multiview_platform.mono_multi_view_classifiers.multiview_classifiers.fusion.Methods package","multiview_platform.mono_multi_view_classifiers.multiview_classifiers.fusion.Methods.EarlyFusionPackage package","multiview_platform.mono_multi_view_classifiers.multiview_classifiers.fusion.Methods.LateFusionPackage package","multiview_platform.mono_multi_view_classifiers.multiview_classifiers.pseudo_cq_fusion package","multiview_platform.mono_multi_view_classifiers.utils package","multiview_platform.tests package","multiview_platform.tests.test_metrics package","multiview_platform.tests.test_mono_view package","multiview_platform.tests.test_monoview_classifiers package","multiview_platform.tests.test_multiview_classifiers package","multiview_platform.tests.test_multiview_classifiers.Test_DifficultyMeasure package","multiview_platform.tests.test_multiview_classifiers.Test_DisagreeFusion package","multiview_platform.tests.test_multiview_classifiers.Test_DoubleFaultFusion package","multiview_platform.tests.test_multiview_classifiers.Test_EntropyFusion package","multiview_platform.tests.test_multiview_classifiers.Test_Fusion package","multiview_platform.tests.test_multiview_classifiers.Test_PseudoCQMeasure package","multiview_platform.tests.test_utils package","Example 1 : First steps with Multiview Platform","Example 2 : Understanding the hyper-parameter optimization","Example 3 : Understanding the statistical iterations","Taking control : Use your own dataset","Taking control : Use your own algorithms","Multiview Platform Tutorials","Install Multiview Platform"],titleterms:{"1560_12_25":40,"15_42":40,Adding:[43,44],The:43,Use:[43,44],accuracy_scor:40,adaboost:[],adaboost_gra:[],adaboost_pregen10:[],adaboost_pregen:[],adaboost_pregen_tre:[],addit:43,algorithm:44,alreadi:5,analysi:0,analyze_result:[16,17,18,19,20,21,22,26],argument:5,author:5,bare:43,bayesianinfer:25,benchmark:5,boostutil:[],c_greed:[],cb_boost:[],cbboostutil:[],cg_desc10:[],cg_desc:[],cg_desc_tre:[],cgdescutil:[],choic:41,classif:[5,6,12],classifi:[8,9,40,44],coeffici:[],compat:5,complex:44,comput:[],config_fil:40,configur:27,content:[13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39],context:[40,42],contributor:5,control:[43,44],convers:43,cq_boost:[],cq_boosttre:[],cq_boostv21:[],cq_boostv2:[],cqboostutil:[],cross:41,csv:40,data:5,dataset:[5,27,43],decision_tre:[],decision_tree_pregen:[],depend:40,difficulty_fus:16,disagree_fus:17,discov:5,divers:9,diversity_util:[],document:[2,3],double_fault_fus:18,durat:42,earlyfus:23,earlyfusionpackag:24,entropy_fus:19,error_analysis_2d:40,error_analysis_bar:40,exampl:[40,41,42,43],exec_classif:14,exec_classif_mono_view:[],exec_multiview:[],exec_plot:[],exect:2,execut:[6,10,13,27],experi:41,explan:[],export_result:[],f1_score:[],fat_late_fus:20,fat_scm_late_fus:21,fbeta_scor:[],file:[5,40],first:40,fold:41,format:5,framework:7,fusion:[9,22,23,24,25],generic_scor:[],get:[5,40],get_multiview_db:27,gradient_boost:[],graph:[],grid:41,hamming_loss:[],hand:41,have:5,hdf5:[5,43],how:42,html:40,hyper:41,hyper_parameter_search:27,impact:41,indic:3,inform:43,instal:[5,46],intertwin:[],introduct:40,intuit:41,iter:42,jaccard_similarity_scor:[],knn:[],lasso:[],latefus:23,latefusionpackag:25,launch:46,log:40,log_loss:[],majorityvot:25,make_file_config:27,matthews_corrcoef:[],method:[23,24,25],metric:[7,41],min_cq:[],min_cq_graalpi:[],min_cq_graalpy_tre:[],mincqutil:[],modul:[0,6,10,11,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39],mono:[5,12],mono_multi_view_classifi:[14,15,16,17,18,19,20,21,22,23,24,25,26,27],monoview:44,monoview_classifi:[],monoview_util:[],more:44,multi:5,multiclass:[11,27],multipl:[],multiview:[1,40,44,45,46],multiview_classifi:[15,16,17,18,19,20,21,22,23,24,25,26],multiview_platform:[4,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39],multiview_result_analysi:27,multiview_util:[],multiviewplatform:[],must:5,mutliview:12,necess:43,oper:[],optim:41,organ:[],own:[43,44],packag:[14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39],paramet:41,pickl:40,platform:[1,40,45,46],png:40,precision_scor:[],pregenutil:[],prerequisit:5,process:[],pseudo_cq_fus:26,qar_boost:[],qar_boost_nc3:[],qar_boostv2:[],qar_boostv3:[],random:41,random_forest:[],random_st:40,readm:5,recall_scor:[],reconstruct:[],refer:13,result:0,result_analysi:14,roc_auc_scor:[],run:5,scm:[],scm_pregen:[],scm_pregen_tre:[],scm_sparsiti:[],scm_sparsity_tte:[],scmforlinear:25,search:41,setup:46,sgd:[],signal:[],simpl:44,simul:5,size:41,split:41,start:[5,40],statist:42,step:40,structur:43,subgraph:[],submodul:[13,14,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39],subpackag:[13,14,15,22,23,28,32,37],summit:3,svcclassifi:[],svm_linear:[],svm_poli:[],svm_rbf:[],svmforlinear:25,tabl:3,take:[43,44],task:44,test:[13,28,29,30,31,32,33,34,35,36,37,38,39,41],test_accuracy_scor:29,test_adaboost:31,test_compat:31,test_configur:39,test_difficultymeasur:33,test_difficultymeasuremodul:33,test_disagreefus:34,test_disagreefusionmodul:34,test_diversity_util:32,test_doublefaultfus:35,test_doublefaultfusionmodul:35,test_entropyfus:36,test_entropyfusionmodul:36,test_execclassif:28,test_execclassifmonoview:30,test_execut:39,test_fus:37,test_fusionmodul:37,test_getmultiviewdb:39,test_metr:29,test_mono_view:30,test_monoview_classifi:31,test_monoviewutil:30,test_multiclass:39,test_multiview_classifi:[32,33,34,35,36,37,38],test_pseudocqfusionmodul:38,test_pseudocqmeasur:38,test_resultanalysi:28,test_util:39,them:[],thi:40,tool:46,train:41,transform:27,tutori:[40,45],understand:[41,42],usag:41,use:42,util:[10,11,27],valid:41,version:13,view:5,wavelet:[],weightedlinear:[24,25],welcom:[2,3],yml:40,you:5,your:[5,43,44],zero_one_loss:[]}}) \ No newline at end of file diff --git a/docs/build/tutorials/example1.html b/docs/build/tutorials/example1.html index 81b085b2..10e689c3 100644 --- a/docs/build/tutorials/example1.html +++ b/docs/build/tutorials/example1.html @@ -27,9 +27,6 @@ <li class="right" style="margin-right: 10px"> <a href="../genindex.html" title="General Index" accesskey="I">index</a></li> - <li class="right" > - <a href="../py-modindex.html" title="Python Module Index" - >modules</a> |</li> <li class="right" > <a href="example2.html" title="Example 2 : Understanding the hyper-parameter optimization" accesskey="N">next</a> |</li> @@ -52,7 +49,7 @@ <h2>Context<a class="headerlink" href="#context" title="Permalink to this headline">¶</a></h2> <p>This platform aims at running multiple state-of-the-art classifiers on a multiview dataset in a classification context. It has been developed in order to get a baseline on common algorithms for any classification task.</p> -<p>Adding a new classifier (monoview and/or multiview) as been made as simple as possible in order for users to be able to +<p>Adding a new classifier (monoview and/or multiview) to the benchmark as been made as simple as possible in order for users to be able to customize the set of classifiers and test their performances in a controlled environment.</p> </div> <div class="section" id="introduction-to-this-tutorial"> @@ -70,110 +67,118 @@ customize the set of classifiers and test their performances in a controlled env <p>The config file that will be used in this example is located in <code class="docutils literal notranslate"><span class="pre">multiview-machine-learning-omis/multiview_platform/examples/config_files/config_exmaple_1.yml</span></code></p> <p>We will decrypt the main arguments :</p> <ul> -<li><p class="first">The first part of the arguments are the basic ones :</p> +<li><p class="first">The first part regroups the basics :</p> <blockquote> <div><ul class="simple"> <li><code class="docutils literal notranslate"><span class="pre">log:</span> <span class="pre">True</span></code> allows to print the log in the terminal,</li> <li><code class="docutils literal notranslate"><span class="pre">name:</span> <span class="pre">["plausible"]</span></code> uses the plausible simulated dataset,</li> -<li><code class="docutils literal notranslate"><span class="pre">random_state:</span> <span class="pre">42</span></code> fixes the random state of this benchmark, it is useful for reproductibility,</li> -<li><code class="docutils literal notranslate"><span class="pre">full:</span> <span class="pre">True</span></code> the benchmark will used the full dataset,</li> -<li><code class="docutils literal notranslate"><span class="pre">res_dir:</span> <span class="pre">"examples/results/example_1/"</span></code> the results will be saved in <code class="docutils literal notranslate"><span class="pre">multiview-machine-learning-omis/multiview_platform/examples/results/example_1</span></code></li> +<li><code class="docutils literal notranslate"><span class="pre">random_state:</span> <span class="pre">42</span></code> fixes the seed of the random state for this benchmark, it is useful for reproductibility,</li> +<li><code class="docutils literal notranslate"><span class="pre">full:</span> <span class="pre">True</span></code> means the benchmark will use the full dataset,</li> +<li><code class="docutils literal notranslate"><span class="pre">res_dir:</span> <span class="pre">"examples/results/example_1/"</span></code> saves the results in <code class="docutils literal notranslate"><span class="pre">multiview-machine-learning-omis/multiview_platform/examples/results/example_1</span></code></li> </ul> </div></blockquote> </li> <li><p class="first">Then the classification-related arguments :</p> <blockquote> -<div><ul class="simple"> -<li><code class="docutils literal notranslate"><span class="pre">split:</span> <span class="pre">0.8</span></code> means that 80% of the dataset will be used to test the different classifiers and 20% to train them</li> -<li><code class="docutils literal notranslate"><span class="pre">type:</span> <span class="pre">["monoview",</span> <span class="pre">"multiview"]</span></code> allows for monoview and multiview algorithms to be used in the benchmark</li> -<li><code class="docutils literal notranslate"><span class="pre">algos_monoview:</span> <span class="pre">["all"]</span></code> runs on all the available monoview algorithms (same for <code class="docutils literal notranslate"><span class="pre">algos_muliview</span></code>)</li> -<li><code class="docutils literal notranslate"><span class="pre">metrics:</span> <span class="pre">["accuracy_score",</span> <span class="pre">"f1_score"]</span></code> means that the benchmark will evaluate the performance of each algortihms on these two metrics.</li> +<div><ul> +<li><p class="first"><code class="docutils literal notranslate"><span class="pre">split:</span> <span class="pre">0.8</span></code> means that 80% of the dataset will be used to test the different classifiers and 20% to train them,</p> +</li> +<li><p class="first"><code class="docutils literal notranslate"><span class="pre">type:</span> <span class="pre">["monoview",</span> <span class="pre">"multiview"]</span></code> allows for monoview and multiview algorithms to be used in the benchmark,</p> +</li> +<li><p class="first"><code class="docutils literal notranslate"><span class="pre">algos_monoview:</span> <span class="pre">["all"]</span></code> runs on all the available monoview algorithms (same for <code class="docutils literal notranslate"><span class="pre">algos_muliview</span></code>)</p> +</li> +<li><p class="first">The metrics configuration</p> +<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">metrics</span><span class="p">:</span> + <span class="n">accuracy_score</span><span class="p">:{}</span> + <span class="n">f1_score</span><span class="p">:</span> + <span class="n">average</span><span class="p">:</span><span class="s2">"binary"</span> +</pre></div> +</div> +<p>means that the benchmark will evaluate the performance of each algorithms on accuracy, and f1-score with a binary average.</p> +</li> </ul> </div></blockquote> </li> -<li><p class="first">Then, the two following categories are algorithm-related and contain all the default values for the hyper-parameters.</p> -</li> </ul> <p><strong>Start the benchmark</strong></p> -<p>During the whole benchmark, the log file will be printed in the terminal. To start the benchmark run :</p> +<p>During the whole benchmark, the log file will be printed in the terminal. To start the benchmark, run :</p> <div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="n">execute</span><span class="p">()</span> </pre></div> </div> <p>The execution should take less than five minutes. We will first analyze the results and parse through the information the platform output.</p> <p><strong>Understanding the results</strong></p> -<p>The result structure can be startling at first, but as the platform provides a lot of information, it has to be organized.</p> +<p>The result structure can be startling at first, but, as the platform provides a lot of information, it has to be organized.</p> <p>The results are stored in <code class="docutils literal notranslate"><span class="pre">multiview_platform/examples/results/example_1/</span></code>. Here, you will find a directory with the name of the database used for the benchmark, here : <code class="docutils literal notranslate"><span class="pre">plausible/</span></code> Then, a directory with the amount of noise in the experiments, we didn’t add any, so <code class="docutils literal notranslate"><span class="pre">n_0/</span></code> finally, a directory with the date and time of the beginning of the experiment. Let’s say you started the benchmark on the 25th of December 1560, at 03:42 PM, the directory’s name should be <code class="docutils literal notranslate"><span class="pre">started_1560_12_25-15_42/</span></code>.</p> <p>From here the result directory has the structure that follows :</p> <div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="p">|</span> started_1560_12_25-15_42 -<span class="p">|</span> ├── No-vs-Yes -<span class="p">|</span> <span class="p">|</span> ├── adaboost -<span class="p">|</span> <span class="p">|</span> <span class="p">|</span> ├── ViewNumber0 -<span class="p">|</span> <span class="p">|</span> <span class="p">|</span> <span class="p">|</span> ├── 1560_12_25-15_42-*-summary.txt -<span class="p">|</span> <span class="p">|</span> <span class="p">|</span> <span class="p">|</span> ├── <other classifier dependant files> -<span class="p">|</span> <span class="p">|</span> <span class="p">|</span> ├── ViewNumber1 -<span class="p">|</span> <span class="p">|</span> <span class="p">|</span> <span class="p">|</span> ├── 1560_12_25-15_42-*-summary.txt -<span class="p">|</span> <span class="p">|</span> <span class="p">|</span> <span class="p">|</span> ├── <other classifier dependant files> -<span class="p">|</span> <span class="p">|</span> <span class="p">|</span> ├── ViewNumber2 -<span class="p">|</span> <span class="p">|</span> <span class="p">|</span> <span class="p">|</span> ├── 1560_12_25-15_42-*-summary.txt -<span class="p">|</span> <span class="p">|</span> <span class="p">|</span> <span class="p">|</span> ├── <other classifier dependant files> -<span class="p">|</span> <span class="p">|</span> ├── decision_tree -<span class="p">|</span> <span class="p">|</span> <span class="p">|</span> ├── ViewNumber0 -<span class="p">|</span> <span class="p">|</span> <span class="p">|</span> <span class="p">|</span> ├── <summary <span class="p">&</span> classifier dependant files> -<span class="p">|</span> <span class="p">|</span> <span class="p">|</span> ├── ViewNumber1 -<span class="p">|</span> <span class="p">|</span> <span class="p">|</span> <span class="p">|</span> ├── <summary <span class="p">&</span> classifier dependant files> -<span class="p">|</span> <span class="p">|</span> <span class="p">|</span> ├── ViewNumber2 -<span class="p">|</span> <span class="p">|</span> <span class="p">|</span> <span class="p">|</span> ├── <summary <span class="p">&</span> classifier dependant files> -<span class="p">|</span> <span class="p">|</span> ├── <span class="o">[</span>.. -<span class="p">|</span> <span class="p">|</span> ├── ..<span class="o">]</span> -<span class="p">|</span> <span class="p">|</span> ├── weighted_linear_late_fusion -<span class="p">|</span> <span class="p">|</span> <span class="p">|</span> ├── <summary <span class="p">&</span> classifier dependant files> -<span class="p">|</span> <span class="p">|</span> ├── <span class="o">[</span>.. -<span class="p">|</span> <span class="p">|</span> ├── ..<span class="o">]</span> -<span class="p">|</span> <span class="p">|</span> ├── train_labels.csv -<span class="p">|</span> │ └── train_indices.csv +<span class="p">|</span> ├── adaboost +<span class="p">|</span> <span class="p">|</span> ├── ViewNumber0 +<span class="p">|</span> <span class="p">|</span> <span class="p">|</span> ├── *-summary.txt +<span class="p">|</span> <span class="p">|</span> <span class="p">|</span> ├── <other classifier dependant files> +<span class="p">|</span> <span class="p">|</span> ├── ViewNumber1 +<span class="p">|</span> <span class="p">|</span> <span class="p">|</span> ├── *-summary.txt +<span class="p">|</span> <span class="p">|</span> <span class="p">|</span> ├── <other classifier dependant files> +<span class="p">|</span> <span class="p">|</span> ├── ViewNumber2 +<span class="p">|</span> <span class="p">|</span> <span class="p">|</span> ├── *-summary.txt +<span class="p">|</span> <span class="p">|</span> <span class="p">|</span> ├── <other classifier dependant files> +<span class="p">|</span> ├── decision_tree +<span class="p">|</span> <span class="p">|</span> ├── ViewNumber0 +<span class="p">|</span> <span class="p">|</span> <span class="p">|</span> ├── <summary <span class="p">&</span> classifier dependant files> +<span class="p">|</span> <span class="p">|</span> ├── ViewNumber1 +<span class="p">|</span> <span class="p">|</span> <span class="p">|</span> ├── <summary <span class="p">&</span> classifier dependant files> +<span class="p">|</span> <span class="p">|</span> ├── ViewNumber2 +<span class="p">|</span> <span class="p">|</span> <span class="p">|</span> ├── <summary <span class="p">&</span> classifier dependant files> +<span class="p">|</span> ├── <span class="o">[</span>.. +<span class="p">|</span> ├── ..<span class="o">]</span> +<span class="p">|</span> ├── weighted_linear_late_fusion +<span class="p">|</span> <span class="p">|</span> ├── <summary <span class="p">&</span> classifier dependant files> +<span class="p">|</span> ├── <span class="o">[</span>.. +<span class="p">|</span> ├── ..<span class="o">]</span> +<span class="p">|</span> ├── train_labels.csv +<span class="p">|</span> └── train_indices.csv <span class="p">|</span> ├── 1560_12_25-15_42-*-LOG.log <span class="p">|</span> ├── config_file.yml -<span class="p">|</span> ├── 1560_12_25-15_42-*-accuracy_score.png -<span class="p">|</span> ├── 1560_12_25-15_42-*-accuracy_score.csv -<span class="p">|</span> ├── 1560_12_25-15_42-*-f1_score.png -<span class="p">|</span> ├── 1560_12_25-15_42-*-f1_score.csv -<span class="p">|</span> ├── 1560_12_25-15_42-*-error_analysis_2D.png -<span class="p">|</span> ├── 1560_12_25-15_42-*-error_analysis_2D.html -<span class="p">|</span> ├── 1560_12_25-15_42-*-error_analysis_bar.png -<span class="p">|</span> ├── 1560_12_25-15_42-*-ViewNumber0-feature_importance.html -<span class="p">|</span> ├── 1560_12_25-15_42-*-ViewNumber0-feature_importance_dataframe.csv -<span class="p">|</span> ├── 1560_12_25-15_42-*-ViewNumber1-feature_importance.html -<span class="p">|</span> ├── 1560_12_25-15_42-*-ViewNumber1-feature_importance_dataframe.csv -<span class="p">|</span> ├── 1560_12_25-15_42-*-ViewNumber2-feature_importance.html -<span class="p">|</span> ├── 1560_12_25-15_42-*-ViewNumber2-feature_importance_dataframe.csv -<span class="p">|</span> ├── 1560_12_25-15_42-*-bar_plot_data.csv -<span class="p">|</span> ├── 1560_12_25-15_42-*-2D_plot_data.csv +<span class="p">|</span> ├── *-accuracy_score*.png +<span class="p">|</span> ├── *-accuracy_score*.html +<span class="p">|</span> ├── *-accuracy_score*-class.html +<span class="p">|</span> ├── *-accuracy_score*.csv +<span class="p">|</span> ├── *-f1_score.png +<span class="p">|</span> ├── *-f1_score.html +<span class="p">|</span> ├── *-f1_score-class.html +<span class="p">|</span> ├── *-f1_score.csv +<span class="p">|</span> ├── *-error_analysis_2D.png +<span class="p">|</span> ├── *-error_analysis_2D.html +<span class="p">|</span> ├── *-error_analysis_bar.png +<span class="p">|</span> ├── *-error_analysis_bar.html +<span class="p">|</span> ├── feature_importances +<span class="p">|</span> <span class="p">|</span> ├── *-ViewNumber0-feature_importance.html +<span class="p">|</span> <span class="p">|</span> ├── *-ViewNumber0-feature_importance_dataframe.csv +<span class="p">|</span> <span class="p">|</span> ├── *-ViewNumber1-feature_importance.html +<span class="p">|</span> <span class="p">|</span> ├── *-ViewNumber1-feature_importance_dataframe.csv +<span class="p">|</span> <span class="p">|</span> ├── *-ViewNumber2-feature_importance.html +<span class="p">|</span> <span class="p">|</span> ├── *-ViewNumber2-feature_importance_dataframe.csv +<span class="p">|</span> ├── *-bar_plot_data.csv +<span class="p">|</span> ├── *-2D_plot_data.csv <span class="p">|</span> └── random_state.pickle </pre></div> </div> -<p>The structure can seem complex, but it priovides a lot of information, from the most general to the most precise.</p> +<p>The structure can seem complex, but it provides a lot of information, from the most general to the most precise.</p> <p>Let’s comment each file :</p> -<div class="section" id="accuracy-score-png-and-1560-12-25-15-42-accuracy-score-csv"> -<h3><code class="docutils literal notranslate"><span class="pre">1560_12_25-15_42-*-accuracy_score.png</span></code> and <code class="docutils literal notranslate"><span class="pre">1560_12_25-15_42-*-accuracy_score.csv</span></code><a class="headerlink" href="#accuracy-score-png-and-1560-12-25-15-42-accuracy-score-csv" title="Permalink to this headline">¶</a></h3> +<div class="section" id="accuracy-score-html-accuracy-score-png-and-accuracy-score-csv"> +<h3><code class="docutils literal notranslate"><span class="pre">*-accuracy_score*.html</span></code>, <code class="docutils literal notranslate"><span class="pre">*-accuracy_score*.png</span></code> and <code class="docutils literal notranslate"><span class="pre">*-accuracy_score*.csv</span></code><a class="headerlink" href="#accuracy-score-html-accuracy-score-png-and-accuracy-score-csv" title="Permalink to this headline">¶</a></h3> <p>These files contain the scores of each classifier for the accuracy metric, ordered with le best ones on the right and -the worst ones on the left, as an image or as as csv matrix. +the worst ones on the left, as an interactive html page, an image or a csv matrix. The star after <code class="docutils literal notranslate"><span class="pre">accuracy_score*</span></code> means that it is the principal metric. The image version is as follows :</p> -<div class="figure" id="id1"> -<a class="reference internal image-reference" href="../_images/accuracy.png"><img alt="../_images/accuracy.png" src="../_images/accuracy.png" style="width: 950.0px; height: 316.5px;" /></a> -<p class="caption"><span class="caption-text">This is a bar plot showing the score on the training set (light gray), and testing set (dark gray). For each -monoview classifier, on each view and or each multiview classifier, the scores are printed over the name, under each bar. -It is highly recommended to click on the image to be able to zoom.</span></p> -</div> <p>The csv file is a matrix with the score on train stored in the first row and the score on test stored in the second one. Each classifier is presented in a row. It is loadable with pandas.</p> -<p>Similar files have been generated for the f1 metric (<code class="docutils literal notranslate"><span class="pre">1560_12_25-15_42-*-f1_score.png</span></code> and <code class="docutils literal notranslate"><span class="pre">1560_12_25-15_42-*-f1_score.csv</span></code>).</p> +<p>Similar files have been generated for the f1 metric.</p> </div> -<div class="section" id="error-analysis-2d-png-and-1560-12-25-15-42-error-analysis-2d-html"> -<h3><code class="docutils literal notranslate"><span class="pre">1560_12_25-15_42-*-error_analysis_2D.png</span></code> and <code class="docutils literal notranslate"><span class="pre">1560_12_25-15_42-*-error_analysis_2D.html</span></code><a class="headerlink" href="#error-analysis-2d-png-and-1560-12-25-15-42-error-analysis-2d-html" title="Permalink to this headline">¶</a></h3> +<div class="section" id="error-analysis-2d-png-and-error-analysis-2d-html"> +<h3><code class="docutils literal notranslate"><span class="pre">*-error_analysis_2D.png</span></code> and <code class="docutils literal notranslate"><span class="pre">*-error_analysis_2D.html</span></code><a class="headerlink" href="#error-analysis-2d-png-and-error-analysis-2d-html" title="Permalink to this headline">¶</a></h3> <p>In these files, one can visualize the success or failure of each classifier on each example.</p> -<p>Below, <code class="docutils literal notranslate"><span class="pre">1560_12_25-15_42-*-error_analysis_2D.html</span></code> is displayed.</p> +<p>Below, <code class="docutils literal notranslate"><span class="pre">*-error_analysis_2D.html</span></code> is displayed.</p> <p>It is the representation of a matrix, where the rows are the examples, and the columns are the classifiers.</p> <p>If a classifier (Lasso on the first view for example) missclassified an example (example number 75 for examples), a black rectangle is printed in the row corresponding to example 75 and the column corresponding to Lasso-ViewNumber0, @@ -220,17 +225,17 @@ It could mean that the example is incorrectly labeled in the dataset or is very It is an understandable behaviour as the Plausible dataset’s view are generated and noised independently. Morever, as confirmed by the accuracy graph, four monoview classifiers classified all the example to the same class, and then, display a black half-column.</p> -<p>The data used to generate those matrices is available in <code class="docutils literal notranslate"><span class="pre">1560_12_25-15_42-*-2D_plot_data.csv</span></code></p> +<p>The data used to generate those matrices is available in <code class="docutils literal notranslate"><span class="pre">*-2D_plot_data.csv</span></code></p> </div> -<div class="section" id="error-analysis-bar-png"> -<h3><code class="docutils literal notranslate"><span class="pre">1560_12_25-15_42-*-error_analysis_bar.png</span></code><a class="headerlink" href="#error-analysis-bar-png" title="Permalink to this headline">¶</a></h3> +<div class="section" id="error-analysis-bar-png-and-error-analysis-bar-html"> +<h3><code class="docutils literal notranslate"><span class="pre">*-error_analysis_bar.png</span></code> and <code class="docutils literal notranslate"><span class="pre">*-error_analysis_bar.html</span></code><a class="headerlink" href="#error-analysis-bar-png-and-error-analysis-bar-html" title="Permalink to this headline">¶</a></h3> <p>This file is a different way to visualize the same information as the two previous ones. Indeed, it is a bar plot, with a bar for each example, counting the number of classifiers that failed to classify this particular example.</p> -<div class="figure" id="id2"> +<div class="figure" id="id1"> <a class="reference internal image-reference" href="../_images/bar_error.png"><img alt="../_images/bar_error.png" src="../_images/bar_error.png" style="width: 160.0px; height: 120.0px;" /></a> <p class="caption"><span class="caption-text">The bar plot showing for each example how many classifiers failed on it.</span></p> </div> -<p>The data used to generate this graph is available in <code class="docutils literal notranslate"><span class="pre">1560_12_25-15_42-*-bar_plot_data.csv</span></code></p> +<p>The data used to generate this graph is available in <code class="docutils literal notranslate"><span class="pre">*-bar_plot_data.csv</span></code></p> </div> <div class="section" id="config-file-yml"> <h3><code class="docutils literal notranslate"><span class="pre">config_file.yml</span></code><a class="headerlink" href="#config-file-yml" title="Permalink to this headline">¶</a></h3> @@ -246,7 +251,7 @@ with a bar for each example, counting the number of classifiers that failed to c </div> <div class="section" id="classifier-dependant-files"> <h3>Classifier-dependant files<a class="headerlink" href="#classifier-dependant-files" title="Permalink to this headline">¶</a></h3> -<p>For each classifier, at least one file is generated, called <code class="docutils literal notranslate"><span class="pre">1560_12_25-15_42-*-summary.txt</span></code>.</p> +<p>For each classifier, at least one file is generated, called <code class="docutils literal notranslate"><span class="pre">*-summary.txt</span></code>.</p> <pre class="literal-block"> Classification on plausible database for ViewNumber0 with svm_linear. @@ -279,7 +284,7 @@ Classifier configuration : Classifier Interpretation : </pre> -<p>This regroups the useful information on the classifiers configuration and it’s performance. An interpretation section is +<p>This regroups the useful information on the classifier’s configuration and it’s performance. An interpretation section is available for classifiers that present some interpretation-related information (as feature importance).</p> </div> </div> @@ -297,9 +302,9 @@ available for classifiers that present some interpretation-related information ( <li><a class="reference internal" href="#context">Context</a></li> <li><a class="reference internal" href="#introduction-to-this-tutorial">Introduction to this tutorial</a></li> <li><a class="reference internal" href="#getting-started">Getting started</a><ul> -<li><a class="reference internal" href="#accuracy-score-png-and-1560-12-25-15-42-accuracy-score-csv"><code class="docutils literal notranslate"><span class="pre">1560_12_25-15_42-*-accuracy_score.png</span></code> and <code class="docutils literal notranslate"><span class="pre">1560_12_25-15_42-*-accuracy_score.csv</span></code></a></li> -<li><a class="reference internal" href="#error-analysis-2d-png-and-1560-12-25-15-42-error-analysis-2d-html"><code class="docutils literal notranslate"><span class="pre">1560_12_25-15_42-*-error_analysis_2D.png</span></code> and <code class="docutils literal notranslate"><span class="pre">1560_12_25-15_42-*-error_analysis_2D.html</span></code></a></li> -<li><a class="reference internal" href="#error-analysis-bar-png"><code class="docutils literal notranslate"><span class="pre">1560_12_25-15_42-*-error_analysis_bar.png</span></code></a></li> +<li><a class="reference internal" href="#accuracy-score-html-accuracy-score-png-and-accuracy-score-csv"><code class="docutils literal notranslate"><span class="pre">*-accuracy_score*.html</span></code>, <code class="docutils literal notranslate"><span class="pre">*-accuracy_score*.png</span></code> and <code class="docutils literal notranslate"><span class="pre">*-accuracy_score*.csv</span></code></a></li> +<li><a class="reference internal" href="#error-analysis-2d-png-and-error-analysis-2d-html"><code class="docutils literal notranslate"><span class="pre">*-error_analysis_2D.png</span></code> and <code class="docutils literal notranslate"><span class="pre">*-error_analysis_2D.html</span></code></a></li> +<li><a class="reference internal" href="#error-analysis-bar-png-and-error-analysis-bar-html"><code class="docutils literal notranslate"><span class="pre">*-error_analysis_bar.png</span></code> and <code class="docutils literal notranslate"><span class="pre">*-error_analysis_bar.html</span></code></a></li> <li><a class="reference internal" href="#config-file-yml"><code class="docutils literal notranslate"><span class="pre">config_file.yml</span></code></a></li> <li><a class="reference internal" href="#random-state-pickle"><code class="docutils literal notranslate"><span class="pre">random_state.pickle</span></code></a></li> <li><a class="reference internal" href="#log-log"><code class="docutils literal notranslate"><span class="pre">1560_12_25-15_42-*-LOG.log</span></code></a></li> @@ -345,9 +350,6 @@ available for classifiers that present some interpretation-related information ( <li class="right" style="margin-right: 10px"> <a href="../genindex.html" title="General Index" >index</a></li> - <li class="right" > - <a href="../py-modindex.html" title="Python Module Index" - >modules</a> |</li> <li class="right" > <a href="example2.html" title="Example 2 : Understanding the hyper-parameter optimization" >next</a> |</li> diff --git a/docs/build/tutorials/example2.html b/docs/build/tutorials/example2.html index 8fdf6b57..0ccdbfc3 100644 --- a/docs/build/tutorials/example2.html +++ b/docs/build/tutorials/example2.html @@ -27,9 +27,6 @@ <li class="right" style="margin-right: 10px"> <a href="../genindex.html" title="General Index" accesskey="I">index</a></li> - <li class="right" > - <a href="../py-modindex.html" title="Python Module Index" - >modules</a> |</li> <li class="right" > <a href="example3.html" title="Example 3 : Understanding the statistical iterations" accesskey="N">next</a> |</li> @@ -48,51 +45,81 @@ <div class="section" id="example-2-understanding-the-hyper-parameter-optimization"> <h1>Example 2 : Understanding the hyper-parameter optimization<a class="headerlink" href="#example-2-understanding-the-hyper-parameter-optimization" title="Permalink to this headline">¶</a></h1> -<div class="section" id="intuitive-explanation-on-hyper-parameters"> -<h2>Intuitive explanation on hyper-parameters<a class="headerlink" href="#intuitive-explanation-on-hyper-parameters" title="Permalink to this headline">¶</a></h2> -<p>Hyper-parameters are parameters of a classifier (monoview or multiview) that are task-dependant and have a huge part in the performance of the algorithm for a given task.</p> -<p>The simplest example is the decision tree. One of it’s hyper-parameter is the depth of the tree. The deeper the tree is, -the most it will fit on the learning data. However a tree too deep will most likely overfit and won’t have any value on +<div class="section" id="hyper-parameters-intuition"> +<h2>Hyper-parameters intuition<a class="headerlink" href="#hyper-parameters-intuition" title="Permalink to this headline">¶</a></h2> +<p>Hyper-parameters are parameters of a classifier (monoview or multiview) that are +task-dependant and have a huge part in the performance of the algorithm for a given task.</p> +<p>The simplest example is the decision tree. One of it’s hyper-parameter is the +depth of the tree. The deeper the tree is, +the most it will fit on the learning data. However, a tree too deep will most +likely overfit and won’t have any relevance on unseen testing data.</p> -<p>This platform proposes a randomized search for optimizing hyperparamter on the given task. In this example, -we first will analyze how it works and then how to use it.</p> +<p>This platform proposes a randomized search and a grid search to optimize +hyper-parameters. In this example, we first will analyze the theory and +then how to use it.</p> </div> <div class="section" id="understanding-train-test-split"> <h2>Understanding train/test split<a class="headerlink" href="#understanding-train-test-split" title="Permalink to this headline">¶</a></h2> -<p>In order to provide robust results, this platform splits the dataset in a training set, tha will be used by the -classifier to optimize their hyper-parameter and learn a relevant model, and a testing set that will take no part in -the learning process and serve as unseen data to estimate each model’s generalization capacity.</p> -<p>This split is controlled by the config file’s argument <code class="docutils literal notranslate"><span class="pre">split:</span></code>. It uses a float to pass the ratio between the size of the testing set and the training set : -<img class="math" src="../_images/math/db7e01742f2503f433edf60a93d678b26b5c756b.png" alt="\text{split} = \frac{\text{test size}}{\text{train size}}"/>. In order to be as fare as possible, this split is made by keeping the ratio btween each class in the training set and in the testing set.</p> +<p>In order to provide robust results, this platform splits the dataset in a +training set, that will be used by the classifier to optimize their +hyper-parameter and learn a relevant model, and a testing set that will take +no part in the learning process and serve as unseen data to estimate each +model’s generalization capacity.</p> +<p>This split ratio is controlled by the config file’s argument <code class="docutils literal notranslate"><span class="pre">split:</span></code>. It uses a float to pass the ratio between the size of the testing set and the training set : +<img class="math" src="../_images/math/6d5e78587eeb09a4cdc8542b46dfcabdaa51f335.png" alt="\text{split} = \frac{\text{test size}}{\text{dataset size}}"/>. In order to be as fair as possible, this split is made by keeping the ratio between each class in the training set and in the testing set.</p> <p>So if a dataset has 100 examples with 60% of them in class A, and 40% of them in class B, using <code class="docutils literal notranslate"><span class="pre">split:</span> <span class="pre">0.2</span></code> will generate a training set with 48 examples of class A and 32 examples of class B and a testing set with 12 examples of class A and 8 examples of class B.</p> -<p>Ths process uses sklearn’s <a class="reference external" href="https://scikit-learn.org/stable/modules/generated/sklearn.model_selection.StratifiedShuffleSplit.html">StratifiedShuffleSplit</a> to split the dataset at random while being reproductilbe thanks to the random state.</p> +<p>Ths process uses sklearn’s <a class="reference external" href="https://scikit-learn.org/stable/modules/generated/sklearn.model_selection.StratifiedShuffleSplit.html">StratifiedShuffleSplit</a> to split the dataset at random while being reproductible thanks to the random_state.</p> </div> <div class="section" id="understanding-hyper-parameter-optimization"> <h2>Understanding hyper-parameter optimization<a class="headerlink" href="#understanding-hyper-parameter-optimization" title="Permalink to this headline">¶</a></h2> -<p>As hyper-paramters are task dependant, there are two ways in the platform to set their value :</p> +<p>As hyper-parameters are task dependant, there are three ways in the platform to set their value :</p> <ul class="simple"> -<li>If you know the value (or a set of values), specify them at the end of the config file for each algorithm you want to test, and use <code class="docutils literal notranslate"><span class="pre">hps_type:</span> <span class="pre">None</span></code> in the classifiaction section of the config file. This will set the Hyper Parameter Search to None, and bypass the optimization process to run the algorithm on the specified values.</li> -<li>If you don’t know the value, the platform proposes a random search for hyper-parameter optimization.</li> +<li>If you know the value (or a set of values), specify them at the end of the config file for each algorithm you want to test, and use <code class="docutils literal notranslate"><span class="pre">hps_type:</span> <span class="pre">None</span></code> in the classifiaction section of the config file. This will bypass the optimization process to run the algorithm on the specified values.</li> +<li>If you have several possible values in mind, specify them in the config file and use <code class="docutils literal notranslate"><span class="pre">hps_type:</span> <span class="pre">'Grid'</span></code> to run a grid search on the possible values.</li> +<li>If you have no ideas on the values, the platform proposes a random search for hyper-parameter optimization.</li> </ul> +<div class="section" id="grid-search"> +<h3>Grid search<a class="headerlink" href="#grid-search" title="Permalink to this headline">¶</a></h3> +<p>The grid search is useful when one has several possible sets of hyper-parameters to test, as it is faster thant random-search but requires a relevant prior on the classification task.</p> +<p>In order to use grid search in SuMMIT, one has to specify <code class="docutils literal notranslate"><span class="pre">hps_type:</span> <span class="pre">"Grid"</span></code> in the config file and provide the values for each parameter of each algorithm in <code class="docutils literal notranslate"><span class="pre">hps_args:</span></code>. +For example, let us suppose that one wants to run a decision tree but wants to try several depth values (1,5,10), then one has to specify in the config file :</p> +<div class="highlight-yaml notranslate"><div class="highlight"><pre><span></span><span class="nt">hps_type</span><span class="p">:</span> <span class="s">"Grid"</span> +<span class="nt">hps_args</span><span class="p">:</span> + <span class="nt">decision_tree</span><span class="p">:</span> + <span class="nt">max_depth</span><span class="p">:</span> <span class="p p-Indicator">[</span><span class="nv">1</span><span class="p p-Indicator">,</span><span class="nv">5</span><span class="p p-Indicator">,</span><span class="nv">10</span><span class="p p-Indicator">]</span> +</pre></div> +</div> +<p>For more complex classifiers this process can be quite long, but it allows a shorter computational time.</p> +</div> <div class="section" id="random-search"> <h3>Random search<a class="headerlink" href="#random-search" title="Permalink to this headline">¶</a></h3> -<p>The random search is one of the most efficient while fairest method to optimize hyper-parameter. -Thus, for each algorithm in the platform, each of its hyper-paramter is provided with distribution of possible values, +<p>The random search is one of the most efficient while fairest method to optimize hyper-parameter without any prior knowledge on the dataset. +Thus, for each algorithm in the platform, each of its hyper-parameter is provided with a distribution of possible values, (for example, the decision tree’s max depth parameter is provided with a uniform distribution between 1 and 300). The random search method will randomly select hyper-parameters within this distribution and evaluate the performance of the classifier with this configuration. It will repeat that process with different randomly selected sets of hyper-parameter and keep the best configuration performance-wise.</p> -<p>In the config file, to enable random search, set the <code class="docutils literal notranslate"><span class="pre">hps_type:</span></code> line to <code class="docutils literal notranslate"><span class="pre">hps_type:</span> <span class="pre">"randomized_search"</span></code> and to -control the number of draws, use the <code class="docutils literal notranslate"><span class="pre">hps_iter:</span></code> line.</p> +<p>In the config file, to enable random search, set the <code class="docutils literal notranslate"><span class="pre">hps_type:</span></code> line to <code class="docutils literal notranslate"><span class="pre">hps_type:</span> <span class="pre">"Random"</span></code>. +The the randomized search can be configured with two arguments :</p> +<div class="highlight-yaml notranslate"><div class="highlight"><pre><span></span><span class="nt">hps_type</span><span class="p">:</span> <span class="s">"Random"</span> +<span class="nt">hps_args</span><span class="p">:</span> + <span class="nt">n_iter</span><span class="p">:</span> <span class="l l-Scalar l-Scalar-Plain">5</span> + <span class="nt">equivalent_draws</span><span class="p">:</span> <span class="l l-Scalar l-Scalar-Plain">True</span> +</pre></div> +</div> +<p>The <code class="docutils literal notranslate"><span class="pre">n_iter</span></code> parameter controls the number of random draws for each classifier +and if <code class="docutils literal notranslate"><span class="pre">equivalent_draws</span></code> is set to <code class="docutils literal notranslate"><span class="pre">True</span></code>, then the multiview classifiers +will be allowed <img class="math" src="../_images/math/a41d9126a6756c30058d2933450d07fdaf813e69.png" alt="\text{n\_iter} \times \text{n\_views}"/> iterations, +to compensate the fact that they have to solve a musch more complex problem than the monoview ones.</p> </div> <div class="section" id="k-folds-cross-validation"> <h3>K-folds cross-validation<a class="headerlink" href="#k-folds-cross-validation" title="Permalink to this headline">¶</a></h3> -<p>During the process of optimizing the hyper-parameter, the random serach has to estimate the perofmance of the classifier.</p> -<p>In order to do so, the platform uses k-folds cross-validation. This method consists in splitting the training set in -<img class="math" src="../_images/math/0b7c1e16a3a8a849bb8ffdcdbf86f65fd1f30438.png" alt="k"/> equal sub-sets, training the classifier (with the randomly chose hyper-parameters) on <img class="math" src="../_images/math/61e28425012ff04c501a81720cdd9f9b5afb962e.png" alt="k-1"/> subsets an -testing it on the last one, evaluating it’s predictive performance.</p> +<p>During the process of optimizing the hyper-parameters, the random search has to estimate the performance of each classifier.</p> +<p>To do so, the platform uses k-folds cross-validation. This method consists in splitting the training set in +<img class="math" src="../_images/math/0b7c1e16a3a8a849bb8ffdcdbf86f65fd1f30438.png" alt="k"/> equal sub-sets, training the classifier (with the hyper-parameters to evaluate) on <img class="math" src="../_images/math/61e28425012ff04c501a81720cdd9f9b5afb962e.png" alt="k-1"/> subsets an +testing it on the last one, evaluating it’s predictive performance on unseen data.</p> <p>This learning-and-testing process is repeated <img class="math" src="../_images/math/0b7c1e16a3a8a849bb8ffdcdbf86f65fd1f30438.png" alt="k"/> times and the estimated performance is the mean of the performance on each testing set.</p> <p>In the platform, the training set (the 48 examples of class A and 32 examples of class B from last example) will be @@ -116,7 +143,7 @@ thanks to the <code class="docutils literal notranslate"><span class="pre">metri <ul class="simple"> <li><code class="docutils literal notranslate"><span class="pre">split:</span></code>, controlling the ration of size between the testing set and the training set,</li> <li><code class="docutils literal notranslate"><span class="pre">hps_type:</span></code>, controlling the type of hyper-parameter search,</li> -<li><code class="docutils literal notranslate"><span class="pre">hps_iter:</span></code>, controlling the number of random draws during the hyper-parameter search,</li> +<li><code class="docutils literal notranslate"><span class="pre">hps_args:</span></code>, controlling the parameters of the hyper-parameters search method,</li> <li><code class="docutils literal notranslate"><span class="pre">nb_folds:</span></code>, controlling the number of folds in the cross-validation process.</li> </ul> <div class="section" id="example-2-1-no-hyper-parameter-optimization-impact-of-split-size"> @@ -129,32 +156,32 @@ three lines in the configuration file are useful :</p> <ul class="simple"> <li><code class="docutils literal notranslate"><span class="pre">type:</span></code> in which one has to specify which type of algorithms are needed, here we used <code class="docutils literal notranslate"><span class="pre">type:</span> <span class="pre">["monoview","multiview"]</span></code>,</li> <li><code class="docutils literal notranslate"><span class="pre">algos_monoview:</span></code> in which one specifies the names of the monoview algorithms to run, here we used : <code class="docutils literal notranslate"><span class="pre">algos_monoview:</span> <span class="pre">["decision_tree",</span> <span class="pre">"adaboost",</span> <span class="pre">]</span></code></li> -<li><code class="docutils literal notranslate"><span class="pre">algos_multiview:</span></code> is the same but with multiview algorithms, here we used : `` algos_multiview: [“majority_voting_fusion”, ]``</li> +<li><code class="docutils literal notranslate"><span class="pre">algos_multiview:</span></code> is the same but with multiview algorithms, here we used : <code class="docutils literal notranslate"><span class="pre">algos_multiview:</span> <span class="pre">["majority_voting_fusion",</span> <span class="pre">]</span></code></li> </ul> -<p>In order for the platofrm to understand the names, the user has to give the name of the python module in which the classifier is implemented in the platform.</p> +<p>In order for the platform to understand the names, the user has to give the name of the python module in which the classifier is implemented in the platform.</p> <p>In the config file, the default values for adaboost’s hyper-parameters are :</p> <div class="highlight-yaml notranslate"><div class="highlight"><pre><span></span><span class="nt">adaboost</span><span class="p">:</span> - <span class="nt">n_estimators</span><span class="p">:</span> <span class="p p-Indicator">[</span><span class="nv">50</span><span class="p p-Indicator">]</span> - <span class="nt">base_estimator</span><span class="p">:</span> <span class="p p-Indicator">[</span><span class="s">"DecisionTreeClassifier"</span><span class="p p-Indicator">]</span> + <span class="nt">n_estimators</span><span class="p">:</span> <span class="l l-Scalar l-Scalar-Plain">50</span> + <span class="nt">base_estimator</span><span class="p">:</span> <span class="s">"DecisionTreeClassifier"</span> </pre></div> </div> <p>(see <a class="reference external" href="https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.AdaBoostClassifier.html#sklearn.ensemble.AdaBoostClassifier">adaboost’s sklearn’s page</a> for more information)</p> <p>For decision_tree :</p> <div class="highlight-yaml notranslate"><div class="highlight"><pre><span></span><span class="nt">decision_tree</span><span class="p">:</span> - <span class="nt">max_depth</span><span class="p">:</span> <span class="p p-Indicator">[</span><span class="nv">10</span><span class="p p-Indicator">]</span> - <span class="nt">criterion</span><span class="p">:</span> <span class="p p-Indicator">[</span><span class="s">"gini"</span><span class="p p-Indicator">]</span> - <span class="nt">splitter</span><span class="p">:</span> <span class="p p-Indicator">[</span><span class="s">"best"</span><span class="p p-Indicator">]</span> + <span class="nt">max_depth</span><span class="p">:</span> <span class="l l-Scalar l-Scalar-Plain">10</span> + <span class="nt">criterion</span><span class="p">:</span> <span class="s">"gini"</span> + <span class="nt">splitter</span><span class="p">:</span> <span class="s">"best"</span> </pre></div> </div> <p>(<a class="reference external" href="https://scikit-learn.org/stable/modules/generated/sklearn.tree.DecisionTreeClassifier.html">sklearn’s decision tree</a>)</p> <p>And for the late fusion majority vote :</p> <div class="highlight-yaml notranslate"><div class="highlight"><pre><span></span><span class="nt">majority_voting_fusion</span><span class="p">:</span> - <span class="nt">classifier_names</span><span class="p">:</span> <span class="p p-Indicator">[[</span><span class="s">"decision_tree"</span><span class="p p-Indicator">,</span> <span class="s">"decision_tree"</span><span class="p p-Indicator">,</span> <span class="s">"decision_tree"</span><span class="p p-Indicator">,</span> <span class="p p-Indicator">]]</span> + <span class="nt">classifier_names</span><span class="p">:</span> <span class="p p-Indicator">[</span><span class="s">"decision_tree"</span><span class="p p-Indicator">,</span> <span class="s">"decision_tree"</span><span class="p p-Indicator">,</span> <span class="s">"decision_tree"</span><span class="p p-Indicator">,</span> <span class="p p-Indicator">]</span> <span class="nt">classifier_configs</span><span class="p">:</span> <span class="nt">decision_tree</span><span class="p">:</span> - <span class="nt">max_depth</span><span class="p">:</span> <span class="p p-Indicator">[</span><span class="nv">1</span><span class="p p-Indicator">]</span> - <span class="nt">criterion</span><span class="p">:</span> <span class="p p-Indicator">[</span><span class="s">"gini"</span><span class="p p-Indicator">]</span> - <span class="nt">splitter</span><span class="p">:</span> <span class="p p-Indicator">[</span><span class="s">"best"</span><span class="p p-Indicator">]</span> + <span class="nt">max_depth</span><span class="p">:</span> <span class="l l-Scalar l-Scalar-Plain">1</span> + <span class="nt">criterion</span><span class="p">:</span> <span class="s">"gini"</span> + <span class="nt">splitter</span><span class="p">:</span> <span class="s">"best"</span> </pre></div> </div> <p>(It will build a vote with one decision tree on each view, with the specified configuration for the decision trees)</p> @@ -266,10 +293,10 @@ In the config file called <code class="docutils literal notranslate"><span class <p>The first difference between these two examples is the time to run the benchmrak, as in the first on more examples are given to learn the algorithms, it is longer. However, the right amount of training examples depends on the available dataset and the task’s complexity.</p> <p>TODO COMMENT</p> <p><strong>Conclusion</strong></p> -<p>THe impact of split ratio : dataset related.</p> +<p>The impact of split ratio : dataset related.</p> </div> -<div class="section" id="example-2-2-usage-of-hyper-parameter-optimization"> -<h3>Example 2.2 : Usage of hyper-parameter optimization :<a class="headerlink" href="#example-2-2-usage-of-hyper-parameter-optimization" title="Permalink to this headline">¶</a></h3> +<div class="section" id="example-2-2-usage-of-randomized-hyper-parameter-optimization"> +<h3>Example 2.2 : Usage of randomized hyper-parameter optimization :<a class="headerlink" href="#example-2-2-usage-of-randomized-hyper-parameter-optimization" title="Permalink to this headline">¶</a></h3> <p>In the previous example, we have seen that the split ratio has an impact on the computational time. But the most time-consuming task is optimizing the hyper parameters. Up to now, the platform used the hyper-parameters values given in the config file. @@ -278,7 +305,8 @@ However, most of the time, they are unknown to the user, and then have to be opt <p>In this example, we will use the hyper-parameter optimization method implemented in the platform, to do so we will use three lines of the config file :</p> <ul class="simple"> <li><code class="docutils literal notranslate"><span class="pre">hps_type:</span></code>, controlling the type of hyper-parameter search,</li> -<li><code class="docutils literal notranslate"><span class="pre">hps_iter:</span></code>, controlling the number of random draws during the hyper-parameter search,</li> +<li><code class="docutils literal notranslate"><span class="pre">n_iter:</span></code>, controlling the number of random draws during the hyper-parameter search,</li> +<li><code class="docutils literal notranslate"><span class="pre">equivalent_draws</span></code>, controlling the number fo draws for multiview algorithms,</li> <li><code class="docutils literal notranslate"><span class="pre">nb_folds:</span></code>, controlling the number of folds in the cross-validation process.</li> </ul> <p>So if you run <code class="docutils literal notranslate"><span class="pre">example</span> <span class="pre">2.2.1</span></code> with :</p> @@ -286,56 +314,11 @@ However, most of the time, they are unknown to the user, and then have to be opt <span class="gp">>>> </span><span class="n">execute</span><span class="p">(</span><span class="s2">"example2.2.1"</span><span class="p">)</span> </pre></div> </div> -<p>The <code class="docutils literal notranslate"><span class="pre">hps_type</span></code> argument is set to <code class="docutils literal notranslate"><span class="pre">"randomised_search"</span></code>, which is at the moment the only hyper-parameter optimization method implemented in the platform. -The <code class="docutils literal notranslate"><span class="pre">hps_iter</span></code> argument is set to <code class="docutils literal notranslate"><span class="pre">5</span></code>, +<p>The <code class="docutils literal notranslate"><span class="pre">hps_type</span></code> argument is set to <code class="docutils literal notranslate"><span class="pre">"Random"</span></code>, which is at the moment the only hyper-parameter optimization method implemented in the platform. +The <code class="docutils literal notranslate"><span class="pre">n_iter</span></code> argument is set to <code class="docutils literal notranslate"><span class="pre">5</span></code>, +The <code class="docutils literal notranslate"><span class="pre">equivalent_draws</span></code> argument is set to <code class="docutils literal notranslate"><span class="pre">True</span></code>, The <code class="docutils literal notranslate"><span class="pre">nb_folds</span></code> argument is set o <code class="docutils literal notranslate"><span class="pre">5</span></code>.</p> -<p><strong>WARNING : The “csv-table” directive’s “:file:” and “:url:” options represent a potential security holes. They can be disabled with the “file_insertion_enabled” runtime setting.</strong></p> -<table border="1" class="docutils"> -<colgroup> -<col width="11%" /> -<col width="11%" /> -<col width="11%" /> -<col width="11%" /> -<col width="11%" /> -<col width="11%" /> -<col width="11%" /> -<col width="11%" /> -<col width="11%" /> -</colgroup> -<tbody valign="top"> -<tr class="row-odd"><td> </td> -<td>double_fault_fusion</td> -<td>difficulty_fusion</td> -<td>lasso-ViewNumber1</td> -<td>sgd-ViewNumber0</td> -<td>svm_poly-ViewNumber1</td> -<td>svm_poly-ViewNumber2</td> -<td>svm_poly-ViewNumber0</td> -<td> </td> -</tr> -<tr class="row-even"><td>0</td> -<td>0.5</td> -<td>0.5</td> -<td>0.5</td> -<td>0.5</td> -<td>0.7</td> -<td>0.7</td> -<td>0.65</td> -<td> </td> -</tr> -<tr class="row-odd"><td>1</td> -<td>0.5</td> -<td>0.5</td> -<td>0.5</td> -<td>0.5</td> -<td>0.7125</td> -<td>0.7125</td> -<td>0.8</td> -<td> </td> -</tr> -</tbody> -</table> -<p>Here, we used <code class="docutils literal notranslate"><span class="pre">split:</span> <span class="pre">0.2</span></code> and the results are far better than with the preset of hyper paramters, as the classifiers are able to fit the task.</p> +<p>Here, we used <code class="docutils literal notranslate"><span class="pre">split:</span> <span class="pre">0.2</span></code> and the results are far better than with the preset of hyper parameters, as the classifiers are able to fit the task.</p> <p>The computing time should be longer than the previous examples. Let’s see the pseudo code of the benchmark, while using the hyper-parameter optimization:</p> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span>for each monoview classifier: for each view: @@ -359,18 +342,23 @@ for each multiview classifier: learn on the whole training set </pre></div> </div> -<p>The instructions inside the brackets are the one that the HP optimization adds. So for the monoview algorithms, +<p>The instructions inside the brackets are the one that the hyper-parameter +optimization adds. So for the monoview algorithms, the computational impact of the HPO is bigger than for the multiview algorithms.</p> -<p>The choice made here is to allow the same amount of draws for each HPO. However, as many of the multiview algorithms +<p>The choice made here is to allow the same amount of draws for each HPO. However, +as many of the multiview algorithms are more complex and have bigger HP spaces, allowing them more draws, can be a defendable idea.</p> -<p>However, for most of the tasks, using the HPO is a necessity to be able to get the most of each classifier in terms -of performance.</p> -<p>The HPO is a matter of tradeoff between precision and computational demand. For most algorithms the more draws you -allow, the closer to ideal the outputted HP will be, however, many draws mean much longer computational time.</p> -<p>Similarly, the number of folds has a great importance in estimating the performance of a specific Hp combination, -and the more folds the but more folds take also more time, as one has to train more times and on bigger parts of the +<p>However, for most of the tasks, using the HPO is a necessity to be able to +get the most of each classifier in terms of performance.</p> +<p>The HPO is a matter of trade-off between precision and computational demand. +For most algorithms the more draws you allow, the closer to ideal the outputted +HP will be, however, many draws mean much longer computational time.</p> +<p>Similarly, the number of folds has a great importance in estimating the +performance of a specific HP combination, and the more folds the but more folds +take also more time, as one has to train more times and on bigger parts of the dataset.</p> -<p>The figure below represents the duration of the execution on a personal computer with different fold/draws settings :</p> +<p>The figure below represents the duration of the execution on a personal computer +with different fold/draws settings :</p> <html> <head><meta charset="utf-8" /></head> <body> @@ -393,7 +381,7 @@ dataset.</p> Plotly.newPlot( 'a34ab35c-7722-424b-b26f-05ce9018d050', [{"contours": {"z": {"highlightcolor": "limegreen", "project": {"z": true}, "show": true, "usecolormap": true}}, "type": "surface", "x": [2, 5, 10, 20, 30, 50, 100], "y": [2, 5, 10, 15, 20], "z": [[12.30792236328125, 14.539308309555054, 25.204104900360107, 40.63256311416626, 57.830570936203, 94.06869697570801, 177.3781054019928], [23.060000896453857, 38.69007134437561, 55.38164758682251, 112.99745631217957, 154.44376754760742, 249.8409869670868, 444.60806703567505], [31.165709257125854, 75.43783736228943, 112.19536924362183, 184.5037076473236, 290.94096207618713, 461.04882979393005, 932.619647026062], [73.37707662582397, 100.57551407814026, 183.70872330665588, 331.44516921043396, 433.04977560043335, 637.6133468151093, 1335.7918057441711], [79.04550528526306, 153.53510761260986, 199.00436758995056, 341.0050745010376, 608.0813648700714, 918.9630422592163, 1716.7227251529694]]}], - {"scene": {"xaxis": {"title": {"text": "x : Number of draws"}}, "yaxis": {"title": {"text": "y : Number of folds"}}, "zaxis": {"title": {"text": "z : Benchmark duration (s)"}}}, "template": {"data": {"bar": [{"error_x": {"color": "#2a3f5f"}, "error_y": {"color": "#2a3f5f"}, "marker": {"line": {"color": "#E5ECF6", "width": 0.5}}, "type": "bar"}], "barpolar": [{"marker": {"line": {"color": "#E5ECF6", "width": 0.5}}, "type": "barpolar"}], "carpet": [{"aaxis": {"endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f"}, "baxis": {"endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f"}, "type": "carpet"}], "choropleth": [{"colorbar": {"outlinewidth": 0, "ticks": ""}, "type": "choropleth"}], "contour": [{"colorbar": {"outlinewidth": 0, "ticks": ""}, "colorscale": [[0.0, "#0d0887"], [0.1111111111111111, "#46039f"], [0.2222222222222222, "#7201a8"], [0.3333333333333333, "#9c179e"], [0.4444444444444444, "#bd3786"], [0.5555555555555556, "#d8576b"], [0.6666666666666666, "#ed7953"], [0.7777777777777778, "#fb9f3a"], [0.8888888888888888, "#fdca26"], [1.0, "#f0f921"]], "type": "contour"}], "contourcarpet": [{"colorbar": {"outlinewidth": 0, "ticks": ""}, "type": "contourcarpet"}], "heatmap": [{"colorbar": {"outlinewidth": 0, "ticks": ""}, "colorscale": [[0.0, "#0d0887"], [0.1111111111111111, "#46039f"], [0.2222222222222222, "#7201a8"], [0.3333333333333333, "#9c179e"], [0.4444444444444444, "#bd3786"], [0.5555555555555556, "#d8576b"], [0.6666666666666666, "#ed7953"], [0.7777777777777778, "#fb9f3a"], [0.8888888888888888, "#fdca26"], [1.0, "#f0f921"]], "type": "heatmap"}], "heatmapgl": [{"colorbar": {"outlinewidth": 0, "ticks": ""}, "colorscale": [[0.0, "#0d0887"], [0.1111111111111111, "#46039f"], [0.2222222222222222, "#7201a8"], [0.3333333333333333, "#9c179e"], [0.4444444444444444, "#bd3786"], [0.5555555555555556, "#d8576b"], [0.6666666666666666, "#ed7953"], [0.7777777777777778, "#fb9f3a"], [0.8888888888888888, "#fdca26"], [1.0, "#f0f921"]], "type": "heatmapgl"}], "histogram": [{"marker": {"colorbar": {"outlinewidth": 0, "ticks": ""}}, "type": "histogram"}], "histogram2d": [{"colorbar": {"outlinewidth": 0, "ticks": ""}, "colorscale": [[0.0, "#0d0887"], [0.1111111111111111, "#46039f"], [0.2222222222222222, "#7201a8"], [0.3333333333333333, "#9c179e"], [0.4444444444444444, "#bd3786"], [0.5555555555555556, "#d8576b"], [0.6666666666666666, "#ed7953"], [0.7777777777777778, "#fb9f3a"], [0.8888888888888888, "#fdca26"], [1.0, "#f0f921"]], "type": "histogram2d"}], "histogram2dcontour": [{"colorbar": {"outlinewidth": 0, "ticks": ""}, "colorscale": [[0.0, "#0d0887"], [0.1111111111111111, "#46039f"], [0.2222222222222222, "#7201a8"], [0.3333333333333333, "#9c179e"], [0.4444444444444444, "#bd3786"], [0.5555555555555556, "#d8576b"], [0.6666666666666666, "#ed7953"], [0.7777777777777778, "#fb9f3a"], [0.8888888888888888, "#fdca26"], [1.0, "#f0f921"]], "type": "histogram2dcontour"}], "mesh3d": [{"colorbar": {"outlinewidth": 0, "ticks": ""}, "type": "mesh3d"}], "parcoords": [{"line": {"colorbar": {"outlinewidth": 0, "ticks": ""}}, "type": "parcoords"}], "scatter": [{"marker": {"colorbar": {"outlinewidth": 0, "ticks": ""}}, "type": "scatter"}], "scatter3d": [{"line": {"colorbar": {"outlinewidth": 0, "ticks": ""}}, "marker": {"colorbar": {"outlinewidth": 0, "ticks": ""}}, "type": "scatter3d"}], "scattercarpet": [{"marker": {"colorbar": {"outlinewidth": 0, "ticks": ""}}, "type": "scattercarpet"}], "scattergeo": [{"marker": {"colorbar": {"outlinewidth": 0, "ticks": ""}}, "type": "scattergeo"}], "scattergl": [{"marker": {"colorbar": {"outlinewidth": 0, "ticks": ""}}, "type": "scattergl"}], "scattermapbox": [{"marker": {"colorbar": {"outlinewidth": 0, "ticks": ""}}, "type": "scattermapbox"}], "scatterpolar": [{"marker": {"colorbar": {"outlinewidth": 0, "ticks": ""}}, "type": "scatterpolar"}], "scatterpolargl": [{"marker": {"colorbar": {"outlinewidth": 0, "ticks": ""}}, "type": "scatterpolargl"}], "scatterternary": [{"marker": {"colorbar": {"outlinewidth": 0, "ticks": ""}}, "type": "scatterternary"}], "surface": [{"colorbar": {"outlinewidth": 0, "ticks": ""}, "colorscale": [[0.0, "#0d0887"], [0.1111111111111111, "#46039f"], [0.2222222222222222, "#7201a8"], [0.3333333333333333, "#9c179e"], [0.4444444444444444, "#bd3786"], [0.5555555555555556, "#d8576b"], [0.6666666666666666, "#ed7953"], [0.7777777777777778, "#fb9f3a"], [0.8888888888888888, "#fdca26"], [1.0, "#f0f921"]], "type": "surface"}], "table": [{"cells": {"fill": {"color": "#EBF0F8"}, "line": {"color": "white"}}, "header": {"fill": {"color": "#C8D4E3"}, "line": {"color": "white"}}, "type": "table"}]}, "layout": {"annotationdefaults": {"arrowcolor": "#2a3f5f", "arrowhead": 0, "arrowwidth": 1}, "colorscale": {"diverging": [[0, "#8e0152"], [0.1, "#c51b7d"], [0.2, "#de77ae"], [0.3, "#f1b6da"], [0.4, "#fde0ef"], [0.5, "#f7f7f7"], [0.6, "#e6f5d0"], [0.7, "#b8e186"], [0.8, "#7fbc41"], [0.9, "#4d9221"], [1, "#276419"]], "sequential": [[0.0, "#0d0887"], [0.1111111111111111, "#46039f"], [0.2222222222222222, "#7201a8"], [0.3333333333333333, "#9c179e"], [0.4444444444444444, "#bd3786"], [0.5555555555555556, "#d8576b"], [0.6666666666666666, "#ed7953"], [0.7777777777777778, "#fb9f3a"], [0.8888888888888888, "#fdca26"], [1.0, "#f0f921"]], "sequentialminus": [[0.0, "#0d0887"], [0.1111111111111111, "#46039f"], [0.2222222222222222, "#7201a8"], [0.3333333333333333, "#9c179e"], [0.4444444444444444, "#bd3786"], [0.5555555555555556, "#d8576b"], [0.6666666666666666, "#ed7953"], [0.7777777777777778, "#fb9f3a"], [0.8888888888888888, "#fdca26"], [1.0, "#f0f921"]]}, "colorway": ["#636efa", "#EF553B", "#00cc96", "#ab63fa", "#FFA15A", "#19d3f3", "#FF6692", "#B6E880", "#FF97FF", "#FECB52"], "font": {"color": "#2a3f5f"}, "geo": {"bgcolor": "white", "lakecolor": "white", "landcolor": "#E5ECF6", "showlakes": true, "showland": true, "subunitcolor": "white"}, "hoverlabel": {"align": "left"}, "hovermode": "closest", "mapbox": {"style": "light"}, "paper_bgcolor": "white", "plot_bgcolor": "#E5ECF6", "polar": {"angularaxis": {"gridcolor": "white", "linecolor": "white", "ticks": ""}, "bgcolor": "#E5ECF6", "radialaxis": {"gridcolor": "white", "linecolor": "white", "ticks": ""}}, "scene": {"xaxis": {"backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white"}, "yaxis": {"backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white"}, "zaxis": {"backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white"}}, "shapedefaults": {"line": {"color": "#2a3f5f"}}, "ternary": {"aaxis": {"gridcolor": "white", "linecolor": "white", "ticks": ""}, "baxis": {"gridcolor": "white", "linecolor": "white", "ticks": ""}, "bgcolor": "#E5ECF6", "caxis": {"gridcolor": "white", "linecolor": "white", "ticks": ""}}, "title": {"x": 0.05}, "xaxis": {"automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "zerolinecolor": "white", "zerolinewidth": 2}, "yaxis": {"automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "zerolinecolor": "white", "zerolinewidth": 2}}}, "title": {"text": "Benchmark durations for multiple HPO settings"}}, + {"scene": {"xaxis": {"title": {"text": "n_draws"}}, "yaxis": {"title": {"text": "n_folds"}}, "zaxis": {"title": {"text": "Duration (s)"}}}, "template": {"data": {"bar": [{"error_x": {"color": "#2a3f5f"}, "error_y": {"color": "#2a3f5f"}, "marker": {"line": {"color": "#E5ECF6", "width": 0.5}}, "type": "bar"}], "barpolar": [{"marker": {"line": {"color": "#E5ECF6", "width": 0.5}}, "type": "barpolar"}], "carpet": [{"aaxis": {"endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f"}, "baxis": {"endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f"}, "type": "carpet"}], "choropleth": [{"colorbar": {"outlinewidth": 0, "ticks": ""}, "type": "choropleth"}], "contour": [{"colorbar": {"outlinewidth": 0, "ticks": ""}, "colorscale": [[0.0, "#0d0887"], [0.1111111111111111, "#46039f"], [0.2222222222222222, "#7201a8"], [0.3333333333333333, "#9c179e"], [0.4444444444444444, "#bd3786"], [0.5555555555555556, "#d8576b"], [0.6666666666666666, "#ed7953"], [0.7777777777777778, "#fb9f3a"], [0.8888888888888888, "#fdca26"], [1.0, "#f0f921"]], "type": "contour"}], "contourcarpet": [{"colorbar": {"outlinewidth": 0, "ticks": ""}, "type": "contourcarpet"}], "heatmap": [{"colorbar": {"outlinewidth": 0, "ticks": ""}, "colorscale": [[0.0, "#0d0887"], [0.1111111111111111, "#46039f"], [0.2222222222222222, "#7201a8"], [0.3333333333333333, "#9c179e"], [0.4444444444444444, "#bd3786"], [0.5555555555555556, "#d8576b"], [0.6666666666666666, "#ed7953"], [0.7777777777777778, "#fb9f3a"], [0.8888888888888888, "#fdca26"], [1.0, "#f0f921"]], "type": "heatmap"}], "heatmapgl": [{"colorbar": {"outlinewidth": 0, "ticks": ""}, "colorscale": [[0.0, "#0d0887"], [0.1111111111111111, "#46039f"], [0.2222222222222222, "#7201a8"], [0.3333333333333333, "#9c179e"], [0.4444444444444444, "#bd3786"], [0.5555555555555556, "#d8576b"], [0.6666666666666666, "#ed7953"], [0.7777777777777778, "#fb9f3a"], [0.8888888888888888, "#fdca26"], [1.0, "#f0f921"]], "type": "heatmapgl"}], "histogram": [{"marker": {"colorbar": {"outlinewidth": 0, "ticks": ""}}, "type": "histogram"}], "histogram2d": [{"colorbar": {"outlinewidth": 0, "ticks": ""}, "colorscale": [[0.0, "#0d0887"], [0.1111111111111111, "#46039f"], [0.2222222222222222, "#7201a8"], [0.3333333333333333, "#9c179e"], [0.4444444444444444, "#bd3786"], [0.5555555555555556, "#d8576b"], [0.6666666666666666, "#ed7953"], [0.7777777777777778, "#fb9f3a"], [0.8888888888888888, "#fdca26"], [1.0, "#f0f921"]], "type": "histogram2d"}], "histogram2dcontour": [{"colorbar": {"outlinewidth": 0, "ticks": ""}, "colorscale": [[0.0, "#0d0887"], [0.1111111111111111, "#46039f"], [0.2222222222222222, "#7201a8"], [0.3333333333333333, "#9c179e"], [0.4444444444444444, "#bd3786"], [0.5555555555555556, "#d8576b"], [0.6666666666666666, "#ed7953"], [0.7777777777777778, "#fb9f3a"], [0.8888888888888888, "#fdca26"], [1.0, "#f0f921"]], "type": "histogram2dcontour"}], "mesh3d": [{"colorbar": {"outlinewidth": 0, "ticks": ""}, "type": "mesh3d"}], "parcoords": [{"line": {"colorbar": {"outlinewidth": 0, "ticks": ""}}, "type": "parcoords"}], "scatter": [{"marker": {"colorbar": {"outlinewidth": 0, "ticks": ""}}, "type": "scatter"}], "scatter3d": [{"line": {"colorbar": {"outlinewidth": 0, "ticks": ""}}, "marker": {"colorbar": {"outlinewidth": 0, "ticks": ""}}, "type": "scatter3d"}], "scattercarpet": [{"marker": {"colorbar": {"outlinewidth": 0, "ticks": ""}}, "type": "scattercarpet"}], "scattergeo": [{"marker": {"colorbar": {"outlinewidth": 0, "ticks": ""}}, "type": "scattergeo"}], "scattergl": [{"marker": {"colorbar": {"outlinewidth": 0, "ticks": ""}}, "type": "scattergl"}], "scattermapbox": [{"marker": {"colorbar": {"outlinewidth": 0, "ticks": ""}}, "type": "scattermapbox"}], "scatterpolar": [{"marker": {"colorbar": {"outlinewidth": 0, "ticks": ""}}, "type": "scatterpolar"}], "scatterpolargl": [{"marker": {"colorbar": {"outlinewidth": 0, "ticks": ""}}, "type": "scatterpolargl"}], "scatterternary": [{"marker": {"colorbar": {"outlinewidth": 0, "ticks": ""}}, "type": "scatterternary"}], "surface": [{"colorbar": {"outlinewidth": 0, "ticks": ""}, "colorscale": [[0.0, "#0d0887"], [0.1111111111111111, "#46039f"], [0.2222222222222222, "#7201a8"], [0.3333333333333333, "#9c179e"], [0.4444444444444444, "#bd3786"], [0.5555555555555556, "#d8576b"], [0.6666666666666666, "#ed7953"], [0.7777777777777778, "#fb9f3a"], [0.8888888888888888, "#fdca26"], [1.0, "#f0f921"]], "type": "surface"}], "table": [{"cells": {"fill": {"color": "#EBF0F8"}, "line": {"color": "white"}}, "header": {"fill": {"color": "#C8D4E3"}, "line": {"color": "white"}}, "type": "table"}]}, "layout": {"annotationdefaults": {"arrowcolor": "#2a3f5f", "arrowhead": 0, "arrowwidth": 1}, "colorscale": {"diverging": [[0, "#8e0152"], [0.1, "#c51b7d"], [0.2, "#de77ae"], [0.3, "#f1b6da"], [0.4, "#fde0ef"], [0.5, "#f7f7f7"], [0.6, "#e6f5d0"], [0.7, "#b8e186"], [0.8, "#7fbc41"], [0.9, "#4d9221"], [1, "#276419"]], "sequential": [[0.0, "#0d0887"], [0.1111111111111111, "#46039f"], [0.2222222222222222, "#7201a8"], [0.3333333333333333, "#9c179e"], [0.4444444444444444, "#bd3786"], [0.5555555555555556, "#d8576b"], [0.6666666666666666, "#ed7953"], [0.7777777777777778, "#fb9f3a"], [0.8888888888888888, "#fdca26"], [1.0, "#f0f921"]], "sequentialminus": [[0.0, "#0d0887"], [0.1111111111111111, "#46039f"], [0.2222222222222222, "#7201a8"], [0.3333333333333333, "#9c179e"], [0.4444444444444444, "#bd3786"], [0.5555555555555556, "#d8576b"], [0.6666666666666666, "#ed7953"], [0.7777777777777778, "#fb9f3a"], [0.8888888888888888, "#fdca26"], [1.0, "#f0f921"]]}, "colorway": ["#636efa", "#EF553B", "#00cc96", "#ab63fa", "#FFA15A", "#19d3f3", "#FF6692", "#B6E880", "#FF97FF", "#FECB52"], "font": {"color": "#2a3f5f"}, "geo": {"bgcolor": "white", "lakecolor": "white", "landcolor": "#E5ECF6", "showlakes": true, "showland": true, "subunitcolor": "white"}, "hoverlabel": {"align": "left"}, "hovermode": "closest", "mapbox": {"style": "light"}, "paper_bgcolor": "white", "plot_bgcolor": "#E5ECF6", "polar": {"angularaxis": {"gridcolor": "white", "linecolor": "white", "ticks": ""}, "bgcolor": "#E5ECF6", "radialaxis": {"gridcolor": "white", "linecolor": "white", "ticks": ""}}, "scene": {"xaxis": {"backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white"}, "yaxis": {"backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white"}, "zaxis": {"backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white"}}, "shapedefaults": {"line": {"color": "#2a3f5f"}}, "ternary": {"aaxis": {"gridcolor": "white", "linecolor": "white", "ticks": ""}, "baxis": {"gridcolor": "white", "linecolor": "white", "ticks": ""}, "bgcolor": "#E5ECF6", "caxis": {"gridcolor": "white", "linecolor": "white", "ticks": ""}}, "title": {"x": 0.05}, "xaxis": {"automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "zerolinecolor": "white", "zerolinewidth": 2}, "yaxis": {"automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "zerolinecolor": "white", "zerolinewidth": 2}}}, "title": {"text": "Benchmark durations for multiple HPO settings"}}, {"responsive": true} ) }; @@ -401,12 +389,34 @@ dataset.</p> </script> </div> </body> -</html><p>The duration is in seconds, and we used 2,5,10,15,20 as values for <code class="docutils literal notranslate"><span class="pre">nb_folds</span></code> and 2,5,10,20,30,50,100 for <code class="docutils literal notranslate"><span class="pre">hps_iter</span></code> with two monoview classifiers and one multiview classifier on simulated data.</p> +</html><p>The duration is in seconds, and we used 2,5,10,15,20 as values for <code class="docutils literal notranslate"><span class="pre">nb_folds</span></code> +and 2,5,10,20,30,50,100 for <code class="docutils literal notranslate"><span class="pre">n_iter</span></code> with two monoview classifiers and one +multiview classifier on simulated data.</p> <div class="admonition note"> <p class="first admonition-title">Note</p> -<p class="last">In order to compensate the fact that the multiview classifiers have more complex problems to solve, it is possible to use <code class="docutils literal notranslate"><span class="pre">"randomized_search-equiv"</span></code> as the HPS optimization method to allow -<code class="docutils literal notranslate"><span class="pre">hps_iter</span></code> draws for the monoview classifiers and <code class="docutils literal notranslate"><span class="pre">hps_iter</span> <span class="pre">*</span> <span class="pre">nb_view</span></code> draws for the ones that are multiview.</p> +<p class="last">The hyper-parameter optimization process generates a report for each +classifier, providing each set of parameters and its cross-validation score, +to be able to extract the relevant parameters for a future benchmark on the +same dataset.</p> +</div> </div> +<div class="section" id="example-2-3-usage-of-grid-search"> +<h3>Example 2.3 : Usage of grid search :<a class="headerlink" href="#example-2-3-usage-of-grid-search" title="Permalink to this headline">¶</a></h3> +<p>In SuMMIT, it is possible to use a grid search if one has several possible +hyper-parameter values in mind to test.</p> +<p>In order to set up the grid search one has to provide in the <code class="docutils literal notranslate"><span class="pre">hps_args:</span></code> +argument the names, parameters and values to test. Let us say we want to try +several depths for a decision tree, and several <code class="docutils literal notranslate"><span class="pre">C</span></code> values for a +linear <a class="reference external" href="ttps://scikit-learn.org/stable/modules/generated/sklearn.svm.SVC.html">SVM</a>:</p> +<div class="highlight-yaml notranslate"><div class="highlight"><pre><span></span><span class="nt">hps_type</span><span class="p">:</span> <span class="s">"Grid"</span> +<span class="nt">hps_args</span><span class="p">:</span> + <span class="nt">decision_tree</span><span class="p">:</span> + <span class="nt">max_depth</span><span class="p">:</span> <span class="p p-Indicator">[</span><span class="nv">1</span><span class="p p-Indicator">,</span><span class="nv">2</span><span class="p p-Indicator">,</span><span class="nv">3</span><span class="p p-Indicator">,</span><span class="nv">4</span><span class="p p-Indicator">,</span><span class="nv">5</span><span class="p p-Indicator">]</span> + <span class="nt">svm_linear</span><span class="p">:</span> + <span class="nt">C</span><span class="p">:</span> <span class="p p-Indicator">[</span><span class="nv">0.1</span><span class="p p-Indicator">,</span><span class="nv">0.2</span><span class="p p-Indicator">,</span><span class="nv">0.3</span><span class="p p-Indicator">,</span><span class="nv">0.4</span><span class="p p-Indicator">,</span><span class="nv">0.5</span><span class="p p-Indicator">]</span> +</pre></div> +</div> +<p>TODO : a more complex example</p> </div> </div> </div> @@ -420,9 +430,10 @@ dataset.</p> <h3><a href="../index.html">Table of Contents</a></h3> <ul> <li><a class="reference internal" href="#">Example 2 : Understanding the hyper-parameter optimization</a><ul> -<li><a class="reference internal" href="#intuitive-explanation-on-hyper-parameters">Intuitive explanation on hyper-parameters</a></li> +<li><a class="reference internal" href="#hyper-parameters-intuition">Hyper-parameters intuition</a></li> <li><a class="reference internal" href="#understanding-train-test-split">Understanding train/test split</a></li> <li><a class="reference internal" href="#understanding-hyper-parameter-optimization">Understanding hyper-parameter optimization</a><ul> +<li><a class="reference internal" href="#grid-search">Grid search</a></li> <li><a class="reference internal" href="#random-search">Random search</a></li> <li><a class="reference internal" href="#k-folds-cross-validation">K-folds cross-validation</a></li> <li><a class="reference internal" href="#metric-choice">Metric choice</a></li> @@ -430,7 +441,8 @@ dataset.</p> </li> <li><a class="reference internal" href="#hands-on-experience">Hands-on experience</a><ul> <li><a class="reference internal" href="#example-2-1-no-hyper-parameter-optimization-impact-of-split-size">Example 2.1 : No hyper-parameter optimization, impact of split size</a></li> -<li><a class="reference internal" href="#example-2-2-usage-of-hyper-parameter-optimization">Example 2.2 : Usage of hyper-parameter optimization :</a></li> +<li><a class="reference internal" href="#example-2-2-usage-of-randomized-hyper-parameter-optimization">Example 2.2 : Usage of randomized hyper-parameter optimization :</a></li> +<li><a class="reference internal" href="#example-2-3-usage-of-grid-search">Example 2.3 : Usage of grid search :</a></li> </ul> </li> </ul> @@ -472,9 +484,6 @@ dataset.</p> <li class="right" style="margin-right: 10px"> <a href="../genindex.html" title="General Index" >index</a></li> - <li class="right" > - <a href="../py-modindex.html" title="Python Module Index" - >modules</a> |</li> <li class="right" > <a href="example3.html" title="Example 3 : Understanding the statistical iterations" >next</a> |</li> diff --git a/docs/build/tutorials/index.html b/docs/build/tutorials/index.html index b3428963..e33bc50d 100644 --- a/docs/build/tutorials/index.html +++ b/docs/build/tutorials/index.html @@ -27,9 +27,6 @@ <li class="right" style="margin-right: 10px"> <a href="../genindex.html" title="General Index" accesskey="I">index</a></li> - <li class="right" > - <a href="../py-modindex.html" title="Python Module Index" - >modules</a> |</li> <li class="right" > <a href="installation.html" title="Install Multiview Platform" accesskey="N">next</a> |</li> @@ -101,9 +98,6 @@ <li class="right" style="margin-right: 10px"> <a href="../genindex.html" title="General Index" >index</a></li> - <li class="right" > - <a href="../py-modindex.html" title="Python Module Index" - >modules</a> |</li> <li class="right" > <a href="installation.html" title="Install Multiview Platform" >next</a> |</li> diff --git a/docs/build/tutorials/installation.html b/docs/build/tutorials/installation.html index 059ff843..f4415572 100644 --- a/docs/build/tutorials/installation.html +++ b/docs/build/tutorials/installation.html @@ -27,9 +27,6 @@ <li class="right" style="margin-right: 10px"> <a href="../genindex.html" title="General Index" accesskey="I">index</a></li> - <li class="right" > - <a href="../py-modindex.html" title="Python Module Index" - >modules</a> |</li> <li class="right" > <a href="example1.html" title="Example 1 : First steps with Multiview Platform" accesskey="N">next</a> |</li> @@ -111,9 +108,6 @@ <li class="right" style="margin-right: 10px"> <a href="../genindex.html" title="General Index" >index</a></li> - <li class="right" > - <a href="../py-modindex.html" title="Python Module Index" - >modules</a> |</li> <li class="right" > <a href="example1.html" title="Example 1 : First steps with Multiview Platform" >next</a> |</li> diff --git a/docs/source/tutorials/example4.rst b/docs/source/tutorials/example4.rst index da515eac..a25e7e12 100644 --- a/docs/source/tutorials/example4.rst +++ b/docs/source/tutorials/example4.rst @@ -148,7 +148,7 @@ Then as long as the IDs order corresponds to the example order in the lines of t .. code-block:: python - # Let us suppose that the examples have string ids, available in a csv file, + # Let us suppose that the examples have string ids, available in a csv file, # they can be stored in the HDF5 and will be used in the result analysis. example_ids = np.genfromtxt(example_ids_path, delimiter=',') diff --git a/docs/source/tutorials/example5.rst b/docs/source/tutorials/example5.rst index 3d59d30f..0cb6c853 100644 --- a/docs/source/tutorials/example5.rst +++ b/docs/source/tutorials/example5.rst @@ -1,4 +1,5 @@ .. |algo| replace:: name_me + ======================================== Taking control : Use your own algorithms ======================================== @@ -6,27 +7,34 @@ Taking control : Use your own algorithms .. role:: python(code) :language: python -One of the main goals of this platform is to be able to add a classifier to it without modifying the code. +One of the main goals of this platform is to be able to add a classifier to it without modifying the main code. Simple task : Adding a monoview classifier ------------------------------------------ +Make it work +<<<<<<<<<<<< + Let's say we want to add a monoview classifier called "algo" to the platform in order to compare it to the other available ones. -Let's suppose that we have a python module ``algo_module.py`` in which algo is defined in the class :python:`Algo` with the guidelines of ``sklearn``. +Let's suppose that we have a python module ``algo_module.py`` in which algo is defined in the class :python:`Algo` following ``scikit-learn``'s `guidelines <https://scikit-learn.org/stable/developers/index.html>`_ . -To add algo to the platform, let's create a file called ``algo.py`` in ``multiview_platform/mono_multi_view_classifiers/monoview_classifiers/`` +To add "algo" to the platform, let's create a file called ``algo.py`` in ``multiview_platform/mono_multi_view_classifiers/monoview_classifiers/`` In this file let's define the class :python:`AlgoClassifier`, inheriting from :python:`Algo` and :python:`BaseMonoviewClassifier` that contains the required methods for the platfrom. +Moreover, one has to add a variable called :python:`classifier_class_name` that contains the class name (here ``'AlgoClassifier'``) + .. code-block:: python import Algo from ..monoview.monoview_utils import BaseMonoviewClassifier + classifier_class_name = "AlgoClassifier" + class AlgoClassifier(Algo, BaseMonoviewClassifier): -To be able to use the hyper-parameter optimization of the platform, we need to provide some information in the :python:`__init__()` method. +To be able to use the randomized hyper-parameter optimization, we need to provide some information in the :python:`__init__()` method. Indeed, all the algorithms included in the platform must provide two hyper-parameter-related attributes : - :python:`self.param_names` that contain the name of the hyper-parameters that have to be optimized (they must correspond to the name of the attributes of the class :python:`Algo`) @@ -61,53 +69,93 @@ Then, the :python:`__init__()` method of the :python:`AlgoClassifier` class wil ["l1", "l2"], CustomRandint()] -In this method, we added the needed attributes. See REF TO DOC OF DISTRIBS for the dicumentation on the used distributions. +In this method, we added the needed attributes. See REF TO DOC OF DISTRIBS for the documentation on the used distributions. If "algo" is implemented in a sklearn fashion, it is now usable in the platform. -TODO interpretation +Interpretation +<<<<<<<<<<<<<< + +It is possible to provide some information about the decision process of the algorithm in the :python:`get_interpretation` method. + +It inputs four arguments : + +* :python:`directory`, a string containing the directory where figures should be sotred +* :python:`base_file_name`, a string containing the file name prefix that shoul be used to sotre figures +* :python:`y_test`, an array containing the labels of the test set +* :python:`multiclass` a boolean that is True if the target is multiclass + +This method must return a string that will be appended to the summary file. + +An example of method can be : + +.. code-block:: python + + def get_interpretation(self, directory, base_file_name, y_test, + multiclass=False): + interpret_string = "Algo is a very relevant algorithm that used all the features to classifiy" + # Save a figure in os.path.join(directory, base_file_name+figure_name.png") + return interpretString + More complex task : Adding a multiview classifier ------------------------------------------------- +This part is a bit more complex as to the best of our knowledge, there is no consensus regarding a multiview input for a classifier. + +The first step of the integration of a multiview classifier is very similar to the monoview one let us suppose one wants to add "new mv algo", that is implemented in the class `NewMVAlgo`. To do so, create a "new_mv_algo.py" file in ``multiview_platform/mono_multi_view_classifiers/multiview_classifiers/``. +In this file let's define the class :python:`NewMVAlgoClassifier`, inheriting from :python:`NewMVAlgo` and :python:`BaseMultiviewClassifier` that contains the required methods for the platform. + +Moreover, one has to add a variable called :python:`classifier_class_name` that contains the class name (here ``'NewMVAlgoClassifier'``) .. code-block:: python - from mimbo import MimboClassifier - from ..multiview.multiview_utils import BaseMultiviewClassifier, \ - get_examples_views_indices + from new_mv_algo_module import NewMVAlgo + from ..multiview.multiview_utils import BaseMultiviewClassifier + from ..utils.hyper_parameter_search import CustomRandint - classifier_class_name = "Mimbo" - - class Mimbo(BaseMultiviewClassifier, MimboClassifier): - - def __init__(self, n_estimators=50, - random_state=None, - best_view_mode="edge"): - super().__init__(random_state) - super(BaseMultiviewClassifier, self).__init__(n_estimators=n_estimators, - random_state=random_state, - best_view_mode=best_view_mode) - self.param_names = ["n_estimators", "random_state", "best_view_mode"] - self.distribs = [CustomRandint(5,200), [random_state], ["edge", "error"]] - - def fit(self, X, y, train_indices=None, view_indices=None): - train_indices, view_indices = get_examples_views_indices(X, - train_indices, - view_indices) - numpy_X, view_limits = X.to_numpy_array(example_indices=train_indices, - view_indices=view_indices) - return super(Mimbo, self).fit(numpy_X, y[train_indices], - view_limits) - - def predict(self, X, example_indices=None, view_indices=None): - example_indices, view_indices = get_examples_views_indices(X, - example_indices, - view_indices) - numpy_X, view_limits = X.to_numpy_array(example_indices=example_indices, - view_indices=view_indices) - return super(Mimbo, self).predict(numpy_X) + classifier_class_name = "NewMVAlgoClassifier" + + class NewMVAlgoClassifier(BaseMultiviewClassifier, NewMVAlgo): + + def __init__(self, param_1=50, + random_state=None, + param_2="edge"): + BaseMultiviewClassifier.__init__(self, random_state) + NewMVAlgo.__init__(self, param_1=param_1, + random_state=random_state, + param_2=param_2) + self.param_names = ["param_1", "random_state", "param_2"] + self.distribs = [CustomRandint(5,200), [random_state], ["val_1", "val_2"]] + +In SuMMIT the input of the :python:`fit()` method is `X`, a dataset object that provide access to each view with a method : :python:`dataset_var.get_v(view_index, example_indices)`, +so in order to add a mutliview classifier to SuMMIT, one will probably have to add a data-transformation step before using the class's :python:`fit()` method. +Moreover, to get restrain the examples and descriptors used in the method, SuMMIT provides two supplementary arguments : + +- ``train_indices`` is an array of examples indices that compose the training set, +- ``view_indices`` is an array of view indices to restrain the number of views on which the algorithm will train. + +These two arguments are useful to reduce memory usage. Indeed, `X`, the dataset object is just a wrapper for an HDF5 file object, so the data will only be loaded once the `get_v` method is called, so the train and test set are not loaded at the same time. + + + +.. code-block:: python + def fit(self, X, y, train_indices=None, view_indices=None): + train_indices, view_indices = get_examples_views_indices(X, + train_indices, + view_indices) + needed_input = transform_data_if_needed(X, train_indices, view_indices) + return NewMVAlgo.fit(self, needed_input, y[train_indices]) + + def predict(self, X, example_indices=None, view_indices=None): + example_indices, view_indices = get_examples_views_indices(X, + example_indices, + view_indices) + needed_input = transform_data_if_needed(X, example_indices, view_indices) + return NewMVAlgo.predict(self, needed_input) + +Similarly to monoview algorithms, it is possible to add an interpretation method. \ No newline at end of file -- GitLab