From c9b262293ddd84655e3fab3fd7d16f8233281413 Mon Sep 17 00:00:00 2001 From: priyankakpal Date: Sun, 24 Nov 2024 13:58:19 +0530 Subject: [PATCH 1/4] practice github --- app.py | 1 + .../inject-x64.exe | Bin 31232 -> 0 bytes .../inject-x86.exe | Bin 24576 -> 0 bytes .../inject-x64.exe | Bin 31744 -> 0 bytes .../inject-x64.exe | Bin 31232 -> 0 bytes .../inject-x86.exe | Bin 24576 -> 0 bytes .../inject-x64.exe | Bin 31232 -> 0 bytes .../inject-x86.exe | Bin 24576 -> 0 bytes .../inject-x64.exe | Bin 31744 -> 0 bytes .../inject-x86.exe | Bin 25088 -> 0 bytes .../inject-x64.exe | Bin 31744 -> 0 bytes .../inject-x86.exe | Bin 25088 -> 0 bytes .../inject-x64.exe | Bin 31232 -> 0 bytes .../inject-x86.exe | Bin 24576 -> 0 bytes .../inject-x64.exe | Bin 31744 -> 0 bytes .../inject-x86.exe | Bin 25088 -> 0 bytes .../inject-x64.exe | Bin 31744 -> 0 bytes .../inject-x86.exe | Bin 25088 -> 0 bytes .../data/monitor/sw-monitor/inject-x64.exe | Bin 33792 -> 0 bytes .../data/monitor/sw-monitor/inject-x86.exe | Bin 26624 -> 0 bytes 20 files changed, 1 insertion(+) create mode 100644 app.py delete mode 100755 cuckoo2.0/data/monitor/14b2b875dbfa50d19f5967c4b150a7a2e9465e39/inject-x64.exe delete mode 100755 cuckoo2.0/data/monitor/14b2b875dbfa50d19f5967c4b150a7a2e9465e39/inject-x86.exe delete mode 100755 cuckoo2.0/data/monitor/2904ecd8163e96db69fe2ac8f48c5935e194fb08/inject-x64.exe delete mode 100755 cuckoo2.0/data/monitor/579f57961915e0cf0b4716d993e374169bd08f5e/inject-x64.exe delete mode 100755 cuckoo2.0/data/monitor/579f57961915e0cf0b4716d993e374169bd08f5e/inject-x86.exe delete mode 100755 cuckoo2.0/data/monitor/5892c58f567293c86eab8ccb0a491d80b48eab08/inject-x64.exe delete mode 100755 cuckoo2.0/data/monitor/5892c58f567293c86eab8ccb0a491d80b48eab08/inject-x86.exe delete mode 100755 cuckoo2.0/data/monitor/6fddfdc86ef18dda769a0120caeecbed76703f0e/inject-x64.exe delete mode 100755 cuckoo2.0/data/monitor/6fddfdc86ef18dda769a0120caeecbed76703f0e/inject-x86.exe delete mode 100755 cuckoo2.0/data/monitor/952f69a1d4d04988062819cb81ba3948ab4439cf/inject-x64.exe delete mode 100755 cuckoo2.0/data/monitor/952f69a1d4d04988062819cb81ba3948ab4439cf/inject-x86.exe delete mode 100755 cuckoo2.0/data/monitor/98b5eef740c2a0756f7c7be5a3dc5e169714227d/inject-x64.exe delete mode 100755 cuckoo2.0/data/monitor/98b5eef740c2a0756f7c7be5a3dc5e169714227d/inject-x86.exe delete mode 100755 cuckoo2.0/data/monitor/9e90535ed89363bd424d6788e4341f468b7155d2/inject-x64.exe delete mode 100755 cuckoo2.0/data/monitor/9e90535ed89363bd424d6788e4341f468b7155d2/inject-x86.exe delete mode 100755 cuckoo2.0/data/monitor/d8c5f2986e5bd4598cf7bf3b30d43b7f7f5b7856/inject-x64.exe delete mode 100755 cuckoo2.0/data/monitor/d8c5f2986e5bd4598cf7bf3b30d43b7f7f5b7856/inject-x86.exe delete mode 100755 cuckoo2.0/data/monitor/sw-monitor/inject-x64.exe delete mode 100755 cuckoo2.0/data/monitor/sw-monitor/inject-x86.exe diff --git a/app.py b/app.py new file mode 100644 index 0000000..8838b77 --- /dev/null +++ b/app.py @@ -0,0 +1 @@ +print("practice github") \ No newline at end of file diff --git a/cuckoo2.0/data/monitor/14b2b875dbfa50d19f5967c4b150a7a2e9465e39/inject-x64.exe b/cuckoo2.0/data/monitor/14b2b875dbfa50d19f5967c4b150a7a2e9465e39/inject-x64.exe deleted file mode 100755 index 06e0fadded35b706660bf5321644e740d3be33e0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 31232 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 Uw)G-k+ArY$M3cVLIq8A_1GV^1b^rhX diff --git a/cuckoo2.0/data/monitor/14b2b875dbfa50d19f5967c4b150a7a2e9465e39/inject-x86.exe b/cuckoo2.0/data/monitor/14b2b875dbfa50d19f5967c4b150a7a2e9465e39/inject-x86.exe deleted file mode 100755 index b51c2fce71836e68c89c51443c381c74b81a9eb2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24576 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 L_OUAek_G-ZBc|81 diff --git a/cuckoo2.0/data/monitor/2904ecd8163e96db69fe2ac8f48c5935e194fb08/inject-x64.exe b/cuckoo2.0/data/monitor/2904ecd8163e96db69fe2ac8f48c5935e194fb08/inject-x64.exe deleted file mode 100755 index ed2d0de0ae1b1b0b82ef83872b31c552221be62e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 31744 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 Lknc48CJ+1<&ch{7 diff --git a/cuckoo2.0/data/monitor/579f57961915e0cf0b4716d993e374169bd08f5e/inject-x64.exe b/cuckoo2.0/data/monitor/579f57961915e0cf0b4716d993e374169bd08f5e/inject-x64.exe deleted file mode 100755 index 85ec4abd670c1f56f81d8346022d49d0a753019c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 31232 zcmeHwe_&MAmH(Y&2EvaxL5aq$$Ws#yE5roEih^cH248dn5fVWK$*&2CBs1yEn*gpN zI2q;n98E1+>#w?MU9DQFwHT&bjBDd+yJ7Cstn7#WERVRy^@IW8HxCDdpea{~iBULO z@KTZsNq`iLpo>`9{^LZFe|ItVJ~`+ZKgvEUEBpr97kaF$_*>)@Y3}73@s;5r70Gtk zk@`_sRc%pYomK}V)MBg_51FmvN%@qrsz{Mf5N4f#f_6OQze`hykOW<6QM;hyHj+@P z^O~V_#id2d1zi`}@DLuNtH+b_DP^Fm_xlNzGZF;rQVLU&t5|KMs71)*zK(!42Lw$i zL`Xtjq^N9eHDR0Ss~>b^ZwFuKVjBK!DG z?hG}!zpy0Iw0g$7pT^^rSM}KzKV)SV6!qCIPo&BcsS26Wmgu$(KWEIaT?R}jqNy9G zp`z}K5uJUT2Bn}G7%3sJ7>wuMh{P)WeBUG-Zl({rNsa~KQG=$^xvMQbXFsKKp; zJsYU<=s3t3SZ^QC)Q0R3G*iR5GYME;T73ZxA%Ru)=P%7`TK$(%7VTmJ8TQb%s5H2d z%sS3~^CD!7I}agK5((|J-xY~n224|z8qOYpTBBbSQ3gxUXpe_g<385vC4cW-4;p%+F8QQMufBIZ~(jIySK6R^xwV;^PI;a{8 zvQ%S6&2Ox1;3WI_RX{RzT93W+EYNL;qNm3Hr0Ro%s{PmFzWz5jIur@KW7uLymh1^0 zve-M12ccox4MZqn@2o|x&-T#+a6cp&wg~W?%!-209((6$fM~5X*8-r8M>|U*8-Zda z+vEMw`Vvw&`@XYLZSIC=dGoG((8{7e`)6Ko=id+mUsl4`3(h5kZS}`!K;1TzG&5`$ z!wS{la_5$8AIOvTbneuqhqh}Ic^Ig{h{e7>XVqb4<%bS^nj9{L#Hy6r0$dA=YImOI0(`IgFtk1IC+ zXQoS!MfXkzF7&>tzX(r%dOvt>zZ%{t*<`Ekc+hzC;ZMS#63Q0!pRLboPjEa^{r`9V%R$aZ7qU!2v7B6xv zbS&y=>assyo?jaqL9uTiUruyy{=&+BM-5I*9r^^Vv|&7Q(F`u-1(foFuTg*?-}^f> zQ#kuYfN1nW3X4A5TF_7!*hBAt2)*bQTNtR=tHh$e8qXcI4!JVqsK4cI5F+jc=(8;V zA@AY$L0D`JXq+V<$M*g`9@jV9$Ct9G0en|e+W6FGd+$EU^%j-~(eAI&G0`(IT2TKi z?6Yk_Iens=sQjLk@)}kDPtYi;UYVonHF+-GskrpYLe-$BMo|rCUWLBBLho1gEkNc( zZ@mD13~p5x_0*t~7H1(Beky+zq^tT}+lDjd(nI|mgm(j|dN@KL9HKH+cRmiWkE>zl zx(fYOml2}Ejf|w|o1-4I0~I+oKpYJvZC6pj7M?{QO#Zc%#rwq&coX#KN>d-&foA

na>JRkk+j|rr(xN!H61C<_R-T+BODpd?jdO#(XQVmEt5-AzCqgk zNol_zX|3NRtu&=!%h9mZgibO7W|pIoU4|2l3>T15;Yth;u6#xKV;7fC1DjEUU~mqq z)3#`EitUVK#S5w8&nd8ppS$s{r^rZ(ztV(2rts0hg5|IBEk;!VMZv0@6hfT z$`NeblS15MyfP4D+_+(ow~FmyUIq8#C{n-&1z?NU8D!iCB!P^pOn4TCts=v=37g*J zbtYX_&ubx6mpy8@W+G}dkyPDB;VtU?S{g(Q^^Dq{@i7d&uZ!u~G0 z;V|&<=SFHe(GG75O~Wrlg&ILoJOwGdERio4-eKRg0z;#yFTaF!Z}V1 zdE}!USNP5~!d*ySs&JGslll!P=Hj8ju_DU_SE??I2Bj`6*v?OLH*KD%&yr*@Rtty2 ze5|R!PL-{C2&EY9oL?KxucczNt}Dd+W=MVv?Rl{3}7c55(L>AU=FZN+v`a@oGUFRTGX( z*6QYEp)TU-roATo)Qe$DDm6&o z_Nmb~zJkBQHT_`cb!~WjsE`^Mn_|w{(i~?r&6W@;B-~9NvYAx-(x?^-DzjzZLFMFh z=k7GBX@ZK(k+vrq<5W>3+(N1*J(iiS!6{fsNjH2&HtNph=!frN^+rPg`eaS5E9~5c z%9qnPMX_p*Q`B*2d00t{VL2h_oDqXB^&N?;6v7PKZ7EV0{3BAQe1p`l9+eZ?auKQ@ zihOX>KB&ZKs&9p(DWm5Y&StEbslQ&G7*vYCc~DWqmtu`nGl-c5M)4lY$J2O!D6%43 z3<#xJDWgGhqB942HSCNyx)s!%=_ z)~Vn`Q80*R$Nb`i7kCdR7V68+{lOddGYv!ke%>{1B#nRn1%D$RVC@w1F#WQ9O>0JL_yN4v@<5JMnu6NoP;{w z7P`><&wUJEM-%<$v_~kaG565&wDV!ga8EnQit5j~C*@pu@L#Dk-CwkvqZ+Rhb&z~H z^X}%dlKJigcX|L5_a{^jP5a6UdT6Mjmqz#%GFpGF?xV; zH~AE!B$M?n^fu;`fnw+7Y7(NLk(mUcf0H^%l*J zS~td)zjX<2o;k87xE(e zEpz!cMYJPVYCMkf=rBW6#ZjX<$_!8nOq#`4?_ZY%LGsKdYADDUHbt<9?|Ols(ok&v z!VE8deiPh8fCb3NJ8(W2{X32;jS!Is4`tqnEg(P2p*;oJkq8wlw%h3g|d=KIvA3ihp2jdKs%UBMrE=u^nN1Mok;CVr1mCKyOBby zvA)o*1dh(D=+hT^S(e5g!$#HMS@j+@JoZH@Hf==Uz|3&&3EYCs(eZ^M!uvv04GE9c z9s~P6j3G2W?K>-#ojQE%v}0g@TC)FZ8aus@ioIw1Zso6+?Dc}ZI4ErYcAItHma&_T zL4Ki>pYe~$rvQnaehl(=VPqrkJ$xqj-m&UW;TGG1@$z0`5gR|Kd}yM2dmEeP3+gG_q!bO3k+@K@Dfqu zu{xYOYwYr4kl!HXznae-@?Wv&L9pr}>i@BK(2u^$qQ7B`B8wLP*K3@}You`|)^-dv z{!G^R@frV6(9(z)%RUDA^QHW-kZ%`*93PQ(;QPBAa-L+LonWVtk+a`%4D2UKcKbhO z9S!}lbB;m&_RB+y%k>>#0p5#CO$v%$$cYLbQ&rWNK0UX6cSJ%mruP|V+J?z znVfTU6UV3jX>w!){@LJt5UaeSv4n`_g#=6H5Q%qF@dLbA=uZ{$s`(=887f|x!aV`S ze3212AyM@R({@_1JWU*~B!|5-1TSJfCoT*DSnl-RE%!h~|68Iz1@w|ctibU?YT+tu zXW}=SOk>ujFs&k{58sc+9o?KFoLdBHNIQ#wVf*4IDa1h{-Uwoxyr5y2Mkex=4>xfw z72k(q@U7*1XtdjC@h&}Y?|cA(kl@LMqQp(ZSqC<3dWfV-*#Rt6ZL@_Gjt4O{pD_HD zyHeDurh3nydV`y2Dq~tHh$)pY>dG4}lJn1Zrf^sg)>2t<;ZAnV>^4U;Sz|qI){{A;6tb1zHZ=kV#sW3fEyX zMC}&N-9=~~w+DYL8-b2Kbe`b@#&u-MmG4o2@rAB-mcf-a>ktPdtB7jZIC;@6mWP-! z_$oGdC__`Qvezo{x;rpgaG~O>Z-5InM@#p|;{#JtC8Bd&EXtN))jx2O5W`hDiz?ai zF0d9H6l|jLm}zZBn4E-xiSjDF^%d`#@dk-Z=f+j=poL*wU1TNRC9RVTv`40q@Q8Db zZP0G*hj?qh1~&u1Ig7gl)rtWN!$Lo*Wf~NuHpDhATcp7EG2hdWT3qjcQ=#`&r%2~u zlfMp{F6!w@`J}#pHc#B}9tuZRIAMVhIv1KqY6eqYL@UV`(RBVNsD3t-il4M5Wa5nq zf3rjfae|?l817Lm&K$ge9NtlYGZ`GgR^iq~O-?U!q-ODcH@Ky0P0qj>M_?DM$w|fa zvMwB~5$cdSVT+1$%;Y;s`9hA!ds%aWi;m|qcrF;R^|C&h9M;RqWpa2g%a_TlUS{RV zaMcLFJauza(KEWUVT(Ls7Dt!mdSs1LA;Xr9k@V6qbpS^Psg_m-+w!u~Q6X+acqUk! zIK{^Cp}uYNzD&!uV6=3N&^6&GEtS>2zD8M-(~T){s5(NK4t|u~%POeOf#Jl;JqCSn zey?Evk!Q~}P#M`Z-H0e1*R$yZfm2L>BCFbeA3?Vet#0Wb zm_TJj77NgOYu<3!&0~{aW#f6!*!a@uNXgM-WHH@J?xQ!`++hCtcbZvyJWyoTPRis4 z#>;F5S0)%4Mm?M3=tu?Kk-B7hXOxD-X?_=ma8cTDu0E`w0a99Fs+2OI5b@D?mwdZ6 zq!_}E)=fnQADKx*ZlSFFOth53b>>t#Cej_NzT-&D_nRtt>Wnj7q_GAGS_&Aj%`UVct z1~$t3ZY7bl>7WY^X@jY1e4nsM)wj`=(&T+DOmk@L@(iO&(sOoPJx-iiiOTUKsD^w^E^`xUV;3Ef@VF%9qWXaVO6_j?9doaIprG{4yV8b638A zs|zF>lc>G(8I-D_oxF9mCpbZT=MedKL5_CijJp8>rI2C;Pqafyv3F8k6fN_40cjUo z1n(r`a|V`H5v^~=Z3K=t;|S^};z#({jOUU)vCC8WyQw~tq#RD*Rvg6A2KRPx1$7YT zz-aG@(Gx~u<%UG;ZD2N1hY-&EBPWe*OJKPHzZKYLfla^fEN|c9MqqRddX|yKEovxk?_37|>4&9%D|Fm{$UYM)#B;~qf@_yo zqI9DIt?7zvDHG#`YK%c2G&1zftFcOrE35xfR(6SE?|cn(Je2LX1Sv`3Y!Ci~l4ysB zHhI~_Je0KwJd6WnW(e0DPpw8*iWL#UTA>VInhwyzw-#db!9_tHANI~WNFF^IVr}Iw0K8UvSpX>c-Nlhu^#CAJ+*}y=ey8&q=2@P1U)HYyPsD+u=?Ok zE3USl0YzeM_?kg6ZttYm3_Q;5q2)-Lv3{#5sg3tUif$R}Tw1Ich~)TIaxk`n5N14! zNaR85fS}Mpd*@*UU9=HPA@YB0e-#-OJvE2zA57sQgZ3PZP%n{>laQ^~$>_v)F z7&`HQJ*P8&6&xY1F=DTFz&@rrzgP`pC`58${`vSW&o33PfEOHb-(SyO0a>y8F~}$4 zW4V2TmS1Y0aD9GNxqSjI3PtGz!@R`YS2ln9RrMrg3#L zPq(*Y<;c^B&ilvtDyEhNG)rOgyMV5P)zZbVW--&Opbi+$eh+LeSmWsaCpd<;d(=Zk zhKA{=niIiR{Y~5ek1j$sT8pnPKKvx($8kmC7XZQipx$9*|LsRK0{zK_L1?@E_6YSS z!?qvDl08jbEi?C>+PSbnd5%KYb(p?%Y+0L9X%Q+A4YZlXh(N3@@Qh0 z{*kJeVZ&i-CQ@VExS*9?YPgEC;;-=@QUKW)iK~N$toG2$q=#)9C@n$)Xa7u+o|z;K zOr@bpKMYOLytU>Pb;mWa71$gl`V-d}l|FtGe&q0UQ&;d%sn+WXH|9?i7dlnws;Y(y zk!6hg7Z6qI@5WzCh>lK#Fri$j_5*0B<$|D`CXOU${I#xh6?&5GgZk{9XCpXVnNyqF ztvD4bCATDMt<*n@=Vqc_%-W$$(8Y7VTm?6UvoAoH>06>tV(7;tw-ntOE-WAsV9o-; zyB9Dv+bA#2irzxgLpXaK5UPG4x?E&8Ba7JCNbL}91P+TtRwDw2elfzYV%HkuwtG?g z9xYeZ_rr^H&);#)B6Gg&vpt4lxSd5EBOo5jerqY77jY7W0dwDA^jZp&@YKKJ_bKQs zdja}v9pIr4f2WUy8CFe8fub2{0+v6AhOfL6-=kJeDL2Ob5*$uU&7sRtOSzHzAkXi# zha5bgeJ9Uv51b0=w<29`Wa4KS_R#4R3zu0D5D*HJ35b>3;tfI^6e zTu@c&*bdi3u@&wwH>`P%_^yE`67kR7a5||GE~wf_VRA!1jCY8261oqT>@Lf@h9$G? z5UvVDpZY6krhV?)6PpY-1rKEf{N?ubBVez?z8?4Qwp6Tsi9G1+++JZ?2fJZhu}dK5sIDvkAXPN^sIfgAWmc^Bm$_M=rqcfX?TKO1P~98Ww#N z*9prF5?8KogBq11K1vlt;g%xk15n47kf6+Q2U>Y|`ppl?VP*I^Oj(vul@*-_5>)dw z(9uhf7R&LjJ%2V=<^n;xBly{QGI8@Ma~$0ou$@bYa21BN(kxZaEubvU@Bd8856qE? z{foI?vi%0#1p5@dN1GVhgZ}ae^4h2_eRq6pZ*ag8I0$9#fMZF()z`$f;%*epKP5!F z473Bo`R{G?o^Y832U@}Dud~2`f#(d{4`3f=@?oE&%a)?=4MUz@!X$Xj|eszDR~}}`im0w z#dB{)o>mLRdT%^;GtueqsZ(eP!Ph(VqhPh==ZHqeXO>I1#lYP|>zfGe0 zblZ99)vDbuFH&|k?SeNpPLbLUyvpsbF$b=8%yn?t^rf^?^^p$7xU*n7ep9A~YiK1H z&ut(y&0w4DosUq2(3KTfeLm6{8h4}H>@LBtsvV>F6xEotmTEI*JdKhrV^sVW5S+)Up@SMu5iuEK)WX72)iB0{XbWVf@1CASa$X2O6Zv{5=eg58TW5`-)+E z3v~J)QLmkEHbfE~aG?o7=6O#ZQ4}!r(|? zKbRinOmBk86e#u!7;JI)hP$~q-EPKK8>A~Z=`$c5cuh4RLbuJLTJ-*bH!$(z^aQ6Q z6~2>kqC4HUirOVgJC6^!=^mw?FR~i$$#^&;ESH zF#MjfFc`C_;nBJ)?AlgnsH5>~%8F_I%d#?6900xK8-;abp=;WvwQPJz96uOd_Z#}bFedpYkkIl}9p__PX=B_|f+;bPLC21sh1h_D_NooJ z-5^#iZ`z-q3H=skK);#8P_#K1g?`pmYWVt|!hsW#<1yyDLUr0-wI{_qj^z>wJP}QR zHp49RPD)jY{Y)X$8)K?Bl4{gLz^9%EiQa^j z`05#dcvcuZwHpa-1V2ooT`sM?ou;@3+v_N`KfiF;umnM>Jn7GpgAnME0%t5i0=p0G zczy&RoM`TEZ~_oTh(Oo(@LT8=L}~epXx?gSUI)3aFX6uOErkbXo~2;ez~FMaikV6c zZh;541fuu>G4HUvjm-UYg~$jYhXBzY(Vx;p*=T#Xk0s5wS1{!Ph$?Ne7-AzMM+dw z*X30zzdT7ZZl3RCb#;tij0}!o>Li}xrOQ54Cu~-MTySOja;7Ub1w%<WdM3dyAE!Erk9!pT*B}*At3Mi5JZ35d2LNUL@h~rMzEBXyy;f{Ob~) zDCy1mXUlw%gy%_k<`BB`B!7p5O%nbcXIEs8nK$h_QI;Q+>XYli#don8be| z`ONy(%lt}NZbDPe-DZ6fo+#n(C7($*TjD)OfwxP%S??8+-=u$C=8Gg0@)PYx>kxc+ z=f#)ECG#f!e=Ec(dfF%9D2W~FuS0W7)97gjnEFZeHR1QoDdok35}KPAj>Ok1a-(48 zzlZ<59%%7g>u%5#x6kMGv8yL7Qk;}hd~UzDwWGzeL@Dr}R^Y$*G&4?;Bum_yMg(;Y z4Q{_*(Y*ABpD1~OQqbCHGJG4o*6efFHKviLsZiHQ^6BpcDNR0aTbleM^{H!Z^)}RT zmD=2GUf&A(lT$~il+h^iuty3nmOWc~P&aZL5Gj=+DPU6S6!XbW$ zm}rvLx`3ylnd(Uz1+lJ1pUYdZxnIHsI$i$mPQ;Qltn#saevFq+GwJ zuHD~^KTXzL=V@$BHzY~#_5|A8J`qq_vs-Cu@%gnB-?ws4CFz@5Jls*Tb(H!Qil?rP zq|bvcNjh)4n|r4*(AEy2t?u?ZtyxkDx*AVieJkR~i-@XgR1p1v)>fsxZi)Ni(@cMf zZrWbw^OL6=ylrh{ON+;?c-yrWug5PtV2vMaBwd*<3yO*^8aYSMTrg5mCQWMaY042F z5v_B1L|5~Eia?>E0dH7&U&kkD?@!GY)tMh4s%eTZ2Hhib> zl?gvi;*LZaBEX~hL4TBwb9qB+Ky(j8NNQcwsHgFY8Unt?79R|0@exwgRu=I2AX-`G z^)00aL?L{OL5s7r)h%ynYq>7nUzH}3g3;q%*1AGz;6qBIa!E}E=WB0iRHoxA#Ue$K zBaYJ2hzeVpTHL-N{*wVaiK11RPT$}+xi~W2-x}3|ue4gs7&%%cd;lM+TZNc>cv&3+ zp&7bKZMZ#DFi9d3ntcn?L^*G{@ka<-8o3Csr**|7-s&k$IFF(L<8*qHp##w%f>r_Z zIWUk5z)XlJm?Q^vDP%53atX4)+r)E{Q$YooAGv@AucxVH3ECym_z+UYkpUWB5STOy zC`}lPNhLWhbKb`Kp^V^lXj)xEv(iZ8=n~PIqPjHS@!@5yuF-@lH@COGQWV#7>H~tB#M%Idd zB2857iL{R`!Mtb63V^GTwcuM|+E^W1j(i)Q>k`u1k!zF`?V$CdRyU;hp^pa~Z3#*( zg_1P#qD)9ObCaM;ssvH$g`8Hl0`mN@t_~DrBYntbvdqr{yq-xYY37)^giZ~p$HSUX z_Y%p`h(DQ_OcST+fey&>q0|eBRw-HmDAAfn%%~wDj==$b@jO3=#%h35YdWVOGHcUVW6#RWppZiAv3|EcHvS!Fn zj^7x^%vGPzeZ<+)UvD^lX z`Y7cy3H=>W;wF14JRNndsD`EnGk%YBfLIWu%)^Ow3iUdwrqxS}E3%SCy(B%igX+Z^ zluQxH#K2TXwzRt&Xl#|Mr*yr@dB?7odwDx5p-I8*>1gqJJv0X?9d*7IS{3-ARyA|7 zN>)W-n7Xb=vq#Q4N0@Xp`$@+mh#|j>UBDKiUj^_iMRa=EVysLXSrMYzgU9?N}f z?d@VwLIYpw7>BT>RZ~HuQb7HdKEzk!5eu=#6tgTQA=T%&SGX9x^F|euC zyG-%bd6u|M_BmHL=gxA?nLmM5VJ2yzC8`&DAWQ=OmL(np0{-@GgIg)Aa?P1Hk4vid zYDcB2PEet35sNhCv|?36n<^|>+OYSap}C$)+EIvjKsPC@nO$ybQR7+a@h+3ralIF} zA&%WXU*QCJ(N7(xz+YIfWTH~AWP+j;`rI1&%nW1@PhW3|$M@rzf#)eaFW`9@&t5#0 z@XNAE%g#HO{)n&Ef)zqjT}x}g=e|Jn4@YAoH1aD2?Yzf%Fch_6#W~3@mWoVKu4wUT zfx1>K4Y4I7X6R0H9ipIqg@&oRPE)YQkW$QcOYl|su&2TfRdVv#ssWu}DPCT%oI$>6 zd%NEqXrv{x*al)K#IT`x8@#Ow+R#s9V?kq)(E8i?>RU9lBbHw&^rl`9b(iyGF1%Gf1kWfv%gm&~r2pqyKDe$nJ)iAa54{=I*`kB|R*{ln~!c#FcCYZ>z% zkFmf+{%?di_)RVz_7MIAH{dzAdum0x7;rhB(MYcXd<-|h$0ALChyCC26e8UZ_$eM0 z=|RAWx$r5{1fRj9Ax-c<@T@|bV9|+;-G(&5>+#%!G{KkfJc=~ID%`tRhcrP2cN1Pf znqUymHlzs#abaf{r2$|30nV9`CU^}lW9~x;6-OJc0SSsFV4rUHKYmd!_O^F#dX18IWK;n|8b!Q;+H zJ0MNafoC_;1Ruq-4{3tC@a#vLV8=AZzCgMQ@DF&{!?+6#I02Upvyd(ZoPuX8(xrfx z;>kn03a}c_DM;4>HsVo`ZU-ETn~wQND}dAROhmdA@BnVeo{Kb_f%@@GM|u$Ofs1hg z59x;hAHlN#>2-jg;aN!ZrSJ=$Mx=8n?SOA74frEGtB_s=_;eZkiS#2-j=#Y6X_=fZbSOp zJ{A;OtQKaSDPcXJJ&V~bC$OyI;kCosZB^DtM*j#&6M;Py8l3C#T3UWm+?AgtZ(E z4%N}*BmD7F-ca6D9>C*s7+j~vEEP99cl ztF^XgR%JviLuF9Rp#N|gCyrnzt{KL1mfP5Sg-4EOy+pBa27WX0;Em z8WyqkXY8|#8DSgqY<8x^Mr{3=`*?eiUS`}5t(WxjrRX)%W*fP4SY~E%My+UT8_Sw$ zEzYdXX#d7M**7`GUegZ*hg;e3$y`!Jq6rtFIrhA@aE?Q;GXNXvb8C=mx0>~+@mSDeZcJk?wdaQ zCEnU6%1@Edq%D^DizIYOSTEs93GbHhaS0<5?v?Np2{X2ddh#SJl5nPkS4h|-;dK(; zF5$xxJ||(Xgs)3DC?VS}?UC?Y3Cks{lJFV{TP0j6VV8uzlyIYjJ0yHt!Y?GudP&rG zx`gLRSS{f~3EL%HDdD{mJ|*D`67G=jZ3zb@9QH?1&+!r#N@%v%xiasP@G1$fm9Rs? zP6^ja_?UznCEP0EP6_u)_<@86Bs?sk^<|;gaT1;)VWEV@5?&zTObJ~QR!ew|gv}EA zB)ne2nW4u^Lu} zqh7a)Bl=c1TPtsM%)+VWeD;jYrM@+1tVd$2z24SlcWe8U$@Ap>1MJpVxx3Y^xy$G- zN<$s4nD7_u>;Nkdi1*fJO^28hr@p?SglvMv$=??^lkW=VX?Tgb#6O>{wct94e5LKe z)qwfz6^;?_o~2!E$C0>-Mz%8rE8gt_$v!2lb9oD-Ho66xjm!XU7H%k1;lz11UYyLw zNJY4mTP>&ZJYKJ)(Bu=Y(%Tqll{PvUJ8LKovaTQ;DJzef8S@i{zrzi*S9qGd4%W#r zEBuy|2!<0$O)uR(d_%z6~aEW z%1Rw{vCFv}=O89#7VeS&vER(Y3G|MDu}@44cOv37El)BITIbibXtTV&dFUgp?m6{z zr-hx4pP;vByb0OaB0a>hvu&+@&DZMoppAaW7B4PaEMNIGEEX@X@Tz(?@OY2t^|;YP z*yYGAaclI}39oJaY%cP+7p38?9-BvLZ~fvXvs^>_!(?#RS2 z1zLvK7PUN?*(4dB&7@bejBUznqRVwi?a!o_S490qCaxPav?HFrq7=--`9!8!(-+!9>`be0Gft!^0Rz%0~yQwLMsr{K1e=}@+%xw6;mb` zp@C_Z84LXXZ_j1UxwDY8J@&Bc#&EJ8$YN7?EL$`UV(`Bk##q+NDXe3V1h&(+t z^PF>&7MUyO@8M7n6ptw#isJbkI)KHe^a25SCgsa~|K2t2o6A#3zfb;8^uWGyu63=1 Ux2+TT(tZK|Cz|xV&PfmaAHgV6*Z=?k diff --git a/cuckoo2.0/data/monitor/579f57961915e0cf0b4716d993e374169bd08f5e/inject-x86.exe b/cuckoo2.0/data/monitor/579f57961915e0cf0b4716d993e374169bd08f5e/inject-x86.exe deleted file mode 100755 index 5dd1230dd42060f4a261458c5aed67bdede0832e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24576 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 Ux2+TT(tZK|Cz|xV&PfmaAHgV6*Z=?k diff --git a/cuckoo2.0/data/monitor/5892c58f567293c86eab8ccb0a491d80b48eab08/inject-x86.exe b/cuckoo2.0/data/monitor/5892c58f567293c86eab8ccb0a491d80b48eab08/inject-x86.exe deleted file mode 100755 index 5dd1230dd42060f4a261458c5aed67bdede0832e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24576 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 O-_gK68p^+|LNXzd$xNI%1HtP9 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 Lknc48CJ+1<&ch{7 diff --git a/cuckoo2.0/data/monitor/6fddfdc86ef18dda769a0120caeecbed76703f0e/inject-x86.exe b/cuckoo2.0/data/monitor/6fddfdc86ef18dda769a0120caeecbed76703f0e/inject-x86.exe deleted file mode 100755 index f382fe7ef8c18312a58b21c943ad041998e59394..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25088 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 diff --git a/cuckoo2.0/data/monitor/952f69a1d4d04988062819cb81ba3948ab4439cf/inject-x64.exe b/cuckoo2.0/data/monitor/952f69a1d4d04988062819cb81ba3948ab4439cf/inject-x64.exe deleted file mode 100755 index ed2d0de0ae1b1b0b82ef83872b31c552221be62e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 31744 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 Lknc48CJ+1<&ch{7 diff --git a/cuckoo2.0/data/monitor/952f69a1d4d04988062819cb81ba3948ab4439cf/inject-x86.exe b/cuckoo2.0/data/monitor/952f69a1d4d04988062819cb81ba3948ab4439cf/inject-x86.exe deleted file mode 100755 index f382fe7ef8c18312a58b21c943ad041998e59394..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25088 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 diff --git a/cuckoo2.0/data/monitor/98b5eef740c2a0756f7c7be5a3dc5e169714227d/inject-x64.exe b/cuckoo2.0/data/monitor/98b5eef740c2a0756f7c7be5a3dc5e169714227d/inject-x64.exe deleted file mode 100755 index 85ec4abd670c1f56f81d8346022d49d0a753019c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 31232 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 Ux2+TT(tZK|Cz|xV&PfmaAHgV6*Z=?k diff --git a/cuckoo2.0/data/monitor/98b5eef740c2a0756f7c7be5a3dc5e169714227d/inject-x86.exe b/cuckoo2.0/data/monitor/98b5eef740c2a0756f7c7be5a3dc5e169714227d/inject-x86.exe deleted file mode 100755 index 5dd1230dd42060f4a261458c5aed67bdede0832e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24576 zcmeHv4}4R{o#)7wK_N=yCU)y4CMeXT=87o>k`0MT1@ZT-RZ__P0x@~rk>(MI(lJH3s?AoxQsW)X)T1bwzG<}Yo)(sqSS`O{^ zH#1L`ZJgb`Pw#WR-3UhW-pudc{C>ar&2Q#CtLA|omdhA3qomV}9Y#$b2mk)?uTFGd zJL`pO*@3Hmbn{_T^^a~|+v*9~13`aF(Aj2ha{7FJ)!yi~2g5$Q$7iovU1x9eyWI1y zxn@R*Bwed8R&AQjo?Z3)I)mF;X3M?Wl=BI8J6blPOf$1&0qT5|S`?Cwu5*OkCR~#I z{FB5L{(t7jyc$0s#QdksteXUz;xk`$x2xz= zZ^IV}L}Sei0@wI#Vzry*yPT>M*9)kj76oHw6?8N9aj*r+`9T4g|1q?0Lb(p*E|jbf z;2iTCLm_HfUw1CYqu3GuGF^o` zZHMkFYVP{O)h6|GROQ&B4})ps`EDRzYkT5B+-P4N#Z7rK`nv7usVEZRexy_!>Dl=>6_OZKM1OZzU#}Av0pz=lXm^Oc>TBPVn2-xKX(4V?q8rU2hQBS zcvZ=bk+UNM>;ygo4zs8%qOyuAUsMI6DiT#ORgrTe+O6Cu7j4n59L8J;3RdM8wfoK5 z()~|Wu~fm5Q?~AD=z_dDR)RDHFvmtlY~Pz%1Peuz;kOdSxF|mz88z9ue+O&u`)JbE z?I5%~GsZ{fB9B!khZQVKOPqcd-!(p;F0=&|4*RD;4%YwR)|EF*NApy`SH}pg<88`R~JN&t2aMS5=D|G z+rj+KKiL0LkG&c>Z|eNRY+Kc>*kdIYfW)dx%=&BSyYs=G@NrGq8PUyJc-Me=8kn)z zt;9gT3kuK*$=?zqP*Ni~TXP0Z-=y;fAV?!%y^6_UlG zuZL&o&ES`yp1AwMhKCv+?Cs%3e32^;=8k^saykt|%>tUfjDX1%$i~rP>VYXOd$_AJ zRQjg@5j{PSM?g71u|+Tc?{xZ0+>wUPY;w9R6Posyc>p!SKx{k%z%swGmV;Q=2`Di@@B{smHx5viVWq;8jX_yS~w z0C8mmZ1bnE*aaH>w z@SRHj#4(tiAm;)(iIN!uC>a)wbXb{sPoyKCsZ~;s6f(q+tgJILl#I`F?tPLw)XeWQ zqz(1JHRgeRVw0gaQpG~FT+#bx9ER=EL;n-1>R0qd{mM|XUwKFCS5npe%5X`)@~*jG z`E9IU`Q5U9WyIdE{QhXa@?L(wavsy|9O($;Ee@a)8=6j1u49Ir(9+|P4hsvH6Qltl zJl)X=Jr&I3NLsxf%h&3MW3^_jek4|FN!@555NQGxr1f8Yh7iuh>(60QaRW`on_@Og ziGlk%~uHkP93YJz; zn~6d^`WS`|Bk8}!f;FJ*tfEfkFsV&bikoA~5im7B3S~iOG1A#8=q$$3sOPDyp3hQ` za+W3_2%71xm*NX<-v1z-Hl2zj`8u>5tl$bF^cX>di0uI}so$M^DUqa}2et?-*~{6? zKN7o6>E%ynU@i!=aaJF2k-90yLW)N+FtkV_KyjFV;xIcP09TDv$yomnc>f6X)Bc$R z9ln7C<=9{6y_gsj^I%JghX&;r_@vPz9XeCtdfcC&#{Hzm@Tgc($r>4!W1*AN?uWcm z^n(D`>UR(ivbtpc3otjv&jGq803nJtSZzqI0n}k8wSO zt(=r40{U>gL=~SYTK!3oEh0Zc%>xDM{2Ur>yq$cmTErqTnsYEuVzCh?5CgB*q8uuF zMaz&L{F9T$bRh{cvpCXG#IWMlpV5>egjwa3_TVLBB^ppJU=%cLjplKDB|-%m--;oL z)QJWy_Z+Vy8;T~kiK%I(sR_Toa9m8v$nfnLiG}7iYB3>|Gvul3u}P$+e-zV;Rw#Y& zA}RO`HJ{09ex5g<6;ov_!7?Q=dC$oS)D9TjzAbM(gu=Zwdp`Y$ay>;iB#J|lF<0Kt zJ1Kq0OoHBXwoUek&aO8To#7ZX)_lpUXtMJ56R)H1k@7~yDesDE=^9=M?gnWLg=Eoh{1ol+xo_vpvIR|0JBuuIqMUx&Qa+G*2424;|i(NTy$~^V1}ykMtBU+y~0Yq%=?l zDTglxsK=!=QfUt1>xmMHkJM3YM6itVm<6S7A_?Y00_lP|7(Y)@Prwm}yl@F3UJPb& zPc8<6Qi1}QDpcIep0oBRl%-%!J(3Cw(X>6($3f$2I z1-^S_Q3xnQ5tDzsC{kSz=T1epZ4dJFdGJobTpwh+NIZ>Sz)frKp64gmj4T@@?s7{FLn5g>T03enW zcSl6Uv*)2-VZnhb#S5a;N)9uq@tCj}{ApflHwnKQP>vCmq3=$G;E)Ipj3ML@LdR4H z)e>Ru7(y-~R8NKQfJ7Lb$witO!46=O>@=%pOhuttQaJeG6h?-QL6S+NY1RiN1@*%z z3=cgq6@^YoVc~~UI5Si=6@{lHg%Lyzn(_lmA6MMz{(AKFaye=tx>fb8cA8sVs_6^OPit<~M@^Jt{ zP5=5)@8OhB4E4g{uQ=*qN!c$bPc`auLtRr*nBft#t4vUU36p$w)lP*_A`vd#VA%W! zN0>DgLX|{#RUk|yqdxQ|Y<_dfJKW&YX5YlFrZy^Xnys==quPe2Vt!P#oV~$Q=b1PVvAD&+Eqb%r<(^9IrhL z_#N;HOS~3oQ+_Pxa31;}q(^ON>}Rb;mo>W!Pr(4ZL%Ae+WA%WHYW0@*a#IXvOOWK1 z*s)j6=9-R0bjOaIEGRW|Z97sA*hcic@uHTZgP&bx>*trq^-Uxy4V=s03;7Z2<{pg=W*;lip%)=$ zw%bGvChD9-fHrdmvB62i3P1)2EyG-xY`q=Lpy8SNuwe^`M7PbayhG+8$u4Ci1A^@! zt4M|6%%m;c*j`G;Ye~5S$PAIGubd zmm(dPSQwL)i;$*gno@*{!Z4O0+~jC@;Q){j*)S|IO3Q8%x1vy;&LzPU8=6C0An`PH zYS8tdt~qkJgIS0Jlwzf6=`to1tjw1~N&6P^7e4>_3f5|bB5cU9T-=Ev>`K}W;!!T% z=h3Q4O0a7#q{x!bWy1S4N3E=f9;0h(OG-JRDm>)C#3uXenCw|_iT zP0*`HMD)k7I}XUfr^wd59UKvnEU5HvBkX0M{*Jr@APIVHiO_b7hGM*%Q%o|VE<$Yv zuLaZ}05+bnP%G{p1vG!z2@S>6;6a0A#NUL{R{}oLR~kFDp_j%_G}48|SaQ&~!FUlW z^S%SwldGg0bnq6=t|ZI}Tfcuw#!Y&}m9IT$(Q-Am^s9^|w=Q2AM`eqA6JuM7Aegj8 zDTgIJqoPq?jY>aeBO~G^pZ|tCn8_|X(u1k`rMrNp&R+TqRjo_EMpa#c-p~PHMeIRK z+&#MCp$F4v%P(e;<;r}-Ap3+Mdt44aJ$M)+NDIWHX5o)7k>OKEmSVG*41Y6=6iKSz zB1oxo!E`&wP$Q%}WO$4*lFQeENP^rTtA|rKM?GK4YULunhSumsTlZ$jqp!jnH$zTb zk=so4x5#isVh2Y3W>v{blvrdQj*k^6s<0c62ujKw#Wlw_%6 zKiCi+Xz7F3AVnr;+sKKVIi4hX1bzC;_)1-qHM{t_y?$M+A1+uOt4V6t^k8VQ`o8FK z+mrtY(`tpg&`^F_TW(&`AG}t3)RKF*Wl6tnJDuv_WvIwe>ylT)zlbd^(Pz&fCyWi) zx?cuj+`8eFU*yDI&7DaEVl_u%m6icI1z`FR0JWMU@%j_7`Xjk_TVpkcW0mFv!D%y3 zAUtSQ7BduN#xO0EJU}VwpJ??*w3@?sJ&0apTS}rSXCtF#Tl6)OB#-1aWf15be=(3G z_+1(B@Mm%Uh%O2PA{#a9S0Pko-lu|8LWtD=;P#G;I@A-$JmVe5w3){s9G)=qQ$_~~ z2E&Pb74j)bOk;yC=U~>qi+RfBbg18eu^=tj^vFnZN(Xf58Kza<&c!o~t-U+nn+r&N3I>;OnR(GPkC$STX$Ap?LUz0?#CZE~oQ4bW) z^!qVq<7Nk5#KTD%!`qSi$Ke74+-7JHZ%xiZ`(7IB;rvG&tZXy@zaE`#d-7RA8NJ%} zq#Lvn)C>oRK8e=EC3(|@8*M2A+KXmwcPFSZv+vaX~NqVd#%RsRPOhuw;4z zo=h7?` z<;#$=jdS!pcmhuvfK^w*s(KIZPycE{zLH-Hn~{glf;O9b(t`3 zQ#rBTc%?}zh!P;)^c+d`%lVqv4cpWFIxp6rfjnw}JF?U+3gpIoo0lkoD0qg49#m(j zT6*u>ju%zi`-6K+No4uTXq<1O(}gMpj_@h1<4pNwY@*VIE71_^O&3;Et(;63w)2a@ zIQF0vX`aRHqVU;8;dAA0Eef9m&Z6*O*JaM6C^qu`VC+_sVH~rb!}~w^a@9+#AxP>h z>4)zVOEtwDuZQ|vUG#2nXQYZ&AvUOooUbFg8$@Cc;j!=X1QFe}VNnah8G_gM7jkuPM{Ktq4UAfSU^y6|>@X-m%% z?^`L5f><=IE->B?p3Z3<79CL68+4`wGb4(cW5q}rw8t&cboi$kdYuB)Q2*rhcU}2K z$^aARz!Jo+L4p+=s}JYqtolfSY>SLh3kC@6E2g$y1)>uWbmh3^A^zLgGRSdR_g5 zmb2tkct&c4W?Awx)gC*lEhlVp_c87OmDIGAme@Uf_d-XY6M<4c1NL4%gu&F$rGPJ! z7jXZfV+7i`tO(L3DSVZoIv3x?9Pc&m8~Ftw!*37dk$UNq;k7^*CiM>zT)kcZk)9=? z=AI1nV-otbejMvw>S^f@`ipe;^^8B|Ix4zur$2O1^N@-*_cV947hP=`kvL9H56#N0I%wnM>bwnNJcq8H;;IYsJ?<*)bPeYYh)+d4gW zrDe&hL2KlwDUvK*@?KCcPi}aK=-00o?o_NjhK&hcU;h-6uE?lm>(!Y*62ZIleZ}Nq z^!_-uzKBID;0OpZze!Y3Ozjczy|Vx}wnGn3i*L*+ioP4ZHZ_2Jx8D@$EnV{4&@Hs$ zP%@5uh8$lHf)Nb<77>3-k_UWWarwm!u@Pd%<0JkqVc0Sz%k)T}g*H+`j+d}1K#ml& zL~lQn9A)&y^O9enlc0O~#!ITLuKe^EG4mKDRZ#jZACc|Q?rB5?e4w2Sd>zzmRr5$z z$^R~a^{&vvjx0UI*P4oKhgMC)-zxmLJb7{Xr|s%=%=&^z3Kl>bT)N~~aH#wurxkmH zS3G~rFq8Hc<9q{7gK@sg?~Fe%;r^ZV$2@8-{0GVsD0>CU9H@qlu*a*WUvyrlIZECi zd_|uHHA$-F$<%w<^Jjf|n)aJx7Jv?l)T>CZ*bg>HJ=`Yf4RJka`#Yh$=tcGCGAktB zdYu62@9L-9*n8otQ!l{(NFPTFw0n>a(>bL`%)fnVKnd3n$y%3k+U5O9SznUv^W^80x>nX}Wj#;g?~?UyUX!lqpNOCO z4_@PE8nuP6hBBVBYX+;t zKvZ|F(8+qX*&Xz`y^9vIyWMKFGo*4IGd7#eVIh3md7Z5@uQTjxY9&5n0|MD8?%wq#X(hPXfqjeS#72Lk+3`L z<~Aa=XTka#Rj0?7B^xj{yL}S0&Rykh47bzzD{Bg>_DLV%jcd5auH|zN&Op;1bUBtY&@>6jejhnNeaIaoZx|2X9CW)U zAyoP8^pg-Wp!mZ-}9hPw=q7Rn$sUg5m@lo2FykRj7;2GJx$e1^CMormsH6puRMijfp1%{qxk2^R)f6`IQ$V=@N^bLFii#Lwfw@O^_HI9qnBU3Tq zfq9~AtHeUW`&r$;p3r>GTD%k>_d>|$u-E0A06?yI0?VcyRD2{JbHBLkX?lM(%HnrMa6f;|dH3hqIy5nJ`!iX!<84KYTcHBIx*@7ugiPa=n=`K^jF7r_+!$Jec!0-12-H(J3o?P~=t)M#= zuMxL+ipS|M$LytfV;8fCCw3yDY;_0S_K;g0gRS?4Lm*dHhB@|G?s@p8U=PpaG9$X9 zm#-M~`#^+AV_4Y8P%?wvc4KYoxT>gfx3E~vSvl~>h*KkTKEnv z172h*v~fWi(S}@~!et}%1kedv!lg^=@2xVhU{AkF$*Lc_9V`zaPm2#OgkQmGa@$MS zR6XGM5XIh3sGq zU2|OXX&w16oJNld4I(9yu$?$<--9PrD_?)V{qD-jJM5)*-&;S|zIgua^B0nwAGLj? zgMW)35G;Lg+RN;9Y&%`%wC1|0&dOqg+6lvCGVELAeX1 z7Nr%X8|4|4zeh=;yn*r#%4L*mpEk4ED7T^9gR&9Dhw_&wyHTD)=|ee#GK?~cGVK{N zD?qsg<#v=cD2*svP@X{f7Ro-9B+6?j@1R^lv3}jmZbF%l;y_u4(umTILZ5EbPoex5 zl<%UvgffV74&}Efmr$ndhVD^{QA$weq1=YzK)DBH4a!Co7m5$19c4SpPLyX*_MrSd z$^n$4D6gTsf$~d~VU&v~4ECjuRo1g*y%_a!dHseR7FKdP+geL!W|>p65c`Iy z+V9^S4rH3vIlW=`GIrUt8fQybpy_m#BQaLTDv^k|S0V-Vy4h3mv~dMi{Pk>~yvsiA z!RwZ?b*JI$Fo|+nFJcy zuc%dN_kgO)Et=USYFmL5wOVAE_hK`!p0V5CIurH3?uSG7mEJOyPEB1BjS?g)q zT#1b#HleAURXCzW=7^kVqH=G^t#&)NOloFxbLk|w+S3?x2Dd@#`*LgiTin72{JB{^ z!$SN{DvE8-l{#Ova0MNHu4mn2E%)MgOEKE7?3=8iNnD+04b8M`!@kVKNki>zY%#9= zjf_2QYJkQzvxPYgQpS;-hOm#f-J6SWfGfuC&lR*zNWSS8_8|h67m_a zpD;IUg}z8V%wcvm;`D?)WZq&3!Tjc}O(8;KkMJwv*-clfAM{@Yc2mg1`*T=U5L)ZU z7IO=%GY5M%wUuU#(vAmXh*t+qH3+oWSuOXsFJsZ1tsx-`fbs4C)>v7VRjpfAyK2!w z{%8$d1!({Oy?kC-bFWf8Hl|XH>CdIKg|^_?hR}8eb#RFkMUKVr4~zIr_j!tY(U zr&3?1tQi{(8Sp>eXTirDnL+30J6IBDGscI`Y0fShyEocDs{b8nV1E@WM)Bf&#lENN O-_gK68p^+|LNXzd$xNI%1HtP9 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 Lknc48CJ+1<&ch{7 diff --git a/cuckoo2.0/data/monitor/9e90535ed89363bd424d6788e4341f468b7155d2/inject-x86.exe b/cuckoo2.0/data/monitor/9e90535ed89363bd424d6788e4341f468b7155d2/inject-x86.exe deleted file mode 100755 index f382fe7ef8c18312a58b21c943ad041998e59394..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25088 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 diff --git a/cuckoo2.0/data/monitor/d8c5f2986e5bd4598cf7bf3b30d43b7f7f5b7856/inject-x64.exe b/cuckoo2.0/data/monitor/d8c5f2986e5bd4598cf7bf3b30d43b7f7f5b7856/inject-x64.exe deleted file mode 100755 index ed2d0de0ae1b1b0b82ef83872b31c552221be62e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 31744 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 Lknc48CJ+1<&ch{7 diff --git a/cuckoo2.0/data/monitor/d8c5f2986e5bd4598cf7bf3b30d43b7f7f5b7856/inject-x86.exe b/cuckoo2.0/data/monitor/d8c5f2986e5bd4598cf7bf3b30d43b7f7f5b7856/inject-x86.exe deleted file mode 100755 index f382fe7ef8c18312a58b21c943ad041998e59394..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25088 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 diff --git a/cuckoo2.0/data/monitor/sw-monitor/inject-x64.exe b/cuckoo2.0/data/monitor/sw-monitor/inject-x64.exe deleted file mode 100755 index 0b20d5f3cb63627f17f0abcbf8cf60023d9b78f4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 33792 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 diff --git a/cuckoo2.0/data/monitor/sw-monitor/inject-x86.exe b/cuckoo2.0/data/monitor/sw-monitor/inject-x86.exe deleted file mode 100755 index 84dfc32d88b167dc4516ef27d638b93179353a59..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26624 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 Date: Sun, 24 Nov 2024 17:48:56 +0530 Subject: [PATCH 2/4] Created using Colab --- ...mendation_System_Business_Case_Study.ipynb | 1014 +++++++++++++++++ 1 file changed, 1014 insertions(+) create mode 100644 Zee_Recommendation_System_Business_Case_Study.ipynb diff --git a/Zee_Recommendation_System_Business_Case_Study.ipynb b/Zee_Recommendation_System_Business_Case_Study.ipynb new file mode 100644 index 0000000..769c99b --- /dev/null +++ b/Zee_Recommendation_System_Business_Case_Study.ipynb @@ -0,0 +1,1014 @@ +{ + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "provenance": [], + "authorship_tag": "ABX9TyMNXkff7RKu586roYkdZG+e", + "include_colab_link": true + }, + "kernelspec": { + "name": "python3", + "display_name": "Python 3" + }, + "language_info": { + "name": "python" + } + }, + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "view-in-github", + "colab_type": "text" + }, + "source": [ + "\"Open" + ] + }, + { + "cell_type": "code", + "source": [ + "import pandas as pd\n", + "import numpy as np\n", + "\n", + "Movie_ID =list()\n", + "Title = list()\n", + "genres = list()\n", + "with open('/content/zee-movies.dat', 'rb') as file:\n", + " # Read the first line\n", + " for line in file:\n", + " header = str(line).split(\"::\")\n", + " Movie_ID.append(header[0].lstrip('b\"').replace(\"'\",'',1))\n", + " Title.append(header[1])\n", + " genres.append(header[2].replace(\"\\\\n'\",'',1).replace('\\\\n\"','',1))\n", + "\n", + "df_movie = pd.DataFrame({'Movie Id':Movie_ID[1:],'Title':Title[1:],'Genres':genres[1:]})\n", + "df_movie.head()" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 206 + }, + "id": "qLUfsqECuz7I", + "outputId": "074da8ae-c825-44e0-a855-af3cee0dd95e" + }, + "execution_count": 86, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " Movie Id Title Genres\n", + "0 1 Toy Story (1995) Animation|Children's|Comedy\n", + "1 2 Jumanji (1995) Adventure|Children's|Fantasy\n", + "2 3 Grumpier Old Men (1995) Comedy|Romance\n", + "3 4 Waiting to Exhale (1995) Comedy|Drama\n", + "4 5 Father of the Bride Part II (1995) Comedy" + ], + "text/html": [ + "\n", + "

\n", + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Movie IdTitleGenres
01Toy Story (1995)Animation|Children's|Comedy
12Jumanji (1995)Adventure|Children's|Fantasy
23Grumpier Old Men (1995)Comedy|Romance
34Waiting to Exhale (1995)Comedy|Drama
45Father of the Bride Part II (1995)Comedy
\n", + "
\n", + "
\n", + "\n", + "
\n", + " \n", + "\n", + " \n", + "\n", + " \n", + "
\n", + "\n", + "\n", + "
\n", + " \n", + "\n", + "\n", + "\n", + " \n", + "
\n", + "\n", + "
\n", + "
\n" + ], + "application/vnd.google.colaboratory.intrinsic+json": { + "type": "dataframe", + "variable_name": "df_movie", + "summary": "{\n \"name\": \"df_movie\",\n \"rows\": 3883,\n \"fields\": [\n {\n \"column\": \"Movie Id\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 3883,\n \"samples\": [\n \"1365\",\n \"2706\",\n \"3667\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Title\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 3883,\n \"samples\": [\n \"Ridicule (1996)\",\n \"American Pie (1999)\",\n \"Rent-A-Cop (1988)\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Genres\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 301,\n \"samples\": [\n \"Action|Adventure|Comedy|Horror\",\n \"Romance|Western\",\n \"Action|Adventure|Children's|Comedy\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}" + } + }, + "metadata": {}, + "execution_count": 86 + } + ] + }, + { + "cell_type": "code", + "source": [ + "UserID =list()\n", + "MovieID = list()\n", + "Rating = list()\n", + "Timestamp = list()\n", + "with open('/content/zee-ratings.dat', 'rb') as file:\n", + " # Read the first line\n", + " for line in file:\n", + " header = str(line).split(\"::\")\n", + " UserID.append(header[0].lstrip(\"b'\"))\n", + " MovieID.append(header[1])\n", + " Rating.append(header[2])\n", + " Timestamp.append(header[3].replace(\"\\\\n'\",'',1))\n", + "\n", + "df_rating = pd.DataFrame({'UserID':UserID[1:],'MovieID':MovieID[1:],'Rating':Rating[1:],'Timestamp':Timestamp[1:]})\n", + "df_rating.head()" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 206 + }, + "id": "4xWrlhA_BSkn", + "outputId": "84be7983-01d9-4fd2-8c9c-8704f125c6a8" + }, + "execution_count": 87, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " UserID MovieID Rating Timestamp\n", + "0 1 1193 5 978300760\n", + "1 1 661 3 978302109\n", + "2 1 914 3 978301968\n", + "3 1 3408 4 978300275\n", + "4 1 2355 5 978824291" + ], + "text/html": [ + "\n", + "
\n", + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
UserIDMovieIDRatingTimestamp
0111935978300760
116613978302109
219143978301968
3134084978300275
4123555978824291
\n", + "
\n", + "
\n", + "\n", + "
\n", + " \n", + "\n", + " \n", + "\n", + " \n", + "
\n", + "\n", + "\n", + "
\n", + " \n", + "\n", + "\n", + "\n", + " \n", + "
\n", + "\n", + "
\n", + "
\n" + ], + "application/vnd.google.colaboratory.intrinsic+json": { + "type": "dataframe", + "variable_name": "df_rating" + } + }, + "metadata": {}, + "execution_count": 87 + } + ] + }, + { + "cell_type": "code", + "source": [ + "UserID =list()\n", + "Gender = list()\n", + "Age = list()\n", + "Occupation=list()\n", + "Zipcode = list()\n", + "with open('/content/zee-users.dat', 'rb') as file:\n", + " # Read the first line\n", + " for line in file:\n", + " header = str(line).split(\"::\")\n", + " UserID.append(header[0].lstrip(\"b'\"))\n", + " Gender.append(header[1])\n", + " Age.append(header[2])\n", + " Occupation.append(header[3])\n", + " Zipcode.append(header[4].replace(\"\\\\n'\",'',1))\n", + "\n", + "\n", + "df_users = pd.DataFrame({'UserID':UserID[1:],'Gender':Gender[1:],'Age':Age[1:],'Occupation':Occupation[1:],'Zip-code':Zipcode[1:]})\n", + "df_users.head()" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 206 + }, + "id": "jlAdlPU3BTpG", + "outputId": "f4799d55-511f-4f3f-fdf9-68ba64131f36" + }, + "execution_count": 96, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " UserID Gender Age Occupation Zip-code\n", + "0 1 F 1 10 48067\n", + "1 2 M 56 16 70072\n", + "2 3 M 25 15 55117\n", + "3 4 M 45 7 02460\n", + "4 5 M 25 20 55455" + ], + "text/html": [ + "\n", + "
\n", + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
UserIDGenderAgeOccupationZip-code
01F11048067
12M561670072
23M251555117
34M45702460
45M252055455
\n", + "
\n", + "
\n", + "\n", + "
\n", + " \n", + "\n", + " \n", + "\n", + " \n", + "
\n", + "\n", + "\n", + "
\n", + " \n", + "\n", + "\n", + "\n", + " \n", + "
\n", + "\n", + "
\n", + "
\n" + ], + "application/vnd.google.colaboratory.intrinsic+json": { + "type": "dataframe", + "variable_name": "df_users", + "summary": "{\n \"name\": \"df_users\",\n \"rows\": 6040,\n \"fields\": [\n {\n \"column\": \"UserID\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 6040,\n \"samples\": [\n \"5530\",\n \"711\",\n \"4924\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Gender\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 2,\n \"samples\": [\n \"M\",\n \"F\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Age\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 7,\n \"samples\": [\n \"1\",\n \"56\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Occupation\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 21,\n \"samples\": [\n \"10\",\n \"18\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Zip-code\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 3439,\n \"samples\": [\n \"02865\",\n \"43213\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}" + } + }, + "metadata": {}, + "execution_count": 96 + } + ] + } + ] +} \ No newline at end of file From 5207ffe79840f514372223f1a2429d69ee289058 Mon Sep 17 00:00:00 2001 From: priyankakpal <68638105+priyankakpal@users.noreply.github.com> Date: Tue, 26 Nov 2024 19:09:58 +0530 Subject: [PATCH 3/4] Created using Colab --- ...mendation_System_Business_Case_Study.ipynb | 11531 +++++++++++++++- 1 file changed, 11500 insertions(+), 31 deletions(-) diff --git a/Zee_Recommendation_System_Business_Case_Study.ipynb b/Zee_Recommendation_System_Business_Case_Study.ipynb index 769c99b..762876c 100644 --- a/Zee_Recommendation_System_Business_Case_Study.ipynb +++ b/Zee_Recommendation_System_Business_Case_Study.ipynb @@ -4,7 +4,7 @@ "metadata": { "colab": { "provenance": [], - "authorship_tag": "ABX9TyMNXkff7RKu586roYkdZG+e", + "authorship_tag": "ABX9TyNe7afbLrevXcjouEzcgHf7", "include_colab_link": true }, "kernelspec": { @@ -26,6 +26,39 @@ "\"Open" ] }, + { + "cell_type": "markdown", + "source": [ + "Define Problem Statement and Formatting the Data\n", + "\n", + "1. Definition of the problem (as per the given problem statement with additional views)\n", + "\n", + "2. Formatting the data files to bring them into a workable format\n", + "\n", + "3. Merging the data files and creating a single consolidated dataframe" + ], + "metadata": { + "id": "X2mdix5Ecedn" + } + }, + { + "cell_type": "markdown", + "source": [ + "Definition of problem : Recommend the movies to users on the basis of movie rating suggested by other users" + ], + "metadata": { + "id": "7ZbSFXxWdWR2" + } + }, + { + "cell_type": "markdown", + "source": [ + "data file of dat extension are formatted to csv file using python code and stored into dataframe" + ], + "metadata": { + "id": "Mw6eaFoyakl1" + } + }, { "cell_type": "code", "source": [ @@ -52,9 +85,9 @@ "height": 206 }, "id": "qLUfsqECuz7I", - "outputId": "074da8ae-c825-44e0-a855-af3cee0dd95e" + "outputId": "17c363dd-3884-41cf-9067-e2fb16c059a2" }, - "execution_count": 86, + "execution_count": 2, "outputs": [ { "output_type": "execute_result", @@ -69,7 +102,7 @@ ], "text/html": [ "\n", - "
\n", + "
\n", "
\n", "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Movie IdTitleGenres
01Toy Story (1995)[Animation, Children's, Comedy]
12Jumanji (1995)[Adventure, Children's, Fantasy]
23Grumpier Old Men (1995)[Comedy, Romance]
34Waiting to Exhale (1995)[Comedy, Drama]
45Father of the Bride Part II (1995)[Comedy]
\n", + "
\n", + "
\n", + "\n", + "
\n", + " \n", + "\n", + " \n", + "\n", + " \n", + "
\n", + "\n", + "\n", + "
\n", + " \n", + "\n", + "\n", + "\n", + " \n", + "
\n", + "\n", + "
\n", + "
\n" + ], + "application/vnd.google.colaboratory.intrinsic+json": { + "type": "dataframe", + "variable_name": "movie", + "summary": "{\n \"name\": \"movie\",\n \"rows\": 3883,\n \"fields\": [\n {\n \"column\": \"Movie Id\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 3883,\n \"samples\": [\n \"1365\",\n \"2706\",\n \"3667\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Title\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 3883,\n \"samples\": [\n \"Ridicule (1996)\",\n \"American Pie (1999)\",\n \"Rent-A-Cop (1988)\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Genres\",\n \"properties\": {\n \"dtype\": \"object\",\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}" + } + }, + "metadata": {}, + "execution_count": 7 + } + ] + }, + { + "cell_type": "code", + "source": [ + "movie = movie.explode('Genres')" + ], + "metadata": { + "id": "x1wv9zLFeeHB" + }, + "execution_count": 8, + "outputs": [] + }, + { + "cell_type": "markdown", + "source": [ + "movie genres are transform from '|' pipe separated row to multiple rows" + ], + "metadata": { + "id": "iBP8s1pac7j9" + } + }, + { + "cell_type": "code", + "source": [ + "movie.head()" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 206 + }, + "id": "U0dkCPlugDJs", + "outputId": "79b5c9b4-4c47-4b06-8f4e-a7f30856d31b" + }, + "execution_count": 9, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " Movie Id Title Genres\n", + "0 1 Toy Story (1995) Animation\n", + "0 1 Toy Story (1995) Children's\n", + "0 1 Toy Story (1995) Comedy\n", + "1 2 Jumanji (1995) Adventure\n", + "1 2 Jumanji (1995) Children's" + ], + "text/html": [ + "\n", + "
\n", + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Movie IdTitleGenres
01Toy Story (1995)Animation
01Toy Story (1995)Children's
01Toy Story (1995)Comedy
12Jumanji (1995)Adventure
12Jumanji (1995)Children's
\n", + "
\n", + "
\n", + "\n", + "
\n", + " \n", + "\n", + " \n", + "\n", + " \n", + "
\n", + "\n", + "\n", + "
\n", + " \n", + "\n", + "\n", + "\n", + " \n", + "
\n", + "\n", + "
\n", + "
\n" + ], + "application/vnd.google.colaboratory.intrinsic+json": { + "type": "dataframe", + "variable_name": "movie", + "summary": "{\n \"name\": \"movie\",\n \"rows\": 6408,\n \"fields\": [\n {\n \"column\": \"Movie Id\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 3883,\n \"samples\": [\n \"1365\",\n \"2706\",\n \"3667\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Title\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 3883,\n \"samples\": [\n \"Ridicule (1996)\",\n \"American Pie (1999)\",\n \"Rent-A-Cop (1988)\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Genres\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 18,\n \"samples\": [\n \"Animation\",\n \"Children's\",\n \"Crime\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}" + } + }, + "metadata": {}, + "execution_count": 9 + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "Performing EDA, Data Cleaning, and Feature Engineering\n", + "\n", + "1. Reviewing the shape and structure of the dataset\n", + "\n", + "2. Performing necessary type conversion and deriving new features\n", + "\n", + "3. Investigating the data for any inconsistency\n", + "\n", + "4. Group the data according to the average rating and no. of ratings" + ], + "metadata": { + "id": "zHJz1i5Ti7t1" + } + }, + { + "cell_type": "code", + "source": [ + "movie.shape" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "fUAzJ6ewjDHa", + "outputId": "060ba5d3-05c3-4565-95e9-d920f3e003a3" + }, + "execution_count": 10, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "(6408, 3)" + ] + }, + "metadata": {}, + "execution_count": 10 + } + ] + }, + { + "cell_type": "code", + "source": [ + "df_rating.shape" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "Isc4TmZTlkbn", + "outputId": "f484e743-a81f-4291-90cd-604c56fba2fd" + }, + "execution_count": 11, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "(1000209, 4)" + ] + }, + "metadata": {}, + "execution_count": 11 + } + ] + }, + { + "cell_type": "code", + "source": [ + "df_users.shape" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "hL-xGbr2l0Cj", + "outputId": "d496413e-a542-43bb-f560-320c2a42463b" + }, + "execution_count": 12, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "(6040, 5)" + ] + }, + "metadata": {}, + "execution_count": 12 + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "to overcome from memory utilization we have converted the columns of dataframe as per the data's specified" + ], + "metadata": { + "id": "4dsrJ1DVdX6V" + } + }, + { + "cell_type": "code", + "source": [ + "movie['Movie Id'] = movie['Movie Id'].astype(int)" + ], + "metadata": { + "id": "7O3hztufl_2_" + }, + "execution_count": 13, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "df_rating['UserID'] = df_rating['UserID'].astype(int)\n", + "df_rating['MovieID'] = df_rating['MovieID'].astype(int)\n", + "df_rating['Rating'] = df_rating['Rating'].astype(int)\n", + "df_rating['Timestamp'] = df_rating['Timestamp'].astype(int)" + ], + "metadata": { + "id": "yHiJ4lo7nnuS" + }, + "execution_count": 14, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "df_rating.info()" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "EslNrr-epd2q", + "outputId": "45b4b220-8c2f-4b4d-ef27-0be1115bd0a2" + }, + "execution_count": 15, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "\n", + "RangeIndex: 1000209 entries, 0 to 1000208\n", + "Data columns (total 4 columns):\n", + " # Column Non-Null Count Dtype\n", + "--- ------ -------------- -----\n", + " 0 UserID 1000209 non-null int64\n", + " 1 MovieID 1000209 non-null int64\n", + " 2 Rating 1000209 non-null int64\n", + " 3 Timestamp 1000209 non-null int64\n", + "dtypes: int64(4)\n", + "memory usage: 30.5 MB\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "df_users['UserID'] = df_users['UserID'].astype(int)\n", + "df_users['Age'] = df_users['Age'].astype(int)\n", + "df_users['Occupation'] = df_users['Occupation'].astype(int)" + ], + "metadata": { + "id": "issJpDjJpjHm" + }, + "execution_count": 16, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "df_users.info()" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "ECq9mVgbqfTU", + "outputId": "02cdefff-5d25-4a3d-ddd5-fb288047a1f1" + }, + "execution_count": 17, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "\n", + "RangeIndex: 6040 entries, 0 to 6039\n", + "Data columns (total 5 columns):\n", + " # Column Non-Null Count Dtype \n", + "--- ------ -------------- ----- \n", + " 0 UserID 6040 non-null int64 \n", + " 1 Gender 6040 non-null object\n", + " 2 Age 6040 non-null int64 \n", + " 3 Occupation 6040 non-null int64 \n", + " 4 Zip-code 6040 non-null object\n", + "dtypes: int64(3), object(2)\n", + "memory usage: 236.1+ KB\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "movie.describe()" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 300 + }, + "id": "oVDPZrCFsZrh", + "outputId": "6e730b39-a17d-491d-c63e-a267a78e0137" + }, + "execution_count": 18, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " Movie Id\n", + "count 6408.000000\n", + "mean 1949.873283\n", + "std 1136.449312\n", + "min 1.000000\n", + "25% 977.750000\n", + "50% 1962.500000\n", + "75% 2911.250000\n", + "max 3952.000000" + ], + "text/html": [ + "\n", + "
\n", + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Movie Id
count6408.000000
mean1949.873283
std1136.449312
min1.000000
25%977.750000
50%1962.500000
75%2911.250000
max3952.000000
\n", + "
\n", + "
\n", + "\n", + "
\n", + " \n", + "\n", + " \n", + "\n", + " \n", + "
\n", + "\n", + "\n", + "
\n", + " \n", + "\n", + "\n", + "\n", + " \n", + "
\n", + "\n", + "
\n", + "
\n" + ], + "application/vnd.google.colaboratory.intrinsic+json": { + "type": "dataframe", + "summary": "{\n \"name\": \"movie\",\n \"rows\": 8,\n \"fields\": [\n {\n \"column\": \"Movie Id\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 2017.8312452340883,\n \"min\": 1.0,\n \"max\": 6408.0,\n \"num_unique_values\": 8,\n \"samples\": [\n 1949.8732833957554,\n 1962.5,\n 6408.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}" + } + }, + "metadata": {}, + "execution_count": 18 + } + ] + }, + { + "cell_type": "code", + "source": [ + "df_rating.describe()" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 300 + }, + "id": "CMvlQ2Q7snBo", + "outputId": "f0381e7f-8a87-4f09-cdc3-36c5e648b7dc" + }, + "execution_count": 19, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " UserID MovieID Rating Timestamp\n", + "count 1.000209e+06 1.000209e+06 1.000209e+06 1.000209e+06\n", + "mean 3.024512e+03 1.865540e+03 3.581564e+00 9.722437e+08\n", + "std 1.728413e+03 1.096041e+03 1.117102e+00 1.215256e+07\n", + "min 1.000000e+00 1.000000e+00 1.000000e+00 9.567039e+08\n", + "25% 1.506000e+03 1.030000e+03 3.000000e+00 9.653026e+08\n", + "50% 3.070000e+03 1.835000e+03 4.000000e+00 9.730180e+08\n", + "75% 4.476000e+03 2.770000e+03 4.000000e+00 9.752209e+08\n", + "max 6.040000e+03 3.952000e+03 5.000000e+00 1.046455e+09" + ], + "text/html": [ + "\n", + "
\n", + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
UserIDMovieIDRatingTimestamp
count1.000209e+061.000209e+061.000209e+061.000209e+06
mean3.024512e+031.865540e+033.581564e+009.722437e+08
std1.728413e+031.096041e+031.117102e+001.215256e+07
min1.000000e+001.000000e+001.000000e+009.567039e+08
25%1.506000e+031.030000e+033.000000e+009.653026e+08
50%3.070000e+031.835000e+034.000000e+009.730180e+08
75%4.476000e+032.770000e+034.000000e+009.752209e+08
max6.040000e+033.952000e+035.000000e+001.046455e+09
\n", + "
\n", + "
\n", + "\n", + "
\n", + " \n", + "\n", + " \n", + "\n", + " \n", + "
\n", + "\n", + "\n", + "
\n", + " \n", + "\n", + "\n", + "\n", + " \n", + "
\n", + "\n", + "
\n", + "
\n" + ], + "application/vnd.google.colaboratory.intrinsic+json": { + "type": "dataframe", + "summary": "{\n \"name\": \"df_rating\",\n \"rows\": 8,\n \"fields\": [\n {\n \"column\": \"UserID\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 352629.79000977636,\n \"min\": 1.0,\n \"max\": 1000209.0,\n \"num_unique_values\": 8,\n \"samples\": [\n 3024.512347919285,\n 3070.0,\n 1000209.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"MovieID\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 352995.4373918155,\n \"min\": 1.0,\n \"max\": 1000209.0,\n \"num_unique_values\": 8,\n \"samples\": [\n 1865.5398981612843,\n 1835.0,\n 1000209.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Rating\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 353626.1873065492,\n \"min\": 1.0,\n \"max\": 1000209.0,\n \"num_unique_values\": 7,\n \"samples\": [\n 1000209.0,\n 3.581564453029317,\n 4.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Timestamp\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 452144449.95536953,\n \"min\": 1000209.0,\n \"max\": 1046454590.0,\n \"num_unique_values\": 8,\n \"samples\": [\n 972243695.4046655,\n 973018006.0,\n 1000209.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}" + } + }, + "metadata": {}, + "execution_count": 19 + } + ] + }, + { + "cell_type": "code", + "source": [ + "df_users.describe()" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 300 + }, + "id": "dDw46wQqsyog", + "outputId": "dd59a6b7-7ab7-42d7-d2ac-1565544ad44b" + }, + "execution_count": 20, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " UserID Age Occupation\n", + "count 6040.000000 6040.000000 6040.000000\n", + "mean 3020.500000 30.639238 8.146854\n", + "std 1743.742145 12.895962 6.329511\n", + "min 1.000000 1.000000 0.000000\n", + "25% 1510.750000 25.000000 3.000000\n", + "50% 3020.500000 25.000000 7.000000\n", + "75% 4530.250000 35.000000 14.000000\n", + "max 6040.000000 56.000000 20.000000" + ], + "text/html": [ + "\n", + "
\n", + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
UserIDAgeOccupation
count6040.0000006040.0000006040.000000
mean3020.50000030.6392388.146854
std1743.74214512.8959626.329511
min1.0000001.0000000.000000
25%1510.75000025.0000003.000000
50%3020.50000025.0000007.000000
75%4530.25000035.00000014.000000
max6040.00000056.00000020.000000
\n", + "
\n", + "
\n", + "\n", + "
\n", + " \n", + "\n", + " \n", + "\n", + " \n", + "
\n", + "\n", + "\n", + "
\n", + " \n", + "\n", + "\n", + "\n", + " \n", + "
\n", + "\n", + "
\n", + "
\n" + ], + "application/vnd.google.colaboratory.intrinsic+json": { + "type": "dataframe", + "summary": "{\n \"name\": \"df_users\",\n \"rows\": 8,\n \"fields\": [\n {\n \"column\": \"UserID\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 2176.5404306462956,\n \"min\": 1.0,\n \"max\": 6040.0,\n \"num_unique_values\": 6,\n \"samples\": [\n 6040.0,\n 3020.5,\n 4530.25\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Age\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 2126.1519903585836,\n \"min\": 1.0,\n \"max\": 6040.0,\n \"num_unique_values\": 7,\n \"samples\": [\n 6040.0,\n 30.639238410596025,\n 35.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Occupation\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 2132.5180851997875,\n \"min\": 0.0,\n \"max\": 6040.0,\n \"num_unique_values\": 8,\n \"samples\": [\n 8.146854304635761,\n 7.0,\n 6040.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}" + } + }, + "metadata": {}, + "execution_count": 20 + } + ] + }, + { + "cell_type": "code", + "source": [ + "df_users[df_users['Zip-code'].str.contains('-')]['Zip-code']" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 458 + }, + "id": "VDC2ty3BtA8H", + "outputId": "c05d04be-27d9-46b5-d4d5-353ed7f8d7f2" + }, + "execution_count": 21, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "160 98107-2117\n", + "232 37919-4204\n", + "292 55337-4056\n", + "457 55405-2546\n", + "505 55103-1006\n", + " ... \n", + "5664 10461-1301\n", + "5681 23455-4959\n", + "5924 90035-4444\n", + "5966 73069-5429\n", + "5984 78705-5221\n", + "Name: Zip-code, Length: 66, dtype: object" + ], + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Zip-code
16098107-2117
23237919-4204
29255337-4056
45755405-2546
50555103-1006
......
566410461-1301
568123455-4959
592490035-4444
596673069-5429
598478705-5221
\n", + "

66 rows × 1 columns

\n", + "

" + ] + }, + "metadata": {}, + "execution_count": 21 + } + ] + }, + { + "cell_type": "code", + "source": [ + "df_users['Zip-code'] = df_users['Zip-code'].apply(lambda x: x.split('-')[0] if '-' in x else x)" + ], + "metadata": { + "id": "LalytBGg6kvm" + }, + "execution_count": 22, + "outputs": [] + }, + { + "cell_type": "markdown", + "source": [ + "Just did the standardation of zip column and converted the data to int data type" + ], + "metadata": { + "id": "8ZKn53cEd5up" + } + }, + { + "cell_type": "code", + "source": [ + "df_users['Zip-code'] = df_users['Zip-code'].astype(int)" + ], + "metadata": { + "id": "zW08ZzCp8rqr" + }, + "execution_count": 23, + "outputs": [] + }, + { + "cell_type": "markdown", + "source": [ + "Did the creation of features like year and month from timestamp" + ], + "metadata": { + "id": "EDFCdVjveVo1" + } + }, + { + "cell_type": "code", + "source": [ + "df_rating['Release_year'] = pd.to_datetime(df_rating['Timestamp'], unit='s').dt.year" + ], + "metadata": { + "id": "7vRftc1ZAaHZ" + }, + "execution_count": 24, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "df_rating['Release_month'] = pd.to_datetime(df_rating['Timestamp'], unit='s').dt.month" + ], + "metadata": { + "id": "gHr6NLjoB7XW" + }, + "execution_count": 25, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "df_rating_new = df_rating.merge(df_rating.groupby('UserID')['Rating'].mean().reset_index().rename(columns={'Rating': 'Average Rating'}),on='UserID')" + ], + "metadata": { + "id": "w16n05iqFhbf" + }, + "execution_count": 26, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "df_rating_new['Average Rating'] = df_rating_new['Average Rating'].round(2)" + ], + "metadata": { + "id": "cLn_yscJHS6p" + }, + "execution_count": 27, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "df_rating_new" + ], + "metadata": { + "id": "RzlGx_7qHo0L", + "outputId": "9bcbcd93-ed63-4ae8-b6b7-dcb1cac70fac", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 424 + } + }, + "execution_count": 28, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " UserID MovieID Rating Timestamp Release_year Release_month \\\n", + "0 1 1193 5 978300760 2000 12 \n", + "1 1 661 3 978302109 2000 12 \n", + "2 1 914 3 978301968 2000 12 \n", + "3 1 3408 4 978300275 2000 12 \n", + "4 1 2355 5 978824291 2001 1 \n", + "... ... ... ... ... ... ... \n", + "1000204 6040 1091 1 956716541 2000 4 \n", + "1000205 6040 1094 5 956704887 2000 4 \n", + "1000206 6040 562 5 956704746 2000 4 \n", + "1000207 6040 1096 4 956715648 2000 4 \n", + "1000208 6040 1097 4 956715569 2000 4 \n", + "\n", + " Average Rating \n", + "0 4.19 \n", + "1 4.19 \n", + "2 4.19 \n", + "3 4.19 \n", + "4 4.19 \n", + "... ... \n", + "1000204 3.58 \n", + "1000205 3.58 \n", + "1000206 3.58 \n", + "1000207 3.58 \n", + "1000208 3.58 \n", + "\n", + "[1000209 rows x 7 columns]" + ], + "text/html": [ + "\n", + "
\n", + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
UserIDMovieIDRatingTimestampRelease_yearRelease_monthAverage Rating
01119359783007602000124.19
1166139783021092000124.19
2191439783019682000124.19
31340849783002752000124.19
4123555978824291200114.19
........................
1000204604010911956716541200043.58
1000205604010945956704887200043.58
100020660405625956704746200043.58
1000207604010964956715648200043.58
1000208604010974956715569200043.58
\n", + "

1000209 rows × 7 columns

\n", + "
\n", + "
\n", + "\n", + "
\n", + " \n", + "\n", + " \n", + "\n", + " \n", + "
\n", + "\n", + "\n", + "
\n", + " \n", + "\n", + "\n", + "\n", + " \n", + "
\n", + "\n", + "
\n", + " \n", + " \n", + " \n", + "
\n", + "\n", + "
\n", + "
\n" + ], + "application/vnd.google.colaboratory.intrinsic+json": { + "type": "dataframe", + "variable_name": "df_rating_new" + } + }, + "metadata": {}, + "execution_count": 28 + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "Build a Recommender System based on Cosine Similarity\n", + "\n", + "1. Print the user similarity matrix and item similarity matrix\n", + "\n", + "2. Use the Item-based approach to create a recommender system that uses Nearest Neighbors algorithm and Cosine Similarity" + ], + "metadata": { + "id": "otLOO6OrCv1j" + } + }, + { + "cell_type": "code", + "source": [ + "highest_movie_id=df_rating_new['MovieID'].value_counts().reset_index()['MovieID'][:300].index.to_list()" + ], + "metadata": { + "id": "TsJHUm5MN0BR" + }, + "execution_count": 29, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "rating = df_rating_new[df_rating_new['MovieID'].isin(highest_movie_id)]" + ], + "metadata": { + "id": "iQsQ9aNgWXMz" + }, + "execution_count": 30, + "outputs": [] + }, + { + "cell_type": "markdown", + "source": [ + "tooked most highest rated movie data of 300" + ], + "metadata": { + "id": "vEVxOpmifrJD" + } + }, + { + "cell_type": "code", + "source": [ + "rating" + ], + "metadata": { + "id": "vIWyKCM0Wmux", + "outputId": "27dba428-4e84-4ecf-96e6-b6f4fd8ea8ae", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 424 + } + }, + "execution_count": 31, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " UserID MovieID Rating Timestamp Release_year Release_month \\\n", + "25 1 48 5 978824351 2001 1 \n", + "39 1 150 5 978301777 2000 12 \n", + "40 1 1 5 978824268 2001 1 \n", + "44 1 260 4 978300760 2000 12 \n", + "80 2 292 3 978300123 2000 12 \n", + "... ... ... ... ... ... ... \n", + "1000152 6040 111 5 957716717 2000 5 \n", + "1000163 6040 150 3 956704716 2000 4 \n", + "1000164 6040 154 2 957717678 2000 5 \n", + "1000167 6040 161 3 997454486 2001 8 \n", + "1000168 6040 162 4 956704953 2000 4 \n", + "\n", + " Average Rating \n", + "25 4.19 \n", + "39 4.19 \n", + "40 4.19 \n", + "44 4.19 \n", + "80 3.71 \n", + "... ... \n", + "1000152 3.58 \n", + "1000163 3.58 \n", + "1000164 3.58 \n", + "1000167 3.58 \n", + "1000168 3.58 \n", + "\n", + "[79877 rows x 7 columns]" + ], + "text/html": [ + "\n", + "
\n", + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
UserIDMovieIDRatingTimestampRelease_yearRelease_monthAverage Rating
251485978824351200114.19
39115059783017772000124.19
40115978824268200114.19
44126049783007602000124.19
80229239783001232000123.71
........................
100015260401115957716717200053.58
100016360401503956704716200043.58
100016460401542957717678200053.58
100016760401613997454486200183.58
100016860401624956704953200043.58
\n", + "

79877 rows × 7 columns

\n", + "
\n", + "
\n", + "\n", + "
\n", + " \n", + "\n", + " \n", + "\n", + " \n", + "
\n", + "\n", + "\n", + "
\n", + " \n", + "\n", + "\n", + "\n", + " \n", + "
\n", + "\n", + "
\n", + " \n", + " \n", + " \n", + "
\n", + "\n", + "
\n", + "
\n" + ], + "application/vnd.google.colaboratory.intrinsic+json": { + "type": "dataframe", + "variable_name": "rating", + "summary": "{\n \"name\": \"rating\",\n \"rows\": 79877,\n \"fields\": [\n {\n \"column\": \"UserID\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 1731,\n \"min\": 1,\n \"max\": 6040,\n \"num_unique_values\": 5731,\n \"samples\": [\n 1682,\n 4328,\n 2798\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"MovieID\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 95,\n \"min\": 1,\n \"max\": 299,\n \"num_unique_values\": 291,\n \"samples\": [\n 222,\n 37,\n 73\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Rating\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 1,\n \"min\": 1,\n \"max\": 5,\n \"num_unique_values\": 5,\n \"samples\": [\n 4,\n 1,\n 3\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Timestamp\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 11922982,\n \"min\": 956704056,\n \"max\": 1046368241,\n \"num_unique_values\": 71720,\n \"samples\": [\n 975142502,\n 973644621,\n 965113404\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Release_year\",\n \"properties\": {\n \"dtype\": \"int32\",\n \"num_unique_values\": 4,\n \"samples\": [\n 2000,\n 2003,\n 2001\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Release_month\",\n \"properties\": {\n \"dtype\": \"int32\",\n \"num_unique_values\": 12,\n \"samples\": [\n 9,\n 8,\n 1\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Average Rating\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.4332926866514135,\n \"min\": 1.02,\n \"max\": 4.96,\n \"num_unique_values\": 264,\n \"samples\": [\n 4.68,\n 4.8,\n 4.49\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}" + } + }, + "metadata": {}, + "execution_count": 31 + } + ] + }, + { + "cell_type": "code", + "source": [ + "movie = movie.rename(columns={'Movie Id':'MovieID'})" + ], + "metadata": { + "id": "v7k4-pZDXOl_" + }, + "execution_count": 32, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "rating = rating.merge(movie, on='MovieID')" + ], + "metadata": { + "id": "Bjj6sRqzWyP7" + }, + "execution_count": 33, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "rating.head()" + ], + "metadata": { + "id": "sf3EJWt7YU_1", + "outputId": "f356bf8d-9718-4d36-8356-ae75cd706374", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 206 + } + }, + "execution_count": 34, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " UserID MovieID Rating Timestamp Release_year Release_month \\\n", + "0 1 48 5 978824351 2001 1 \n", + "1 1 48 5 978824351 2001 1 \n", + "2 1 48 5 978824351 2001 1 \n", + "3 1 48 5 978824351 2001 1 \n", + "4 1 150 5 978301777 2000 12 \n", + "\n", + " Average Rating Title Genres \n", + "0 4.19 Pocahontas (1995) Animation \n", + "1 4.19 Pocahontas (1995) Children's \n", + "2 4.19 Pocahontas (1995) Musical \n", + "3 4.19 Pocahontas (1995) Romance \n", + "4 4.19 Apollo 13 (1995) Drama " + ], + "text/html": [ + "\n", + "
\n", + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
UserIDMovieIDRatingTimestampRelease_yearRelease_monthAverage RatingTitleGenres
01485978824351200114.19Pocahontas (1995)Animation
11485978824351200114.19Pocahontas (1995)Children's
21485978824351200114.19Pocahontas (1995)Musical
31485978824351200114.19Pocahontas (1995)Romance
4115059783017772000124.19Apollo 13 (1995)Drama
\n", + "
\n", + "
\n", + "\n", + "
\n", + " \n", + "\n", + " \n", + "\n", + " \n", + "
\n", + "\n", + "\n", + "
\n", + " \n", + "\n", + "\n", + "\n", + " \n", + "
\n", + "\n", + "
\n", + "
\n" + ], + "application/vnd.google.colaboratory.intrinsic+json": { + "type": "dataframe", + "variable_name": "rating" + } + }, + "metadata": {}, + "execution_count": 34 + } + ] + }, + { + "cell_type": "code", + "source": [ + "r = rating[['UserID','Rating','Title']].drop_duplicates()" + ], + "metadata": { + "id": "QRM-ZDsiZ4nf" + }, + "execution_count": 35, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "r_user_item = r.pivot(index='UserID', columns='Title', values='Rating')" + ], + "metadata": { + "id": "jAvypl08X_WZ" + }, + "execution_count": 36, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "r_user_item = r_user_item.dropna(how='all')" + ], + "metadata": { + "id": "7Ehts3g9awnr" + }, + "execution_count": 37, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "r_user_item = r_user_item.fillna(0)" + ], + "metadata": { + "id": "Lt97w-e6bzm6" + }, + "execution_count": 38, + "outputs": [] + }, + { + "cell_type": "markdown", + "source": [ + "This is interection table or sparse matrix" + ], + "metadata": { + "id": "IamJXT11hCS6" + } + }, + { + "cell_type": "code", + "source": [ + "r_user_item.head()" + ], + "metadata": { + "id": "KAgENo3FezZ-", + "outputId": "e1ec4476-01c9-4ead-f87e-6f940986030d", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 374 + } + }, + "execution_count": 39, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "Title Ace Ventura: When Nature Calls (1995) Across the Sea of Time (1995) \\\n", + "UserID \n", + "1 0.0 0.0 \n", + "2 0.0 0.0 \n", + "3 0.0 0.0 \n", + "4 0.0 0.0 \n", + "5 0.0 0.0 \n", + "\n", + "Title Addiction, The (1995) Amateur (1994) \\\n", + "UserID \n", + "1 0.0 0.0 \n", + "2 0.0 0.0 \n", + "3 0.0 0.0 \n", + "4 0.0 0.0 \n", + "5 0.0 0.0 \n", + "\n", + "Title Amazing Panda Adventure, The (1995) American President, The (1995) \\\n", + "UserID \n", + "1 0.0 0.0 \n", + "2 0.0 0.0 \n", + "3 0.0 0.0 \n", + "4 0.0 0.0 \n", + "5 0.0 0.0 \n", + "\n", + "Title Angela (1995) Angels and Insects (1995) \\\n", + "UserID \n", + "1 0.0 0.0 \n", + "2 0.0 0.0 \n", + "3 0.0 0.0 \n", + "4 0.0 0.0 \n", + "5 0.0 0.0 \n", + "\n", + "Title Anne Frank Remembered (1995) Antonia's Line (Antonia) (1995) ... \\\n", + "UserID ... \n", + "1 0.0 0.0 ... \n", + "2 0.0 0.0 ... \n", + "3 0.0 0.0 ... \n", + "4 0.0 0.0 ... \n", + "5 0.0 0.0 ... \n", + "\n", + "Title Waiting to Exhale (1995) Walk in the Clouds, A (1995) \\\n", + "UserID \n", + "1 0.0 0.0 \n", + "2 0.0 0.0 \n", + "3 0.0 0.0 \n", + "4 0.0 0.0 \n", + "5 0.0 0.0 \n", + "\n", + "Title Waterworld (1995) When Night Is Falling (1995) \\\n", + "UserID \n", + "1 0.0 0.0 \n", + "2 0.0 0.0 \n", + "3 0.0 0.0 \n", + "4 0.0 0.0 \n", + "5 0.0 0.0 \n", + "\n", + "Title White Balloon, The (Badkonake Sefid ) (1995) \\\n", + "UserID \n", + "1 0.0 \n", + "2 0.0 \n", + "3 0.0 \n", + "4 0.0 \n", + "5 0.0 \n", + "\n", + "Title White Man's Burden (1995) White Squall (1996) Wild Bill (1995) \\\n", + "UserID \n", + "1 0.0 0.0 0.0 \n", + "2 0.0 0.0 0.0 \n", + "3 0.0 0.0 0.0 \n", + "4 0.0 0.0 0.0 \n", + "5 0.0 0.0 0.0 \n", + "\n", + "Title Wings of Courage (1995) Young Poisoner's Handbook, The (1995) \n", + "UserID \n", + "1 0.0 0.0 \n", + "2 0.0 0.0 \n", + "3 0.0 0.0 \n", + "4 0.0 0.0 \n", + "5 0.0 0.0 \n", + "\n", + "[5 rows x 291 columns]" + ], + "text/html": [ + "\n", + "
\n", + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
TitleAce Ventura: When Nature Calls (1995)Across the Sea of Time (1995)Addiction, The (1995)Amateur (1994)Amazing Panda Adventure, The (1995)American President, The (1995)Angela (1995)Angels and Insects (1995)Anne Frank Remembered (1995)Antonia's Line (Antonia) (1995)...Waiting to Exhale (1995)Walk in the Clouds, A (1995)Waterworld (1995)When Night Is Falling (1995)White Balloon, The (Badkonake Sefid ) (1995)White Man's Burden (1995)White Squall (1996)Wild Bill (1995)Wings of Courage (1995)Young Poisoner's Handbook, The (1995)
UserID
10.00.00.00.00.00.00.00.00.00.0...0.00.00.00.00.00.00.00.00.00.0
20.00.00.00.00.00.00.00.00.00.0...0.00.00.00.00.00.00.00.00.00.0
30.00.00.00.00.00.00.00.00.00.0...0.00.00.00.00.00.00.00.00.00.0
40.00.00.00.00.00.00.00.00.00.0...0.00.00.00.00.00.00.00.00.00.0
50.00.00.00.00.00.00.00.00.00.0...0.00.00.00.00.00.00.00.00.00.0
\n", + "

5 rows × 291 columns

\n", + "
\n", + "
\n", + "\n", + "
\n", + " \n", + "\n", + " \n", + "\n", + " \n", + "
\n", + "\n", + "\n", + "
\n", + " \n", + "\n", + "\n", + "\n", + " \n", + "
\n", + "\n", + "
\n", + "
\n" + ], + "application/vnd.google.colaboratory.intrinsic+json": { + "type": "dataframe", + "variable_name": "r_user_item" + } + }, + "metadata": {}, + "execution_count": 39 + } + ] + }, + { + "cell_type": "code", + "source": [ + "data = rating.merge(df_users, on='UserID')\n", + "data.head() # data[['UserID','MovieID','Rating']]" + ], + "metadata": { + "id": "sALBTwu9cJAg", + "outputId": "f8d9db8e-60a2-43dd-d5cf-6a37cbfee533", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 330 + } + }, + "execution_count": 40, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " UserID MovieID Rating Timestamp Release_year Release_month \\\n", + "0 1 48 5 978824351 2001 1 \n", + "1 1 48 5 978824351 2001 1 \n", + "2 1 48 5 978824351 2001 1 \n", + "3 1 48 5 978824351 2001 1 \n", + "4 1 150 5 978301777 2000 12 \n", + "\n", + " Average Rating Title Genres Gender Age Occupation \\\n", + "0 4.19 Pocahontas (1995) Animation F 1 10 \n", + "1 4.19 Pocahontas (1995) Children's F 1 10 \n", + "2 4.19 Pocahontas (1995) Musical F 1 10 \n", + "3 4.19 Pocahontas (1995) Romance F 1 10 \n", + "4 4.19 Apollo 13 (1995) Drama F 1 10 \n", + "\n", + " Zip-code \n", + "0 48067 \n", + "1 48067 \n", + "2 48067 \n", + "3 48067 \n", + "4 48067 " + ], + "text/html": [ + "\n", + "
\n", + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
UserIDMovieIDRatingTimestampRelease_yearRelease_monthAverage RatingTitleGenresGenderAgeOccupationZip-code
01485978824351200114.19Pocahontas (1995)AnimationF11048067
11485978824351200114.19Pocahontas (1995)Children'sF11048067
21485978824351200114.19Pocahontas (1995)MusicalF11048067
31485978824351200114.19Pocahontas (1995)RomanceF11048067
4115059783017772000124.19Apollo 13 (1995)DramaF11048067
\n", + "
\n", + "
\n", + "\n", + "
\n", + " \n", + "\n", + " \n", + "\n", + " \n", + "
\n", + "\n", + "\n", + "
\n", + " \n", + "\n", + "\n", + "\n", + " \n", + "
\n", + "\n", + "
\n", + "
\n" + ], + "application/vnd.google.colaboratory.intrinsic+json": { + "type": "dataframe", + "variable_name": "data" + } + }, + "metadata": {}, + "execution_count": 40 + } + ] + }, + { + "cell_type": "code", + "source": [ + "from sklearn.metrics.pairwise import cosine_similarity\n", + "\n", + "rank = []\n", + "for i in r_user_item[:50].index:\n", + " for j in r_user_item[:50].index:\n", + " if i == j:\n", + " continue\n", + " user1 = np.array(r_user_item.loc[i].values).reshape(1, -1)\n", + " user2 = np.array(r_user_item.loc[j].values).reshape(1, -1)\n", + " rank.append([i, j, cosine_similarity(user1, user2)[0][0].round(2)])\n", + "\n", + "user_data = pd.DataFrame(rank, columns=['UserID', 'User2', 'distance'])\n", + "user_data.head()" + ], + "metadata": { + "id": "Jp_0zksD2bgU", + "outputId": "217e168c-953e-4db2-ce60-110f8b5739d9", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 206 + } + }, + "execution_count": 42, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " UserID User2 distance\n", + "0 1 2 0.00\n", + "1 1 3 0.33\n", + "2 1 4 0.42\n", + "3 1 5 0.06\n", + "4 1 6 0.43" + ], + "text/html": [ + "\n", + "
\n", + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
UserIDUser2distance
0120.00
1130.33
2140.42
3150.06
4160.43
\n", + "
\n", + "
\n", + "\n", + "
\n", + " \n", + "\n", + " \n", + "\n", + " \n", + "
\n", + "\n", + "\n", + "
\n", + " \n", + "\n", + "\n", + "\n", + " \n", + "
\n", + "\n", + "
\n", + "
\n" + ], + "application/vnd.google.colaboratory.intrinsic+json": { + "type": "dataframe", + "variable_name": "user_data", + "summary": "{\n \"name\": \"user_data\",\n \"rows\": 2450,\n \"fields\": [\n {\n \"column\": \"UserID\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 14,\n \"min\": 1,\n \"max\": 52,\n \"num_unique_values\": 50,\n \"samples\": [\n 14,\n 40,\n 31\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"User2\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 14,\n \"min\": 1,\n \"max\": 52,\n \"num_unique_values\": 50,\n \"samples\": [\n 15,\n 41,\n 32\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"distance\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.16254108681589358,\n \"min\": 0.0,\n \"max\": 0.98,\n \"num_unique_values\": 69,\n \"samples\": [\n 0.29,\n 0.0,\n 0.4\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}" + } + }, + "metadata": {}, + "execution_count": 42 + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "Did the cosine similariy and calculated the distance for each users" + ], + "metadata": { + "id": "L5AHp-ghkdMK" + } + }, + { + "cell_type": "code", + "source": [ + "user_data.shape" + ], + "metadata": { + "id": "tFlOAPcLqkXA", + "outputId": "a30d542d-0b4b-4874-8cf7-0302fcaa732a", + "colab": { + "base_uri": "https://localhost:8080/" + } + }, + "execution_count": 43, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "(2450, 3)" + ] + }, + "metadata": {}, + "execution_count": 43 + } + ] + }, + { + "cell_type": "code", + "source": [ + "data[['UserID','Title']].drop_duplicates()" + ], + "metadata": { + "id": "ST4yKJr9rnYb", + "outputId": "d7bf7ca9-856e-49a5-b088-7711e81148ff", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 424 + } + }, + "execution_count": 44, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " UserID Title\n", + "0 1 Pocahontas (1995)\n", + "4 1 Apollo 13 (1995)\n", + "5 1 Toy Story (1995)\n", + "8 1 Star Wars: Episode IV - A New Hope (1977)\n", + "12 2 Outbreak (1995)\n", + "... ... ...\n", + "176856 6040 Taxi Driver (1976)\n", + "176858 6040 Apollo 13 (1995)\n", + "176859 6040 Belle de jour (1967)\n", + "176860 6040 Crimson Tide (1995)\n", + "176863 6040 Crumb (1994)\n", + "\n", + "[79877 rows x 2 columns]" + ], + "text/html": [ + "\n", + "
\n", + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
UserIDTitle
01Pocahontas (1995)
41Apollo 13 (1995)
51Toy Story (1995)
81Star Wars: Episode IV - A New Hope (1977)
122Outbreak (1995)
.........
1768566040Taxi Driver (1976)
1768586040Apollo 13 (1995)
1768596040Belle de jour (1967)
1768606040Crimson Tide (1995)
1768636040Crumb (1994)
\n", + "

79877 rows × 2 columns

\n", + "
\n", + "
\n", + "\n", + "
\n", + " \n", + "\n", + " \n", + "\n", + " \n", + "
\n", + "\n", + "\n", + "
\n", + " \n", + "\n", + "\n", + "\n", + " \n", + "
\n", + "\n", + "
\n", + "
\n" + ], + "application/vnd.google.colaboratory.intrinsic+json": { + "type": "dataframe", + "summary": "{\n \"name\": \"data[['UserID','Title']]\",\n \"rows\": 79877,\n \"fields\": [\n {\n \"column\": \"UserID\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 1731,\n \"min\": 1,\n \"max\": 6040,\n \"num_unique_values\": 5731,\n \"samples\": [\n 1682,\n 4328,\n 2798\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Title\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 291,\n \"samples\": [\n \"Circle of Friends (1995)\",\n \"Across the Sea of Time (1995)\",\n \"Mis\\\\xe9rables, Les (1995)\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}" + } + }, + "metadata": {}, + "execution_count": 44 + } + ] + }, + { + "cell_type": "code", + "source": [ + "user_data = user_data.merge(data[['UserID','Title']].drop_duplicates(),on='UserID').rename(columns={'Title': 'User1_tittle','UserID':'User1'})\n", + "#pd.merge(user_data, data[['UserID','Title']].drop_duplicates(), how='inner', on='UserID')\n", + "\n", + "user_data = user_data.merge(data[['UserID','Title']].drop_duplicates(),left_on='User2', right_on='UserID').rename(columns={'Title': 'User2_tittle'}).drop(columns=['UserID'])" + ], + "metadata": { + "id": "V8BnIvngp20U" + }, + "execution_count": 45, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "user_data.head()" + ], + "metadata": { + "id": "c2mMq4rzuDbe", + "outputId": "b961c780-90bd-4762-a1e7-c6e3d6c6d528", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 206 + } + }, + "execution_count": 46, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " User1 User2 distance User1_tittle \\\n", + "0 1 2 0.0 Pocahontas (1995) \n", + "1 1 2 0.0 Pocahontas (1995) \n", + "2 1 2 0.0 Pocahontas (1995) \n", + "3 1 2 0.0 Pocahontas (1995) \n", + "4 1 2 0.0 Pocahontas (1995) \n", + "\n", + " User2_tittle \n", + "0 Outbreak (1995) \n", + "1 Braveheart (1995) \n", + "2 Like Water for Chocolate (Como agua para choco... \n", + "3 Broken Arrow (1996) \n", + "4 Ed Wood (1994) " + ], + "text/html": [ + "\n", + "
\n", + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
User1User2distanceUser1_tittleUser2_tittle
0120.0Pocahontas (1995)Outbreak (1995)
1120.0Pocahontas (1995)Braveheart (1995)
2120.0Pocahontas (1995)Like Water for Chocolate (Como agua para choco...
3120.0Pocahontas (1995)Broken Arrow (1996)
4120.0Pocahontas (1995)Ed Wood (1994)
\n", + "
\n", + "
\n", + "\n", + "
\n", + " \n", + "\n", + " \n", + "\n", + " \n", + "
\n", + "\n", + "\n", + "
\n", + " \n", + "\n", + "\n", + "\n", + " \n", + "
\n", + "\n", + "
\n", + "
\n" + ], + "application/vnd.google.colaboratory.intrinsic+json": { + "type": "dataframe", + "variable_name": "user_data" + } + }, + "metadata": {}, + "execution_count": 46 + } + ] + }, + { + "cell_type": "code", + "source": [ + "user_data = user_data[~(user_data['User1_tittle'] == user_data['User2_tittle'])]" + ], + "metadata": { + "id": "OnfpqFN2x2xO" + }, + "execution_count": 47, + "outputs": [] + }, + { + "cell_type": "markdown", + "source": [ + "This is the top highest recommandation for each user using users user cosine similarity" + ], + "metadata": { + "id": "1pfU9uJrkpcx" + } + }, + { + "cell_type": "code", + "source": [ + "user_data[user_data['distance']>0.5]" + ], + "metadata": { + "id": "VeJOtW9Xw_xV", + "outputId": "3b7c42bc-445e-4896-e434-89463f03b61b", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 424 + } + }, + "execution_count": 48, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " User1 User2 distance User1_tittle \\\n", + "832 1 21 0.52 Pocahontas (1995) \n", + "833 1 21 0.52 Apollo 13 (1995) \n", + "835 1 21 0.52 Star Wars: Episode IV - A New Hope (1977) \n", + "7120 3 4 0.78 Happy Gilmore (1996) \n", + "7748 3 27 0.77 Happy Gilmore (1996) \n", + "... ... ... ... ... \n", + "337739 52 7 0.64 Outbreak (1995) \n", + "337740 52 7 0.64 From Dusk Till Dawn (1996) \n", + "337741 52 7 0.64 From Dusk Till Dawn (1996) \n", + "337742 52 7 0.64 Vampire in Brooklyn (1995) \n", + "337743 52 7 0.64 Vampire in Brooklyn (1995) \n", + "\n", + " User2_tittle \n", + "832 Toy Story (1995) \n", + "833 Toy Story (1995) \n", + "835 Toy Story (1995) \n", + "7120 Star Wars: Episode IV - A New Hope (1977) \n", + "7748 Jumanji (1995) \n", + "... ... \n", + "337739 Braveheart (1995) \n", + "337740 Heat (1995) \n", + "337741 Braveheart (1995) \n", + "337742 Heat (1995) \n", + "337743 Braveheart (1995) \n", + "\n", + "[4944 rows x 5 columns]" + ], + "text/html": [ + "\n", + "
\n", + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
User1User2distanceUser1_tittleUser2_tittle
8321210.52Pocahontas (1995)Toy Story (1995)
8331210.52Apollo 13 (1995)Toy Story (1995)
8351210.52Star Wars: Episode IV - A New Hope (1977)Toy Story (1995)
7120340.78Happy Gilmore (1996)Star Wars: Episode IV - A New Hope (1977)
77483270.77Happy Gilmore (1996)Jumanji (1995)
..................
3377395270.64Outbreak (1995)Braveheart (1995)
3377405270.64From Dusk Till Dawn (1996)Heat (1995)
3377415270.64From Dusk Till Dawn (1996)Braveheart (1995)
3377425270.64Vampire in Brooklyn (1995)Heat (1995)
3377435270.64Vampire in Brooklyn (1995)Braveheart (1995)
\n", + "

4944 rows × 5 columns

\n", + "
\n", + "
\n", + "\n", + "
\n", + " \n", + "\n", + " \n", + "\n", + " \n", + "
\n", + "\n", + "\n", + "
\n", + " \n", + "\n", + "\n", + "\n", + " \n", + "
\n", + "\n", + "
\n", + "
\n" + ], + "application/vnd.google.colaboratory.intrinsic+json": { + "type": "dataframe", + "summary": "{\n \"name\": \"user_data[user_data['distance']>0\",\n \"rows\": 4944,\n \"fields\": [\n {\n \"column\": \"User1\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 11,\n \"min\": 1,\n \"max\": 52,\n \"num_unique_values\": 23,\n \"samples\": [\n 32,\n 23,\n 1\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"User2\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 11,\n \"min\": 1,\n \"max\": 52,\n \"num_unique_values\": 23,\n \"samples\": [\n 18,\n 48,\n 21\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"distance\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.053472811701157336,\n \"min\": 0.51,\n \"max\": 0.98,\n \"num_unique_values\": 18,\n \"samples\": [\n 0.52,\n 0.78,\n 0.7\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"User1_tittle\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 98,\n \"samples\": [\n \"Death and the Maiden (1994)\",\n \"Taxi Driver (1976)\",\n \"Assassins (1995)\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"User2_tittle\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 98,\n \"samples\": [\n \"Mr. Holland's Opus (1995)\",\n \"Judge Dredd (1995)\",\n \"Party Girl (1995)\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}" + } + }, + "metadata": {}, + "execution_count": 48 + } + ] + }, + { + "cell_type": "code", + "source": [ + "u = user_data[['User1','User2','distance']].drop_duplicates()" + ], + "metadata": { + "id": "JqLdEfbHzpId" + }, + "execution_count": 49, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "u = u[u['distance']>0.5]" + ], + "metadata": { + "id": "Yq37wlRo0GLB" + }, + "execution_count": 50, + "outputs": [] + }, + { + "cell_type": "markdown", + "source": [ + "User - user sparse similarity matrix" + ], + "metadata": { + "id": "3FO5pWqwk8WT" + } + }, + { + "cell_type": "code", + "source": [ + "u.pivot(index='User1', columns='User2', values='distance').fillna(0)" + ], + "metadata": { + "id": "n70XetOlwZX5", + "outputId": "b6f1bc7e-228b-4644-af9f-533792adabb1", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 851 + } + }, + "execution_count": 51, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "User2 1 3 4 7 13 16 18 19 21 23 ... 28 \\\n", + "User1 ... \n", + "1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.52 0.00 ... 0.00 \n", + "3 0.00 0.00 0.78 0.00 0.00 0.00 0.00 0.00 0.00 0.00 ... 0.00 \n", + "4 0.00 0.78 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 ... 0.00 \n", + "7 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 ... 0.00 \n", + "13 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 ... 0.00 \n", + "16 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 ... 0.00 \n", + "18 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 ... 0.00 \n", + "19 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 ... 0.00 \n", + "21 0.52 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 ... 0.00 \n", + "23 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 ... 0.00 \n", + "24 0.00 0.00 0.00 0.00 0.70 0.00 0.53 0.00 0.00 0.00 ... 0.00 \n", + "25 0.00 0.00 0.55 0.00 0.00 0.00 0.00 0.00 0.00 0.00 ... 0.00 \n", + "27 0.00 0.77 0.98 0.00 0.00 0.00 0.00 0.00 0.00 0.00 ... 0.00 \n", + "28 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 ... 0.00 \n", + "29 0.00 0.00 0.00 0.00 0.62 0.00 0.00 0.00 0.00 0.00 ... 0.00 \n", + "32 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 ... 0.57 \n", + "34 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 ... 0.00 \n", + "36 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.57 0.00 0.52 ... 0.00 \n", + "41 0.00 0.71 0.91 0.00 0.55 0.00 0.00 0.00 0.00 0.00 ... 0.00 \n", + "48 0.00 0.00 0.00 0.00 0.51 0.00 0.00 0.00 0.00 0.00 ... 0.00 \n", + "50 0.00 0.00 0.00 0.00 0.00 0.69 0.00 0.00 0.00 0.00 ... 0.00 \n", + "51 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.62 0.00 ... 0.00 \n", + "52 0.00 0.00 0.00 0.64 0.00 0.00 0.00 0.00 0.00 0.00 ... 0.00 \n", + "\n", + "User2 29 32 34 36 41 48 50 51 52 \n", + "User1 \n", + "1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 \n", + "3 0.00 0.00 0.00 0.00 0.71 0.00 0.00 0.00 0.00 \n", + "4 0.00 0.00 0.00 0.00 0.91 0.00 0.00 0.00 0.00 \n", + "7 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.64 \n", + "13 0.62 0.00 0.00 0.00 0.55 0.51 0.00 0.00 0.00 \n", + "16 0.00 0.00 0.00 0.00 0.00 0.00 0.69 0.00 0.00 \n", + "18 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 \n", + "19 0.00 0.00 0.00 0.57 0.00 0.00 0.00 0.00 0.00 \n", + "21 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.62 0.00 \n", + "23 0.00 0.00 0.00 0.52 0.00 0.00 0.00 0.00 0.00 \n", + "24 0.56 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 \n", + "25 0.00 0.00 0.00 0.00 0.62 0.00 0.00 0.00 0.00 \n", + "27 0.00 0.00 0.00 0.00 0.90 0.00 0.00 0.00 0.00 \n", + "28 0.00 0.57 0.00 0.00 0.00 0.00 0.00 0.00 0.00 \n", + "29 0.00 0.00 0.00 0.00 0.61 0.00 0.00 0.00 0.00 \n", + "32 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 \n", + "34 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.75 0.00 \n", + "36 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 \n", + "41 0.61 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 \n", + "48 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 \n", + "50 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 \n", + "51 0.00 0.00 0.75 0.00 0.00 0.00 0.00 0.00 0.00 \n", + "52 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 \n", + "\n", + "[23 rows x 23 columns]" + ], + "text/html": [ + "\n", + "
\n", + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
User21347131618192123...28293234364148505152
User1
10.000.000.000.000.000.000.000.000.520.00...0.000.000.000.000.000.000.000.000.000.00
30.000.000.780.000.000.000.000.000.000.00...0.000.000.000.000.000.710.000.000.000.00
40.000.780.000.000.000.000.000.000.000.00...0.000.000.000.000.000.910.000.000.000.00
70.000.000.000.000.000.000.000.000.000.00...0.000.000.000.000.000.000.000.000.000.64
130.000.000.000.000.000.000.000.000.000.00...0.000.620.000.000.000.550.510.000.000.00
160.000.000.000.000.000.000.000.000.000.00...0.000.000.000.000.000.000.000.690.000.00
180.000.000.000.000.000.000.000.000.000.00...0.000.000.000.000.000.000.000.000.000.00
190.000.000.000.000.000.000.000.000.000.00...0.000.000.000.000.570.000.000.000.000.00
210.520.000.000.000.000.000.000.000.000.00...0.000.000.000.000.000.000.000.000.620.00
230.000.000.000.000.000.000.000.000.000.00...0.000.000.000.000.520.000.000.000.000.00
240.000.000.000.000.700.000.530.000.000.00...0.000.560.000.000.000.000.000.000.000.00
250.000.000.550.000.000.000.000.000.000.00...0.000.000.000.000.000.620.000.000.000.00
270.000.770.980.000.000.000.000.000.000.00...0.000.000.000.000.000.900.000.000.000.00
280.000.000.000.000.000.000.000.000.000.00...0.000.000.570.000.000.000.000.000.000.00
290.000.000.000.000.620.000.000.000.000.00...0.000.000.000.000.000.610.000.000.000.00
320.000.000.000.000.000.000.000.000.000.00...0.570.000.000.000.000.000.000.000.000.00
340.000.000.000.000.000.000.000.000.000.00...0.000.000.000.000.000.000.000.000.750.00
360.000.000.000.000.000.000.000.570.000.52...0.000.000.000.000.000.000.000.000.000.00
410.000.710.910.000.550.000.000.000.000.00...0.000.610.000.000.000.000.000.000.000.00
480.000.000.000.000.510.000.000.000.000.00...0.000.000.000.000.000.000.000.000.000.00
500.000.000.000.000.000.690.000.000.000.00...0.000.000.000.000.000.000.000.000.000.00
510.000.000.000.000.000.000.000.000.620.00...0.000.000.000.750.000.000.000.000.000.00
520.000.000.000.640.000.000.000.000.000.00...0.000.000.000.000.000.000.000.000.000.00
\n", + "

23 rows × 23 columns

\n", + "
\n", + "
\n", + "\n", + "
\n", + " \n", + "\n", + " \n", + "\n", + " \n", + "
\n", + "\n", + "\n", + "
\n", + " \n", + "\n", + "\n", + "\n", + " \n", + "
\n", + "\n", + "
\n", + "
\n" + ], + "application/vnd.google.colaboratory.intrinsic+json": { + "type": "dataframe" + } + }, + "metadata": {}, + "execution_count": 51 + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "created the Item - item similarity matrix using cosine similarity" + ], + "metadata": { + "id": "CwiBdQQOlI6J" + } + }, + { + "cell_type": "code", + "source": [ + "item=[]\n", + "\n", + "for i in r_user_item.columns:\n", + " for j in r_user_item.columns:\n", + " if i==j:\n", + " continue\n", + " item1 = np.array(r_user_item[i].values).reshape(1, -1)\n", + " item2 = np.array(r_user_item[j].values).reshape(1, -1)\n", + " item.append([i, j, cosine_similarity(item1, item2)[0][0].round(2)])\n", + "\n", + "\n", + "item_data = pd.DataFrame(item, columns=['item1', 'item2', 'distance'])\n", + "item_data.head()" + ], + "metadata": { + "id": "ORYNIvlK08Xz", + "outputId": "f0257b33-00c7-4566-e149-6d4d6723bbc7", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 206 + } + }, + "execution_count": 52, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " item1 item2 \\\n", + "0 Ace Ventura: When Nature Calls (1995) Across the Sea of Time (1995) \n", + "1 Ace Ventura: When Nature Calls (1995) Addiction, The (1995) \n", + "2 Ace Ventura: When Nature Calls (1995) Amateur (1994) \n", + "3 Ace Ventura: When Nature Calls (1995) Amazing Panda Adventure, The (1995) \n", + "4 Ace Ventura: When Nature Calls (1995) American President, The (1995) \n", + "\n", + " distance \n", + "0 0.07 \n", + "1 0.04 \n", + "2 0.05 \n", + "3 0.08 \n", + "4 0.24 " + ], + "text/html": [ + "\n", + "
\n", + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
item1item2distance
0Ace Ventura: When Nature Calls (1995)Across the Sea of Time (1995)0.07
1Ace Ventura: When Nature Calls (1995)Addiction, The (1995)0.04
2Ace Ventura: When Nature Calls (1995)Amateur (1994)0.05
3Ace Ventura: When Nature Calls (1995)Amazing Panda Adventure, The (1995)0.08
4Ace Ventura: When Nature Calls (1995)American President, The (1995)0.24
\n", + "
\n", + "
\n", + "\n", + "
\n", + " \n", + "\n", + " \n", + "\n", + " \n", + "
\n", + "\n", + "\n", + "
\n", + " \n", + "\n", + "\n", + "\n", + " \n", + "
\n", + "\n", + "
\n", + "
\n" + ], + "application/vnd.google.colaboratory.intrinsic+json": { + "type": "dataframe", + "variable_name": "item_data", + "summary": "{\n \"name\": \"item_data\",\n \"rows\": 84390,\n \"fields\": [\n {\n \"column\": \"item1\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 291,\n \"samples\": [\n \"Dunston Checks In (1996)\",\n \"Sudden Death (1995)\",\n \"Carrington (1995)\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"item2\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 291,\n \"samples\": [\n \"Eat Drink Man Woman (1994)\",\n \"Target (1995)\",\n \"Casino (1995)\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"distance\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.08078784044234677,\n \"min\": 0.0,\n \"max\": 0.66,\n \"num_unique_values\": 60,\n \"samples\": [\n 0.07,\n 0.0,\n 0.41\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}" + } + }, + "metadata": {}, + "execution_count": 52 + } + ] + }, + { + "cell_type": "code", + "source": [ + "item_data[item_data['distance']>0.5]" + ], + "metadata": { + "id": "Hhyzpjkg4q3M", + "outputId": "f407dbfd-c11b-4a7a-8fc8-93681e56e8f8", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 1000 + } + }, + "execution_count": 53, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " item1 \\\n", + "1999 Angela (1995) \n", + "4038 Babe (1995) \n", + "10958 Braveheart (1995) \n", + "10984 Braveheart (1995) \n", + "11382 Broken Arrow (1996) \n", + "11525 Broken Arrow (1996) \n", + "21209 Die Hard: With a Vengeance (1995) \n", + "21280 Die Hard: With a Vengeance (1995) \n", + "21385 Die Hard: With a Vengeance (1995) \n", + "32263 GoldenEye (1995) \n", + "34752 Heat (1995) \n", + "40741 Johnny Mnemonic (1995) \n", + "41320 Judge Dredd (1995) \n", + "62679 Outbreak (1995) \n", + "62713 Outbreak (1995) \n", + "66447 Pulp Fiction (1994) \n", + "66652 Pulp Fiction (1994) \n", + "66664 Pulp Fiction (1994) \n", + "66678 Pulp Fiction (1994) \n", + "66679 Pulp Fiction (1994) \n", + "66688 Pulp Fiction (1994) \n", + "70589 Seven (Se7en) (1995) \n", + "70699 Seven (Se7en) (1995) \n", + "70748 Seven (Se7en) (1995) \n", + "73987 Star Wars: Episode IV - A New Hope (1977) \n", + "74179 Star Wars: Episode IV - A New Hope (1977) \n", + "74218 Star Wars: Episode IV - A New Hope (1977) \n", + "74219 Star Wars: Episode IV - A New Hope (1977) \n", + "74228 Star Wars: Episode IV - A New Hope (1977) \n", + "75406 Target (1995) \n", + "78023 Toy Story (1995) \n", + "78239 Toy Story (1995) \n", + "78265 Toy Story (1995) \n", + "78529 Twelve Monkeys (1995) \n", + "78555 Twelve Monkeys (1995) \n", + "81139 Usual Suspects, The (1995) \n", + "81153 Usual Suspects, The (1995) \n", + "81165 Usual Suspects, The (1995) \n", + "\n", + " item2 distance \n", + "1999 Target (1995) 0.51 \n", + "4038 Toy Story (1995) 0.56 \n", + "10958 Pulp Fiction (1994) 0.53 \n", + "10984 Star Wars: Episode IV - A New Hope (1977) 0.57 \n", + "11382 Die Hard: With a Vengeance (1995) 0.56 \n", + "11525 Outbreak (1995) 0.53 \n", + "21209 Broken Arrow (1996) 0.56 \n", + "21280 GoldenEye (1995) 0.55 \n", + "21385 Outbreak (1995) 0.55 \n", + "32263 Die Hard: With a Vengeance (1995) 0.55 \n", + "34752 Seven (Se7en) (1995) 0.52 \n", + "40741 Judge Dredd (1995) 0.53 \n", + "41320 Johnny Mnemonic (1995) 0.53 \n", + "62679 Broken Arrow (1996) 0.53 \n", + "62713 Die Hard: With a Vengeance (1995) 0.55 \n", + "66447 Braveheart (1995) 0.53 \n", + "66652 Seven (Se7en) (1995) 0.55 \n", + "66664 Star Wars: Episode IV - A New Hope (1977) 0.54 \n", + "66678 Toy Story (1995) 0.51 \n", + "66679 Twelve Monkeys (1995) 0.53 \n", + "66688 Usual Suspects, The (1995) 0.66 \n", + "70589 Heat (1995) 0.52 \n", + "70699 Pulp Fiction (1994) 0.55 \n", + "70748 Usual Suspects, The (1995) 0.60 \n", + "73987 Braveheart (1995) 0.57 \n", + "74179 Pulp Fiction (1994) 0.54 \n", + "74218 Toy Story (1995) 0.54 \n", + "74219 Twelve Monkeys (1995) 0.53 \n", + "74228 Usual Suspects, The (1995) 0.51 \n", + "75406 Angela (1995) 0.51 \n", + "78023 Babe (1995) 0.56 \n", + "78239 Pulp Fiction (1994) 0.51 \n", + "78265 Star Wars: Episode IV - A New Hope (1977) 0.54 \n", + "78529 Pulp Fiction (1994) 0.53 \n", + "78555 Star Wars: Episode IV - A New Hope (1977) 0.53 \n", + "81139 Pulp Fiction (1994) 0.66 \n", + "81153 Seven (Se7en) (1995) 0.60 \n", + "81165 Star Wars: Episode IV - A New Hope (1977) 0.51 " + ], + "text/html": [ + "\n", + "
\n", + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
item1item2distance
1999Angela (1995)Target (1995)0.51
4038Babe (1995)Toy Story (1995)0.56
10958Braveheart (1995)Pulp Fiction (1994)0.53
10984Braveheart (1995)Star Wars: Episode IV - A New Hope (1977)0.57
11382Broken Arrow (1996)Die Hard: With a Vengeance (1995)0.56
11525Broken Arrow (1996)Outbreak (1995)0.53
21209Die Hard: With a Vengeance (1995)Broken Arrow (1996)0.56
21280Die Hard: With a Vengeance (1995)GoldenEye (1995)0.55
21385Die Hard: With a Vengeance (1995)Outbreak (1995)0.55
32263GoldenEye (1995)Die Hard: With a Vengeance (1995)0.55
34752Heat (1995)Seven (Se7en) (1995)0.52
40741Johnny Mnemonic (1995)Judge Dredd (1995)0.53
41320Judge Dredd (1995)Johnny Mnemonic (1995)0.53
62679Outbreak (1995)Broken Arrow (1996)0.53
62713Outbreak (1995)Die Hard: With a Vengeance (1995)0.55
66447Pulp Fiction (1994)Braveheart (1995)0.53
66652Pulp Fiction (1994)Seven (Se7en) (1995)0.55
66664Pulp Fiction (1994)Star Wars: Episode IV - A New Hope (1977)0.54
66678Pulp Fiction (1994)Toy Story (1995)0.51
66679Pulp Fiction (1994)Twelve Monkeys (1995)0.53
66688Pulp Fiction (1994)Usual Suspects, The (1995)0.66
70589Seven (Se7en) (1995)Heat (1995)0.52
70699Seven (Se7en) (1995)Pulp Fiction (1994)0.55
70748Seven (Se7en) (1995)Usual Suspects, The (1995)0.60
73987Star Wars: Episode IV - A New Hope (1977)Braveheart (1995)0.57
74179Star Wars: Episode IV - A New Hope (1977)Pulp Fiction (1994)0.54
74218Star Wars: Episode IV - A New Hope (1977)Toy Story (1995)0.54
74219Star Wars: Episode IV - A New Hope (1977)Twelve Monkeys (1995)0.53
74228Star Wars: Episode IV - A New Hope (1977)Usual Suspects, The (1995)0.51
75406Target (1995)Angela (1995)0.51
78023Toy Story (1995)Babe (1995)0.56
78239Toy Story (1995)Pulp Fiction (1994)0.51
78265Toy Story (1995)Star Wars: Episode IV - A New Hope (1977)0.54
78529Twelve Monkeys (1995)Pulp Fiction (1994)0.53
78555Twelve Monkeys (1995)Star Wars: Episode IV - A New Hope (1977)0.53
81139Usual Suspects, The (1995)Pulp Fiction (1994)0.66
81153Usual Suspects, The (1995)Seven (Se7en) (1995)0.60
81165Usual Suspects, The (1995)Star Wars: Episode IV - A New Hope (1977)0.51
\n", + "
\n", + "
\n", + "\n", + "
\n", + " \n", + "\n", + " \n", + "\n", + " \n", + "
\n", + "\n", + "\n", + "
\n", + " \n", + "\n", + "\n", + "\n", + " \n", + "
\n", + "\n", + "
\n", + "
\n" + ], + "application/vnd.google.colaboratory.intrinsic+json": { + "type": "dataframe", + "summary": "{\n \"name\": \"item_data[item_data['distance']>0\",\n \"rows\": 38,\n \"fields\": [\n {\n \"column\": \"item1\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 17,\n \"samples\": [\n \"Angela (1995)\",\n \"Babe (1995)\",\n \"GoldenEye (1995)\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"item2\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 17,\n \"samples\": [\n \"Target (1995)\",\n \"Toy Story (1995)\",\n \"Outbreak (1995)\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"distance\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.03513841761666466,\n \"min\": 0.51,\n \"max\": 0.66,\n \"num_unique_values\": 9,\n \"samples\": [\n 0.66,\n 0.56,\n 0.52\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}" + } + }, + "metadata": {}, + "execution_count": 53 + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "Build a Recommender System based on Pearson Correlation\n", + "\n", + "1. Creating a pivot table of movie titles & user id and imputing the NaN values\n", + "\n", + "2. Use the Item-based approach to create a simple recommender system that uses Pearson Correlation\n", + "\n", + "\n", + "Build a Recommender System based Pearson Correlation. (Optional)\n", + "\n", + "Use the User-based approach to create a recommender system that uses Pearson Correlation" + ], + "metadata": { + "id": "UTSFIbWW7KfF" + } + }, + { + "cell_type": "code", + "source": [ + "from scipy.stats import pearsonr\n", + "\n", + "rank_pearsonr = []\n", + "for i in r_user_item[:50].index:\n", + " for j in r_user_item[:50].index:\n", + " if i == j:\n", + " continue\n", + " user1 = np.array(r_user_item.loc[i].values)\n", + " user2 = np.array(r_user_item.loc[j].values)\n", + " coff, p_value = pearsonr(user1, user2)\n", + " rank_pearsonr.append([i, j, coff.round(2)])\n", + "\n", + "rank_pearsonr_data = pd.DataFrame(rank_pearsonr, columns=['User1', 'User2', 'distance'])\n", + "rank_pearsonr_data.head()" + ], + "metadata": { + "id": "afUtg3c26zeL", + "outputId": "5cbf9cda-e299-4b97-fd30-69e43713f2c0", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 206 + } + }, + "execution_count": 54, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " User1 User2 distance\n", + "0 1 2 -0.02\n", + "1 1 3 0.32\n", + "2 1 4 0.42\n", + "3 1 5 0.03\n", + "4 1 6 0.42" + ], + "text/html": [ + "\n", + "
\n", + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
User1User2distance
012-0.02
1130.32
2140.42
3150.03
4160.42
\n", + "
\n", + "
\n", + "\n", + "
\n", + " \n", + "\n", + " \n", + "\n", + " \n", + "
\n", + "\n", + "\n", + "
\n", + " \n", + "\n", + "\n", + "\n", + " \n", + "
\n", + "\n", + "
\n", + "
\n" + ], + "application/vnd.google.colaboratory.intrinsic+json": { + "type": "dataframe", + "variable_name": "rank_pearsonr_data", + "summary": "{\n \"name\": \"rank_pearsonr_data\",\n \"rows\": 2450,\n \"fields\": [\n {\n \"column\": \"User1\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 14,\n \"min\": 1,\n \"max\": 52,\n \"num_unique_values\": 50,\n \"samples\": [\n 14,\n 40,\n 31\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"User2\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 14,\n \"min\": 1,\n \"max\": 52,\n \"num_unique_values\": 50,\n \"samples\": [\n 15,\n 41,\n 32\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"distance\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.16195201664753248,\n \"min\": -0.07,\n \"max\": 0.98,\n \"num_unique_values\": 74,\n \"samples\": [\n -0.01,\n 0.61,\n 0.29\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}" + } + }, + "metadata": {}, + "execution_count": 54 + } + ] + }, + { + "cell_type": "code", + "source": [ + "rank_pearsonr_data = rank_pearsonr_data.merge(data[['UserID','Title']].drop_duplicates(), left_on='User1',right_on='UserID').rename(columns={'Title': 'User1_tittle'}).drop(columns=['UserID'])\n", + "#pd.merge(user_data, data[['UserID','Title']].drop_duplicates(), how='inner', on='UserID')\n", + "\n", + "rank_pearsonr_data = rank_pearsonr_data.merge(data[['UserID','Title']].drop_duplicates(),left_on='User2', right_on='UserID').rename(columns={'Title': 'User2_tittle'}).drop(columns=['UserID'])" + ], + "metadata": { + "id": "S_ZMeL8nSPlZ" + }, + "execution_count": 55, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "rank_pearsonr_data = rank_pearsonr_data[~(rank_pearsonr_data['User1_tittle'] == rank_pearsonr_data['User2_tittle'])]" + ], + "metadata": { + "id": "hR1KV2moS_EJ" + }, + "execution_count": 56, + "outputs": [] + }, + { + "cell_type": "markdown", + "source": [ + "Top highest similar user rated movie recommandated for other users using pearsonr" + ], + "metadata": { + "id": "KHGmiPOWnKxN" + } + }, + { + "cell_type": "code", + "source": [ + "rank_pearsonr_data[rank_pearsonr_data['distance']>0.5]" + ], + "metadata": { + "id": "aATUO1Q8TQnr", + "outputId": "1c3315c3-5691-418b-9fe1-42b0aacbde34", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 424 + } + }, + "execution_count": 57, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " User1 User2 distance User1_tittle \\\n", + "832 1 21 0.52 Pocahontas (1995) \n", + "833 1 21 0.52 Apollo 13 (1995) \n", + "835 1 21 0.52 Star Wars: Episode IV - A New Hope (1977) \n", + "7120 3 4 0.78 Happy Gilmore (1996) \n", + "7748 3 27 0.76 Happy Gilmore (1996) \n", + "... ... ... ... ... \n", + "337739 52 7 0.64 Outbreak (1995) \n", + "337740 52 7 0.64 From Dusk Till Dawn (1996) \n", + "337741 52 7 0.64 From Dusk Till Dawn (1996) \n", + "337742 52 7 0.64 Vampire in Brooklyn (1995) \n", + "337743 52 7 0.64 Vampire in Brooklyn (1995) \n", + "\n", + " User2_tittle \n", + "832 Toy Story (1995) \n", + "833 Toy Story (1995) \n", + "835 Toy Story (1995) \n", + "7120 Star Wars: Episode IV - A New Hope (1977) \n", + "7748 Jumanji (1995) \n", + "... ... \n", + "337739 Braveheart (1995) \n", + "337740 Heat (1995) \n", + "337741 Braveheart (1995) \n", + "337742 Heat (1995) \n", + "337743 Braveheart (1995) \n", + "\n", + "[2142 rows x 5 columns]" + ], + "text/html": [ + "\n", + "
\n", + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
User1User2distanceUser1_tittleUser2_tittle
8321210.52Pocahontas (1995)Toy Story (1995)
8331210.52Apollo 13 (1995)Toy Story (1995)
8351210.52Star Wars: Episode IV - A New Hope (1977)Toy Story (1995)
7120340.78Happy Gilmore (1996)Star Wars: Episode IV - A New Hope (1977)
77483270.76Happy Gilmore (1996)Jumanji (1995)
..................
3377395270.64Outbreak (1995)Braveheart (1995)
3377405270.64From Dusk Till Dawn (1996)Heat (1995)
3377415270.64From Dusk Till Dawn (1996)Braveheart (1995)
3377425270.64Vampire in Brooklyn (1995)Heat (1995)
3377435270.64Vampire in Brooklyn (1995)Braveheart (1995)
\n", + "

2142 rows × 5 columns

\n", + "
\n", + "
\n", + "\n", + "
\n", + " \n", + "\n", + " \n", + "\n", + " \n", + "
\n", + "\n", + "\n", + "
\n", + " \n", + "\n", + "\n", + "\n", + " \n", + "
\n", + "\n", + "
\n", + "
\n" + ], + "application/vnd.google.colaboratory.intrinsic+json": { + "type": "dataframe", + "summary": "{\n \"name\": \"rank_pearsonr_data[rank_pearsonr_data['distance']>0\",\n \"rows\": 2142,\n \"fields\": [\n {\n \"column\": \"User1\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 9,\n \"min\": 1,\n \"max\": 52,\n \"num_unique_values\": 21,\n \"samples\": [\n 1,\n 41,\n 34\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"User2\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 9,\n \"min\": 1,\n \"max\": 52,\n \"num_unique_values\": 21,\n \"samples\": [\n 21,\n 19,\n 32\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"distance\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.06869827749034985,\n \"min\": 0.51,\n \"max\": 0.98,\n \"num_unique_values\": 16,\n \"samples\": [\n 0.52,\n 0.78,\n 0.98\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"User1_tittle\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 70,\n \"samples\": [\n \"Little Women (1994)\",\n \"Pocahontas (1995)\",\n \"Sabrina (1995)\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"User2_tittle\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 70,\n \"samples\": [\n \"Legends of the Fall (1994)\",\n \"Toy Story (1995)\",\n \"Taxi Driver (1976)\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}" + } + }, + "metadata": {}, + "execution_count": 57 + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "Item - Item similarity pearsonr matrix" + ], + "metadata": { + "id": "YCsJNttGncT9" + } + }, + { + "cell_type": "code", + "source": [ + "item_pearsonr=[]\n", + "\n", + "for i in r_user_item.columns:\n", + " for j in r_user_item.columns:\n", + " if i==j:\n", + " continue\n", + " item1 = np.array(r_user_item[i].values)\n", + " item2 = np.array(r_user_item[j].values)\n", + " coff, p_value = pearsonr(item1, item2)\n", + " item_pearsonr.append([i, j, coff.round(2)])\n", + "\n", + "\n", + "item_pearsonr_data = pd.DataFrame(item_pearsonr, columns=['item1', 'item2', 'distance'])\n", + "item_pearsonr_data.head()" + ], + "metadata": { + "id": "aoWorbbDT5Wx", + "outputId": "92c73492-b7ff-4418-bf90-dbdaa7152897", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 206 + } + }, + "execution_count": 58, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " item1 item2 \\\n", + "0 Ace Ventura: When Nature Calls (1995) Across the Sea of Time (1995) \n", + "1 Ace Ventura: When Nature Calls (1995) Addiction, The (1995) \n", + "2 Ace Ventura: When Nature Calls (1995) Amateur (1994) \n", + "3 Ace Ventura: When Nature Calls (1995) Amazing Panda Adventure, The (1995) \n", + "4 Ace Ventura: When Nature Calls (1995) American President, The (1995) \n", + "\n", + " distance \n", + "0 0.06 \n", + "1 0.02 \n", + "2 0.03 \n", + "3 0.07 \n", + "4 0.16 " + ], + "text/html": [ + "\n", + "
\n", + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
item1item2distance
0Ace Ventura: When Nature Calls (1995)Across the Sea of Time (1995)0.06
1Ace Ventura: When Nature Calls (1995)Addiction, The (1995)0.02
2Ace Ventura: When Nature Calls (1995)Amateur (1994)0.03
3Ace Ventura: When Nature Calls (1995)Amazing Panda Adventure, The (1995)0.07
4Ace Ventura: When Nature Calls (1995)American President, The (1995)0.16
\n", + "
\n", + "
\n", + "\n", + "
\n", + " \n", + "\n", + " \n", + "\n", + " \n", + "
\n", + "\n", + "\n", + "
\n", + " \n", + "\n", + "\n", + "\n", + " \n", + "
\n", + "\n", + "
\n", + "
\n" + ], + "application/vnd.google.colaboratory.intrinsic+json": { + "type": "dataframe", + "variable_name": "item_pearsonr_data", + "summary": "{\n \"name\": \"item_pearsonr_data\",\n \"rows\": 84390,\n \"fields\": [\n {\n \"column\": \"item1\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 291,\n \"samples\": [\n \"Dunston Checks In (1996)\",\n \"Sudden Death (1995)\",\n \"Carrington (1995)\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"item2\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 291,\n \"samples\": [\n \"Eat Drink Man Woman (1994)\",\n \"Target (1995)\",\n \"Casino (1995)\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"distance\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.06511276894451852,\n \"min\": -0.03,\n \"max\": 0.51,\n \"num_unique_values\": 54,\n \"samples\": [\n 0.23,\n 0.47,\n 0.42\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}" + } + }, + "metadata": {}, + "execution_count": 58 + } + ] + }, + { + "cell_type": "code", + "source": [ + "item_pearsonr_data[item_pearsonr_data['distance']>0.5]" + ], + "metadata": { + "id": "kGXn5Lq_Vdag", + "outputId": "c9b59038-8119-4cc7-be7a-aeef632c996c", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 175 + } + }, + "execution_count": 59, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " item1 item2 \\\n", + "1999 Angela (1995) Target (1995) \n", + "11382 Broken Arrow (1996) Die Hard: With a Vengeance (1995) \n", + "21209 Die Hard: With a Vengeance (1995) Broken Arrow (1996) \n", + "75406 Target (1995) Angela (1995) \n", + "\n", + " distance \n", + "1999 0.51 \n", + "11382 0.51 \n", + "21209 0.51 \n", + "75406 0.51 " + ], + "text/html": [ + "\n", + "
\n", + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
item1item2distance
1999Angela (1995)Target (1995)0.51
11382Broken Arrow (1996)Die Hard: With a Vengeance (1995)0.51
21209Die Hard: With a Vengeance (1995)Broken Arrow (1996)0.51
75406Target (1995)Angela (1995)0.51
\n", + "
\n", + "
\n", + "\n", + "
\n", + " \n", + "\n", + " \n", + "\n", + " \n", + "
\n", + "\n", + "\n", + "
\n", + " \n", + "\n", + "\n", + "\n", + " \n", + "
\n", + "\n", + "
\n", + "
\n" + ], + "application/vnd.google.colaboratory.intrinsic+json": { + "type": "dataframe", + "summary": "{\n \"name\": \"item_pearsonr_data[item_pearsonr_data['distance']>0\",\n \"rows\": 4,\n \"fields\": [\n {\n \"column\": \"item1\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 4,\n \"samples\": [\n \"Broken Arrow (1996)\",\n \"Target (1995)\",\n \"Angela (1995)\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"item2\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 4,\n \"samples\": [\n \"Die Hard: With a Vengeance (1995)\",\n \"Angela (1995)\",\n \"Target (1995)\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"distance\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.0,\n \"min\": 0.51,\n \"max\": 0.51,\n \"num_unique_values\": 1,\n \"samples\": [\n 0.51\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}" + } + }, + "metadata": {}, + "execution_count": 59 + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "Build a Recommender System based on Matrix Factorization.\n", + "\n", + "1. Create a Recommender System using the Matrix Factorization method\n", + "\n", + "2. Evaluate the model in terms of the Root Mean Squared Error and Mean Absolute Percentage Error\n", + "\n", + "3. Use embeddings for visualization and similarity-based models." + ], + "metadata": { + "id": "ws8U2RZPYxKh" + } + }, + { + "cell_type": "code", + "source": [ + "!pip install cmfrec" + ], + "metadata": { + "id": "sjiRL58KY5YP", + "outputId": "1e6a57eb-ccc9-40fd-ae3c-67ea0b4bcfb7", + "colab": { + "base_uri": "https://localhost:8080/" + } + }, + "execution_count": 60, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Collecting cmfrec\n", + " Downloading cmfrec-3.5.1.post10.tar.gz (268 kB)\n", + "\u001b[?25l \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m0.0/268.3 kB\u001b[0m \u001b[31m?\u001b[0m eta \u001b[36m-:--:--\u001b[0m\r\u001b[2K \u001b[91m━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[90m╺\u001b[0m\u001b[90m━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m122.9/268.3 kB\u001b[0m \u001b[31m4.4 MB/s\u001b[0m eta \u001b[36m0:00:01\u001b[0m\r\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m268.3/268.3 kB\u001b[0m \u001b[31m4.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[?25h Installing build dependencies ... \u001b[?25l\u001b[?25hdone\n", + " Getting requirements to build wheel ... \u001b[?25l\u001b[?25hdone\n", + " Preparing metadata (pyproject.toml) ... \u001b[?25l\u001b[?25hdone\n", + "Requirement already satisfied: cython in /usr/local/lib/python3.10/dist-packages (from cmfrec) (3.0.11)\n", + "Requirement already satisfied: numpy>=1.25 in /usr/local/lib/python3.10/dist-packages (from cmfrec) (1.26.4)\n", + "Requirement already satisfied: scipy in /usr/local/lib/python3.10/dist-packages (from cmfrec) (1.13.1)\n", + "Requirement already satisfied: pandas in /usr/local/lib/python3.10/dist-packages (from cmfrec) (2.2.2)\n", + "Collecting findblas (from cmfrec)\n", + " Using cached findblas-0.1.26.post1-py3-none-any.whl\n", + "Requirement already satisfied: python-dateutil>=2.8.2 in /usr/local/lib/python3.10/dist-packages (from pandas->cmfrec) (2.8.2)\n", + "Requirement already satisfied: pytz>=2020.1 in /usr/local/lib/python3.10/dist-packages (from pandas->cmfrec) (2024.2)\n", + "Requirement already satisfied: tzdata>=2022.7 in /usr/local/lib/python3.10/dist-packages (from pandas->cmfrec) (2024.2)\n", + "Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.10/dist-packages (from python-dateutil>=2.8.2->pandas->cmfrec) (1.16.0)\n", + "Building wheels for collected packages: cmfrec\n", + " Building wheel for cmfrec (pyproject.toml) ... \u001b[?25l\u001b[?25hdone\n", + " Created wheel for cmfrec: filename=cmfrec-3.5.1.post10-cp310-cp310-linux_x86_64.whl size=5669729 sha256=c73d50760afcd4c1e99918f2e3e83803e82875950bad299b7908307ec278a9d9\n", + " Stored in directory: /root/.cache/pip/wheels/cc/80/d7/9b7d9361970eb499c0227a3fac504240f7793dec0d9793bee6\n", + "Successfully built cmfrec\n", + "Installing collected packages: findblas, cmfrec\n", + "Successfully installed cmfrec-3.5.1.post10 findblas-0.1.26.post1\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "from cmfrec import CMF" + ], + "metadata": { + "id": "Kr0drX3LD4bD" + }, + "execution_count": 61, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "rm_raw = data[['UserID','MovieID','Rating']].drop_duplicates()\n", + "rm_raw.columns = ['UserId', 'ItemId', 'Rating']\n", + "rm_raw.head()" + ], + "metadata": { + "id": "CyWrU1ZOD7xk", + "outputId": "36aa7230-e5e6-4274-b244-0ee64412cbf4", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 206 + } + }, + "execution_count": 62, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " UserId ItemId Rating\n", + "0 1 48 5\n", + "4 1 150 5\n", + "5 1 1 5\n", + "8 1 260 4\n", + "12 2 292 3" + ], + "text/html": [ + "\n", + "
\n", + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
UserIdItemIdRating
01485
411505
5115
812604
1222923
\n", + "
\n", + "
\n", + "\n", + "
\n", + " \n", + "\n", + " \n", + "\n", + " \n", + "
\n", + "\n", + "\n", + "
\n", + " \n", + "\n", + "\n", + "\n", + " \n", + "
\n", + "\n", + "
\n", + "
\n" + ], + "application/vnd.google.colaboratory.intrinsic+json": { + "type": "dataframe", + "variable_name": "rm_raw", + "summary": "{\n \"name\": \"rm_raw\",\n \"rows\": 79877,\n \"fields\": [\n {\n \"column\": \"UserId\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 1731,\n \"min\": 1,\n \"max\": 6040,\n \"num_unique_values\": 5731,\n \"samples\": [\n 1682,\n 4328,\n 2798\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"ItemId\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 95,\n \"min\": 1,\n \"max\": 299,\n \"num_unique_values\": 291,\n \"samples\": [\n 222,\n 37,\n 73\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Rating\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 1,\n \"min\": 1,\n \"max\": 5,\n \"num_unique_values\": 5,\n \"samples\": [\n 4,\n 1,\n 3\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}" + } + }, + "metadata": {}, + "execution_count": 62 + } + ] + }, + { + "cell_type": "code", + "source": [ + "model = CMF(k = 2, lambda_ = 0.1, verbose = False, user_bias= False, item_bias=False)\n", + "model.fit(rm_raw)" + ], + "metadata": { + "id": "abr7GIbJD7j2", + "outputId": "24467954-5a27-4734-e4fa-31488f144adb", + "colab": { + "base_uri": "https://localhost:8080/" + } + }, + "execution_count": 63, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "Collective matrix factorization model\n", + "(explicit-feedback variant)\n" + ] + }, + "metadata": {}, + "execution_count": 63 + } + ] + }, + { + "cell_type": "code", + "source": [ + "model.A_.shape" + ], + "metadata": { + "id": "LqYXQJo2FGcF", + "outputId": "848c00bc-4a87-4b43-dd83-d7c0160d8677", + "colab": { + "base_uri": "https://localhost:8080/" + } + }, + "execution_count": 64, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "(5731, 2)" + ] + }, + "metadata": {}, + "execution_count": 64 + } + ] + }, + { + "cell_type": "code", + "source": [ + "model.B_.shape" + ], + "metadata": { + "id": "XXyTY-aYFM_M", + "outputId": "09f159b2-4696-4bc9-e676-1b99d51621a8", + "colab": { + "base_uri": "https://localhost:8080/" + } + }, + "execution_count": 65, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "(291, 2)" + ] + }, + "metadata": {}, + "execution_count": 65 + } + ] + }, + { + "cell_type": "code", + "source": [ + "data['Rating'].mean()" + ], + "metadata": { + "id": "JZyv6-qIFZx4", + "outputId": "53a98aa8-bab3-4e47-c7a2-5e818aa07066", + "colab": { + "base_uri": "https://localhost:8080/" + } + }, + "execution_count": 66, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "3.5757474669802787" + ] + }, + "metadata": {}, + "execution_count": 66 + } + ] + }, + { + "cell_type": "code", + "source": [ + "model.glob_mean_ # (mu)" + ], + "metadata": { + "id": "oFBoUcuMFYFM", + "outputId": "9e34ce7b-61c0-45e8-bd6b-04b881036e9a", + "colab": { + "base_uri": "https://localhost:8080/" + } + }, + "execution_count": 67, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "3.554752826690674" + ] + }, + "metadata": {}, + "execution_count": 67 + } + ] + }, + { + "cell_type": "code", + "source": [ + "from sklearn.metrics import mean_squared_error as mse\n", + "rm__ = np.dot(model.A_, model.B_.T) + model.glob_mean_\n", + "\n", + "mse(r_user_item.values[r_user_item>0] , rm__[r_user_item>0] )**0.5" + ], + "metadata": { + "id": "J7tqCJPyFhcX", + "outputId": "856affd7-776e-41ab-be36-2568fcb61f7c", + "colab": { + "base_uri": "https://localhost:8080/" + } + }, + "execution_count": 68, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "1.494934071049986" + ] + }, + "metadata": {}, + "execution_count": 68 + } + ] + }, + { + "cell_type": "code", + "source": [ + "top_items = model.topN(user = 1, n = 10)\n", + "top_items" + ], + "metadata": { + "id": "OVM5puRIGXTX", + "outputId": "1552d041-5075-4e08-c918-5d277f5968d4", + "colab": { + "base_uri": "https://localhost:8080/" + } + }, + "execution_count": 69, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([126, 38, 19, 65, 75, 102, 250, 243, 216, 15])" + ] + }, + "metadata": {}, + "execution_count": 69 + } + ] + }, + { + "cell_type": "code", + "source": [ + "movie.loc[movie.MovieID.isin(top_items)]" + ], + "metadata": { + "id": "7GmEXlLgGbaE", + "outputId": "e439db8f-da8f-49f9-b5b9-4af85dbd0dc8", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 551 + } + }, + "execution_count": 70, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " MovieID Title Genres\n", + "14 15 Cutthroat Island (1995) Action\n", + "14 15 Cutthroat Island (1995) Adventure\n", + "14 15 Cutthroat Island (1995) Romance\n", + "18 19 Ace Ventura: When Nature Calls (1995) Comedy\n", + "37 38 It Takes Two (1995) Comedy\n", + "64 65 Bio-Dome (1996) Comedy\n", + "74 75 Big Bully (1996) Comedy\n", + "74 75 Big Bully (1996) Drama\n", + "100 102 Mr. Wrong (1996) Comedy\n", + "124 126 NeverEnding Story III, The (1994) Adventure\n", + "124 126 NeverEnding Story III, The (1994) Children's\n", + "124 126 NeverEnding Story III, The (1994) Fantasy\n", + "214 216 Billy Madison (1995) Comedy\n", + "240 243 Gordy (1995) Comedy\n", + "247 250 Heavyweights (1994) Children's\n", + "247 250 Heavyweights (1994) Comedy" + ], + "text/html": [ + "\n", + "
\n", + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
MovieIDTitleGenres
1415Cutthroat Island (1995)Action
1415Cutthroat Island (1995)Adventure
1415Cutthroat Island (1995)Romance
1819Ace Ventura: When Nature Calls (1995)Comedy
3738It Takes Two (1995)Comedy
6465Bio-Dome (1996)Comedy
7475Big Bully (1996)Comedy
7475Big Bully (1996)Drama
100102Mr. Wrong (1996)Comedy
124126NeverEnding Story III, The (1994)Adventure
124126NeverEnding Story III, The (1994)Children's
124126NeverEnding Story III, The (1994)Fantasy
214216Billy Madison (1995)Comedy
240243Gordy (1995)Comedy
247250Heavyweights (1994)Children's
247250Heavyweights (1994)Comedy
\n", + "
\n", + "
\n", + "\n", + "
\n", + " \n", + "\n", + " \n", + "\n", + " \n", + "
\n", + "\n", + "\n", + "
\n", + " \n", + "\n", + "\n", + "\n", + " \n", + "
\n", + "\n", + "
\n", + "
\n" + ], + "application/vnd.google.colaboratory.intrinsic+json": { + "type": "dataframe", + "summary": "{\n \"name\": \"movie\",\n \"rows\": 16,\n \"fields\": [\n {\n \"column\": \"MovieID\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 87,\n \"min\": 15,\n \"max\": 250,\n \"num_unique_values\": 10,\n \"samples\": [\n 243,\n 19,\n 102\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Title\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 10,\n \"samples\": [\n \"Gordy (1995)\",\n \"Ace Ventura: When Nature Calls (1995)\",\n \"Mr. Wrong (1996)\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Genres\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 7,\n \"samples\": [\n \"Action\",\n \"Adventure\",\n \"Children's\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}" + } + }, + "metadata": {}, + "execution_count": 70 + } + ] + }, + { + "cell_type": "code", + "source": [ + "import matplotlib.pyplot as plt\n", + "from sklearn.manifold import TSNE\n", + "\n", + "embeddings = r_user_item\n", + "\n", + "# Use t-SNE to reduce dimensionality to 2D for visualization\n", + "tsne = TSNE(n_components=2)\n", + "reduced_embeddings = tsne.fit_transform(embeddings)\n", + "\n", + "# Plotting the reduced embeddings\n", + "plt.scatter(reduced_embeddings[:100, 0], reduced_embeddings[:100, 1], label='Users', color='blue')\n", + "plt.scatter(reduced_embeddings[100:, 0], reduced_embeddings[100:, 1], label='Items', color='red')\n", + "plt.legend()\n", + "plt.show()\n" + ], + "metadata": { + "id": "e9nevh81HdNe", + "outputId": "08770a7d-2356-4ecd-a676-14ed9f393760", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 431 + } + }, + "execution_count": 71, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAioAAAGeCAYAAAC6gypNAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAACJ4ElEQVR4nO2de3wU5fX/P5OF3MgFsgkBsosootaiXy94Q1EoFLS1BsNFEfmCPwuVixAuoVIRjPdyMSCKFvut2GK4hE2ltVo0mGhasd6toFCkAZMQAiSSgEBCdp/fHw+Tvc3szuzO7Mzunvfr9bBkduaZZ2dnZ86c55zPERhjDARBEARBECYkwegBEARBEARByEGGCkEQBEEQpoUMFYIgCIIgTAsZKgRBEARBmBYyVAiCIAiCMC1kqBAEQRAEYVrIUCEIgiAIwrSQoUIQBEEQhGkhQ4UgCIIgCNPSxegBhIvL5cKhQ4eQnp4OQRCMHg5BEARBEApgjOHEiRPo06cPEhIC+E2YztTV1bGJEyeyrKwslpyczAYOHMg+/vjjzvddLhd75JFHWK9evVhycjIbPnw4+89//qO4/9raWgaAGjVq1KhRoxaFrba2NuB9XlePyvfff48bb7wRw4YNw1tvvYWcnBzs27cPPXr06Fxn2bJleO655/Dqq6/i/PPPxyOPPIJRo0bh66+/RnJyctB9pKenAwBqa2uRkZGh22chCIIgCEI7WltbYbfbO+/jcgiM6VeU8KGHHsI///lPVFdXS77PGEOfPn0wf/58LFiwAADQ0tKC3NxcrF+/HnfffXfQfbS2tiIzMxMtLS1kqBAEQRBElKD0/q1rMO1f/vIXDBo0COPGjUPPnj1x5ZVX4uWXX+58v6amBocPH8aIESM6l2VmZuK6667Dzp07Jftsa2tDa2urVyMIgiAIIjbR1VD573//ixdffBEDBgzA9u3bMX36dMyePRuvvvoqAODw4cMAgNzcXK/tcnNzO9/z5emnn0ZmZmZns9vten4EgiAIgiAMRFdDxeVy4aqrrsJTTz2FK6+8EtOmTcPUqVPx0ksvhdznokWL0NLS0tlqa2s1HDFBEARBEGZC12Da3r1749JLL/Va9qMf/QgOhwMA0KtXLwBAY2Mjevfu3blOY2MjrrjiCsk+k5KSkJSUpM+ACYIgiLiDMYaOjg44nU6jhxJTWCwWdOnSJWzpEF0NlRtvvBF79+71Wvaf//wH5513HgDg/PPPR69evbBjx45Ow6S1tRX/+te/MH36dD2HRhAEQRBob29HQ0MDTp06ZfRQYpLU1FT07t0biYmJIfehq6Eyd+5cDB48GE899RTGjx+Pjz76COvWrcO6desAAIIgoLCwEE888QQGDBjQmZ7cp08fjB49Ws+hEQRBEHGOy+VCTU0NLBYL+vTpg8TERBIO1QjGGNrb23H06FHU1NRgwIABgUXdAqCroXLNNdfgz3/+MxYtWoTHHnsM559/PlatWoWJEyd2rrNw4UL88MMPmDZtGo4fP46bbroJf//73xVpqBAEQRBEqLS3t8PlcsFutyM1NdXo4cQcKSkp6Nq1Kw4ePIj29vaQ7+u66qhEAtJRIQiCIELhzJkzqKmpwfnnn08PxzoR6BgrvX9Hfa0fgiCIuMbpBKqrgYYGoHdvYMgQwGIxelQEoRlkqBAEQUQr5eXAnDlAXZ17mc0GrF4NFBQYNy6C0BBddVQIgiAInSgvB8aO9TZSAKC+ni8vLzdmXAShMWSoEARBRBtOJ/ekSIUYissKC/l6REwydOhQFBYW+i1fv349unfvHvHx6AkZKgRBENFGdbW/J8UTxoDaWr4eERGcTqCqCti4kb/Goo149uxZQ/ZLhgpBRJp4uKIR+tLQoO16RFiUlwP9+gHDhgH33MNf+/UzfvatqqoK1157Lbp164bu3bvjxhtvxMGDBzvf37ZtG6666iokJyfjggsuQHFxMTo6OjrfFwQBL774Iu644w5069YNTz75JL7//ntMnDgROTk5SElJwYABA/DKK6/o+jkomJYgIgkFPxJa4FFyRJP1iJARQ4V8Z+HEUKGtW435aXd0dGD06NGYOnUqNm7ciPb2dnz00UedgnbV1dX43//9Xzz33HMYMmQI9u/fj2nTpgEAli5d2tnPo48+imeeeQarVq1Cly5d8Mgjj+Drr7/GW2+9hezsbHz77bc4ffq0rp+FDBWCiBRmvaJFG5SOyz+zzcbPHak4FUHg7w8ZEvmxxRHBQoUEgYcK5edH/hRtbW1FS0sLbr/9dvTv3x8Ar7UnUlxcjIceegiTJ08GAFxwwQV4/PHHsXDhQi9D5Z577sF9993X+fd3332HK6+8EoMGDQIA9OvXT/fPQlM/RHQTLdMoFPyoDWb1sUcai4V74QB+N/RE/HvVqvgz4CKMmUOFsrKyMGXKFIwaNQq/+MUvsHr1ajR4TAV++eWXeOyxx5CWltbZpk6d6lf3SDRIRKZPn45NmzbhiiuuwMKFC/HBBx/o/lnIUCGil2i6aZn5ihYtUDquNwUF3AuXl+e93GYj71yEMDJUKCMjAy0tLX7Ljx8/jszMTADAK6+8gp07d2Lw4MHYvHkzLrroInz44YcAgJMnT6K4uBhffPFFZ/vqq6+wb98+LwXZbt26efV/22234eDBg5g7dy4OHTqE4cOHY8GCBdp/QA/IUCGik2i7aVHwY3iQR0qaggLgwAGgshIoLeWvNTVkpEQII0OFLr74Ynz22Wd+yz/77DNcdNFFnX9feeWVWLRoET744AMMHDgQpaWlAICrrroKe/fuxYUXXujXghUPzMnJweTJk7FhwwasWrWqs9CwXlCMChF9mHliWA4KfgwPNR6poUMjNixTYLHE32c2CUaGCk2fPh3PP/88Zs+ejV/+8pdISkrC3/72N2zcuBF//etfUVNTg3Xr1uGOO+5Anz59sHfvXuzbtw//+7//CwBYsmQJbr/9dvTt2xdjx45FQkICvvzyS+zatQtPPPGE7H6XLFmCq6++Gj/+8Y/R1taGN954wyv2RQ/Io0JEH9E4jSJe0eRKyAsCYLdT8KMc5JEiTIiRoUIXXHAB3n//fezZswcjRozAddddhy1btqCsrAy33norUlNTsWfPHowZMwYXXXQRpk2bhpkzZ+JXv/oVAGDUqFF444038Pbbb+Oaa67B9ddfj5KSEpx33nkB95uYmIhFixbh8ssvx8033wyLxYJNmzZp/wE9oOrJRPSxcSOPSQlGaSkwYYL+41GKOF0FeD9+iVc0iiuQp6qKxyAFo7KSvAuEYrSqniylOmC3cyMl3n/SWlRPJo8KEX3oPY2iVyYRBT+GDnmkCBNDoUL6QjEqRPSh58Sw3oJsBQU8dibedUBU4oQF30xdjR8vHQtAgAAJjxSl4xIGQqFC+kEeFSL60GtiOFKZROIVbcIE/ko314CUlwMXnOfErKVZKMEcHEW29wpqPFLRortDEEQn5FEhohNxGkXK+xHKxHA0ZhLFMufUZz/6cz1annsH/4YDmTjZ+fb3yMSHuB4DRl2ICydeB2Rl8W0CfTdUvoAgohIKpo1F4kliXKvPSsGa5kHKoFBCIKNDrnyBIPBlY8YAP/oR/27JyxU3aBVMS8ijRTAteVRijXh7atRqYjja019PnwaKioB9+4ABA4Dly4GUFKNHpRzR4Ny2jXvEQqGujhsjmzcDOTlu43Xw4OBicQ4Hf33iCcBqBdati83fC0FEIWSoxBJU9C50ws0k0tiL5Wx34qu11Ti1vwGp/XvjshlDYEmU6W/0aH6DF3n7beCFF/g01euvhzwG92B09tCF6kGRgjHg7rsBl8u9LCcHOHpUeR9NTdzD4nDQ74UgzACLclpaWhgA1tLSYvRQjKWjgzGbjTF+qfZvgsCY3c7XI/wRj58gqD9+Dof/sbfZ+PIQ2FnkYPUJeV791SfksZ1FEv3l58t/5wB/X80xqKxkrLSUv3Z0aP7Z/HA45I+50c1mo99LjHP69Gn29ddfs9OnTxs9lJgl0DFWev8mQyVWqKxUdvGtrDR6pOZFvGn63jjFZVI3Z4cj8PFWeUPfWeRgToC5fPpxAcwJeBsrp04p+85PnVL22X0NEqtV3miTOx5qCGZcm6HR7yWmIUNFf7QwVCg9OVaI9hgLM6BWkM3pBKZNC9zntGmKU2Cd7U5ctHIaBAC+smbisgErp8HZfq6/oiJF/QZdTy4tu6lJen3G+Gu4RQCDlUIwA/R7IQjDIUMlVqCid9qgRmKyqkr+Zi7S1MTXU8BXz1chy9XkZ6SICACsriZ89fy5/vbtU9RvwPVEY0s0PpTCWPj1lKLBCKDfC6GUCGv0TJkyBaNHjwYADB06FIWFhbruz0jIUIkVSGJcO5QKsik0QJSu16Va5XoDBijbf6D1nnwyuLEViHCMDSOMADVBwBkZ/GZDonBEMMrLgX79uMTBPffw1379tBOJjHPIUIkVjCzjGQuYQLE0LV3lesuXK9tAbj2n033OhErPnvLvBTumwYxrPVDzvba2AiNG0A2HCEykFK1lmDJlCt577z2sXr0agiBAEAQcOHAAALBr1y7cdtttSEtLQ25uLiZNmoRjx451bjt06FA8+OCDKCwsRI8ePZCbm4uXX34ZP/zwA+677z6kp6fjwgsvxFtvvdW5zffff4+JEyciJycHKSkpGDBgAF555RVdPyMZKrEEFb0LjVCfhpTqtyhczz5J5XopKTwFORD5+fJ6KtXVQHOzon2qRskx9TSuzUyEbjhEFBJM0RoIP5YrCKtXr8YNN9yAqVOnoqGhAQ0NDbDb7Th+/Dh+8pOf4Morr8Qnn3yCv//972hsbMT48eO9tn/11VeRnZ2Njz76CA8++CCmT5+OcePGYfDgwfjss88wcuRITJo0CadOnQIAPPLII/j666/x1ltv4ZtvvsGLL76I7OxsqaFph16RvpGCsn4kkEozJaSRS49VktnS0SGfGeOZOaP0+Hd0sDNpVr+MH8/MnzPpEv3JpSgHS00uLQ0/K6a0NPxjWlRkfHZPsEbp/TFJ2Fk/BmZbTp48meWf+43fcsstbM6cOV7vP/7442zkyJFey2praxkAtnfv3s7tbrrpps73Ozo6WLdu3dikSZM6lzU0NDAAbOfOnYwxxn7xi1+w++67T/E4KeuHkIaK3ikj3Kchi4UrmAZi3Trlx99iQdKrvD/fEYl/J62X6O/114FTp4CZM4GRI/nrqVPBxd60iBHx7UPtMXU6+dSQ2dEieJiIPUycbfnll1+isrISaWlpne2SSy4BAOzfv79zvcsvv7zz/xaLBVarFZdddlnnstzcXADAkSNHAADTp0/Hpk2bcMUVV2DhwoX44IMPdP8sZKjojQliHwgZgqXHKrk5FRRwBVOp6bZQlE0LCiA4HECezXt5VhaE4mL5qZ6UFOD554Ht2/mrEvn8IUN4Mb9QkQrOVntMoyFF2ROdbzjOdie+WFWFDx7ciC9WVblT0QlzYuJsy5MnT+IXv/gFvvjiC6+2b98+3HzzzZ3rde3a1Ws7QRC8lgnnYshc59Seb7vtNhw8eBBz587FoUOHMHz4cCxYsEDXz0KGip5QJLi50eppqKAAOHjQO6X5wAG3kXL6NDBrFjBqFH89fTpof8LBA0BxcachITQ3A0uXanv+WCzc+xEKgiAdnK30mNbXc8NdrLETLeh4w/lwYTkaU/vhirnDMPj5e3DF3GFoTO2HDxfS9cK0mCTbMjExEU6fh+CrrroKu3fvRr9+/XDhhRd6tW7duoW1v5ycHEyePBkbNmzAqlWrsC6YZzlMyFDRC4MjwQkFaPk0JDfdNno0kJrKa++INXhSU/nyQGzbxg0T32DXujpeh0ar8+fhh3kRPjXY7fLB2UqP6dy53HB//nl1+zaKQDccDbymHy4sx7XLx6KX0/t60ctZj2uXjyVjxayYJNuyX79++Ne//oUDBw7g2LFjcLlcmDlzJpqbmzFhwgR8/PHH2L9/P7Zv34777rvPz6hRw5IlS7Bt2zZ8++232L17N9544w386Ec/0vDT+EOGih6YIBKcUIDeT0O+xQI92bZN3ljRWPE2IGKcjZIU4cLCwAJ4gPKUYzVFAs2C1A1HA6+ps92Jvs/OAcD8LsgJ56KT7M8W0jSQWTFBtuWCBQtgsVhw6aWXIicnB9999x369OmDf/7zn3A6nRg5ciQuu+wyFBYWonv37khICP3Wn5iYiEWLFuHyyy/HzTffDIvFgk2bNmn4aSRQHLprUkyZ9UN1d6KHUOr7KCGcOjwVFcq2ragI77N7IlXrR2x2u7rjIHdMo7kVFcl/TqkMIRXnzucllYrG8HlJpfLvgFCEprV+KNtSEi2yfrroawbFKSaOBCd8EJ+G5szxnqaz2fgTdKhPQ2rq8PhOfyhVvF2/HjhyhE+3DBmizL3sdPIA1oYG7+0KCnigbnU1n548ehTIyeFPiUr7FvvPyuLHc8MGwENcCjk50elJEQR+rP/nf9zHAwjsNRUE7oHKzw967E7tV3YdULqeYuTOBSI0xOlfQnPIUNEDE0eCExJ43qS1umhrUYcnGBs28AZww2r16sCGVXm5tEEmbid3oXU6gR073AbU0KHecThijMZLL/GsoxMn3Nvm5AATJ/LjW18P3HtvyB/XMBjjBpY4dpsNmDpVeXZTkJtXan9l14E+x7/mx9n33GxvB9auBfbvB/r3B2bMABITA3cW7FwgCDOhl7snUphy6kcsXy/n+ibxqNhn5kxlUwozZ/pv++aboU9RyE03yE1TiOejuJ2v+3rLFmlRO6uVb+NwBBa985wGUTolavamZkpLShDPh462DlZvsTEnpPv1EwC02fjx7Ohg7K67/MdjsUhPVQU7F8Kd7oxCNJ36ISTRYuqHDBW90Cv2gTCOtjbGVqxgbPRoxu69l7Ht2+WNzXBiVFasCP0marXycXoaG21t8vEnYsvIYGzTpuDrhXpjt9uVjSPWmsI4tJ1FDuaE4GesuCBhqIjXlOTkwPuWMlbEh6hg31WcPESRoaI/ZKgwExsqjEkHKKoNTCTMQVERYwkJ/hf2tDT571NO2l5schL3s2aFd3P09XBkZxt/wwYYKy4OXnIgVprUDT9IsOXOIgerT/C+XsiVU1DULBZuHHpCgf5eiDfRU1IPDIQmnDp1iiT0TU1BARf+8hQCC5TaSZiThQt5BeJzyoxenDwpr2vicAA33ijdZ36+vMR9a2vIQwUANDV5/+0Z0GokS5f6jy0WUKKfESiN+VyMz/Vnq9G7h7cYYFh1pZ1OHrviSX29sm3jJNBfVGAVC+4R2iMeW18FXDVQMK3eUCR4dNPeDjz7bPD1Zs/2zvCQClZMSuLnwp//LC9x73QCf/tb2MMmIsSUKcA773gbAL4ZY2VlgE/FWgB8mzFjuODeOQMuLMNECo+aLigv50J7SujZU+uRmBKLxYLu3bt31rFJTU3tlIwnwoMxhlOnTuHIkSPo3r07LGEkJ5ChQsQXajMk1q5VJqxWX+/O8BBViRnzXqetjavTvvWWt1fNM020sTE2vQ6xyvr13DApLgYGDPDPGNu6lasVSyGeH3p+3/3781e5c1KOKVPiJgOoV69eANxF9wht6d69e+cxDhWBMaVnrjlpbW1FZmYmWlpakJGRYfRwCDOzcCH3jngaHhYLMG8esGyZ9DYPPqhc5r20lD859+sXOHXVauUGicUi7Xkhog9B8FchLS/nHhOjsFh4FW2LJfg56YvoVYiQsqoZcDqdOHv2rNHDiCm6du0a0JOi9P5NHhUiPhDjTHxxOt3LpYwV8YlUCb17K6sG3NQEPPkkMHCgsTeySGC18mmxpUuNHom+MOYt8CaW0TCSMWOAxx/ncXJqDWHx+XXaNCAz01s3J0axWCxhTU8Q+kEeFSL2aW/nhQADTeGIT5++00BKtgW4YunBg8CWLTxYMhg9egAJCdE7zWO18hpBAL+Z+X6OtDSuuvvww/xvtU/00UplJb+pV1XxgFkjEAR+Hre1addnIDE4UrglQkTp/ZuyfojYR0mciVSGBMAv+PPmBd/Hc8/xi7NSteHvv48OI8Vu58GgFRXA4sW8VVQAhw5xqfy2NmDzZq5I6/l+UxNw883ccKuuVhaQHAuI2TJGZc0MHcq9IVoaKYB81XcNijISRDBo6oeIfTwzH0JZT5wSWrnSP0U5LQ149VX3k+aQIfwG3twc2lgDkZ7OKy7/6U/a9+1LVhY3Mjxc/s6hw1FdDVi2leOaCf2RfFRGfr28nE+Z+cqz33UXN2piGdFQNaI8xuzZ7pIKWiM63qdOdU8FbdsmPXVZV8eXOxzu34VSr0so5QCI2EcHfZeIYmrBN8IclJQoE7kqKQncj1Jl2uJi7YTD7r3XWyCso4OLzOktVuYpqV9Rwb4es5iVpC9mS/AocwLMKbWNIHBhvEDy7HqP3ciWk+M+H4KV0dCjTZ8euX3l5QX/Lq1WfhykhC/FMgCeFBVxkTrP9YKVAyCiGlKmJQiRtjb/C6Bvk1LxDJWOjoAKrE6AdcjUdfFrFRXeXc9bEJ5aabCWlcUNLfEGk5Xlt07A/Qc7zrHcysq8zwOHw/gxGd2WLlVWV6ioKHA/ZKzEJErv3xRMS8QHclk/IkVF8inKoXAuNZXBW8TLBQEAUxQcdjY1AwnfN8OSyF3ke0cvxEXblmsvCiZFWhpw8qTf+AkZ5M6fuXO5+Fu8kpICnD4t/Z4g8CnBvXv5tKaaYHcK4I0JTBdM+8wzz0AQBBQWFnYuO3PmDGbOnAmr1Yq0tDSMGTMGjY2NkRoSEU8sW8ZvJr4XM4tFvZFyTvIcr73Gb0Kvvcb/9rzQFhTAWeZAg8XmtWkdbPgbfqZoN2+dGoJ+/S0oLwfKN7ej/7YIBqSePAmAjJSgZGfzWB658yc/P7LjMRtyRgrAfSW1tfz3pybYnQJ4449IuHc++ugj1q9fP3b55ZezOXPmdC5/4IEHmN1uZzt27GCffPIJu/7669ngwYNV9a3L1E+Q4mFEFNPWxmNRZs3ir2qne6Tm28XmM+9eWclYAjrYLahkd6OU3YJKtgzKp25cAPstihjA2G9SS4x341Pzbz5Tc34Eq1ZMjbGRI5WtN2uWuyq973tUlT4qMU2MyokTJ9iAAQPYO++8w2655ZZOQ+X48eOsa9eurMxjXvebb75hANjOnTsV96+5oaI08IswH3obmGVlwS+mHhfL0lLvt8ZgC3NBeUVccd0xKGPPQWVFZbNUTI71Vloa/LyhWJXA7YEHlK23YkVgo0+qYjVhakxTPXnmzJn4+c9/jhEjRngt//TTT3H27Fmv5Zdccgn69u2LnTt3yvbX1taG1tZWr6YZYj0MX2EqOQ0BwjyUlwPnneftDj7vPO2+s7Iynl4bDMa4QqnT6ZWhmgAn1mIGBCifThHXfQEz8F+cr3ysVis/Z8Wq3QMHKt+WUEegNGRxirCtjdfOIaS5447g8SUWC3DZZYFFAxnjU0nV1dqOjzAcXXVUNm3ahM8++wwff/yx33uHDx9GYmIiunfv7rU8NzcXhw8flu3z6aefRnFxsdZDdUteM+b/HmM88MtTIpswD3I1VcTqtJ56DqH2L1X9Vo5zF8shQ4bCZuPDGMKq0RPHQtp9Lo7i37gMHbDAAqesocNwzgi69FL3jTEhAcjJCWm/RADEQNAhQ6Tfl6rhJAjS15doJiUFSE7mAoahcvw4F1UMFOx+zTXAiy8q68+zkjURE+jmUamtrcWcOXPw2muvITk5WbN+Fy1ahJaWls5WW1urTcfBarSQtW5OnE4u4R6IadOUVUCW6z+Umi0NDbBYuAYaAPRBeEqlPXEMK8EVcuVudZ0GTHU1sHEjb6+9xj0rGsICjCGuWLVK+qFFzjMba0YKwINlRSOlWzdg1Cj1ffTuLR/sLvLhh8Drryvrb8YM7gElYgbdDJVPP/0UR44cwVVXXYUuXbqgS5cueO+99/Dcc8+hS5cuyM3NRXt7O44fP+61XWNjY8CS0ElJScjIyPBqmqBU8tooaexIIrqsN270z2YxG1VVwaXom5r4eqGgpMigFL17A04nCrKq8OGcjRiQEV4226mM3lgkLMNyFMEJ74t5pA0HNdNXAbnmGi65r8ZbZQZycuSrCgfyzMY6P/zASykkqLitZGW5vVLLlvEU5JIS4NZbQx9Hays/pxYuDL0PwlzoFSTT2trKvvrqK682aNAgdu+997KvvvqqM5h269atndvs2bOHAQYF01ZWKgvoqqwMbz9mJ9qCiRcvVva9LV4cWv++EbFKWno6D7zNy/NaHqpQWwcEtmvcUubY0sFsNsa6oI3NQQlbgxnsODLDE4BLSGDsjjuMCaL0VHLNzzdmDKG0DRv4mKWCt5VeR6i5m++1paPD77cTcvMV4SNMhdL7t24xKunp6RjoE8TXrVs3WK3WzuX3338/5s2bh6ysLGRkZODBBx/EDTfcgOuvv16vYckzZAg6AwoY838/2Jx0LCC6rH0/vxhMLPcUGQvI1RgJpWbLbbcB48b5LQ7VC2EBw4/LivHjd59H/kvrUJ1dgIaGQlx0qAqZCyQKKSrllluAt9/mXqO//CX0fkLl6FG3pyuaplTz8qRjUGw2/jshlCMI/DimpwPvv8+X9eihXZzJL3/Jg5nz8kgULpqJkOHEGGNe6cmMMXb69Gk2Y8YM1qNHD5aamsruvPNO1tDQoKpPTdOTxRx93zz9eMjRD6b3YNbUv4oKZU9WgfQuAtUYUVuzJT2dsW7dIvIEevS6n4Xf1+bNkjL5EWtG7lttE38DW7bIa3kYPUZq8i07m393hGkwjY6K3kRER8Vuj20jhbHonfoKUleHAe7iaFIoqTEiZ8BKtSVL9L/g2u2MnTqlb80fat5N/P7LyoILuFksZLSYuVHdINNgGh2VqKOgADhwwK1BUVkJ1NTE7pSHSLQGE1sswLp1gddZt06+pPzKlYG3XbkSuP12Pu2Vlye/ns3G06BraoKPOVxqa4H580neXglaZRzabPwcyM4OHlztPFdbmjAny5fz75KIGnTVUYlaLBZg6FCjRxFZlMZihBKzoTcFBdxIkIoZWL1a3shcswZwuQL37XLx9ebP5xo6YiG0nj35+0eOeBdF+9OftPlMwfjww8jsx6wkJwNnzgRfT8k6cgwbBkyd6v39btyobNvCQn4zDCVjjNCfGTOAO++kmJUogTwqBEcMJhZkntMFAbDbzRtMLOUJO3AgsCfsH/9Q1re4nmjATpgADB/O24QJfJl4wQvl+OTkALNmqdtm/371+zELatJXfbFa+Ws4BohSqqqAf/8b2LHDnaav1FDPz3efj3PmAFTZ3VwcPRpdAdxxDhkqBMdTnczXWBH/lhO4MguehoSn8SBHWpqyfj3XC6YxM2uWshtxdrb7/0ePAps2KRuLiJalIyJNMC9WICI5pcIY8MwzwBNPACNGALm5wLFjgQ16wG3QWyxAczP39kXz9xWrmG0am5CFDBXCTUGBdCyGOD8fa3E699yjbL1Jk/irkvLyiYl8migYx44F/puQprnZuH03NfG08wkTAq93993cSJFTqCXMwTlRxqgRt4xnIhTcqxuaZ/0Q+lchNgNlZcoqDKel8c+vpry8w8FYaqp0f127Gp/1QC28ZrMxNn++/PtKs4OoybawMtqUCBiKaebRJG4Zgyi9fwuMMWa0sRQOra2tyMzMREtLi3Zy+kRss3Bh4AJonjgcPN6ge3fg5EnpdUQxwJoaYNs26QKJRGyRk8On7KQQBD61J/c+oQ9WK5+i27w58HqCACxYAKxYwc0T3/cYcxegJZE4XVF6/6apHyK+KCtTZqQIAi+SVlAATJwob6QA/MJWW8tdx5MnazZUwsQEMkIYIyPFCJqaghspFguPB9u40d9IAdzLVq2SntolDIEMFSJ+cDp5WqISGONPXFu28KaEF14IbNAQBGEsTidw6JDyuCGxfAgZK4ZChgoRP1RXqw9a/dWvpJ+8pPjzn9WPiYg+lE4xZ2cHzg4ijEFNar8YvTJnDgXaGggZKkT8oDYdkTHg+HFdhhL3RHM8WWtr8LgFqxWYOZOfQ2SsmIv+/dVvU1cHPPmk9mMhFEGGChEdaJFGaEZVXV+6xIhYtCjMJneT/v3vg+uRRIKMDF6t1xOrNbjGTrDzr6kJKC7mfWVlhTdGQhtE0cpQrwNLl9IUkEGQoUKYHyn9kt691dfrENV3zUw0GFNyLF7sVgVubOQZU76aPHY7Xz5unLzAYCgIgr/BoYTWVuD77/n/s7K4cdHYyD1p27cD6enhjaupyW20xHo2mFZ1lfTk2Wd5xk+o0BSQIZChQpgbOdGso0f5zW7hQuV9WSz8QqWGSKcm1tZGdn9aYrF4qwIHK/ApJzAYCowB114bXh/ffw88+ihPMbdYuHjfiRPhjw3gmWbjxoVXPsDsRKKsQaioKSoZiLo6kt43gBj+1RBRj9PJn2ACBbMuX85TjpWSk6N+DIQynnjC/7vwLGswaBA3Oi+/nBeEO3nS35gpKQl9/4cPK1uva1fp5eJ5VljIv3ctJdZPnuSKteGUDyBCZ/BgoK0NeOed8Psi6f2IQ4JvhHmpquLTPMHIyeEXDyXej40blUvnE6HhcPiXW7j2WuDjj/3XHTSIG5sNDXzaa/BgHuxYX6882wrgUz/dummXHl5ZyV+VnH9EfFFZyY1vImxI8I2IfpQ+uaiphBrNMSDRguiREJEzUgDgk0+8Y4/69+eeB7XPT4xpq2HT0BC8ojgRf1gsJOZnAGSoEOZFjVGh1KiJppvPJZfwFNef/hQYPZr/PxqorXUbjidPyhspUtTVcaG9ULn66sDvy037+NK7t7uieHQ7nQktcTqBu+6i7J8IQ4YKYV6GDFEeU6LUqBFvPoD5jZWGBuAnPwF27wZef50r30YLouEoVp6OFLffzmu0yHH2bPA+srKATz8FXnsNyMyk9GLCH1+vIaErFKNCmJutW3m2RCDsdp5NoiZDp7ycB+p6ZgBkZgItLcG3nTmTp8I+8YTy/YVCerp2WSeRRpzHv/xy4KuvIrdfQQCWLAHOP58bdz/8AFx4IfCXv/C4F4LQCopVCRuKUSFig7FjeXFAOQSBFxBTm0YslTqrJCBXTHG+5BJ1+wuFH37Qfx96YLNxbxgQmgpoODDGNUumTOGGyjffAL16kZESTZjd0ylC2T8RgwwVwvwsW8YLA2Zney+327nHxTfDRCmeqbNDhwIpKcC8eYG3mTeP62tEIqAuWlNZp051G3x/+pOxY6mv54qiRPQQLU5+CsyPGDGi103EPOPGcYOkutqdyjpkiPaCbMuW8deVK70NBYuFGyni+2r1WOKJ88/nXq79+7lHZdAgnt1jBNFy0yPCw2KJbMyI3e72GhK6Q4YKET2IHhC92bvX35vhdAL/+Y/7by3UVANxwQXAf/+r7z70YsoUfyOvRw+3VD1BaMGUKcCIEfy3OHgw8MEH/CEmO5vHRdXUAO+/D/z739rvO5TpZiJkKJiWIDwJpPkB8IyS118HTp/mXh0lwbdqSEjg6q4VFcCLL2rbt9GkpWmrdRIKgkBelljBauV1mQIZDI88om3Qe0IC8PDD7nNo6FB3yQhCNRRMSxBq2bQpuObHtm18Cig9PTQjJSuLZ8LIMW8en+JauVJ931ohCHxqK5Qif4EwOji4uFh/TxgROZqauHp1ILT2wKamAo8/zo2fJ57gHp3cXG9dlfZ27nF58EH+2t6u7RjiEPKoEObE6dQ/HsV3f5mZkbmZBvMsFBXxWJj8fJ5WS4RPTo47FT0vDzh2TP99JiXx+jKEfixezA0HKZxObsiMHh3492a1cn2d1tbwxuJwAB9+yLMCPeNlEhL4A8jy5eH1H4MovX9TjAphPqQ0Tmw2LtQWaoZPMKqrI/fEH2z649lneQDqP/8ZmfHEA0eP8sDeqVMjY6QAwEMPAY89RlNNelJTA+zYARw54v1AI3UNCUS4RgoATJ4s/dt2ubja8r59fNqYUA15VAhzUV7OtVN8T0tRWyGcdORAULHC2CfS8Sl5eVzSn7xi6ghH6NBm43IDK1YE/66NiFfatIlL8BMAlN+/yVAhzIPTCfTrJ/8UJAj8QqRWhVYJSis1EwShL+EYKmYPls7M5LE1FHwLgIJpiWikujqwq5Yx74J3WiIWKyQINdANR3vCKRthZiMF4AH4ely/YhwyVAjzoFSSWg/parFYYSD57quvphtTLKGFVPuECeH3QcQXJL2vGjJUCPOgVJJaL+nqggIeA+PrWenWjcewfPJJcIn9KICda6rp2lX9NoMGhbIn/cnI0KYq8oYN4fdBxAZKDV+S3lcNGSqEeRCnX+R+8IKgv3S1VLHClhbg7rv5+8uW8fThcDwr4udL8Pn5WSzA3Ln+NY00xFNvV7Wx8otfqN/hyJHqt4kEJ07wWAEKbCS0wGrlv91gkPR+SJChQpgHcfoF8DdWxL8jIV3tW6zQd3/LlgGnTgElJcCsWfx10yY+RiVPVTYb11w4fdq7j9de46q0OqbPnrHaMRYOLEcRXGp+/jYbMGOG+h0q+a6Sk9X3Gy5iLENZWeT3TcQeTU3ckM/Pl18n1ErvBMCinJaWFgaAtbS0GD0UQiscDsZsNsb47YQ3u50vjzRtbYyVlDA2axZ/bWuTX1dq3BkZjF1zDWM//SljixYxVlHBWEeH9Lae22ncjiOdLUYxq6zo6BzmPfij8j4cDv7Zs7PV7VvJ+lu2MLZpEz9WOh4DalHerFbGBIE3o8ci1UpL+W9Z6lw26vplcpTevyk9mTAnkVamlWLhQn+VSd8qyr6I4165Evjb3/hlypO0NODVV/mTl/j5srOBMWPCy3YIAp/yEfDBnC24aXQ2XPUN+O/ORlz4ggJ3dXExMHCgOgEtNRQXAy+/rG3fZk9TJdTjcPDXadO4B8NsVFa6JfvNcP2KAkhHhSDCYeHCwJLXosx9KNsCfE47whdbFwAhwQLB5WN4eRpivohxMytXRteN324HfvlLYOlSo0dCaIFYgHDbNm7UmwkpfSdRvl+sRUTFCyUhQ4UgQn2qaW/nxceC3cBPnQISE/23TUnhstmEMSxeDDz6KP9/v35AfX10GVmENBUVwJQp+nj1QkVKMbu8XNrrY7UC69bpVwYkCiHBNyK+KS/nN6lhw7g0/rBh/G/PKqdyrF0b2EgB+Ptr10pva5CR0pamQbptLDB8ODckAwVnE9FHVZW2Ropv1l1Kivo+bDZ/I2XMGGlvaVMTf0/JNYjwggwVIvYQ6wX5XtTq6/nyYBeK/fuV7UdqPaXbasm5bKOkojmR37fZyMnxTv8UtXHy8nTbpRNCaLo0hDq0fgAoLOTni8jp08q3zcriHp6aGreR4nQCs2cH33bOnOAPQoQXZKgQsYXTyS8EUq5+MQZ/yhTg7bflLxb9+yvbl9R6SrfVEvGp7uGHAZsNLJ69B2vX+k/v3X47v4GoSYP2fdr2wAWgBel4HL/BT1CBu7AldBE9Qjnr1mnX1403ckmAo0dD27652e21E6mu5g9DwairIxl9lZChQsQWweoFATy7ZtQoIDdX2rsyY0bwWBaLRVpXZMaMgDc5zVm82P1Ud26qQwDic6pDEIA77vBetnAhjzdauBA4cyZ4H2PG8OwNURfHBzF76j6sxxI8iUoMhwNjMRYOnECaFp+CkCNY8LkY1BpINBLg3pA9e8KPW6qv59NRGzfyVyVGigjJ6KuCDBUitlBzAZCbM05MDC6VP2+efyCtuO38+crHEC5iPIZIOFMdZjRu1Bh9jPHvRbxxFBXx7Cs1bnaHgz8tjxsHLFjgZ7C6YMFyLMCf4R0QKQBIww/kVVGD2gyYQIaFeO6uXh04LkkQgJ/+VJuMu7lzvWPglCjTipCMvjp0V3TRGRJ8I7yorFQv1GSzSYuwFRUxZrF4r2uxMDZ/Pt9PaSl/lds2IcF/X127aicwlZAgL0DX1qZOQC0pyXjBLKkminv17Ru5fdpsjJWVSQqLOSEwJwS2GMXsHmxgc1DCJuKPrBE5zGX0sTJr8z2OWgi2+QoJ+gqqyYlGlpUxlpUVmc8p1+SuN3EICb4R8YnTGVpKqqdYkyft7TzuYf9+Hn/Spw/3mHhOL9ls/CnON+2wvR14/nk+HZWeDkyaxD0EI0aE8smkKS4GlizxX15VxZ/yiNDIyZGNX2DgHhRCAVYrz6bx/L1kZgL/+7/AmjWh9/ub3wA/+Qlw5Ii89IDvb3fGDOCDD4z/XTgclKJ8DsX374iYTTpCHpU4paND3qvhcKh/ahPlrwMh168o661EIrujQ9snuqws6aez0lLjn6SpUQMYGz/e37so5W1U22w292/O93qwZYu/R8VmY6ywMLx9KvVSpqf7L7NaSUbfB/KoELFLebm/nLuvV6O8HJg4UVkAJSDvURERPTVygbpS6pRyY9daWVNq7Dt2aOu5IQizUlTE45KCBdFHsqzChg1Ar16kTBsEpffvLhEcE0GEj6iR4nvBETVSRPGlggLgscd4tocSgqUpBssmYgyoreUXJotFWg1XTJ3WGt8AYtGQI0KD6gRFF8HKVYhE8jvNy+OGyfDhkdtnDEMeFSJ6UOvVOH0a6NZN2QVKELwVJn3ZuJFH9wcjK4tnjYh4enr0ihspKeGp1r17A8eOAePH042WiF4SEqK7BIXdHtyzSgAgjwoRiyj1alRXc2NBTvhNjsJCXtVY6gKjNJ3Q00gBvD09bW3Kx6IUsWig599qPrMBxREJIiBGGSkWCzBzJvDcc+H1M2gQfyjxneqRCu6Vkjgg/NBVR+Xpp5/GNddcg/T0dPTs2ROjR4/G3r17vdY5c+YMZs6cCavVirS0NIwZMwaNjY16DouIVpRqpGzbJi2hHwhPI0eKIUOCC0nJ9QtwI6hnT3XbAtyQCISvRogSzZAHHuBz6JWVwObN6scUJbBzTfZmkJrKPV1mq8ZLGIPTCZx3Xvj9/PnPPD7MU1BSFB6cO5dnAs6d6xYiJIKiq6Hy3nvvYebMmfjwww/xzjvv4OzZsxg5ciR++OGHznXmzp2Lv/71rygrK8N7772HQ4cOoYBStwgplHo1Xnst9KkPOWMonAJ3ohEEBDd2LBZg6VKgtJQbEo2NPJ3RZvNfL1Sys4G77+ZPfL4eoBhCPMqsvV16hVOn+I1EDHgkiCef1K4vUVBy9Ghp4UGnky8nYyU4EchA6uTIkSMMAHvvvfcYY4wdP36cde3alZWVlXWu88033zAAbOfOnYr6pPTkOKKjg6cYyqUeCwJjOTnhpR9WVgYeg5SQlNWqrO/SUneKs9xn2LJF/rOL6ZclJeGndublcfErpWOnxtuYMf7fPzVq4bSEBMb++Ed58cgYRun9O6IS+i0tLQCArCxejv7TTz/F2bNnMcIjjfKSSy5B3759sXPnTsk+2tra0Nra6tWIOCGYV4MxYMKE0PoWBB4E51l5V4qCAuDAAe7tEL0eSqdPeveWl7i327nnZNw46W0tFu4BmTABOHhQ2f4CUV/P90XxKeqYPh1YudLoURCxhMvFBfCGDePJAsGqu8cjETKcmNPpZD//+c/ZjTfe2LnstddeY4mJiX7rXnPNNWzhwoWS/SxdupQB8GvkUYkjHA55T4Aa2XixqRFskyKYpwfwl82WE6xra+Mek1mz+KuvRH5Hh798OLXINKuVfx/heu1M1pwmGAO1cy3ca1GUYTqPysyZM7Fr1y5s2rQprH4WLVqElpaWzlYrzv0T8YWcJyAUD1tWVuDU5GAoiV85fZoH+XpuI3pIxOwAJQF31dU8BTkYkazgHC+8+CLP2gimuaMDTMe+BTMWo4xX2LlvurBQXTHNGCciV7NZs2bhjTfeQGVlJWweQYG9evVCe3s7jh8/7rV+Y2MjevXqJdlXUlISMjIyvBoRRzidwOzZ2vbpafS0twOrVgEPPshf5QIxfRGndM5Na/rR3MwzkeTcugsXKgu4U5r5NGsWcO+9ytbVGD1vqmpg0GgsVitXP503T12FXA0JZEqE+xkFptM3lpSkfpuMDCAtTfuxRBOMeWcgOp084FusCh6PBoyebh2Xy8VmzpzJ+vTpw/7zn//4vS8G027durVz2Z49exhAwbQEk54eCaU6spJmtTK2YIF/teSEBMZuv11ZoFtHBw9SDeTWtdv9+2lr89+vb7NY+HpKP39lJWOLFxvvyo7mlpXF2OTJjBUUhN+XOC2oReXgWG6zZxs/Bq3b4MGhbbdhA2NLl/rXDfKscRTlKL1/Q89BTJ8+nWVmZrKqqirW0NDQ2U6dOtW5zgMPPMD69u3L3n33XfbJJ5+wG264gd1www2K90GGSowilV2jRVGxcJrNxlhxsXQhRMbUGRGeKM3imTmTX7xycgLf8CwWnj1UUWH8RdqA5jrXwu5LqrBcqI2yqyJ/zD2b0QZicrL6QowpKYE/TwwYK6YwVAD/oFcA7JVXXulc5/Tp02zGjBmsR48eLDU1ld15552soaFB8T7IUIlBAlUpNvpC6tl8n2yUVizesMHbUzRjhj4X5i1bQr9BWq2M3XWX8cc4VhoZKpFtvkaB3c7Y5s3BPZd6tylT+O89lKB/39atG2MrVvgH3EcRVD2ZiE6C1fMxE2IQohiIq7SWT06Od0BmZiZwLnVf07HZbMBddwErVqjfPieHpy+vXavtuAgikhQWArffzv9/5AgPaDdSjdlm4/IGono2wM2OcLBYePzUsmVhDy/SKL1/k6FCmAu9CvfphWchRIAbWfX14V98CIIIn7Q0IDnZO1MuLY2rEkvVFPItKqoHlZU800+scu75UOb7EKOGoqKoM1aoKCERnSjNajELjLkj9IcO5WnKY8dyA4aMFYIwlpMnefNdBvDU/1On3MszM3lRwscf13dM4jUuP5/vUyzhMHQocPhw6Nl6K1cCl13mFq6MoerNZKgQ5kJpPR+zIV58xDTlUJ+Uor3EfbTRtStw9qzRoyCMwNNIAfj06+OPc4/LDz/o96CxbRtP3fa9RqxfD0ydGnq/osItwL28q1eHrg1lMmjqhzAXYoxKtE2fiO5cEaeTe1kaGrjxVV+v7Enpj3/kui779/PP/8ILug2ZIAgDkHsYEWPesrLCL23hGz9nUihGhYheysulA80iMZ2i1qPhGaMSyNWqNPbG0+CJVqONUE5GRmhqyvHOrFn8d/fQQ0aPRFsEQRtDRexLybXJQJTev0lnmzAfcoX7bDZeuM/h4GqherB+PVBSAtx6K7+JBEJ8alm1Sv5CIKpK1tfz6R85uXKpoohKpPmJ6Oa++/j57KHYTSigogJ4+GGjR6E9jHEjpbg4/GucZ/xclEMxKoQ+iFMf9fU8NiMnhxseSoO8Cgp4sJnn9Im4rdPJ53f1oKYGWLLEXWtD3P++fcC6dfzziNhs3EiRc61KRfVL4WnwANywET9zfr50zIuWTJnCjbLnntOnf0Ke1auBm2/mKatVVcD48fpnnUQKPT2ge/bo069ZGDAAaGzk54QYbPvuu8AHH6jvK9oSFKTQWc9Fd0jwLThyhXp1Q0pVVmxayD/rJaMvjk/uAKk5kHKidVLNbufry6nxOhx8XxUVXNZdj89ttBBWvDaxrEJbG2MrVxo/Hi2a3W78GKK9TZrEf+8dHbwVF4fel68StokwhTJtJCBDJTBS976+eR3sveJKfSwXJTfocOWflSrAGvXD7uiQN9TElpPjVqjt6ODHI9D6Dkf4Blp+PmM332z8RZiaf9NLOt6Ilpoa3vbduhn/GczS0tJCVzWWqy1mIpTevylGJYYRY1Lr6oAEOHELqrASc/FxfS/cvHQYcM89PMCzXz/5qr5qEKdkGAu+bjhlzPVOYVbiKg1U0bS6Ovg0zdGjfCpMDJydNi3w+tOmeU87hUJqKvD55+H1QejDiRNGjyAwamKkfNN+1SKm2JqRSMeKnTwZWmCtkvi5KIIMlRjF02a4E+U4gH6owjDMwyr0xDHvlevruUUTrrFSVaUsjoIxHuS1Zk1oxsqQITw+RK+LRjBDqLwcOO88buSJxt5557mPn9I5YXG9qqrgF6OmJi4GFQ4bN5r/hkiYEyUPH1px8GDk9qUEQeAxdj//efQEteflKU9NDvTQZRLIUIlFnE58taYKN9VtxGI8hq0YAxsCGBDiRSgcL0d5OQ8EVMPcufwG/9hj6n4kemXDSGXe+FJeDowZ4+/dqK/ny8vLlXt8evfmn3f9emXrHzumr4FGEGbgzTeNHoE3jHEP6N/+Fj1ijKdPK1uvvJx71Ifp4GHXkghNRekGxaj4IBGUoqrkfSjxGWoCR4M1NcG2UgE4wUqpJycHfr+wUD5up6Mj+Hyx1coDI202+WMizh2XlQWPZfH9bD//ubsPo+fPqVGjZu4W6FpaVia9jSCEH0eoEKqeHI+IQSnhfKWLFwOXXuqdDhwIrasdq1VU9FWAPXo0sGfH4eCvvum+YtqziJQE9Y4dwIgRwcdUUcHluOVE6wBgwQJe1TjU78p3vARBaEtKinLPhFmx2bjK9QcfeMs8lJcDd98t7yGKkFic4vu37iaTzpBH5RxKMk3UNiXeDT1ShcONVnc4GMvLC/xZxFTjwkLlTxWLFysb/+LF7pRC33Riu52xLVu0/67CbKq8btSoUYuelp3t/beaLCKdU5sp6yfeUJJpohYlQbbbtmm7T4D/RMJRVCwo4AF5lZVAaSl/PXDA2ztisfAni61b5ccAhBa3s2cP9zItXeoW78rK4mqTNTU8ME8v8bYQcVG4GkHEJsd8kifUZBGZRCyOrk6xgh4nVLCbtdMJbNig/X5F3nkHeOQR3nbsUGcwiIZI79782FRX+28fzLjzNZg8iw4GYutW/36bm7nhsm2baX78AMDONQFREiRIEETkMEk1e5LQjxX0OqE8b9a+N+rqan9rXUueesr9/yee4LUvXnyReyR8ZfV92byZa494FnzzjTtRm0Y8dCgfQ6AnkmCy4dOm8bGZjKh/YolEwUq9WLoU+L//M52XjYhzBAEYPNjoUQCIgesTcQ69tUWkbuorV+qzLzmamnigbLBUutGjeaCYb1XaujrvqSw1acQAN4jWrQu8brCbZVMT4HSCZWcr27cSQg0iz8mBACBqk52HDXMXj4xWIwUALr6YF8LMyTF6JBFDq2/Lt58oPgvMB2Oh1RbSATJUYgW9K+363tS3bgXeeEP7/ailrs6tXwIARUWB42YYc09lBTPupHRVxGKJ4VBdjd0z13ZOu4SMKETla5BJMWkS8JvfcONywwYetxNpQ1NLkpP5Z/j735V9fjOzbx83wI8eNXokEUOrK5RvbFXUGt1mxSzT1LqG9EYAyvrxIVBBwFCbbwZORwevVWN0NLtnS0tj7NSp4DoqvtHsogaMry6JnJaAnPaAmlZQwEpLGXsGRZLZNi6oyMIZM0bZeqWl/ufKihXGf2/x3rKzGevTx/hxRGlrvKmAne2SZPg4TNEuvlj7Pinrh9CFggKe4VJcrF2fvXp5x4FUV6t6+mM+f+sStnnyJJ9PVaocKT4pFBRw71Benvf7Nhtfnp/vlpfesQOYPj38sVZUoHdPJx7CMoxDGY7A2+VfCzvGoQwbMR5M7hkxLY1PeYi6MMGQmuYSM5II4zh2DDh0yOhRRC09/1GOLh1tRg/DHGjp/VCi0h1BKJg2Vnn55cDvJyQov6l//DEXPkpJ4X+r/EH43moF4FymicZ88YXydT1v3OJ0jqdw3HXXcaNk4kTgzBltx9naiiFfrMHMrFzsbu6NPNRhCKoxFFUAgCoMhRXNuAtl8DfzznHypLJ9icJNUhecBHpOIYiYobUV6NYN+OEHbfozUUFDUqaNRaqqeKChlsycCTz/vCb962KkqCEzkwe1yv0IFy4MTzVWJcdgBQBkw51N5EQCEuDS5jjdeitX1L3sMv65xWypqiplSrsEQUQVYV9ji4qAZcs0Go08Su/f5FGJJZxOPj3x2GPK1k9L4yXZlXhW9u1z/18MQg0xndLwgLff/S6wkbJ8eUSHY4V/urNFywmyv/+dN09sNp5pEizdOg5wQYAgP8lGEPHHpk1cEqK6mj/QAFyeYehQY7wsukbKRAAKpj2Hw8EDSvUK1Jo5039/ZiyMN2xY4Pfz892foa2NsWXLGLvxRt6eekp5MG60NzFYeP5848diYFMVuBxO697d8M9KLX6aJud0err/MqtV02KFSu/f0GyPBkGGCuMnjt4n/6lTfF8dHYy99RZjP/0pY/37M9atm/d6OTmMzZmjzxiCGUYWCzc+ior4/z3fS0hgbMEC9zErKjKnoRXJJgjmy96K1SZ10adGLVqbRsYKGSrxQkeH/umNohfC4WAsOVl6nauv5qlsYrE/PcZx++2B3y8qch+XtjbGSkoYmzWLv7a1ud8rKjL+h06NGjVq0dpsttCLxnqg9P5NwbTRjlaBs1dfDXz6qf/y/Hzg9de5oNqYMYH7ENc9eZIX4Tt7NvxxeVJZCbz5JvDss951eywWrjibnx9YVh/g2UvduvGfG2E+br3VP56GIAjzUVmpvP6ZDErv35SfGO1olTu/YgUPrJ05Exg5kr+eOsUND6cTePDB4H1s2wb84hdAerq2RopnTv+yZXxcJSU8ffiaa4CkJF4/J5CsPsCX9epFRopZsdu52nFRkWnSIgmCkCGCqrWU9RPtaFGM0FPYZ+xYt5ZIYiJfVl2tXJRKa1l9Ud7eM6ffYgE+/FC+uF99Pf8cW7e6CxCWl/NlWhgpRUX8NcLZQTHPqlXc2I1gajhBECESycrKYU8yGUzUxqiIsRylpe7YjlD7CTdGxeGQlt632fjy0lJt5zfVZNbY7d6BW2qym0Tp/44ObcoKJCcztmWLeyxlZRSMqmUrK9O+/AM1atS0bxGOUUHYezKYqDRUAhkFImoMmXCyfoqL5VONxRTW4mLtTvAbb2Tsj39Utu7ixd6fO5TPWVkZWnCvIDD2298yNno0Y/fey9j27V5jEb+ejRs62Ocllcw5p9D4i0e0N6vV+DFQo0YteKOsH3VEnaESzChwOBjbtImxzEzv930NGal+1eqo2Gw8GybYU6zNxljv3tqc4CNHMvbmm8rWffNN9+cL1SuyYUNoHiHPDCKJQy1lZ+4s0qEgpFEtXvRkqFGjprwZpKNCWT+RxOnkgZ5yiq6CwAND5WrLCIK7UJ5nXRoxy0VUpv3Tn3jmTWYm8Oqr0v0APMajvh6YOzf42IuLgaVLFX3MgDzwAFBTA2zfrmzdF1/k/w81u2nKFGDyZHXb3nUX8Npr/HiuXQvs3w/07w/MmIHyNxIlQ10scGIIqvHb2fW49vyjbsXXo0eBp55SP26CIAizMGkSv45qrEyr+P6tmWlkEFHlUdFCX8RqZSwvz3tZIG+L1OO/3c49Bmqe/ufM4X117Rre+HNzGevSRdm6I0e6P0c4cTJi7IMagbe0ND+vgishga1Nm++36p1wsO8QofieaGujRhk/BmrUqIXexFg/HaCpHzOi103Lc9pICt94l1DHUVbmbyTp2QYOdIu1hWPk2e08CFY8TmGMyQWwcuR3LroTDuaEwJxy34mW8T3R2OQEAqlRo2b+Fui+ogE09WNG9KhqLCIIvNBcTU1g19z8+VwwLRSys4Fjx0LbNhwEgQuBffxx6PuvrASam4E5c7yn3hISlBVlPIf4Y7kLm+DAWBxAP+ShTlqQSBC48F2cF/0jCCIKsdu5ZIAo8aADJPhmRoYM4TcuPWAMqK3lsStyjB4dupECKDcSlIjDqYEx4K23wjOSGhr4D+7AAW60lJYCK1eqMlIAXvlZAPAH/D/MxmrY5YwUcdzxbKQIVI+YIKKOWbP4NbKmRlcjRQ1kqESSbdv4U72eyKkFbt7M9x8JpFRhjWbfPv5qsfCAsAkTgO+/D7m7NJxCCeZrM7ZYJTnZ6BEQBKGWMWM0D5oNFzJUIoXTyacd9EZKLdDpBKZN03/fIkpVbMMhIwN46CEum9+1a/D1X37Zuz4QoNqbQqigSxdeV4kgiOghJ8etUm4iSEI/UlRXy6cla4XNJn2SVVcDra367tuTSIQ9tbYCzzyjfP26On4cxCJa5eXAunW6DI0A0NFh9AgIglDLCy+YypMiQh6VSBGJaZepU6VPsggWjzI14nEQ6/4YERgcA0R19D1BxAs5OerWLyoCxo3TZyxhQoZKJCgv59HTejNggPTySBaPMjNff80F8WbPjozXJ0aJihDZlBTglluA7t2NHglBRB6rlXuR335bWVB7aSmvTG9SyFDRm0jFpgDy8Snt7UB6emTGYGaeeAIYMYKr8RKxzenTwHvvAceP878pA4mIJ5qaeCX73buVPZQ1Nuo/pjAgQ0VvIhGbIgg85903PqW8HMjNBUaNAk6c0HcMBGFmyINGxBtTp3LtLiXs36/rUMKFgmn1JhLxIYzxqSXP+JTycp5mRhAEQcQfzc3KYyP799d3LGFCHhW9MSI+xOnkcRgEQRAEEQiLBZgxw+hRBIQMFb0ZMoSnDes5Ry4IQGGhWyekupriMEwIA2XMEARhMubNAxITjR5FQMhQ0RuLBVi9mv9fL2PFVz6f0pFNCYuOfBmCIOIBi4WnJJs420eEDJVIUFAAbN0K5OXpux/RQInHdORFi4weQVASyFQhCMJo0tKA++4DTp2KCiMFMImh8sILL6Bfv35ITk7Gddddh48++sjoIWmPZ0G8wkJ99iEaKEOG6G8UmY2PPzZ6BARBEObn5Elg/XqevhwlGG6obN68GfPmzcPSpUvx2Wef4X/+538watQoHDlyxOihaY9YEK+kBCgu1rbvzEygrIxn/zidwHPPadu/2RH1MgiCIIjAMOYd12hyDDdUnn32WUydOhX33XcfLr30Urz00ktITU3FH/7wB6OHpi9yKrKh0tICrF0LzJ0LpKYCH34IOBzczRcPDBqkXjLaACiYliAIU+AZ12hyDDVU2tvb8emnn2LEiBGdyxISEjBixAjs3LlTcpu2tja0trZ6taikZ0/9+nY6geXLgQ8+iB8J8WefBSZPNnoUQaEYFYIgTEOUJF4YaqgcO3YMTqcTubm5Xstzc3Nx+PBhyW2efvppZGZmdja73R6JoWrPe+/pv4+SEv1VcSNEUE/E3/4GvPJKJIZCEAQRG0RJ4oXhUz9qWbRoEVpaWjpbbW2t0UNSj9MZmSKFLpf++4gQAT0RgsAFi5qaIjUcgiCI6Eaq7IpJMVRCPzs7GxaLBY0+BZEaGxvRq1cvyW2SkpKQlJQUieHpR3U11d7REsaAo0eNHgVBEER0IAj+ZVdMjKEelcTERFx99dXYsWNH5zKXy4UdO3bghhtuMHBkOhPJecHk5MjtiyDC5ZZbjB4BQUQ3wYwPu53rehUUAO3t3GB58EH+2t4eiRGqxvCihPPmzcPkyZMxaNAgXHvttVi1ahV++OEH3HfffUYPTT8iNS9osQC//z1w772R2R9BhEskYrcIIpYRU46Tk4F+/YCrrgKuvJLfd/Ly+HSPxQIsXMiTEDxTlBcs4JL6ZhOCYyZgzZo1rG/fviwxMZFde+217MMPP1S8bUtLCwPAWlpadByhxnR0MGazMcYnLfRrRUV8f/n5+u8rmltSkv776NrV+M9JjRq1+GqCwJjD4X8PKioKvJ1479AZpfdvgTHGjDaWwqG1tRWZmZloaWlBRkaG0cNRzmOPAUuX6tO3xeJvFS9YwLOAYijAliAIggiC3Q7U1LinhNrbudZWILE3i4VL7OtcrFDp/Tvqsn5iBq0F30QmT5au4bBiBfCzn8luxs41gohbEhK4cCBBxBK+wm5r1wZXpHU6+XomgQwVo9ArTuXVV4G//MV/+ebNwBtvyBojJERGxD3duwOffGL0KAhCezwTOPbvV7aN0vUiABkqRjFkCGCz8TQxrRk3Digvd//tdALTpgEIbJCQsULENc3NRo8gZMgbSgTE88G4f39l2yhdLwKQoWIUFguwejX/vx7GytSpfC6yqgp49FEgWksNEAQRFAFkrBAy+Aq7zZgRPIXZYuHrmQQyVIykoIDns+fleS+3WnkLh+ZmXqRv2DDgiSfC64sgCNNDHlHCDylht8REnmwRiHnzdA+kVQMZKkZTUAAcOABUVgKlpfy1sZG3ykpg8eLQ+1bpRaEnMoIgiBjBZnMLu3nidPLEittv5wHknlgsQFGR6XRUDBd8I8BPjqFD/ZcPHRpRFVt6IiMIgtAQiyV4hk0kKS8H5szxLlabkQEMHgyMGsWne0zkSREhj4rZ2bbN6BEQWkIlDQgifjDSSKmrA8aOdSdWlJfzvz2NFIDXndu+Hejb15RGCgCQ4JuZaW8HUlJ0FWlzgaxVQ8jI8J6as1qB2bOBSy/lWVsEQcQVTBDQxroiCe3aebcFgU8Bffstz+LxNVJ81/MUhosASu/fNPVjZtau1c1Icd18M4T336fpHqNobQWysniw849+xKf5hg7lFwmHA/jVr4Bjx4weJUEQkYIxJEG+KKDoURBSUoDTpxX3idpafi+RM1I816uulg5DMBgyVMyMjoI7Ce+/r1vfhEKam7lRAvDMLJuNp6wXFPALERWTJIi4IdhDY+f7So0UT5TeSyIYE6kG8vqbGRMJ7kQdFgvQp4/Ro1BHfb17Ttk3ZZ0gCCJUlN5L9FJMDxOKUTEzSopHEdIUFQHXXw+MGWP0SNQhCPxi8eMfA++8Y9gwGCgLjCCiHt8Ylfp6Ps0jt55JY1TIo2JmlAjzBOOii7QZS7SQkADMn891AAoKgMJCo0ekDsaAQ4eCGymCAGzapNv0EBkphBKi+ik3Xli1it9L5JTQxb99heFMBBkqZmfZMu4dCPUEuvNObcdjdlwuXoDxsceAjRuB884zekTaY7Hwz3jXXcD99xs9GiKOIYPWAKxWZWVX7HZvwTc5JXQ5YTgTQVM/0UJ7O4/c3r+fu/B+9SueNXLmjPw2yck8SHPBgsiN04yYTXRJC0pKgNxcoGdPYPJk7tIlCCK2EQRuVAC80GxTk/f7ycl8+Z138vo+Ug+4TifP7mlo4NPMcutFAKX3bzJUopny8sAxGFar/4lMxB6hfs+CID1fTRCE+RAE/tC5bFnga79ozPh6SHwfdk2gQksxKvFAQQFPb5UqagiQkRIvNDfz16QkdduRkSLPHXcYPYK4gc5ChTAGrFjBjZA5cwKv98AD3DARWbiQJ2bMnQs8/zx/TU3ly6MA8qjEAp6uPJoKCEinaJKho9ABQeAGqoYicXGd+bN9O08VP3HC6JEQhBtBALKzgaNHg6+bkwO89BLw4YfA8uXy6xlYhJCmfuKVqiqudqoj0XwD+ytuw8/wNiyIsZgVIiCqDdTk5MDxXwQRLSQkBFY4t1iAU6cMmQaiqZ94JQLKgoYYKXPnatLNULxPRkoc4jp31iouSEFGChErBCvD4nTy2BUTQ4ZKrLFvn9Ej0IdTp/iTQZik4wcNBkNEG5PxKsbAgXqQ4i9B+KFjuRYtIEMllnA6gZdfDqsL/eo0h0llpa5VpHXBZiMpfJNwPmqMHgJBmBeTl2shQyWWqK4OXCFTAaaNPenaVbOuGCJkkJ0+DdxzTyT2RASAAViAldiKscgDBZkThBcWC09VNjFkqBiB08mDXjdu5K9aiZFpEJ/CAHTAAmY2k2X3bs26EhChE7+5macTjh8fib0RMggAMtEKAYwueER8IQhAWlrgdebNM1xPJRj0u4005eVAv348M+eee/hrv358ebhoUPkyAUAXOEHqBhogJtRVVBg7DgKAib2FBKEHosz+q69Kl2GxWAxNTVYDpSdHkvJyrs0gV70yUL0FX60UADhyxFsC2enkRo9chUwAyMgAWluDj3XsWGDHDuD77xV9NIIgCMJE2O280KB4T4liZVoyVCKFaEQEiiGx26XLbJeXcyVCuW1tNl4Zs6DAbQwB3saKaF0/+iiwdGmon4IIlawsbvRF98+NIAgzYrcDK1dykTcT1PBRCumomA0lga61tTxmxRPR8Ai0bX09X6e8PHiFzIcf5v/XEAaaKArKnDlkpBAEoR05OcD69cD06cBVVwF/+Qv3mowfDwwdanojRQ3kUYkUr7wC/L//F3y9jAy+bkGBMi+MiCBwA0T0yASqkFlWFlqAZ3o6MHIkWGUlBLG+DACWlAShrU19f/GC1Qq8+GLox5xk3AmCkEKqsGhaGo9LkQsjMBE09WM2LrkE2LtX2bpivEpWlno5/MpKbk0H4rHHwpv+sdmAqVOBAQP4Tfi226JP4ySSWK1ckj3U+kvBJLAJgiB8cThMb6zQ1I+ZcDqBb79Vvj5jQGFhaDe2bduCj2X1avX9elJfz2NdkpKAr782z03UrKJFTU3hFYk0y/ElCCJ6mD1bO+kLgyFDJRJUV6s/YWprlVXI9OW11wLvq7qa63uEg+iEKyxULtnfrVt4+1SCyWWgCYIgIkZ9Pb/exwBkqESCUIXYrFb1iqxHjwY+ObUqWsgYN6aUGgfFxXxaqrSU/18tWVnqtyEIIvLEUBBn1BOBIrWRgAyVSBCqEFtTE3Dlleq3C3RyaiAK58VHHwVfRwuJZlHPxWoNrx+CIPQlRqYbDGPyZP5AN2lS+H1pfb03CDJUIsGQITwAVVCpjZmTw0XX1BLo5Ax1LHIoEYQbMAC46CK3Gm8ogbyM8TGnpHCl18WL1fdBRI5Ro4weAaEHkZjCjXcqKnj83+TJ4fWTl8ev9zEAGSqRwGJxB7CqMRDy8niq2aBBytYXBC78E+jkDHUsUvtS6t3YsyfsYokAuLFSV8c/w6WXht+f2UhL086ANJrhw40eAaEHP/xg9Ahin0OHuC5Wc3N4HuTnnouZaTgyVCKFnBCbHDYbd6HOnQscPBh8ffEGt2pV8JNT7Vjk9jViRGjbh4uoDRNrnDwZO6JwDz0UvBgaQRD+iNeA+fOBl14KvK7Ug01aWlSkJquBDJVIUlAAHDjAg0oLC/ky3xNN/Pv0aW4IrFqlLPtHVJ71PTnlKjV7jqW0lE/NKMVmA7ZsAf75T+XbaIkoYKexwq7hCAIXeIsFXC5ueJmFuXONHgFBKEdMVsjO5kaH77XOZuPLz5zhFdpHjwbuvRfYvh04fjymjBQAAItyWlpaGADW0tJi9FDU43AwZrMxxk9L3qxW77+VtJwcxtralPVvs/HlUmzYEHxf2dmMbdnCWGWl+nFq0bKyGOvocH8+I8ZALfpaVhZjkycbP45wmiAYPwZq2rS0NGXrlZbya11HB7/mlpbyV/EaGOUovX8jQuPRjag2VBjzPgG3b2csPT20E7+y0rtfhyPwha2sTHo8UsaNZxME3goLjfmBFxd7j7e42PiLDjVqejcyUvyaywRjCLmlpChbz/e6HmMovX/T1I/RWCxc8j4pCZg4MfS6Lp4pyU4n8OCD/FSX4+67ec0fXwoKuDZKTo70duJP6LXXQhtnOFitvKiiJw8/HHqsTTjEStArER3cdpvRIzAVolZzgCucuTl9ml/P5K4jShIj4ggyVMyAWCH52LHQ+/AMLp04kUeOB8Lp5EXyysv93/vgg+BxMUeP8vnTSCEIwLp1/oHCFgtQUhK5cYiIRuCYMZHfNxF//OMfRo/AVCQAEAAchcwDVTTw4x/zV7k4RSWJEXECGSpG43QCc+YE9n4Ew9PyXrgQ2LxZ+baFhf4CTUrr0kycGBnPgt0uHSgsIuf90RtBAP71r9gL6iXMR2ur0SMwJYUowVBUYg1mGT0U9WRlSWdfyiVGxDFkqBhNdXV4GiOC4La829uBZ59Vt31trb/kvtIaQ/368R+Ukht1VhYXMiotBX7zG2X9z5rFs5JqagL/aI2SiWaMf3eDBxuzf4KIcw4hD+9hKBwwgWdTbTr+kCH+2ZdKrndxCBkqRhPOTdZq9ba8164NTb7adwxKPRQ5Oe4fWrD6PS+/zGNx9u1TbkyNGcO3Ceb+NFpTZcsWY/dPmIdLLjF6BDGFXN1wFwR8BzuqwT3J1RiCWthk19cdQQCKipSvn5DAH8QAd5zihAnKrndxCBkqRqO0+rAUKSlAfr7771CrB/uOQWlwqriexQIsWRI43x8AcnO5fP6ZM8H7tlq50aXE8Bo8OLZ+3BSoazwpKd5/K1UIzcoCMjO1H08c4zspzs79W4hVcIH/7l2wYA5Wq+9cjfKr3c6NEd9rnDg1/fDDysuTzJ8PJCaqG2s8E6EsJN2I6vTkjo7AqcBq09dKSkLrw2r1zstXMi67XTqXXyrfP1iqdKAWSPdFxChNlxCaSxACp6ALAmPjxxs+Tta7t/FjMFPLymIsI8P4ccRLEwTGrFbmgn8asrjsTji8NklAB/s9pijrf/Fift2oqFC2fkmJ+3oXSNNEvNbJXe8EgbGiItW3iliFdFSiAS1usKIgEGNc9M1iCa2figrvsQUyLgTBLfoWTIBIC2MM4HopcvsoLTX+wqqwuQC2J7+IH7/sbO/37XZ+ETPBOKlRM7wFEEVzQmAHYWcJ6GAAY3fCwb6DguuMIHg/ZInXp0DXOrmHMjmktKjS0hi77z5pYc44hgyVaECLG+zSpd59hnqjW7zYf3xSPzjxZqpU8VZLb0ck9qFzc567yO4scvg/mbW1aWPUUTNPI6G20JpCQbRhqGB3wsGcEIILwImeDofPb6+4WNoL4rm+WmJUSVZrlN6/uxg57RT3hBOfIvLEEzwff9w4/veyZfz12WdDC6z1pKCAx8BUV7sLAR47xvVXGPNet76ea8H4ptVpmZFTVye9D7HuT329/7gMhIFrPXiSAB4gaH+2EM7i2+EVWRNuBhhhPkx0PkYVp08rWq0M48CQAAHM77fmh83GMyQBnrHo+VsTY1WamrzXf/ZZHne0caO7xpiSeDgxQJbQBj2spJqaGvb//t//Y/369WPJycnsggsuYEuWLGFtPm6vL7/8kt10000sKSmJ2Ww29tvf/lb1vqLWo9LRwVhennZPIL5Wf1sbn1fNz1e2ve/Uj9yYg8nr+7pJtfZ2iPtoa/N+YtmyJfDcsAlbW2aO97KsLMPHpLrdcUfo043UqIXZFMvoZ2bya0aw+mDFxd7XFDW10gjVGDr189Zbb7EpU6aw7du3s/3797Nt27axnj17svnz53sNMDc3l02cOJHt2rWLbdy4kaWkpLDf/e53qvYVtYaK1jfwQMGtwQod+gbThjtmzwDfYHPAobauXf0vIFJTUiZuUV2rRGx2e1TFCFGL41ZRofxaKBejF850EOGH6WJUli1bxs4///zOv9euXct69Ojh5WX59a9/zS6++GJV/UatoaLHxV2ugFWwpwilPzqlY/YM8BX3r7e3Q+y/rMx77lmp4SIIjCUkGH8xjcbmGxRMjZoZ229+o2y9t98OPeuRUIXpihK2tLQgKyur8++dO3fi5ptvRqJHLvmoUaOwd+9efP/997L9tLW1obW11atFJXqIlMnFgxQUBNY4UaqCqHTMvusVFEhLRWsJY/x13jw+jzxhAtd28VR9FEXp5GprzJ+v7ZA07c3EhFOjiiAixcGDytZ79dXgsWJSit6EbkTEUPn222+xZs0a/OpXv+pcdvjwYeTm5nqtJ/59+PBh2b6efvppZGZmdja73a7PoPVGDADVUtwrkCEhJdV84IA6qeZgYw5U8dNz/4WFQI8eyverFMb8LyCeqo+iKJ1UbY3Nm4Gf/Qy45hpth+Tzt2HKmQQRz9hsQID7ihcHDihbb/lyoKqKB9pWVYWfvEDIo8ZN8+tf/5qBX3tl2zfffOO1TV1dHevfvz+7//77vZb/9Kc/ZdOmTfNatnv3bgaAff3117JjOHPmDGtpaelstbW1ilxHpkTLKRGbLTKuSLkxq5277ehgbPRofVy8hYXB9+0ZiFtWpj62xWzTHXY7/9xGjyOEFhOxOr/9LWM332z8OKhJt2CxKZ5txIjQ9kGBtqrRJUblyJEj7JtvvgnYPGNO6uvr2YABA9ikSZOY0+n06mvSpEksPz/fa9m7777LALDm5mbFY4raGBURKa0Sq9X/h6UkCCxSPxI5fRW1+w9VSVdJCyQQ5/tZQjEU589XvK6uN2JBYOyuu9zGl577oibf8vLU3QypmbctWsSzhNRuR4G2qjE8mLauro4NGDCA3X333axD4oYhBtO2t7d3Llu0aFH8BNN6IiUOJCdFL3cxjPSPRAtBo3CUdJW0vLzAxyMc1Vy7nYvtGX1RFVtRkX4ZViE2KflzatRUt8WL1QfHh9MqKhi79dbQtg1FyTaOMdRQqaurYxdeeCEbPnw4q6urYw0NDZ1N5Pjx4yw3N5dNmjSJ7dq1i23atImlpqbGT3pyKISiY2J29JaMD2S8heuBqKjQ78Kp1tiwWNw6ESYxVKhR06S9/Tb3vs6axdiKFYxt387YyJH67EtMTw7X2yuXgUl4Yaih8sorrzC5GBZPPAXf8vLy2DPPPKN6X3FlqISiYxIukZCCLioK7Fnp1ctfN0VpC2S8hRvTUVqqvWEgFi0LxQAqKeGfq7hYn4u4wuYC2HFQAT9qGrT0dH/ZAIuFsWHD9Nmf+FCzaVN4/fhKNBCSGD71EyniylAJVcckVKRiUfQKGBOVdD2fmnynvcK5cPgabx0d4QfEbt/O+9LKK+R5bD0NRKVBx7Nm8W1JgI1aPDQtHxB8f3taVrUnZKFaP7FIqDomgXA63bV8evbky44c4XWIHn2U/+w8kavpEy6JiTxtWQ5RC2b2bD4GtfhqzFRXh6//8dVXwPDhwB/+EF4/Ip7H2rNWSGMj8PrryrbfuJGvbwJOoBvS8YPRwwifrl2Bs2eNHkX8IQj+1x+tycoCtmzhvzWxhk84NbcEgadCS0k0EKETIcNJN+LKo6J1SXIpj4nSJxmjYmFET4PaaRvfJxwtvA75+crVLtUcW0+PVUcHY2++qf7p0QRxKr/HFMPHEPGWksJYnz7GjyNe2rBh4QXkFxf7X2NCvTZQ1o9qTKdMS2iAxQKsXs3/L6euumqVsuqe5eXcMxLKkwNjkVFmbG/nn+fBB/nr6dNu709+PlBW5q+264ucCJ0WysDbtgFPPRV+P54wxj1LTif/jnJzuRAdY+r7MQgXBHwHOx7A73AM1vhR6AX4OdrcbPQo4ocf/xg4dQooKQFuu0399gMG+C9Tem3IyfH+22bT3tNMcCJkOOlGXHlURMLVMdGqcrOeAWPBAmwBfgy2bJEPHg30hKPFPLSezeCA2FCbSxCYEwIrgIMBjI3BFkpRpqZfKynhv+WKCsbGjlW/vVQsiVLPtW8F92jKtjQJFEwb64STjaPVTVCvgDGlwamehoha462jw9zGgBLBqW7djB+nb7PZ2M4iR+dXcwsqjR8TtdhsFgtjmzeHLrQXSM1bKwVuIiBkqBDShJs9I/5Y9YpRUSsC5zkWpcZbqLE58dZCqSZdUcEP8ZYONja7kj2HWfrvk1p0tYQE/hsN5rVITw/cT35+eOMIZmxopcBNyEKGCuGPFtMdej9RhCq0pNS7Q4Jo+rbCwtANwSFDjBmzFtOg1NS1iorgtc4efZSx22+X1lGZPz/0a5maciOR0JGKY5TevwXGGDMuQiZ8WltbkZmZiZaWFmRkZBg9HHNTVQUMGxZeH3Y78OyzQHY2D2rt3ZsHqioJ4BXxTIn22N7pBBrGPgjb68+rH1dpKa+QLPZfVcUbwFMPxVTffv1CTz00I926AT/EQAowEV+kpwP/93/8ujFnTvDfZGYmMHgwMHIkMGMG8MEHoV3LVqzgwepqrleEbii+f0fEbNIR8qioINS0uylTGNuwgT9RbNkSUAQu6AOIjIjcziIHs9kYm4OS0MYoelTk6iFZreaOSQml2Wzai7sFc7dHS8vIYOz6640fB7XAraiIX1MQpC6UrydX7XkfjeVF4gCa+iH8Cae2jc3GLypSbtpzF5GdRQ7Wr08bm4MS9hxmsTkoYf36tLm9rDLTLi7wTJE74WBd0MbOwqI8U8TzAqRF/E00NfHAXnSR8WOhRi3UZrUq+717/tbVXssoANaUkKFC+KNjdV0XBNaCNHYW3vPJHUhgyzCfObYEjo9xQmAHYWcJ6GDPoEhZ5V3PpyytUq6jofnOsVdUGD8matQi1URXrdIYFb3KfhBhQ4JvhD+BBOPCRABDBk7CApf3LuHCAqyE7d5bAs5DJ4ChL2pxC6rwEJZhGYrgRJB55Lw8LvPf1gasWROatH40ccstQEUFl8j3FJUaOhSwWg0bFkFElIYG72tZIIqLgQMHSIQtyqFg2nikvFxZAJtGiCeYEtOoCVn4FX6HY8hGHmpxD17DzfiHd82YrCzgpz8F/vGP0I2TSNQR0RqrlRspUoGA5eXAmDGRHxNBRJoVK4ArrnDXJHvuOaCpyXsdqxVYt44MFJOj9P5Nhkq84luMsLoaWLkSOHnS0GFJGTUMyowcxRQXAy+/7G2o2e3AwIHAW29puSftqax0ZzD5UlYG3H034HJJv08QsUheHjB1KtDRwf8Ws/wsFl6GY+1aYP9+oH9/njGUmGjkaAkPyFAhlCPW/YnuU0EZNht3BQPeKdJHjwLjxxs6NEV4pmH7okX6OUGYkIAPK+I0tm+dnYULuZSC0+leZrEA8+YBy5bpNFJCDUrv310iOCbCjDidfBooHowUgM9ri1MnomfC6eT6KtGAVME00TvmcER+PAQRAQJ6VBnjxkphIS9WarFwI2X5cv91nU73cjJWogbyqMQ7Gj2Faz49ozWB5qzN4IlISACSk3klWCkEgXuDamq8Y1S0ijeKxpgdIrKkpsqfnzrgAqA626Oigk99jhoV+Hy2WPhnoWkgQ1F6/6asn3inoUGTboTBg8HgjjExnJUrgcWLeZPKlPFEo2MQFi5XYCMFAFat8jdSxo7VJig6L4/HuNhsmmeExT3jxnFDNNoZOjSi54YrNYQHz/HjuXptMKPb6eSxK0RUQFM/8Y7UVEIofPcdhEGDwD75RJv+QkX0PMyZo1wmW6tjoAVWK5CS4m182GzcSPE0tLSesquvBz76iE+NjR2rTZ8EkJbGYyf08FZZLN7xF3rz5puR2xeALqda1W/U3Kx83f371fdPGEIMmPlEWAwZos1TdF0d8Mkn5pj+8fU8BEOrY6AFTU3A+vU8u6e0lL/W1Ph7g6qrtU0vZ4zP3X/4Ib+xpqdr13c8c/KkflNq8+bp068PLpjIU6ol/fsbPQJCIWSoxDtKhZOihW7d1G+joxBeSBw5wt3sEya4A36rqoCNG/mr06nfdNWzzwK33QbccYc+/RPaUFwMPPEEMGUKkJSk227E2DMT/Cq0xWLhqcpEVEBTPwR/Wt+6lWsRqHGdmpGTJ7nwmcOhTuxJPAbTpvmLR0WYLxp6oumRKvRGAy627IPl/172nwqaOlWfnTudfCqspUWf/onwsdmA1lYe3Krz1I+AKPCmZGWpv27Nm0eBtFEEZf0QbnbsAEaMMHoU2iDqpaiZAnI6gb59gUOHdBtWIBgENCdk4ZQrBXbUeSz3eaIVvT7iBVrqJywIPED26FFeYoCIDQSBe7u2bTN6JJHHNzNNEHjw7NSpyq9bpKNiKijrh1DP0KHmidUIl7o6HsehhupqQ40UBoYsVxNs8I498fs2PC/WooaE1wbn/h4/nowUOVJTI7OfrCzt+rJaeRbbG29o12c04WuQMwZs3gz8/e/Br1tpaTwT8NQpMlKiEDJUCDexFq+iNo7DwDTl74UeOAH+RKHITGSMT1EVF3PPiSc2G7BgAY83IaSJhB5IUREv1aCV4d/UBDz+eGQzfaKBkhJe/weQNtoFAXj1VZruiWLIUCG8KSjgTylqpkzMitq0Y63SlNXcmNLSAABZrBmZaFUftDhgAJ/iqqhw68b83//xjCEidLp16/xuVJOTwzVpli1zxz6F2hcRHDG4fOtWaaPdV1qfiDoomJbwJycn+p/abDaedqyGwYPDV2jdsoXLeM+bB7zwQvD1wy0C2bs3j1eIYDXsuOCHH7hQW1mZ8m0WLwaGD+fnna+hb3Cxz6ghI4MHCot068a/i2C89x43SPLzvWt4SX0XRNRBwbSEPxs3AvfcY/QowqO4mHsb1FyswpHSz8kBXnrJ/eQm1g+qr9dPR8Nq5fscP57k7/UiLS24kSFX3gBwnwdkRCrH87f76ad8GlMJNhufuibvSdRARQmJ0DGTUqtakpP5U9jSpe5lSi9g4cSolJR49y/G+4wdq18dHcaAuXPJSNETpTENniKDYpHIhgZeuoGMFHX8/vduo2/wYODXv1bm4a2v5783muqJOShGhfDHTEqtahg8mGe5+OqgiBew8vLA24djoPnOjQPu+ATf97TKBGlupptgCKgy65qb+RO+zSb9vt3ufWMsL+celGHDuFdy7twwRxuH1Na6M/YSE5Ur8IoGe2Fh9E9dE16QR4XwJxLeAD3417+kxypVBl4K0UBTe/O32fiFceNG/6mmggL/eXOn01x6Nb5xATFOyAHL1dXc6D18GDh2jJ8nffsCmZn8O922jf9mTPR7YQCEnBzg7ruBNWuMHo5y6uvd/xfTiZ99NrgBwpjb0BFVnYnoh0U5LS0tDABraWkxeiixh8PBmM3GGP/5x0arrAz+mQVBXZ+pqd5/22y8Hzk6OmLvuMZyq6hwf3dlZYxlZPivY7XyZvRYfZrLBGMIqeXk+P+G2toYu/deZduXloZ82SMih9L7N039EPIUFPAnyd/8xuiRaEewOBRxukbO1e9J16781VeTo64u8FRTpPRqxCDPigqerlxR4R27Qyhj8mT+XS5cyDOBpLxPTU3qSy+IU6s6JgFE2eStm2PH/H9DiYnA/fcr2z6a4+wIfyJkOOkGeVR0xuFgLDvb+CcsrVowj4pIRwdft7CQP9159pGVxdjgwcH3ZbfzfuRYulTfzyoI3k+lSjw56enGf0dma2o9bEpbXh7/ftrapL00YbaA3pSEBOOPq5Lj7vsbEs9hue9EahvCtJBHhQif8nL+VHPsmNEjUYbFIh8ALAg88FGptorFwue4S0q4F6ayknslKiu5x+TDD4P34RkUKMUjjwQPrE1OBrKzlY3Zk4wM4NFHeXyMSFVV8PibEyfU7ytaEQRg0yae5h0IxvTZf0MDPz/mzeMBuBoT0Jvicmm+P81hzP83FKjSufi3ZwYWEROQoUJI43RyETG9LtJ6cPvt/FXrC5hotEyYwF9/9zvlF/r6em4gbNzIXz2DAS0WLrEeiDNnuKGYnc2DgRcvVrbf1lY+zZOZCdx3HxeiGz9e2bbxAmNAbi5PIRYl2COJy8XPyRdeAP7978jvP1rwna6Vy6YjFdqYhQwVQprqalOmvgY0mz77jN+Q9b6A7d+vfN3CQneq6rBh/Mm5vJwbLFVVPJ26uBjo0ydwP01N/ElSjItRyg8/AOvXA3fdxVNtVRDwWCcnqxtHpFGaWt/QwA3GYMefMA6peBMxfs7T01lTQ0ZKjELpyYQ0BhboC0TA209tLfc8iKmkeslo9++vfF3fabP6emDMGD7d4Bl8abNxD8iaNdIGBWP85vvyy3xdPRVvzxHwWJ85o+u+kZPDPQ319Yq1SJqRifJuU3DRwtG42VXFDcBgiDdBrYIvrVZuxHmm1xJufM97i0U+5VgMBpebrhU9nUTMQxL6hDThyMkHw24HrroK+OtftZ8rLy3lUzR60t4OpKZqKyqlRq/mkkuAPXu027cZ2bABmDgxaCkCBm+DqhY2FGI1Jm7JR8H0XPlMHF/Ze61KHhQXc0P26FFubG3dCrz+euj9xRp5ecC0aW6J/KNHubcP8D7uokeMpnJiGpLQJ8JDFD8LdOHOyOCGhtKCa7NnA+edx28eCQnA9Ol8bv6DD4CDB4HPPw9/3JFISxTVMpcv165PNTfHWDdSAPf0WgDxQakjlod6lGEsHpi+FfkvrYNl3Bj5fYgxS+3twNq1wMCB0tOdSozIlBRuvPqWbjCTsJ8ZOHSIB3lv3er2hlgs/kU1bTb+/ZCRQgBARHKQdITSk3VEFD/zTQUUlzkcPA2wuJin7MqlGdrtjBUVSQtiWa3uFM1wUiaNSEvMz5cey1VXGZ/aGe2tTx/v71JCfFAu/dYJgR2EnVVWdPDzzmLxXsdi4csZk35f6vx1OKQFENPTGRs/PvD20ZAKHMkml3ZcWcmF2iorKb04TlB6/6apHyIw5eX+Tzt2u//Tjmchtp49+bIjR7iH49gxLpQVCIeDp/yG4qUwwk0spm77/nyiqeSA2SkpAR580K/Y367VOzDw9SeCbv7vscW43PGo9HcEAHfcwWXv5bj9dmD+fO8YJ8/zvHdvXl+qT5/AYm/JyfrH9EQjlZUUYxLnKL1/k6FCBMf34qwmONXp5NM9wYILbTYeBDt6NPDGG+rGJ2U46YkYzyCXFSUIfGqLCqOFj0Tl668f2YhLn7gn6KZn07PQ9YRMppMSg9Ji4arDgSoo79ihbHpn/HigrIyMWE8iEU9GmBql929KTyaC46sjoiaDRizkFoy6Or7u/PnK+i0pMS4tMVjqNmNuI0VtBWoSqvJGovL1xUOVxSHJGimAMoPB6eSxK4GoqlI0Flx0EbB9u7J11aagRyskc08ohAwVQl/UpDk3NLiDeIMpzD74YGiGUziI2icOh7L1x4711+dISgID/ANBxc9LXhhvRIOisLDz2FiGDsEpqw0umQRqFwS0pQVR/FVKMM2cr79W1o/LBfzkJ4HPbYC/P3u28vFFK2pUoom4hwwVQl/UPDX17m2MRLZogEipx4qUl/PpnmHDgOefV9bv1q18zDfe6B57W5vk7bWtm0Y31liEMW8pdYsFqetWQwD8jBUXBAgAkormaLPvQJo5Tief+lGC1Rr83BYE7incvDm0sUYTd99N3kNCOREI7NUVyvoxOR0dvPhasEwAmy1olkdn9oWWSO3HZvPej5j9pGHmg+tc24bb2U9Qwb6DLXAROc92443GZ24Y0UpL/b47l28mkM3uzkYLVrwu2P4sFp6NJkdlpfKxb9gQ+JwTz201fUZz8y2YScQlSu/fiNB4dIMMlSjA4Qh+4ZK6aOmdsihngPimXwerOBxicwHsLCxsOLYrWt+Jczfijg7GTp1i7I47jL/hRLJJVb4OdI4ES6+XSy8Xm5jCLEdpaehjlxp3Rwdjixcbf5wj0ajKMcHIUCHMhsMRWEcl0gQzQMQLaUWF7hft9bhX0XougH1V7HGs4uWmBoR+UwvmmQumsxIIpd6PnJzgY5cap1ZNY2+gpk3K+CTiBqX3b1KmJSJDQQGQn89jQMRMiaFDIxsM64mSzJ3aWuVZHWGQBmXKvktQjEsHFGCgzuMxJaHGJYnnnVx6/bJlwBNP8Oye/ft5TMqMGYFTkkXEwO9gxTtfeCHw2LduDa4zFA42G/DLX3qr5poFk9YUI8wFGSpE5LBYgOHDeTMaE10g/4GbcC0+QR7qkSAhDO8CUAcbnsLD2OEZmzx0KL/Jmg1BANLTgdZWbfpbsCC89PNgxesSE3lWUSj9ivL+zP97AwAUFQU2QsrK9NMSufhi4IEHuOH15z/rsw9fli5VVgxShFKUCSXo7do5c+YM+5//+R8GgH3++ede73355ZfspptuYklJScxms7Hf/va3qvunqR8iJJS67SsqAgdlhtHEGJUuaGMFcDAnBOaE937EZQVw+M9+xEuMipKpEyORmrbJyWGsrCz4dpE4fjYbl/rXcx+eMScOBy+BoHR9Im5Rev/WPT154cKF6OOrJQGuSDdy5Eicd955+PTTT7F8+XI8+uijWLdund5DIgjlei1Dh8qnlGrASsyDU0jEn4UCbMjfinrkeb1fBxvuwmY0Iwtbx2yEpbqKp8WOHg385S+aj8eUHD3qTk02IwUFXFW5stItQtjQwD0tcjidvDRFJKirA06c0HcfjLmn5woKgO++k/es6CUzQMQuelpLb775JrvkkkvY7t27GeDtUVm7di3r0aMHa/NI//v1r3/NLr74YlX7II8KETJKii56rqtxsGMp7mKAd2ynY0sHG5tdye5GKRuGCrYES1mz4FPwUUm6d6w1z/ReGaKqrl2spSGPHSv9OSMlM0BEJYZn/Rw+fJjl5eWxjz/+mNXU1DBfQ2XSpEksPz/fa5t3332XAWDNzc2y/Z45c4a1tLR0ttraWkUflCAkUXMh7ehgrKQk7Iu6C2CnrXls44YOyRtqRwdjXxU72Jk0iSypeG2ZmYwVFnpbIG1t/PuYNYt9MaWE9evT5rWJrxyO5oRjGW3YYPwx1bItXqzPcSJiGkMNFZfLxW699Vb2+OOPM8aYpKHy05/+lE2bNs1rO9Hz8vXXX8v2vXTpUgbAr5GhQoSMmgtpMCExJS2Y2FWkYheitdlsXAPFJ634LCzsGRR5HWbddMWUCAUGQgOD11StokKHg0zEOrrEqDz00EMQBCFg27NnD9asWYMTJ05g0aJFmk1RiSxatAgtLS2drba2VvN9EHGGmqKLnjLooZCVxdNR5bJYnE5g2rTQ+zc5LDU1/D7q6oBt2/xKHVjgxEIsxzNYyNdjfLlHmSBtKC/n8Se+ackSBRRlycnRcEAacNddoW9rtQbOqiKIMFFlqMyfPx/ffPNNwHbBBRfg3Xffxc6dO5GUlIQuXbrgwgsvBAAMGjQIkydPBgD06tULjY2NXv2Lf/fq1Ut2DElJScjIyPBqBBFRCgq4sZGdrX7b5gAVfQGu29LUFNKwTM25AErWdjb8rgCJJG50Vv2Zj2fRBe18f8y7TFDYiEGwTGIEaiyjvLzA72uNIABpaUCCzyU/IYFXLH/tteAFE+VYt46CYgl90cOdc/DgQfbVV191tu3btzMAbOvWray2tpYx5g6mbW9v79xu0aJFFExLRA9tbTwNVa2b3GqVn16KVbVZq7WzvlEk9jcHJV6LfMsEhYzSINhgiqs6lmbwa4GmKT3nxwIFl4vnredy3YOAiFjH0PTkvn37YuDAgZ3toosuAgD0798fNpsNAHDPPfcgMTER999/P3bv3o3Nmzdj9erVmDdvnh5DIgjtSUwEXnpJ/VNoU1NEFG+NhJ1rR24eC9dDvwE7d4y0T/CWpj/2e/2tma6YUqHAYOuFO4Wohrw8Pj0jBWP8tbCQK/hu3erv7bHZAIcDaGz0TsE+cCA8IT6CUIjuOipyZGZm4u2330ZNTQ2uvvpqzJ8/H0uWLMG0GJ6fJ2IQcRronAGumHfflV4eI3P9rUhDKzLQ8/2tSHjmKQjHjkXMSAGA/egPwC2HM2SIRh0rtXiUrFdQoE7FNRQWLwbWrw88nciYe35MShOmpoYvVxPLRRAaIjAmmtTRSWtrKzIzM9HS0kLxKoRxOJ3Ak08qr6dy773An/4k3U/37sBJZfV/zIYLwGkkIxVnImqYiDAATliQglNwCrxeT6DYZdU4nUC/fjxwVurSKQjcaK2pUXYjdzqB887j/emBKD53zz3B1y0t1U/OnyAkUHr/NsyjQhAxhcUCLFmi/I7Yt6/08m3botZIAfgFpRvOGLJv0WxYiXnoQCJsNo2NFMB7ysZ3yi8UxVWLBXjuOe1Vjz1dSVp6gQjCAMhQIQgtmTFD2Xo/+Ql/mq6qAjZu5K/t7cDs2XqOLmIY4U0RABwZdhf6li7zmrHQHHG6TyqWIxTLSOwvPV3Z+pMmce9HcTE3SIIZTErLRWg2P0YQ2kLVkwlCS4YO5YGLgWICrFbg++/5FIKnFkdODq9rQ4RM7tT8yMxeFBTw4NPqaj610rs3v9GHGrdRUMANlZEjg687ebK7AvnAgTxd2vM8stm4kSIaTJ5VngXBe8qK6u4QUQDFqBCE1pSXA2PGyL9fVASsWCEd40CER3Exn4KLRpxOIDc3uJHb2OhtVDidygym8nJ/o8Zu9zZqCCKCKL1/k6FCEHogdVOw2YBnnwXmzfNXNTUzeXn8ZnjmDHD8eNjdMeg4NSQIOgSmRJBgRq7DEd5nU2rUEEQEIEOFIIxG6qZQXQ0MG2b0yHRBVwNEKWqzbsyInJG7enX0GmAEIYHS+zfFqBCEXoi6E54oFQyLQgw3UgBvTZBo1aTROv6FIKIcMlQIIpIoTQHNyABaW/Udi5Z07Qpcey3wz38aPRJOtBuEUkYuQcQplJ5MEJEkWKoowAMmy8p4UKjSlFW15OUBCxaE14dngbuzZ81jpACkCUIQMQQZKgQRSQIJhok0NQGjRgGPPQacOKHPOOrrubFy++2h9+FyaTcerSBNEIKIOWjqhyC0JlhmhSjw5RswGWnmznX/Pz3dXbyuuRn45hvjxhUqpAlCEDEJeVQIQkvKy7mQ27BhvL7KsGH87/Jy7/XE4m8VFUBWlgED9eHECWDPHmDECGDnTv33JwhASkpYXfilK+qimU8QhNGQoUIQWlFeztU/fb0k9fV8ua+xYrHw1twcuTEGo7gY6N+fN70QPR9//COQlhZWVy4A+24vhL6a+QRBGAkZKgShBU4nn8qRkiUSlxUW8vU8a/y88EIkR6mMpiZg/379jJXMTGDTJiA7O6wCjMK5NuCLrZS+SxAxDMWoEIQWVFcHjjcR9T2efBJ4+eXoUKZta+NKtFOmuA2X9euBH/+Ye4lC5fhxYMIE4Gc/C3uIAsCPZTTrphAEERAyVAhCC5Tqdixdqu84tKSuDvj8c+DPf/Ze/txzgWXeleByAW+8EV4fnkS7bgpBELLQ1A9BaEGs6nZIGQAFBbzmTJjxJZoSq8efIAjyqBCEJohCbvX1sVUV+cABYORIHvCbl8eNlPPO4xLvx48DO3YAv/wln9YyCpuNdFMIIoahooQEoRVi1g/gbawIQmwZL4C7SF5+PtCrF3DsmD77mTsXKCkJvE64FYUJgjAEpfdvmvohCK0Qhdzy8ryX22w87TeWqKvjRtmTT+pnpABAezsvJyB1EbNayUghiDiAPCoEoTVSyrQAF36LtamhrCx9dWBGjgS2b3endFdV8eVDh/JGKckEEbUovX9TjApBaI1c5dvVq7kXIpamgvQWqxswgL9aLMDw4bwRBBFX0NQPQUQKuakhvSokR4qsrMDVoKXeC7S+J8uXhzYmgiBiBjJUCCKSiDV+KiuB0lL+unWrdv1nZ2vXl1LmzOGvvsaHIPC2ZQufvrn3XmD0aGDFCuDMGR6IG4j8/LDrAREEEf1QjApBGI3TCeTmcul6OdLTuVJse7v0+4LAg3a//ZbHx4wfH5kaQnY7r7GzbZt/NWi7nVcyDhTsOno039aX/Hzg9dc1HixBEGZC6f2bDBWCMAPl5YHVXh0O/jp2rH98i+jJ8KwcLKZK6/nzFgTvfUoFESsJdj19GigqAvbt4zEpy5eTJ4Ug4gAyVAgi2igvB2bP9q6jI+qVeBogSj0XUut6YrNxI6G5Wb1BE8BbEqq9QhBEfEGGCkFEI0ru8mosAc91e/bky44ccW+3bZu0SJ1Iaipw4YVA167eyrQy+5SyjXxtLYIgCIAMFYIglCJlXWRl8WUPP6zYHSI32yQ1M0UQBEGGCkEQyglzvsbp5Hp2crNMYqxvTQ1NAxEEwSHBN4IglCMnUqeQ6mp5IwXgXpbaWr5eGLshCCIOIR0VgiDCpqFB2/UIgiBEyFAhCCJsevfWdj2CIAgRMlQIggibIUN4DIqcMr4g8IxmsT4jQRCEUshQIQgibCwWnoIMSCvpA1x2hQJpCYJQCxkqBEFoglzNRZuNUpMJgggdyvohCEIzCgp4mR5SpiUIQivIUCEIQlPCzHQmCILwgqZ+CIIgCIIwLWSoEARBEARhWshQIQiCIAjCtJChQhAEQRCEaSFDhSAIgiAI00KGCkEQBEEQpoUMFYIgCIIgTAsZKgRBEARBmBYyVAiCIAiCMC1Rr0zLGAMAtLa2GjwSgiAIgiCUIt63xfu4HFFvqJw4cQIAYLfbDR4JQRAEQRBqOXHiBDIzM2XfF1gwU8bkuFwuHDp0COnp6RB868tHGa2trbDb7aitrUVGRobRwzEcOh7e0PFwQ8fCGzoe3tDxcGPmY8EYw4kTJ9CnTx8kJMhHokS9RyUhIQE2m83oYWhKRkaG6U4oI6Hj4Q0dDzd0LLyh4+ENHQ83Zj0WgTwpIhRMSxAEQRCEaSFDhSAIgiAI00KGiolISkrC0qVLkZSUZPRQTAEdD2/oeLihY+ENHQ9v6Hi4iYVjEfXBtARBEARBxC7kUSEIgiAIwrSQoUIQBEEQhGkhQ4UgCIIgCNNChgpBEARBEKaFDBWCIAiCIEwLGSom4m9/+xuuu+46pKSkoEePHhg9erTX+9999x1+/vOfIzU1FT179kRRURE6OjqMGWyEaGtrwxVXXAFBEPDFF194vffvf/8bQ4YMQXJyMux2O5YtW2bMIHXmwIEDuP/++3H++ecjJSUF/fv3x9KlS9He3u61XrwcDwB44YUX0K9fPyQnJ+O6667DRx99ZPSQdOfpp5/GNddcg/T0dPTs2ROjR4/G3r17vdY5c+YMZs6cCavVirS0NIwZMwaNjY0GjTiyPPPMMxAEAYWFhZ3L4u141NfX495774XVakVKSgouu+wyfPLJJ53vM8awZMkS9O7dGykpKRgxYgT27dtn4IgVwghTsHXrVtajRw/24osvsr1797Ldu3ezzZs3d77f0dHBBg4cyEaMGME+//xz9uabb7Ls7Gy2aNEiA0etP7Nnz2a33XYbA8A+//zzzuUtLS0sNzeXTZw4ke3atYtt3LiRpaSksN/97nfGDVYn3nrrLTZlyhS2fft2tn//frZt2zbWs2dPNn/+/M514ul4bNq0iSUmJrI//OEPbPfu3Wzq1Kmse/furLGx0eih6cqoUaPYK6+8wnbt2sW++OIL9rOf/Yz17duXnTx5snOdBx54gNntdrZjxw72ySefsOuvv54NHjzYwFFHho8++oj169ePXX755WzOnDmdy+PpeDQ3N7PzzjuPTZkyhf3rX/9i//3vf9n27dvZt99+27nOM888wzIzM9nrr7/OvvzyS3bHHXew888/n50+fdrAkQeHDBUTcPbsWZaXl8d+//vfy67z5ptvsoSEBHb48OHOZS+++CLLyMhgbW1tkRhmxHnzzTfZJZdcwnbv3u1nqKxdu5b16NHD67P/+te/ZhdffLEBI408y5YtY+eff37n3/F0PK699lo2c+bMzr+dTifr06cPe/rppw0cVeQ5cuQIA8Dee+89xhhjx48fZ127dmVlZWWd63zzzTcMANu5c6dRw9SdEydOsAEDBrB33nmH3XLLLZ2GSrwdj1//+tfspptukn3f5XKxXr16seXLl3cuO378OEtKSmIbN26MxBBDhqZ+TMBnn32G+vp6JCQk4Morr0Tv3r1x2223YdeuXZ3r7Ny5E5dddhlyc3M7l40aNQqtra3YvXu3EcPWlcbGRkydOhV/+tOfkJqa6vf+zp07cfPNNyMxMbFz2ahRo7B37158//33kRyqIbS0tCArK6vz73g5Hu3t7fj0008xYsSIzmUJCQkYMWIEdu7caeDIIk9LSwsAdJ4Hn376Kc6ePet1bC655BL07ds3po/NzJkz8fOf/9zrcwPxdzz+8pe/YNCgQRg3bhx69uyJK6+8Ei+//HLn+zU1NTh8+LDX8cjMzMR1111n+uNBhooJ+O9//wsAePTRR7F48WK88cYb6NGjB4YOHYrm5mYAwOHDh72MFACdfx8+fDiyA9YZxhimTJmCBx54AIMGDZJcJ56Ohy/ffvst1qxZg1/96ledy+LleBw7dgxOp1Pys8bS5wyGy+VCYWEhbrzxRgwcOBAA/54TExPRvXt3r3Vj+dhs2rQJn332GZ5++mm/9+LtePz3v//Fiy++iAEDBmD79u2YPn06Zs+ejVdffRWA+zoQjb8dMlR05KGHHoIgCAHbnj174HK5AAAPP/wwxowZg6uvvhqvvPIKBEFAWVmZwZ9CO5QejzVr1uDEiRNYtGiR0UPWFaXHw5P6+nrceuutGDduHKZOnWrQyAmjmTlzJnbt2oVNmzYZPRTDqK2txZw5c/Daa68hOTnZ6OEYjsvlwlVXXYWnnnoKV155JaZNm4apU6fipZdeMnpoYdPF6AHEMvPnz8eUKVMCrnPBBRegoaEBAHDppZd2Lk9KSsIFF1yA7777DgDQq1cvv8wGMXq9V69eGo5aP5Qej3fffRc7d+70K6I1aNAgTJw4Ea+++ip69erlF70fq8dD5NChQxg2bBgGDx6MdevWea0XC8dDCdnZ2bBYLJKfNZY+ZyBmzZqFN954A++//z5sNlvn8l69eqG9vR3Hjx/38iLE6rH59NNPceTIEVx11VWdy5xOJ95//308//zz2L59e1wdj969e3vdQwDgRz/6ERwOBwD3daCxsRG9e/fuXKexsRFXXHFFxMYZEkYHyRA8YyMpKckrmLa9vZ317NmzM2tDDKb1zGz43e9+xzIyMtiZM2ciPmY9OXjwIPvqq6862/bt2xkAtnXrVlZbW8sYcwePtre3d263aNGimAweZYyxuro6NmDAAHb33Xezjo4Ov/fj6Xhce+21bNasWZ1/O51OlpeXF/PBtC6Xi82cOZP16dOH/ec///F7Xwwe3bp1a+eyPXv2xGzwaGtrq9d14quvvmKDBg1i9957L/vqq6/i7nhMmDDBL5i2sLCQ3XDDDYwxdzDtihUrOt8X7z1mD6YlQ8UkzJkzh+Xl5bHt27ezPXv2sPvvv5/17NmTNTc3M8bc6ckjR45kX3zxBfv73//OcnJyYj49mTHGampq/LJ+jh8/znJzc9mkSZPYrl272KZNm1hqampMpuPW1dWxCy+8kA0fPpzV1dWxhoaGziYST8dj06ZNLCkpia1fv559/fXXbNq0aax79+5eGXGxyPTp01lmZiarqqryOgdOnTrVuc4DDzzA+vbty9599132ySefsBtuuKHzRhUPeGb9MBZfx+Ojjz5iXbp0YU8++STbt28fe+2111hqairbsGFD5zrPPPMM6969O9u2bRv797//zfLz8yk9mVBOe3s7mz9/PuvZsydLT09nI0aMYLt27fJa58CBA+y2225jKSkpLDs7m82fP5+dPXvWoBFHDilDhTHGvvzyS3bTTTexpKQklpeXx5555hljBqgzr7zyCgMg2TyJl+PBGGNr1qxhffv2ZYmJiezaa69lH374odFD0h25c+CVV17pXOf06dNsxowZrEePHiw1NZXdeeedXgZtrONrqMTb8fjrX//KBg4cyJKSktgll1zC1q1b5/W+y+VijzzyCMvNzWVJSUls+PDhbO/evQaNVjkCY4xFfL6JIAiCIAhCAZT1QxAEQRCEaSFDhSAIgiAI00KGCkEQBEEQpoUMFYIgCIIgTAsZKgRBEARBmBYyVAiCIAiCMC1kqBAEQRAEYVrIUCEIgiAIwrSQoUIQBEEQhGkhQ4UgCIIgCNNChgpBEARBEKbl/wMp5rYdLJYpPgAAAABJRU5ErkJggg==\n" + }, + "metadata": {} + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "Questionnaire:\n", + "\n", + "Users of which age group have watched and rated the most number of movies?\n", + "\n", + "Users belonging to which profession have watched and rated the most movies?\n", + "\n", + "Most of the users in our dataset who’ve rated the movies are Male. (T/F)\n", + "\n", + "Most of the movies present in our dataset were released in which decade?\n", + "\n", + "70s b. 90s c. 50s d.80s\n", + "\n", + "The movie with maximum no. of ratings is ___.\n", + "\n", + "Name the top 3 movies similar to ‘Liar Liar’ on the item-based approach.\n", + "\n", + "On the basis of approach, Collaborative Filtering methods can be classified into ___-based and ___-based.\n", + "\n", + "Pearson Correlation ranges between ___ to ___ whereas, Cosine Similarity belongs to the interval between ___ to ___.\n", + "\n", + "Mention the RMSE and MAPE that you got while evaluating the Matrix Factorization model.\n", + "\n", + "Give the sparse ‘row’ matrix representation for the following dense matrix -\n", + "\n", + "[[1 0]\n", + "[3 7]]" + ], + "metadata": { + "id": "e0DoYU_QnyZF" + } + }, + { + "cell_type": "markdown", + "source": [ + "Most movie rated age group belong to the 25 to 34 age group" + ], + "metadata": { + "id": "5QhevsiZn8g9" + } + }, + { + "cell_type": "code", + "source": [ + "data.groupby('Age')['MovieID'].sum().reset_index().sort_values(by='MovieID', ascending=False)" + ], + "metadata": { + "id": "aD6F2nGonstB", + "outputId": "71905112-2a73-435f-bde1-3ba97128c750", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 269 + } + }, + "execution_count": 72, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " Age MovieID\n", + "2 25 9954720\n", + "1 18 5051546\n", + "3 35 4302862\n", + "4 45 1754157\n", + "5 50 1489455\n", + "6 56 740501\n", + "0 1 667151" + ], + "text/html": [ + "\n", + "
\n", + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
AgeMovieID
2259954720
1185051546
3354302862
4451754157
5501489455
656740501
01667151
\n", + "
\n", + "
\n", + "\n", + "
\n", + " \n", + "\n", + " \n", + "\n", + " \n", + "
\n", + "\n", + "\n", + "
\n", + " \n", + "\n", + "\n", + "\n", + " \n", + "
\n", + "\n", + "
\n", + "
\n" + ], + "application/vnd.google.colaboratory.intrinsic+json": { + "type": "dataframe", + "summary": "{\n \"name\": \"data\",\n \"rows\": 7,\n \"fields\": [\n {\n \"column\": \"Age\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 19,\n \"min\": 1,\n \"max\": 56,\n \"num_unique_values\": 7,\n \"samples\": [\n 25,\n 18,\n 56\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"MovieID\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 3351711,\n \"min\": 667151,\n \"max\": 9954720,\n \"num_unique_values\": 7,\n \"samples\": [\n 9954720,\n 5051546,\n 740501\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}" + } + }, + "metadata": {}, + "execution_count": 72 + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "college/grad student are rating more number of movies" + ], + "metadata": { + "id": "DqEZbeAFonMQ" + } + }, + { + "cell_type": "code", + "source": [ + "data.groupby('Occupation')['MovieID'].sum().reset_index().sort_values(by='MovieID', ascending=False)" + ], + "metadata": { + "id": "o617mse3oNBh", + "outputId": "2f9ee7c0-485b-4e82-9026-f2a09d919cdc", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 708 + } + }, + "execution_count": 74, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " Occupation MovieID\n", + "4 4 3498889\n", + "0 0 3102820\n", + "7 7 2383710\n", + "1 1 1999463\n", + "17 17 1769565\n", + "20 20 1410293\n", + "12 12 1381350\n", + "14 14 1231415\n", + "2 2 1190770\n", + "16 16 1022346\n", + "6 6 875731\n", + "3 3 738646\n", + "10 10 594234\n", + "15 15 558604\n", + "5 5 492288\n", + "11 11 452351\n", + "19 19 401680\n", + "18 18 273039\n", + "13 13 263734\n", + "9 9 257423\n", + "8 8 62041" + ], + "text/html": [ + "\n", + "
\n", + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
OccupationMovieID
443498889
003102820
772383710
111999463
17171769565
20201410293
12121381350
14141231415
221190770
16161022346
66875731
33738646
1010594234
1515558604
55492288
1111452351
1919401680
1818273039
1313263734
99257423
8862041
\n", + "
\n", + "
\n", + "\n", + "
\n", + " \n", + "\n", + " \n", + "\n", + " \n", + "
\n", + "\n", + "\n", + "
\n", + " \n", + "\n", + "\n", + "\n", + " \n", + "
\n", + "\n", + "
\n", + "
\n" + ], + "application/vnd.google.colaboratory.intrinsic+json": { + "type": "dataframe", + "summary": "{\n \"name\": \"data\",\n \"rows\": 21,\n \"fields\": [\n {\n \"column\": \"Occupation\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 6,\n \"min\": 0,\n \"max\": 20,\n \"num_unique_values\": 21,\n \"samples\": [\n 4,\n 18,\n 11\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"MovieID\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 949200,\n \"min\": 62041,\n \"max\": 3498889,\n \"num_unique_values\": 21,\n \"samples\": [\n 3498889,\n 273039,\n 452351\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}" + } + }, + "metadata": {}, + "execution_count": 74 + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "Users from male gender have rated the more to movie as compare to the female" + ], + "metadata": { + "id": "Zirm7_nLphQg" + } + }, + { + "cell_type": "code", + "source": [ + "data.groupby('Gender')['MovieID'].sum().reset_index().sort_values(by='MovieID', ascending=False)" + ], + "metadata": { + "id": "obHtOU-Oo4Yb", + "outputId": "5b166a6d-b8fe-4177-88da-cc65ec41808e", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 112 + } + }, + "execution_count": 79, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " Gender MovieID\n", + "1 M 17736275\n", + "0 F 6224117" + ], + "text/html": [ + "\n", + "
\n", + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
GenderMovieID
1M17736275
0F6224117
\n", + "
\n", + "
\n", + "\n", + "
\n", + " \n", + "\n", + " \n", + "\n", + " \n", + "
\n", + "\n", + "\n", + "
\n", + " \n", + "\n", + "\n", + "\n", + " \n", + "
\n", + "\n", + "
\n", + "
\n" + ], + "application/vnd.google.colaboratory.intrinsic+json": { + "type": "dataframe", + "summary": "{\n \"name\": \"data\",\n \"rows\": 2,\n \"fields\": [\n {\n \"column\": \"Gender\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 2,\n \"samples\": [\n \"F\",\n \"M\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"MovieID\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 8140324,\n \"min\": 6224117,\n \"max\": 17736275,\n \"num_unique_values\": 2,\n \"samples\": [\n 6224117,\n 17736275\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}" + } + }, + "metadata": {}, + "execution_count": 79 + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "MovieID 260 are highest rated movie. and 90's movie are more rated" + ], + "metadata": { + "id": "eZyV4ov8rD7b" + } + }, + { + "cell_type": "markdown", + "source": [ + "Pearson Correlation ranges between -1 to 1, whereas Cosine Similarity belongs to the interval between 0 to 1" + ], + "metadata": { + "id": "fj2jeP36rb3Z" + } + }, + { + "cell_type": "code", + "source": [ + "data.groupby('MovieID')['Rating'].sum().reset_index().sort_values(by='Rating', ascending=False)" + ], + "metadata": { + "id": "DfbKzbbqpv7R", + "outputId": "bec7eaa0-2441-45a2-8d74-89115da37fe0", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 424 + } + }, + "execution_count": 82, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " MovieID Rating\n", + "253 260 53284\n", + "106 110 31038\n", + "0 1 25839\n", + "33 34 20442\n", + "287 296 18576\n", + ".. ... ...\n", + "133 138 5\n", + "128 133 2\n", + "219 226 2\n", + "122 127 1\n", + "137 142 1\n", + "\n", + "[291 rows x 2 columns]" + ], + "text/html": [ + "\n", + "
\n", + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
MovieIDRating
25326053284
10611031038
0125839
333420442
28729618576
.........
1331385
1281332
2192262
1221271
1371421
\n", + "

291 rows × 2 columns

\n", + "
\n", + "
\n", + "\n", + "
\n", + " \n", + "\n", + " \n", + "\n", + " \n", + "
\n", + "\n", + "\n", + "
\n", + " \n", + "\n", + "\n", + "\n", + " \n", + "
\n", + "\n", + "
\n", + "
\n" + ], + "application/vnd.google.colaboratory.intrinsic+json": { + "type": "dataframe", + "summary": "{\n \"name\": \"data\",\n \"rows\": 291,\n \"fields\": [\n {\n \"column\": \"MovieID\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 86,\n \"min\": 1,\n \"max\": 299,\n \"num_unique_values\": 291,\n \"samples\": [\n 280,\n 75,\n 45\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Rating\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 4883,\n \"min\": 1,\n \"max\": 53284,\n \"num_unique_values\": 262,\n \"samples\": [\n 26,\n 121,\n 194\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}" + } + }, + "metadata": {}, + "execution_count": 82 } ] } From dc57d9febd55a5bc1800c29df200467b8740ccba Mon Sep 17 00:00:00 2001 From: priyankakpal <68638105+priyankakpal@users.noreply.github.com> Date: Thu, 28 Nov 2024 16:58:43 +0530 Subject: [PATCH 4/4] Created using Colab --- ...mendation_System_Business_Case_Study.ipynb | 192 +++++++++--------- 1 file changed, 96 insertions(+), 96 deletions(-) diff --git a/Zee_Recommendation_System_Business_Case_Study.ipynb b/Zee_Recommendation_System_Business_Case_Study.ipynb index 762876c..4296f13 100644 --- a/Zee_Recommendation_System_Business_Case_Study.ipynb +++ b/Zee_Recommendation_System_Business_Case_Study.ipynb @@ -3087,12 +3087,12 @@ "df_rating_new" ], "metadata": { - "id": "RzlGx_7qHo0L", - "outputId": "9bcbcd93-ed63-4ae8-b6b7-dcb1cac70fac", "colab": { "base_uri": "https://localhost:8080/", "height": 424 - } + }, + "id": "RzlGx_7qHo0L", + "outputId": "9bcbcd93-ed63-4ae8-b6b7-dcb1cac70fac" }, "execution_count": 28, "outputs": [ @@ -3598,12 +3598,12 @@ "rating" ], "metadata": { - "id": "vIWyKCM0Wmux", - "outputId": "27dba428-4e84-4ecf-96e6-b6f4fd8ea8ae", "colab": { "base_uri": "https://localhost:8080/", "height": 424 - } + }, + "id": "vIWyKCM0Wmux", + "outputId": "27dba428-4e84-4ecf-96e6-b6f4fd8ea8ae" }, "execution_count": 31, "outputs": [ @@ -4088,12 +4088,12 @@ "rating.head()" ], "metadata": { - "id": "sf3EJWt7YU_1", - "outputId": "f356bf8d-9718-4d36-8356-ae75cd706374", "colab": { "base_uri": "https://localhost:8080/", "height": 206 - } + }, + "id": "sf3EJWt7YU_1", + "outputId": "f356bf8d-9718-4d36-8356-ae75cd706374" }, "execution_count": 34, "outputs": [ @@ -4490,12 +4490,12 @@ "r_user_item.head()" ], "metadata": { - "id": "KAgENo3FezZ-", - "outputId": "e1ec4476-01c9-4ead-f87e-6f940986030d", "colab": { "base_uri": "https://localhost:8080/", "height": 374 - } + }, + "id": "KAgENo3FezZ-", + "outputId": "e1ec4476-01c9-4ead-f87e-6f940986030d" }, "execution_count": 39, "outputs": [ @@ -5005,12 +5005,12 @@ "data.head() # data[['UserID','MovieID','Rating']]" ], "metadata": { - "id": "sALBTwu9cJAg", - "outputId": "f8d9db8e-60a2-43dd-d5cf-6a37cbfee533", "colab": { "base_uri": "https://localhost:8080/", "height": 330 - } + }, + "id": "sALBTwu9cJAg", + "outputId": "f8d9db8e-60a2-43dd-d5cf-6a37cbfee533" }, "execution_count": 40, "outputs": [ @@ -5397,12 +5397,12 @@ "user_data.head()" ], "metadata": { - "id": "Jp_0zksD2bgU", - "outputId": "217e168c-953e-4db2-ce60-110f8b5739d9", "colab": { "base_uri": "https://localhost:8080/", "height": 206 - } + }, + "id": "Jp_0zksD2bgU", + "outputId": "217e168c-953e-4db2-ce60-110f8b5739d9" }, "execution_count": 42, "outputs": [ @@ -5713,11 +5713,11 @@ "user_data.shape" ], "metadata": { - "id": "tFlOAPcLqkXA", - "outputId": "a30d542d-0b4b-4874-8cf7-0302fcaa732a", "colab": { "base_uri": "https://localhost:8080/" - } + }, + "id": "tFlOAPcLqkXA", + "outputId": "a30d542d-0b4b-4874-8cf7-0302fcaa732a" }, "execution_count": 43, "outputs": [ @@ -5739,12 +5739,12 @@ "data[['UserID','Title']].drop_duplicates()" ], "metadata": { - "id": "ST4yKJr9rnYb", - "outputId": "d7bf7ca9-856e-49a5-b088-7711e81148ff", "colab": { "base_uri": "https://localhost:8080/", "height": 424 - } + }, + "id": "ST4yKJr9rnYb", + "outputId": "d7bf7ca9-856e-49a5-b088-7711e81148ff" }, "execution_count": 44, "outputs": [ @@ -6092,12 +6092,12 @@ "user_data.head()" ], "metadata": { - "id": "c2mMq4rzuDbe", - "outputId": "b961c780-90bd-4762-a1e7-c6e3d6c6d528", "colab": { "base_uri": "https://localhost:8080/", "height": 206 - } + }, + "id": "c2mMq4rzuDbe", + "outputId": "b961c780-90bd-4762-a1e7-c6e3d6c6d528" }, "execution_count": 46, "outputs": [ @@ -6437,12 +6437,12 @@ "user_data[user_data['distance']>0.5]" ], "metadata": { - "id": "VeJOtW9Xw_xV", - "outputId": "3b7c42bc-445e-4896-e434-89463f03b61b", "colab": { "base_uri": "https://localhost:8080/", "height": 424 - } + }, + "id": "VeJOtW9Xw_xV", + "outputId": "3b7c42bc-445e-4896-e434-89463f03b61b" }, "execution_count": 48, "outputs": [ @@ -6856,12 +6856,12 @@ "u.pivot(index='User1', columns='User2', values='distance').fillna(0)" ], "metadata": { - "id": "n70XetOlwZX5", - "outputId": "b6f1bc7e-228b-4644-af9f-533792adabb1", "colab": { "base_uri": "https://localhost:8080/", "height": 851 - } + }, + "id": "n70XetOlwZX5", + "outputId": "b6f1bc7e-228b-4644-af9f-533792adabb1" }, "execution_count": 51, "outputs": [ @@ -7794,12 +7794,12 @@ "item_data.head()" ], "metadata": { - "id": "ORYNIvlK08Xz", - "outputId": "f0257b33-00c7-4566-e149-6d4d6723bbc7", "colab": { "base_uri": "https://localhost:8080/", "height": 206 - } + }, + "id": "ORYNIvlK08Xz", + "outputId": "f0257b33-00c7-4566-e149-6d4d6723bbc7" }, "execution_count": 52, "outputs": [ @@ -8108,12 +8108,12 @@ "item_data[item_data['distance']>0.5]" ], "metadata": { - "id": "Hhyzpjkg4q3M", - "outputId": "f407dbfd-c11b-4a7a-8fc8-93681e56e8f8", "colab": { "base_uri": "https://localhost:8080/", "height": 1000 - } + }, + "id": "Hhyzpjkg4q3M", + "outputId": "f407dbfd-c11b-4a7a-8fc8-93681e56e8f8" }, "execution_count": 53, "outputs": [ @@ -8716,12 +8716,12 @@ "rank_pearsonr_data.head()" ], "metadata": { - "id": "afUtg3c26zeL", - "outputId": "5cbf9cda-e299-4b97-fd30-69e43713f2c0", "colab": { "base_uri": "https://localhost:8080/", "height": 206 - } + }, + "id": "afUtg3c26zeL", + "outputId": "5cbf9cda-e299-4b97-fd30-69e43713f2c0" }, "execution_count": 54, "outputs": [ @@ -9057,12 +9057,12 @@ "rank_pearsonr_data[rank_pearsonr_data['distance']>0.5]" ], "metadata": { - "id": "aATUO1Q8TQnr", - "outputId": "1c3315c3-5691-418b-9fe1-42b0aacbde34", "colab": { "base_uri": "https://localhost:8080/", "height": 424 - } + }, + "id": "aATUO1Q8TQnr", + "outputId": "1c3315c3-5691-418b-9fe1-42b0aacbde34" }, "execution_count": 57, "outputs": [ @@ -9467,12 +9467,12 @@ "item_pearsonr_data.head()" ], "metadata": { - "id": "aoWorbbDT5Wx", - "outputId": "92c73492-b7ff-4418-bf90-dbdaa7152897", "colab": { "base_uri": "https://localhost:8080/", "height": 206 - } + }, + "id": "aoWorbbDT5Wx", + "outputId": "92c73492-b7ff-4418-bf90-dbdaa7152897" }, "execution_count": 58, "outputs": [ @@ -9781,12 +9781,12 @@ "item_pearsonr_data[item_pearsonr_data['distance']>0.5]" ], "metadata": { - "id": "kGXn5Lq_Vdag", - "outputId": "c9b59038-8119-4cc7-be7a-aeef632c996c", "colab": { "base_uri": "https://localhost:8080/", "height": 175 - } + }, + "id": "kGXn5Lq_Vdag", + "outputId": "c9b59038-8119-4cc7-be7a-aeef632c996c" }, "execution_count": 59, "outputs": [ @@ -10101,11 +10101,11 @@ "!pip install cmfrec" ], "metadata": { - "id": "sjiRL58KY5YP", - "outputId": "1e6a57eb-ccc9-40fd-ae3c-67ea0b4bcfb7", "colab": { "base_uri": "https://localhost:8080/" - } + }, + "id": "sjiRL58KY5YP", + "outputId": "1e6a57eb-ccc9-40fd-ae3c-67ea0b4bcfb7" }, "execution_count": 60, "outputs": [ @@ -10159,12 +10159,12 @@ "rm_raw.head()" ], "metadata": { - "id": "CyWrU1ZOD7xk", - "outputId": "36aa7230-e5e6-4274-b244-0ee64412cbf4", "colab": { "base_uri": "https://localhost:8080/", "height": 206 - } + }, + "id": "CyWrU1ZOD7xk", + "outputId": "36aa7230-e5e6-4274-b244-0ee64412cbf4" }, "execution_count": 62, "outputs": [ @@ -10467,11 +10467,11 @@ "model.fit(rm_raw)" ], "metadata": { - "id": "abr7GIbJD7j2", - "outputId": "24467954-5a27-4734-e4fa-31488f144adb", "colab": { "base_uri": "https://localhost:8080/" - } + }, + "id": "abr7GIbJD7j2", + "outputId": "24467954-5a27-4734-e4fa-31488f144adb" }, "execution_count": 63, "outputs": [ @@ -10494,11 +10494,11 @@ "model.A_.shape" ], "metadata": { - "id": "LqYXQJo2FGcF", - "outputId": "848c00bc-4a87-4b43-dd83-d7c0160d8677", "colab": { "base_uri": "https://localhost:8080/" - } + }, + "id": "LqYXQJo2FGcF", + "outputId": "848c00bc-4a87-4b43-dd83-d7c0160d8677" }, "execution_count": 64, "outputs": [ @@ -10520,11 +10520,11 @@ "model.B_.shape" ], "metadata": { - "id": "XXyTY-aYFM_M", - "outputId": "09f159b2-4696-4bc9-e676-1b99d51621a8", "colab": { "base_uri": "https://localhost:8080/" - } + }, + "id": "XXyTY-aYFM_M", + "outputId": "09f159b2-4696-4bc9-e676-1b99d51621a8" }, "execution_count": 65, "outputs": [ @@ -10546,11 +10546,11 @@ "data['Rating'].mean()" ], "metadata": { - "id": "JZyv6-qIFZx4", - "outputId": "53a98aa8-bab3-4e47-c7a2-5e818aa07066", "colab": { "base_uri": "https://localhost:8080/" - } + }, + "id": "JZyv6-qIFZx4", + "outputId": "53a98aa8-bab3-4e47-c7a2-5e818aa07066" }, "execution_count": 66, "outputs": [ @@ -10572,11 +10572,11 @@ "model.glob_mean_ # (mu)" ], "metadata": { - "id": "oFBoUcuMFYFM", - "outputId": "9e34ce7b-61c0-45e8-bd6b-04b881036e9a", "colab": { "base_uri": "https://localhost:8080/" - } + }, + "id": "oFBoUcuMFYFM", + "outputId": "9e34ce7b-61c0-45e8-bd6b-04b881036e9a" }, "execution_count": 67, "outputs": [ @@ -10601,11 +10601,11 @@ "mse(r_user_item.values[r_user_item>0] , rm__[r_user_item>0] )**0.5" ], "metadata": { - "id": "J7tqCJPyFhcX", - "outputId": "856affd7-776e-41ab-be36-2568fcb61f7c", "colab": { "base_uri": "https://localhost:8080/" - } + }, + "id": "J7tqCJPyFhcX", + "outputId": "856affd7-776e-41ab-be36-2568fcb61f7c" }, "execution_count": 68, "outputs": [ @@ -10628,11 +10628,11 @@ "top_items" ], "metadata": { - "id": "OVM5puRIGXTX", - "outputId": "1552d041-5075-4e08-c918-5d277f5968d4", "colab": { "base_uri": "https://localhost:8080/" - } + }, + "id": "OVM5puRIGXTX", + "outputId": "1552d041-5075-4e08-c918-5d277f5968d4" }, "execution_count": 69, "outputs": [ @@ -10654,12 +10654,12 @@ "movie.loc[movie.MovieID.isin(top_items)]" ], "metadata": { - "id": "7GmEXlLgGbaE", - "outputId": "e439db8f-da8f-49f9-b5b9-4af85dbd0dc8", "colab": { "base_uri": "https://localhost:8080/", "height": 551 - } + }, + "id": "7GmEXlLgGbaE", + "outputId": "e439db8f-da8f-49f9-b5b9-4af85dbd0dc8" }, "execution_count": 70, "outputs": [ @@ -11050,12 +11050,12 @@ "plt.show()\n" ], "metadata": { - "id": "e9nevh81HdNe", - "outputId": "08770a7d-2356-4ecd-a676-14ed9f393760", "colab": { "base_uri": "https://localhost:8080/", "height": 431 - } + }, + "id": "e9nevh81HdNe", + "outputId": "08770a7d-2356-4ecd-a676-14ed9f393760" }, "execution_count": 71, "outputs": [ @@ -11120,12 +11120,12 @@ "data.groupby('Age')['MovieID'].sum().reset_index().sort_values(by='MovieID', ascending=False)" ], "metadata": { - "id": "aD6F2nGonstB", - "outputId": "71905112-2a73-435f-bde1-3ba97128c750", "colab": { "base_uri": "https://localhost:8080/", "height": 269 - } + }, + "id": "aD6F2nGonstB", + "outputId": "71905112-2a73-435f-bde1-3ba97128c750" }, "execution_count": 72, "outputs": [ @@ -11441,12 +11441,12 @@ "data.groupby('Occupation')['MovieID'].sum().reset_index().sort_values(by='MovieID', ascending=False)" ], "metadata": { - "id": "o617mse3oNBh", - "outputId": "2f9ee7c0-485b-4e82-9026-f2a09d919cdc", "colab": { "base_uri": "https://localhost:8080/", "height": 708 - } + }, + "id": "o617mse3oNBh", + "outputId": "2f9ee7c0-485b-4e82-9026-f2a09d919cdc" }, "execution_count": 74, "outputs": [ @@ -11846,12 +11846,12 @@ "data.groupby('Gender')['MovieID'].sum().reset_index().sort_values(by='MovieID', ascending=False)" ], "metadata": { - "id": "obHtOU-Oo4Yb", - "outputId": "5b166a6d-b8fe-4177-88da-cc65ec41808e", "colab": { "base_uri": "https://localhost:8080/", "height": 112 - } + }, + "id": "obHtOU-Oo4Yb", + "outputId": "5b166a6d-b8fe-4177-88da-cc65ec41808e" }, "execution_count": 79, "outputs": [ @@ -12146,12 +12146,12 @@ "data.groupby('MovieID')['Rating'].sum().reset_index().sort_values(by='Rating', ascending=False)" ], "metadata": { - "id": "DfbKzbbqpv7R", - "outputId": "bec7eaa0-2441-45a2-8d74-89115da37fe0", "colab": { "base_uri": "https://localhost:8080/", "height": 424 - } + }, + "id": "DfbKzbbqpv7R", + "outputId": "bec7eaa0-2441-45a2-8d74-89115da37fe0" }, "execution_count": 82, "outputs": [