diff --git a/Latex/BP_Radek_Pus_2019.pdf b/Latex/BP_Radek_Pus_2019.pdf index ed40178cd798a9b58cc4201c2d3cd6a0f9de12b8..40d820ebbcf8b42a3d052c3a3c655f63a22ada97 100644 Binary files a/Latex/BP_Radek_Pus_2019.pdf and b/Latex/BP_Radek_Pus_2019.pdf differ diff --git a/Latex/BP_Radek_Pus_2019.tex b/Latex/BP_Radek_Pus_2019.tex index d75460146093545cac5f243f03bdf53a66005b7a..831f689a6296a07b58d7ba49b4b52cfb4b982a21 100644 --- a/Latex/BP_Radek_Pus_2019.tex +++ b/Latex/BP_Radek_Pus_2019.tex @@ -18,6 +18,7 @@ \usepackage{amsmath} \usepackage{hyperref} \usepackage{textgreek} +\usepackage{array, multirow} % \usepackage{amssymb} %additional math symbols \usepackage{dirtree} %directory tree visualisation @@ -41,7 +42,7 @@ \authorWithDegrees{Radek Puš} %jmĂ©no autora vÄŤetnÄ› souÄŤasnĂ˝ch akademickĂ˝ch titulĹŻ \author{Radek Puš} %jmĂ©no autora bez akademickĂ˝ch titulĹŻ \supervisor{Ing. Miroslav BalĂk, Ph.D.} -\acknowledgements{DÄ›kuji spoleÄŤnosti Trask Solutions a.s., zejmĂ©na pak Ing. Petru HnĂzdilovi a Ing. Pavlu Svobodovi, za veškerĂ© konzultace a datovĂ© podklady k práci. Dále dÄ›kuji svĂ© pĹ™Ătelkyni Mariyi Tsanko, za dodánĂ doplĹujĂcĂch dat ze svĂ˝ch bankovnĂch účtĹŻ a svĂ˝m rodiÄŤĹŻm, za veškerou podporu pĹ™i psanĂ práce} +\acknowledgements{DÄ›kuji spoleÄŤnosti Trask Solutions a.s., zejmĂ©na pak Ing. Petru HnĂzdilovi a Ing. Pavlu Svobodovi, za veškerĂ© konzultace a datovĂ© podklady k práci. Dále dÄ›kuji svĂ© pĹ™Ătelkyni Mariyi Tsanko, za dodánĂ doplĹujĂcĂch dat ze svĂ˝ch bankovnĂch účtĹŻ, PaeDr. JiĹ™inÄ› MališovĂ© za korekturu anglicky psanĂ©ho abstraktu a svĂ˝m rodiÄŤĹŻm, za veškerou podporu pĹ™i psanĂ práce} \abstractCS {V BakalářskĂ© práci byl Ĺ™ešen problĂ©m pĹ™edpovĂdánĂ budoucĂch transakcĂ klientovi, na základÄ› jeho uplynulĂ© finanÄŤnĂ historie. CĂlem práce je pokusit se implementovat toto pĹ™edvĂdánĂ pomocĂ umÄ›lĂ© inteligence spolu s vytvoĹ™enĂm webovĂ©ho rozhranĂ. Toho bylo dosaĹľeno pomocĂ Angularu, tvoĹ™ĂcĂho klientskou aplikaci, frameworkem .NET Core, kterĂ˝ tuto aplikaci obsluhuje ve spojenĂ s databázĂ Microsoft SQL. ZabezpeÄŤenĂ vyuĹľĂvá JWT tokenu a o šifrovánĂ uĹľivatelskĂ˝ch hesel se stará RFC~2898/SHA512. UmÄ›lá inteligence byla Ĺ™ešena jako lineárnĂ regrese. @@ -752,27 +753,178 @@ Jednou z podmĂnek práce je, aby byla aplikace responsivnĂ. Tedy, Ĺľe web bere \label{responsivityComparsion} \end{figure} -%TODO ============================================ -\section{TestovánĂ kvality - TODO dodÄ›lat} -Pro testovánĂ kvality práce bylo vyuĹľito vĂ˝pisu transakÄŤnĂ historie, která byla oĹ™Ăznuta o jeden mÄ›sĂc a porovnána s historiĂ pĹŻvodnĂ. TĂm vznikl obraz, nakolik jsou jednotlivĂ© pĹ™edpovÄ›di pĹ™esnĂ©. - -\subsection{Odhad neuronovou sĂtĂ} -\begin{enumerate} - \item tabulka: (5 vs 14, 1x špatnÄ›) -\end{enumerate} - -\subsection{Odhad prĹŻmÄ›rem} -\begin{enumerate} - \item line: - \item dny: -\end{enumerate} +\section{TestovánĂ kvality} +Pro testovánĂ kvality práce bylo vyuĹľito vĂ˝pisu transakÄŤnĂ historie z vlastnĂho účtu, která byla oĹ™Ăznuta o jeden mÄ›sĂc a porovnána s historiĂ pĹŻvodnĂ. TĂm vznikl obraz, nakolik jsou jednotlivĂ© pĹ™edpovÄ›di pĹ™esnĂ©. + +VlastnĂ historie byla vybrána v ÄŤasovĂ©m Ăşseku od 1.1.2019 do 31.8.2019 a byla porovnávána s následujĂcĂmi 28 dny. DalšĂm dĹŻvodem bylo to, Ĺľe svĂ© vlastnĂ transakce znám a to umoĹľĹuje lepšà náhled na to, kterĂ© pĹ™edpovÄ›di jsou špatnÄ› a kterĂ© dobĹ™e. DanĂ˝ Ăşsek byl zase vybrán z toho dĹŻvodu, Ĺľe jsem se v tu dobu choval podobnÄ› (náhlá zmÄ›na chovánĂ by nepĹ™ĂznivÄ› ovlivnila vĂ˝sledky). + +\subsection{PĹ™edpověď opakujĂcĂch se transakcĂ} +OpakujĂcĂ se transakce jsou vyhodnocovány pomocĂ poslednĂch dvou tĂ˝dnĹŻ nahranĂ© historie. Tyto tĂ˝dny urÄŤĂ, jak se bude uĹľivatel chovat pozdÄ›ji. + +VyhodnocenĂ, kterĂ© transakce se opakujĂ a kterĂ© nikoli, je velmi individuálnĂ. Pro testy byly vybrány ty částkou si blĂzkĂ© a jsou zobrazeny nĂĹľe (spolu s tabulkou veškerĂ˝ch provedenĂ˝ch transakcĂ) +\newline \newline +\hspace*{-1cm} +\begin{tabular}{|c |c |c |c|} + \hline + \multicolumn{4}{|c|}{ProvedenĂ© transakce (částky v KÄŤ)} \\\hline + 1. tĂ˝den & 2. tĂ˝den & 3. tĂ˝den & 4. tĂ˝den \\\hline + 15,00 & 15,00 & 15,00 & 15,00 \\\hline + 100,00 & 43,00 & 25,20 & 15,00 \\\hline + 118,00 & 70,30 & 88,00 & 15,00 \\\hline + 123,00 & 86,00 & 90,00 & 80,00 \\\hline + 180,00 & 113,00 & 95,00 & 120,00 \\\hline + 248,00 & 119,00 & 140,00 & 120,00 \\\hline + 250,00 & 124,00 & 159,00 & 135,00 \\\hline + 280,00 & 250,00 & 159,90 & 135,00 \\\hline + 465,00 & 347,60 & 180,00 & 154,00 \\\hline + 500,00 & 857,70 & 250,00 & 239,00 \\\hline + 580,00 & 1302,00 & 556,00 & 250,00 \\\hline + 1146,00 & & 1000,00 & 500,00 \\\hline + 1470,00 & & 1596,74 & \\\hline +\end{tabular} +\hspace{0.25cm} +\begin{tabular}{|c |c |c |c|} + \hline + \multicolumn{4}{|c|}{Transakce kterĂ© se opakujĂ (částky v KÄŤ)} \\\hline + 1. tĂ˝den & 2. tĂ˝den & 3. tĂ˝den & 4. tĂ˝den \\\hline + 15 & 15 & 15 & 15 \\\hline + 100 & 86 & 88 & 80 \\\hline + 118 & 113 & 95 & 120 \\\hline + 123 & 119 & 140 & 135 \\\hline + 180 & 124 & 159 & 135 \\\hline + 250 & 250 & 250 & 250 \\\hline + 465 & 347,60 & 556 & 500 \\\hline +\end{tabular} +\newline \newline + +Pro tabulku pĹ™edpovÄ›dĂ je však nutnĂ© dodat, Ĺľe částka 250,00 KÄŤ se zaÄŤala objevovat aĹľ od 1.9.2019. Tato částka tvořà pomyslnou zmÄ›nu chovánĂ uĹľivatele a pĹ™estoĹľe je pozdÄ›ji v tabulkách s daty uvedena, nebyla uvaĹľována jako špatná pĹ™edpověď, vzhledem k tomu, Ĺľe algoritmy nemÄ›ly dostateÄŤná data k jejĂm pĹ™edpovÄ›zenĂ. + +\subsubsection{PĹ™edpověď neuronovou sĂtĂ} +Neuronová sĂĹĄ dokázala pĹ™edpovÄ›dÄ›t ÄŤtyĹ™i transakce a dvÄ› vynechala. To je ekvivalentem 66,7\%, tedy nadpoloviÄŤnĂ vÄ›tšina. +\newline \newline +\begin{tabular}{|c |c |c |c ||c|} + \hline + \multicolumn{5}{|c|}{Predikce neuronovou sĂtĂ (hodnoty v KÄŤ)} \\\hline + 1. tĂ˝den & 2. tĂ˝den & 3. tĂ˝den & 4. tĂ˝den & predikce \\\hline + 15,00 & 15,00 & 15,00 & 15,00 & 19,00 \\\hline + 100,00 & 86,00 & 88,00 & 80,00 & \\\hline + 118,00 & 113,00 & 95,00 & 120,00 & 120,00 \\\hline + 123,00 & 119,00 & 140,00 & 135,00 & \\\hline + 180,00 & 124,00 & 159,00 & 135,00 & 148,50 \\\hline + 250,00 & 250,00 & 250,00 & 250,00 & \\\hline + 465,00 & 347,60 & 556,00 & 500,00 & 420,00 \\\hline +\end{tabular} + +NevyplnÄ›ná pole v tabulce (sloupec predikce) oznaÄŤujĂ, v kterĂ˝ch pĹ™Ăpadech se neuronovĂ© sĂti nepodaĹ™ilo pĹ™edpovÄ›dÄ›t opakovánĂ transakcĂ. Naopak částky oznaÄŤujĂ odhadovanou velikost. + +\subsubsection{PĹ™edpověď porovnánĂm částky} +PĹ™edpovĂdánĂ opakujĂcĂch se transakcĂ na základÄ› částky bylo mĂ©nÄ› ĂşspěšnĂ©, neĹľ pĹ™edvĂdánĂ neuronovou sĂtĂ. Tento algoritmus sice byl schopen pĹ™edpovÄ›dÄ›t všechny opakujĂcĂ se transakce, avšak uvedl dalšĂch pÄ›t transakcĂ, jeĹľ se zĹ™ejmÄ› neopakovaly. + +Celková Ăşspěšnost pĹ™edpovÄ›di byla stanovena jen jako 16,67\%. Tato hodnota byla stanovena tak, Ĺľe se kaĹľdá špatná pĹ™edpověď odeÄŤetla od pĹ™edpovÄ›di správnĂ©. Bylo šest opakujĂcĂch se transakcĂ a pÄ›t špatnÄ› pĹ™edpovÄ›zenĂ˝ch. VĂ˝sledek proto byl spoÄŤten následovnÄ›: \mbox{6-5/6 = 0,1667} +\newline \newline +\begin{tabular}{|c |c |c |c ||c|} + \hline + \multicolumn{5}{|c|}{PĹ™edpověď porovnánĂm částky (hodnoty v KÄŤ)} \\\hline + 1. tĂ˝den & 2. tĂ˝den & 3. tĂ˝den & 4. tĂ˝den & predikce \\\hline + 15,00 & 15,00 & 15,00 & 15,00 & 15,00 \\\hline + & & & & 15,00 \\\hline + & & & & 15,00 \\\hline + & & & & 19,00 \\\hline + 100,00 & 86,00 & 88,00 & 80,00 & 82,70 \\\hline + 118,00 & 113,00 & 95,00 & 120,00 & 100,00 \\\hline + 123,00 & 119,00 & 140,00 & 135,00 & 133,00 \\\hline + 180,00 & 124,00 & 159,00 & 135,00 & 138,00 \\\hline + & & & & 146,90 \\\hline + & & & & 148,50 \\\hline + 250,00 & 250,00 & 250,00 & 250,00 & \\\hline + 465,00 & 347,60 & 556,00 & 500,00 & 420,00 \\\hline +\end{tabular} +\newline \newline + +V pĹ™iloĹľenĂ© tabulce lze, obdobnÄ› jako v pĹ™edcházejĂcĂ sekci, ve sloupci predikce vidÄ›t, jakĂ© částky byly odhadovány. Ĺádky s nevyplnÄ›nĂ˝mi poli v jednotlivĂ˝ch tĂ˝dnech potom ukazujĂ, kterĂ© hodnoty byly pĹ™edvĂdány jako opakujĂ se, aÄŤ tomu tak nebylo. + +\subsection{PĹ™edpověď velikosti vĂ˝dajĹŻ} +Predikce vĂ˝dajĹŻ pĹ™edstavuje odhad kumulativnà částky všech transakcĂ pro budoucĂ dny a to na základÄ› prĹŻmÄ›ru ze všech nahranĂ˝ch dat. NeuvaĹľujĂ tedy pouze opakujĂcĂ se transakce. +\newpage +\subsubsection{PĹ™edpověď na následujĂcĂ ÄŤtyĹ™i tĂ˝dny} +Odhad na následujĂcĂ ÄŤtyĹ™i tĂ˝dny obsahuje 28 poloĹľek, pĹ™iÄŤemĹľ kaĹľdou poloĹľku lze povaĹľovat za samostatnĂ˝ text. -\subsection{Odhad částkou} -\begin{enumerate} - \item tabulka: - \item druh: -\end{enumerate} +Ăšspěšnost vyhodnocenĂ byla rozdÄ›lena na částku a mnoĹľstvĂ transakcĂ. Odhad částky se povedl pouze u jednĂ© ÄŤtvrtiny všech dnĹŻ, tedy rovnĂ˝ch 25\%. Pro mnoĹľstvĂ transakcĂ k danĂ©mu dni byl vĂ˝sledek lepšĂ. V tomto pĹ™ĂpadÄ› se povedlo odhadnout jedenáct dnĹŻ správnÄ›, tzn. 39,29\%. KumulativnĂ Ăşspěšnost pĹ™edpovÄ›di je pak rovna 32,14\%. +\newline \newline +\newcommand{\breakcell}[2]{ + \vbox{\setbox0\hbox{\strut #2}\hbox to\wd0{\hss\strut #1\hss}\copy0} +} +\begin{tabular}{|c |c |c |c |c |c |c |c|} + \hline + \multicolumn{7}{|c|}{PĹ™edpověď na následujĂcĂ ÄŤtyĹ™i tĂ˝dny} \\\hline + \multirow{3}{*}{Den} & \multicolumn{2}{c|}{Test} & \multicolumn{2}{c|}{Odhad} & \multicolumn{2}{c|}{SprávnÄ›} \\ + & \breakcell{Ăştrata}{(v KÄŤ)} & \breakcell{poÄŤet}{transakcĂ} & \breakcell{Ăştrata}{(v KÄŤ)} & \breakcell{poÄŤet}{transakcĂ} & \raisebox{0.5em}{Ăştrata} & \breakcell{poÄŤet}{transakcĂ}\\\hline + 1 & 0,00 & 0 & 284,10 & 1,00 & ne & ne\\\hline + 2 & 0,00 & 0 & 1381,16 & 1,67 & ne & ne\\\hline + 3 & 1646,00 & 2 & 252,82 & 1,38 & ne & ano \\\hline + 4 & 963,00 & 3 & 147,96 & 1,56 & ne & ne \\\hline + 5 & 133,00 & 2 & 352,78 & 2,13 & ne & ano \\\hline + 6 & 1930,00 & 3 & 373,97 & 2,40 & ne & ano \\\hline + 7 & 803,00 & 3 & 476,00 & 1,20 & ne & ne \\\hline + 8 & 347,60 & 1 & 312,00 & 2,17 & ano & ne \\\hline + 9 & 2159,70 & 2 & 2559,11 & 2,20 & ano & ano \\\hline + 10 & 70,30 & 1 & 688,84 & 2,40 & ne & ne \\\hline + 11 & 503,00 & 4 & 194,21 & 2,13 & ne & ne \\\hline + 12 & 113,00 & 1 & 481,39 & 2,00 & ne & ne \\\hline + 13 & 134,00 & 2 & 352,55 & 2,50 & ne & ano \\\hline + 14 & 0,00 & 0 & 274,36 & 2,17 & ne & ne\\\hline + 15 & 646,00 & 2 & 162,80 & 2,80 & ne & ano \\\hline + 16 & 1180,00 & 2 & 119,44 & 2,33 & ne & ano \\\hline + 17 & 1596,74 & 1 & 286,05 & 1,00 & ne & ano \\\hline + 18 & 409,90 & 2 & 288,41 & 2,00 & ano & ano \\\hline + 19 & 95,00 & 1 & 231,05 & 3,00 & ne & ne \\\hline + 20 & 299,00 & 2 & 276,09 & 2,86 & ano & ano \\\hline + 21 & 128,20 & 3 & 225,56 & 3,00 & ano & ano \\\hline + 22 & 610,00 & 4 & 192,30 & 2,00 & ne & ne \\\hline + 23 & 0,00 & 0 & 512,50 & 2,67 & ne & ne\\\hline + 24 & 393,00 & 2 & 542,50 & 1,00 & ano & ne \\\hline + 25 & 370,00 & 2 & 183,05 & 3,67 & ne & ne \\\hline + 26 & 150,00 & 2 & 553,63 & 4,00 & ne & ne \\\hline + 27 & 135,00 & 1 & 140,68 & 3,20 & ano & ne \\\hline + 28 & 120,00 & 1 & 3229,67 & 3,00 & ne & ne \\\hline +\end{tabular} +\newpage +\subsubsection{PĹ™edpověď na jednotlivĂ© dny v tĂ˝dnu} + +PĹ™edpověď mnoĹľstvĂ transakcĂ a jejich poÄŤtu vycházĂ z prĹŻmÄ›ru jednotlivĂ˝ch dnĹŻ. Tato pĹ™edpověď byla postupnÄ› porovnána s následujĂcĂmi tĹ™emi tĂ˝dny. Celkovvou výši transakcĂ i jejich poÄŤet lze vidÄ›t v tabulkách uvedenĂ˝ch nĂĹľe. ZároveĹ je zde uvedena tabulka, která ukazuje, kterĂ˝ odhad byl povaĹľován ještÄ› za správnĂ˝ a kterĂ˝ nikoli. +\newline \newline +\begin{tabular}{|c |c |c |c |c |c |c |c |c|} + \hline + \multicolumn{9}{|c|}{PĹ™edpověď na tĂ˝den (částka v KÄŤ)} \\\hline + \multirow{2}{*}{Den} & \multicolumn{2}{c|}{Odhad} & \multicolumn{2}{c|}{Test 1} & \multicolumn{2}{c|}{Test 2} & \multicolumn{2}{c|}{Test 3} \\ + & částka & poÄŤet & částka & poÄŤet & částka & poÄŤet & částka & poÄŤet \\\hline + Po & 237,80 & 1,09 & 0,00 & 0 & 2 159,00 & 2 & 1 180,00 & 2 \\\hline + Ăšt & 1 143,05 & 2,22 & 1 646,00 & 2 & 70,30 & 1 & 1596,74 & 1\\\hline + St & 442,55 & 1,44 & 963,00 & 3 & 503,00 & 4 & 409,90 & 2\\\hline + ÄŚt & 203,41 & 2,34 & 133,00 & 2 & 113,00 & 1 & 95,00 & 1 \\\hline + Pá & 404,71 & 2,78 & 1 930,00 & 3 & 134,00 & 2 & 249,00 & 2 \\\hline + So & 298,32 & 2,74 & 803,00 & 3 & 0,00 & 0 & 128,00 & 3 \\\hline + Ne & 1 076,40 & 2,34 & 89,00 & 2 & 347,60 & 1 & 646,00 & 2 \\\hline +\end{tabular} +\newline \newline \newline +\begin{tabular}{|c |c |c |c |c |c |c|} + \hline + \multicolumn{7}{|c|}{Správnost pĹ™edpovÄ›di na tĂ˝den} \\\hline + \multirow{2}{*}{Den} & \multicolumn{2}{c|}{Test 1} & \multicolumn{2}{c|}{Test 2} & \multicolumn{2}{c|}{Test 3} \\ + & částka & poÄŤet & částka & poÄŤet & částka & poÄŤet \\\hline + Po & ne & ne & ne & ne & ne & ne \\\hline + Ăšt & ano & ano & ne & ne & ano & ne \\\hline + St & ano & ne & ano & ne & ano & ano \\\hline + ÄŚt & ano & ano & ano & ne & ne & ne \\\hline + Pá & ne & ano & ne & ano & ne & ano \\\hline + So & ne & ano & ne & ne & ne & ano \\\hline + Ne & ne & ano & ne & ne & ano & ano \\\hline +\end{tabular} +\newline \newline + +Z uvedenĂ˝ch ĂşdajĹŻ lze vyÄŤĂst, Ĺľe částku se podaĹ™ilo správnÄ› odhadnout celkem osmkrát, tedy s ĂşspěšnostĂ 38,1\%. Oproti tomu poÄŤet transakcĂ se podaĹ™ilo odhadnout v deseti pĹ™Ăpadech. Ăšspěšnost toho odhadu tedy dosahuje 47,62\%. KumulativnĂ Ăşspěšnost všech pĹ™edpovÄ›dĂ je proto 42,86\%. +\newpage %TODO druhĂ˝ uĹľivatel \section{TestovánĂ nezávislĂ˝m uĹľivatelem} DalšĂm testem bylo ohodnocenĂ aplikace nezávislĂ˝m ÄŤlovÄ›kem. DotyÄŤnĂ˝ ale byl seznámen se zaměřenĂm aplikace a byl mu staĹľen vĂ˝pis z účtu a umĂstÄ›n na plochu. CelĂ˝ test pak tvoĹ™ilo nÄ›kolik bodĹŻ, kterĂ© má tento potencionálnĂ uĹľivatel projĂt a vyhodnotit. @@ -842,7 +994,6 @@ Jako moĹľná dalšà zásadnĂ rozšĂĹ™enĂ bych uvedl doporuÄŤovánĂ produkt \appendix -%============= seznam zkratek disabled =================== \chapter{Seznam pouĹľitĂ˝ch zkratek} \begin{description} \item [JSON] JavaScript Object Notation