From f7c66e552de36015f9b4044d0d506d0dddd12f63 Mon Sep 17 00:00:00 2001 From: Krzysztof Rudnicki Date: Sun, 11 Jun 2023 23:26:13 +0200 Subject: [PATCH] fix: remove duplicated l1, l2 and cityblock metricss --- final/code/main.py | 3 ++- final/report/report.pdf | Bin 20674 -> 22304 bytes final/report/report.tex | 26 ++++++++++++++++++-------- 3 files changed, 20 insertions(+), 9 deletions(-) diff --git a/final/code/main.py b/final/code/main.py index fead2b80..170e69e4 100644 --- a/final/code/main.py +++ b/final/code/main.py @@ -299,6 +299,7 @@ def handle_arguments(): def auto_mode(data_limit=-1, seed=42, anime="RANDOM"): print("Started auto mode") algorithm_spread = ['auto', 'brute'] + metric_spread = ['manhattan', 'euclidean', 'cosine'] neighbor_spread = [5, "sqrt", "half", "log", "n-1"] # No reason to access and waste computational power every time we run the simulation starting_rating_data, starting_anime_contact_data, starting_rows_number = get_data( @@ -310,7 +311,7 @@ def auto_mode(data_limit=-1, seed=42, anime="RANDOM"): for algorithm in algorithm_spread: possibleMetrics = [] if algorithm != 'auto': - possibleMetrics = sorted(VALID_METRICS_SPARSE[algorithm]) + possibleMetrics = metric_spread print("testing for algorithm: ", algorithm, possibleMetrics) if possibleMetrics == []: possibleMetrics = [""] diff --git a/final/report/report.pdf b/final/report/report.pdf index ea269b1bee49108c9e3c564866051295c74f6ae6..7a7018ac04cc1e08295c2e8b5fa2aa5d675047c9 100644 GIT binary patch delta 17418 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 |*cr?l zM=g4lg)LReI?DR`n$b(C>4e~VlZH;2mb*+?KC*Ctz?2@lv7HiKc0&cr)g+Mc1lqMC zK>Rr$`q-_A(rSnyOLk5kJadMxA=RP(&BmQ%T%@eDQFU-|vpch;;XqQWHqtuQ__f-t z0#}}^x{hTM z68!Wi8G;VZKS8R;sq@D*uB*enva0Y_!0A+f|G5vUDi?kiH0I8hTXI$z`l_%47asS1 z_X0i7Nrjs&9dz@a&5WHU1qwX;CK63JolX(Tn={(HIL6qrYC6Vad1`r?aUFt?Gg{O| z!QlfBt(zGE8lNv5qzlW^G44Pc7FjnJ?;m@fLjvbI;z*gQg;rmA0|!s%U)ozjfa-MG zTX5`7%M~#}JlIWFzOfpY*g9=|tIn~!744#=t@4?2%0D2zj3#cw>HSIg^GIY@4h4w7 z5GGrolck;0f=H_mY^+yjUmz|BwChu_yc+h?G}ERNJOWMZvn1RA-7EV}ECr&h@S6qs zIR>%KJx1JT*q8qLsb7rFG*^{(z#AO|qKsAtV%**W6fb(^fMn$am*Ey^un6m_ug5$A z6$${`smyOTwAx+cYdb#MdjE==^A6avpwju{YVaWZ8Bv>183p8!OXKJJtNK5K>0UYQ zd&}zMfBafsc+}`{>s1t4CAD7U>=~G zLa}ivYETQqC2^``QAMt531a)`dY3!xb3UCM49I0$sQXtPP=YsV%$Y1gNv#232I5-Ia)U&z%!XnO#8XfpNwEiBOVa0!ni^@D5^kURQ2m{A)qi(q zaWx4QVmK~+GQb;@$)zD#;F;g2lN7q)#(POYH$9>-Fj6$Vy~qLsgqthXHzB`5W#@g< zP$pQ8R5KgM%I~%r?#O;eve5Q?9|+(N>~mq`N+PRp|N?Hd)7iONu5KYxh6 z;HSjvtN=&$jf2qwT;)jOR_xzbgB8tlzPDVwtOmjHd~v_Yr5ZAx!DZdkI$5)WgZDW) z+ZIVMm%=Ca1cXxVLIftGr2&s9zZjd*CGE(bOjxr7{ZEmVwic|l9Hh7^nyh^~p=Gdw z#*>UErt{Ahf@<;oS@8?1wP#{KvWZ0O`BOW&__|mDJ2x)?te`R&Z@gl^y0v@|wij69 zlTDT9gCKSq#REnTx8HWsoutgPsUuD1C_20xvXp_1ZL+t5(S+e6bMsBaIu!f#oTDin zrz=b+9p3@MVM({nh;EE0VswJLM*ZzdBVOE`Ez=d8Hgh$x9+h{(PH0?}*(SpqqzsnxO>)C)U^fy7x1jGW6)!8EN3OFF zq0t*+viylw(-h5)@`igV>y)dZ#uMgu?2Y$KJof|++iQuLQqEO^Y|h;9S>Cizj_NB&*Uju~yHr?*1X4WG;%w6|vfgoY)pRBXXvQcLB;Rg)GWZ#ovU zic9l3t&EnRw}K_E{z_BE|F0lt@=P4 z#!no;@e`!>jj8ztq2GK4F0xHI8N?^PX`&)YB35vQHdqs|Tx~5E(BySvnB9;Up-umu zZybL|La<5Kr)MnC-)yd!=i&=bYtNQ&t zU!%Aq=j%vU8iX0db+A)QrP_H3TDb6=msmZ3mGYK3D-a?l)ln!1Y3KV3-br}?Cx%{{ z^#a<~4Pdf~AcPo#TT)5o)lsSjdtK90j~Y}-uWq481fLP|GraW<_MPrKHUQxztv=fh zwb?uHf)5~nU8fTVZ!LIP-Pr!gsT{p75nK1l+( z9{=@XdAV>v+)H%1>tUAIrA<(!5Elt3KXgWoQrT$nY|xP@_8%vd9?!pF_0RD`6TR=< zxxKhX`fOXZX`g$cH9^ydFk5)JdU}PK>?6g=pe;N>);!3J!CMi`h!Ia1DDYP#{yw)q zl<=aE6MC+RC(^90+SJolS8F(3PBU>KFZ{tpzVFw0G)0-KIMnL)<5K-h*FjW#xveq4 z#2Ql?h7QWG`^EUEQ&A1wQ-@pe;zCz$1MIe1kNFQc0qy=S0@-w7Pvz81ySlhE78lpH zjpvw6FlMtfGvhbB*|gRLUX)=?rM z^MrA@B4(^GQwqvvIO61SB(Xre>b8i@&DGVyR_|N8R`+=s2bos76*oth{@d$-*X_2~ zzSq9=_>iNV-sZKBHSOOI4bqfgP_qBfi+GJ*yHLLjCZEr2P3cF)pU+bC15PJi=L69= z6tBn%Y~n7d(FFw0%;cx6WRYKcTU?5K{#hb%_Pip}NRq4ic8Nj7a_FO6>Jh7??;*DG z2{gWtBt;l&&eEdgBM=3VaKg41A@Rx@i>$DScTPSf}6CNwYa9=ed=V_k6$sfm1+#oAFRr`&Isc6UvG zo73jH%52Ku+295_AFm#IVaz%x=+JFn$%&wU?5STs>1a^-umXBnbTT(f$V)MA+1482 z8H6ogThL2|K{>jDY*~3SU0bTQY*o>w(rww>8uVDfuB1(ohmx+e7^D*LhdKkMc&HMJ zIw`8iU8%d$lL|PC*Ib$9I)O*Aa+yV{;^+ryJHey$uq3=hfD4SPht4HcFF8Iv+LcmI zMnGwq@`smoL}_1>UzW-CUqg`*pFENL#xMoqobr#<`)C9kiG8f8L|BY7UMlZJ;-k$h z-E{s(;sZCzfDBSQh13UtTQ4M&mHtL$G7c*y{9s+v#62o-?Bu6BOx1MxG;St#MhMzA zO5L98h2Po~mtW+swtfL>kWysc9E~u>)F8d1Q>gX3+7(&0*lO!j!IJIN+_>i4p-n>V z(B}~&8n>x*PM+EJ_MfnFwOE0|3Nw4o`_&6 z__5nu6_2@Jkhw#^2c~uY(`$#-D4p|N-{&4A0Yd-$hCwff&GgAC%Mz_CC zG6|>`r@|o_q^b7DFbLYn>#u1sO*M5jbsROjo4&MzMW7GBnUMT(eWGSFj(sH55m-rw zg?Iy<=+x%rUQv)Gc{abtapdoiWJso3PZO0~z&L4yObDsa15rn$d3Fl}Xp&m0)=4im zHs$unerBd-s~3B>_f2B;kMH{VxXeH$fcE!l%j{-WB0hSq*~72{p?`72LOV*4N++7u zjaPK3m68DvsM90sz5_7ZM!_H)An;^H7z||01u_ORC=h~<8+lxL>yij*@lNxOOCJ@fxR4l^yZJv z>LB16;Xu2A#gApGd7kae80mD{8PSlKH?Qkm0eif2ur702Rb%&M zo}~r&S`M`GRBJZ_P)17-8`kBD+%D&wFmM=5)SL0lmRvPFOkR`H*ny}*&5qz}+_eRE z({2Cdz5EB(N}Y?Rpa6G2D5G@+-bV947zK)X&u+OmfoXAO?&z-wtnXX~YObYWqQ>Qr zEFltB^Q&en4A{`%OGB54BCZ=XHbTBKFi$SG3#&ihxy*K03Xz#Bs}v2g{taO z{)ns~TlzoI4+8@jq6-Z?Yf?E1-Od{ zN*$~37>~CeHCa)bAjZ$lPf&haHje7*j;E%!<-JE;i#O|Qhmjv36WL7dz@GxJ;aA)` zdc!QbDpoVX67-O%bWZ*F3B#OX%$Yo&cmoo9k_Lzf_ndgLF#<)Y**lInxrYv+@hqUPVfbuMZ@DY*!6QB0%wz!S&XHpSbQ?1@h5- zpw7;`vhxO(Dm>gW!AQ46CaVJ6sOY%u42`9U$2e8o0)@nMG^g!+y}VSN3g~inlXFlo zs#aISRLh;GD^zDq&}i z$-+A`9@C+d2J}9rC~_BStww!K#I^^eqlr0qI4t_P8)@Iy8=I=E5g-BG)onz(UU({! zGa?*wd14&>?-1|yhl7QH5NcXmKKJ7cjm1Wrv*RT~J+Win@#B2ICO~s;LSpZvJ#W3; zVgPAFF52s>aeVY1Ec(-Hpu-`N%8swu8viVqz$8H9+ zq4J_b4A1^;*w0MhIR{Wo9#pN0cSvjqDa?rgVh5KSa-9(H*1(A+^h}#KbrYG8goB^M%~nFdkq!=lb^< z{$4{(!qdgk&{R}$FS23@pKg_1K5~tOr~y?Rra?LYsQb6KR~8WI89lFUjlx|1`1#=c zusC%WjdTn%D=-x$BNJucG_sySiZ=B3jYNjGzEtMY8S%*U7%P@nKel{alx`;D2MVRx zbDp5AYyZThVA)m7>U}?pgb~lDlQ|j|Az@RI;1FCCt5i>F|YNf5GT+AJTC zvA{onE0~>!Kd?}5Onx0CiSV*M!zX55Z;RVoorzJbqXK$gs+5B$B8`ICge_5xYlA1+ zOzya{%-I$F_hb zwqZ3CR!HBzd_WM$&whOkHXi2)yyd64DXzQMIK;&c@Na{kYJN%sJ=YfDF;aBKI8HL; zpf7$f&j3Hr#yK^l!>01aPSd}bd^B_fXTS1k>c;H&=9h~8bPPMCHq$32kX%!V#U~_J zhN0|V5KKN^7~gfg>9w#rc(d?(kK4boa~8ikfhdVZZPHhCjc7Sg4ng|hHK!!JxO4d& z$lZHP+s%gT)4wOkoG$B?nyo;{_(enXP+>bHc7UF$RGWIQ%ZP!#e_c8T6NK<$*`UiI z@uR%^B*J5#g5>DQk}L5P`s_GLr0wR=X(&XwHML3kSCax;v#)E0$|?;L#40x=aq0PC zbwX00rvq}E?NZZHI2A)?ZO)xWK zc>uhVLRe2ODS=yb_u1iWungIdiUJ3>8?uBGRBUc%#V}_AM8?Z@GAd^Zk3e&8e;vKh zUxZU}?!q70t54b(zz3Nuk@qsVf_|G>th$a1eN^-1{KBb%n_5dFp~3xd9jF*wGU=;P z5?Yc&B{y+aa1e132xzU6o!#mQg1i^k3?PegfQqIC;fx>*4$2;W@2~3fcc+e;*B=K! z(?rAWNN*y3YK6rbR-FgoUUL^*JCm6j&_C;5H>GdSA-|ru%XF*!@k~Y@?vmQ)&4u@8 zF79$etnHm743%My(BhEPi&V-6mK+oAVfrnWl?H)ye%eE)=(EC2%dBvNqdP^*P=Jwh zM*iuwM8M}G5O}ia)%7;(YL^$H$ZQ*sHYLBq@{q7pyNRl@~yhEB? z^+c~)*-eZ7`T4s!4S~uG*$I&fIzT7(!P@JtxLR>gU!;zTBzdWisyfcEcqVrg6?5iq zQfjTv)XP04JK@|#EFeeGx<*PBZ)dk+w`i5TF9iR@xDUDvZ!a!GQ6D8c!uinaN@66U zuxG%Qp87;uItpQJji#;F!$APLeXW&30g7N-OI?v;@U1L9o3z|P@B+S)6M*lz@{VP* zh)jPc>iKgy8pTFdpPHiq_yST3W(9cFg#L4&Cw&|a=rlmo%r+Cv^y$pmauso}D-tG5 zBAmP#x`FDJ4M>EZ+3gOTBZLg6s5hU_H4mLqFMHYZw|f`627${s(7oB zT5DYga{>7UC5Ae*v8Rbr3BU^-M_2Oob?p*fJEs;Zaty)yoj?{F&u2-?ghAu_02O1( z&XuT_ubM{r5Zxz=PMdim>C}C#5c{C=W+ZlU#j!%eqh#c_u^$9-;|Na8R~)8gw&(ba z0D03OtgaeEtIn1f6Htpec<)*L$Ysa~DoPY&O~E+L(g+5kR^Zeh3kWBx6=JwL!Z|~H z;OF&EY+i9~^P5(0J^8zOKgd=2v3)Tg_LgR{I>~Z-`(+415bEdaxFH=fMHFnZ1G+}| z3xh+zV!p!qbTGo!hzaY`;ivv2mWU(ns@L%V)ytWxk_C0`E7NgUFKRRQ$GMn6OSf8@ zSoo7r$XC`=H%mp0U!ApFml(=!=9%OdIHz z^fX_nsCm#4cZr01NK!4`o~74X!*$u_%$p99!Z0a-BCtP>T@E&bolXN;sN;p+KCOE@ zy5H?{`uLwa+cpFqXMPW2v7Ni?)*TX-Gt}0mA(YqY-#yo$c>v7Hzs6mYIf$EoVTk-+ zx_%ZLYSSi=4*j7HEu{oDyjpH;?1v+(Aa%p;pvTRK3Ac56T>r*L@K6a%;MmJDlVrKX z#nkDUk1Ae|ii@|rxHt`>kTA;kza9{M&JB$hzil_RO3sGYixvxE+#eijg&yRk}sS zoS*cu3Zg_n5IqQKUhKQx^%JiU zD>)Jd7KEAOe@Rt}FeY3}dC~n$J^~PhJ4E~cLagLTVH`LnRt9k^XBXE$T#TH_cfxp} zOf0O)h$0w(0i6-K$c#_2W9L*`F&nbD>(pbnCOAS%lr*hGNp$GZm)+a*!2qlPFj70b z)N^2S?+@n>Srf;7S`+MaY!CiJa#Rcp{$y!WVbiE;*$i1OxHnmyJgH1GWnNAXASmh(kt--IPAIDBM>x7!z8K^b zf4nYpzc=FwO*Ua{wNsBuJfeJSUql@)4MJfMg+*sSFVqG!ohe z*ttV9}Ea zG15p-T)TPTmjK!z1f*EdIJ}cqiXq0gxdAAIfLOR8L9iD`LDd7&LuAyZF)B?&b4PJ4 za%wA6Oim|xtFU1d_$yF4nnVi(ewsUw9+m_-qsx+7IpzB8IaUclVDUY89EU7wATY^|ChJU5k>V%*Yxg= zALaSgvGcRUk8Q6OTDFvC&C-{cf1bb?ba^tWtWS1-H)r|oLU~iq_D{lTz5syWm#Mp} zi~jH9vs_!HJueKb3-Q>c8 zm)2IyyJc2?);3x#kFxktBIxW#Z9HCV|oD?d2tiI5j|@z6}+*HM;#NxiI#l~#E z9&{dHs-tQ-rM22>h?IZ4t-okA+MuVCT$K8o2bb8O#=~+=)llja##kMnZ6~zx44!lL zv6ySL4P4ENi140A#N-UP3dG)hC7T~tHT$P-+k~F2>pfU~5nZ+ZmpV(0Z1>ukd4HvD ze{J_iMyH*L-DdqOwy|GlThBlNF%FlD9rRH8lIiLxUWV!KON)oDx2?z1K!>}DVl6<| z+S+@}Nq~73^u;Nk1w!z-V|!^1x&MX`b2hg1obYrfb|t{yegzBg?^*vhCc%UO;_i8! z0AVkf&NIoN6O-VY+wGR|24YP71pzl$nlS+0dG0N6V|uB_mlq9Ue8MX*e=42L=B&;E}^3{Pd>(E@zfwLW?`~w_if#PH}*CASKFZOamkcJ z`c=7Eu95njJ{!+FG@Hts(s7-V>R5^EmfG(27-fci;mQZVDpH+!XhD-MBFV4q{6^P^}KZx4g$8_lxul2{$RdiBZrN{~RmpaAmSQu-G)xDm^csG?J`#{0_&r%1O_m;LO zOO+5Y>9aqWX};D^Y@kBhW`k$jmhBXGTY9q{zRr)YAEZK@SvcGv#VNvP36(20OR+JA z_Hwje&*UsX{^U2x%!8y2w)mkMhQt_a7%6u}In*dA=7m;64^={(dB(&YvLKa?TO+F& z-A_R&!A^SDLF!7U%Ch)|L0}~)0+zIlR`Ya*vviCfD|nmFewa3uQD!$kspQC$MR9r@ z9#v0Hw`v1Tw{7BMO=<;SKW62JPl(NJVs{wDy`ut<9nsbJnuYOMRvpsy!+m#Vnfz~u zTxH_mJ{(iQK-~S(AJd#v9wt0?tYsCGZ$v4Qhuvwc?B-5nL`nmjuZ=$j{r#M}-~H${ zept4B99eF~eYBm1xN9_IQ$8Yp#QKFr~0TQL$qi6;I+F+R>4XnO)2fEs)+G9nWFVv>OkG8l*Mr zPZ(RZA$fUTLmMX#7)St9>rAlReg(+-kF9$YPtITdGj>DaL?ZOgp_{Ub*h_yd8sD{x zUh_D9b`A{~GBNblQ80G9je|yeM92Xee$?XX);CZZ3eCmxrmO!}orp9xulgE+N?#~c zM;#tnK8q|-pkd9%3CA|K9u1kTflg*SRT-lw8LouR_2MgRKT@uy;^ZuJ#{t-CRWjQ? zmMg2Vq-IewHBxFl?HJ5MV!mk|R}pm>!@+}VoUy=P{V)og&HD?-CZdj;C-oi9GfyMl zUJ_Zshr6(wB7Lh=lOuexK|&;vm(_{7^i8uWfdnntF;Ho(FEj{(++i2WRY3Q7piHEPR@!U z3!z!U)grl>)yxlKD!lpbz@2qbbO%X13t~$M2gTs`h_#MV`sNe<&n9fmS+sZ2oHpZD zrGy-}`>QR&XEJ*Paw~idoz8uU;i%^?233wUufRi*y0MCnS&Uv}*#|V1T&Nca__&Jc zaPWq&T1(5n?9P{)H-G*mOWqBCZstU{T-x@#uMj-_={3i+y!`du(pri= zS-M~5i{1X2R@q%Dx9{bEO3j`&=Dyse<-%-(bN z53T;6awqZU-F+I;Ba{+}LemYhZue^v!YoPx9fPzcQ^nF?k=?hNC=wYgV>|hd2Bw`kS}4rG(M^ z$pq>4o1flaUteccz4f!(pWd96c3(YiC>>$GnH02b#R;*+(K&{k(J9@!2F%+oe6OBo zS1$A|dec(z{Vlpp+ixg6QND3$`TvbM8-M2n_NSjdJy|~fPmR~4iqAQ_}oCWnYVvH;l3>5N{vbbz)^g}8OQuQN(Qq%N3U7~HwjLnivk_^*~ z4HFG542+BoQWK35%}kO^QcY6K&61Pt2&$Ou=&!(KsUIF~s9>aE6btOeNY@*gqik+g zy%_4poG8-vu$ap=N^8rH2k-108k2Mlc8HZvPZD3#Dj-yLNX{c7V5a&1vy;DDZ+CYw zlI;KSRBGJ=9=V5d^AvgWKQJvix4gT>Wd_&tSAWeeGmF3So;{OQHh}M@0f!k+qj=jw zrlJE)UMrenPBdq&sBf%U(Q5UANxsCHzobb%$$%?4fPqn>-GU{NNo^so(*?f21`LT3 zjhZvsoH`Ehs3>rKy}-~Lz~Xy>M>l|H?FH`I0H&n@Y@Qa4kr7Rn5iOMk35;Qhl3@wL zW(mC462-SANC$0TX5Ya6yMU*?fMt5Ys>T(+|2}B<{&C*sr=zmH{Ia|&RpwupTwA{~ qdh6q5aaaEtl`ikAz8vE7M1G~aX29fG0kYhN7KY|rs;aL3Zd?G~ZLwzn delta 15743 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 z
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