ASOCIAˇ CN´I ALGORITMY V DATAMININGOV ´ YCH ´ ULOH ´ ACH
Bakal´ aˇ rsk´ a pr´ ace
Studijn´ı program: B2646 – Informaˇcn´ı technologie Studijn´ı obor: 1802R007 – Informaˇcn´ı technologie Autor pr´ace: Milan Kov´aˇcik
Vedouc´ı pr´ace: Ing. Bc. Mari´an Lamr
ASSOCIATION ALGORITHMS IN DATAMINING TASKS
Bachelor thesis
Study programme: B2646 – Information technology Study branch: 1802R007 – Information technology Author: Milan Kov´aˇcik
Supervisor: Ing. Bc. Mari´an Lamr
Prohl´ aˇ sen´ı
Byl jsem sezn´amen s t´ım, ˇze na mou bakal´aˇrskou pr´aci se plnˇe vztahuje z´akon ˇc. 121/2000 Sb., o pr´avu autorsk´em, zejm´ena § 60 – ˇskoln´ı d´ılo.
Beru na vˇedom´ı, ˇze Technick´a univerzita v Liberci (TUL) neza- sahuje do m´ych autorsk´ych pr´av uˇzit´ım m´e bakal´aˇrsk´e pr´ace pro vnitˇrn´ı potˇrebu TUL.
Uˇziji-li bakal´aˇrskou pr´aci nebo poskytnu-li licenci k jej´ımu vyuˇzit´ı, jsem si vˇedom povinnosti informovat o t´eto skuteˇcnosti TUL;
v tomto pˇr´ıpadˇe m´a TUL pr´avo ode mne poˇzadovat ´uhradu n´aklad˚u, kter´e vynaloˇzila na vytvoˇren´ı d´ıla, aˇz do jejich skuteˇcn´e v´yˇse.
Bakal´aˇrskou pr´aci jsem vypracoval samostatnˇe s pouˇzit´ım uveden´e literatury a na z´akladˇe konzultac´ı s vedouc´ım m´e bakal´aˇrsk´e pr´ace a konzultantem.
Datum:
Podpis:
Abstrakt
Tato bakal´aˇrsk´a pr´ace se zab´yv´a asociaˇcn´ımi algoritmy v data mi- ningov´ych ´uloh´ach. V teoretick´e ˇc´asti je rozebr´ana metodologie CRISP-DM, podle kter´e je zpracov´ana pˇr´ıpadov´a studie pro mode- lovou ´ulohu anal´yza n´akupn´ıho koˇs´ıku. Jako e-learningov´a podpora pro pˇredmˇet data mining byla naprogramov´ana aplikace pro gene- rov´an´ı asociaˇcn´ıch pravidel pomoc´ı algoritmu Apriori.
Kl´ıˇcov´a slova: Data mining, CRISP-DM, anal´yza n´akupn´ıho koˇs´ıku, asociaˇcn´ı pravidla, Apriori
Abstract
This bachelor thesis talks about association algorithms in data mi- ning tasks. There is the analyse of CRISP-DM methodology in the teoretical part, which is base for the case study of the model task:
market basket analyse. The application for generating of associ- ation rules was programmed with using Apriori algorithm as the e-learning support for the Data mining course.
Keywords: Data mining, CRISP-DM, market basket analyse, as- sociation rules, Apriori
Podˇ ekov´ an´ı
T´ımto bych r´ad podˇekoval sv´emu vedouc´ımu pr´ace Ing. Bc. Mari´anu Lamrovi za konzultace a uˇziteˇcn´e rady pˇri ˇreˇsen´ı pr´ace. Dˇekuji sv´e rodinˇe a pˇr´atel˚um za podporu a RNDr. Kl´aˇre C´ısaˇrov´e, Ph.D.
dˇekuji za konzultace.
Obsah
Uvod´ 9
1 Data mining 11
1.1 Ulohy v data miningu´ . . . 11
1.2 Metodologie . . . 12
1.2.1 SEMMA . . . 12
1.2.2 CRISP-DM . . . 13
1.3 Cross-selling . . . 16
1.4 Software . . . 16
1.4.1 IBM SPSS Modeler . . . 16
2 Modelov´an´ı v data miningu pomoc´ı asociaˇcn´ıch pravidel 17 2.1 Asociaˇcn´ı pravidla . . . 17
2.2 Princip algoritmu Apriori . . . 18
2.2.1 Generov´an´ı frekventovan´ych mnoˇzin . . . 19
2.2.2 Generov´an´ı asociaˇcn´ıch pravidel . . . 21
3 Anal´yza n´akupn´ıch koˇs´ık˚u 22 3.1 Anal´yza datov´eho souboru . . . 23
3.1.1 Data audit . . . 23
3.1.2 Histogram ID objedn´avky . . . 25
3.1.3 Poˇcet n´avrat˚u z´akazn´ıka . . . 26
3.2 Pˇr´ıprava dat . . . 26
3.3 Modelov´an´ı . . . 28
3.4 Nasazen´ı . . . 31
4 Implementace aplikace 32 4.1 N´avrh grafick´eho rozhran´ı . . . 32
4.2 Hierarchie tˇr´ıd . . . 33
4.2.1 Zisk dat . . . 33
4.2.2 Cten´ı z csv souboru . . . 34ˇ 4.2.3 Uchov´an´ı atribut˚u . . . 36
4.2.4 Zprostˇredkov´an´ı informac´ı . . . 36
4.2.5 Frekventovan´e mnoˇziny . . . 37
4.2.6 Nalezen´ı implikac´ı . . . 38
4.2.7 Ovˇeˇren´ı nalezen´ych implikac´ı . . . 39
5 Z´avˇer 40 Poˇzit´a literatura . . . 41
Seznam pˇr´ıloh . . . 42
Uvod ´
T´ematem bakal´aˇrsk´e pr´ace jsou asociaˇcn´ı algoritmy v data miningov´ych ´uloh´ach.
V dneˇsn´ı dobˇe, je ukl´ad´ano st´ale v´ıce dat, kter´e jen bezcennˇe leˇz´ı v datab´az´ıch, a proto se ve svˇetˇe informatiky st´ale v´ıce objevuje pojem data mining. Tento pojem se d´a pˇreloˇzit jako dolov´an´ı dat, nebo vytˇeˇzov´an´ı dat z datab´az´ı. Pomoc´ı dolov´an´ı z dat je moˇzn´e z´ıskat potencion´alnˇe uˇziteˇcn´e informace. Tyto informace je nutn´e zpracovat a posoudit, jak s nimi naloˇzit. Tato pr´ace se zab´yv´a anal´yzou n´akupn´ıho koˇs´ıku, z nˇehoˇz lze z´ıskat spoustu informac´ı pouˇziteln´ych v marketingu.
Jen z jednoduch´eho pr˚uchodu dat lze zjistit strukturu, obsah, ´uplnost a kvalitu dat. Po podrobnˇejˇs´ım zkoum´an´ı m˚uˇzeme zjistit, jac´ı uˇzivatel´e se vracej´ı a co si ku- puj´ı, to je dobr´e pˇredevˇs´ım z obchodn´ıho hlediska, jelikoˇz udrˇzen´ı z´akazn´ıka je m´enˇe n´akladn´e neˇz zisk nov´eho. Z´ıskan´e znalosti je moˇzn´e vyuˇz´ıt na c´ılenou marketingovou kampaˇn, coˇz m˚uˇze uˇsetˇrit velk´e mnoˇzstv´ı penˇez. Hlavn´ı je vˇsak zjistit, jak´e zboˇz´ı si z´akazn´ıci nejˇcastˇeji kupuj´ı v kombinaci s jin´ym zboˇz´ım a pomoc´ı tˇechto infor- mac´ı z´akazn´ık˚um nab´ızet produkty podle toho, co maj´ı aktu´alnˇe ve sv´em n´akupn´ım koˇs´ıku.
Hlavn´ım c´ılem bakal´aˇrsk´e pr´ace je naprogramovat aplikaci na generov´an´ı aso- ciaˇcn´ıch pravidel. Pro generov´an´ı asociaˇcn´ıch pravidel bude pouˇzit algoritmus Apri- ori. Pro aplikaci bude navrhnuto grafick´e rozhran´ı s moˇznost´ı volby vstupn´ıho souboru. Po naˇcten´ı dat, si uˇzivatel bude moci zvolit, z kter´ych atribut˚u (druh zboˇz´ı) m´a generovat asociaˇcn´ı pravidla. V pˇr´ıpadˇe, kdy jsou k dispozici osobn´ı data o z´akazn´ıkovi, lze generovat pravidla pouze na urˇcit´e skupiny lid´ı. Nakonec uˇzivatel nastav´ı citlivost algoritmu a zah´aj´ı generov´an´ı pravidel. V´ystupem programu je ta- bulka vygenerovan´ych asociaˇcn´ıch pravidel. Pˇr´ımo v aplikaci bude moˇzn´e vyzkouˇset si pravidla pomoc´ı simulace n´akupu a podle obsahu koˇs´ıku se c´ılenˇe doporuˇc´ı dalˇs´ı zboˇz´ı. V´ysledn´e implikace bude moˇzn´e uloˇzit do souboru a d´ale pouˇz´ıt v praxi.
D´ılˇc´ım c´ılem je zpracov´an´ı pˇr´ıpadov´e studie pro pˇredmˇet v navazuj´ıc´ım stu-
diu. Studie zahrnuje celou anal´yzu vˇsech koˇs´ık˚u, zjiˇstˇen´ı a rozebr´an´ı d˚uleˇzit´ych faktor˚u a zpracov´an´ı dat do podoby vhodn´e pro algoritmus Apriori. Anal´yza zahr- nuje sestaven´ı funkˇcn´ıho modelu a vyzkouˇsen´ı vygenerovan´ych pravidel. Pro anal´yzu a sestaven´ı modelu bude pouˇzit data miningov´y n´astroj IBM SPSS Modeler a po- stupovat se bude pomoc´ı metodologie CRISP-DM popsan´e v teoretick´e ˇc´asti.
K dispozici jsou vˇsak jen ide´aln´ı data, vytvoˇren´a ke studijn´ım ´uˇcel˚um, proto z nich nelze zjistit nˇekter´e faktory vypl´yvaj´ıc´ı z praxe. Z´ısk´an´ım dat z re´aln´eho ob- chodu by cel´a anal´yza i v´ysledn´a pravidla mohla b´yt pouˇzita v praxi. Cel´a anal´yza a program mohou poslouˇzit dalˇs´ım provozovatel˚um jako n´avod, jak se svoj´ı datab´az´ı naloˇzit co nejl´epe.
1. Data mining
Term´ın data mining v pˇrekladu znamen´a dolov´an´ı dat nebo vytˇeˇzov´an´ı dat, nˇekdy ch´ap´ana jako dob´yv´an´ı znalost´ı z datab´aze (Knowledge Discovery in Databases [5]).
Data mining je proces vytˇeˇzov´an´ı dat z rozs´ahl´ych datab´az´ı, k nˇemuˇz se vyuˇz´ıvaj´ı metody umˇel´e inteligence, strojov´eho uˇcen´ı, statistik a datab´azov´ych syst´em˚u.
Obecnˇe jde o vytˇeˇzov´an´ı informac´ı z datab´az´ı a transformovan´ı do srozumiteln´e podoby pouˇziteln´e k dalˇs´ımu pouˇzit´ı.
Manu´aln´ı z´ısk´av´an´ı informac´ı z dat je zn´am´e jiˇz nˇekolik stolet´ı, mezi prvn´ı pouˇz´ıvan´e metody patˇr´ı Bayeovsk´a vˇeta (1700) a regresn´ı anal´yza (1800). S ros- touc´ım vlivem v´ypoˇcetn´ı techniky se zv´yˇsilo shromaˇzd’ov´an´ı a sloˇzitost dat. Nebylo jiˇz moˇzn´e ruˇcn´ı zpracov´an´ı a analyzov´an´ı dat, a proto zaˇcal vzestup automatick´eho zpracov´an´ı dat, kter´y byl podporov´an dalˇs´ımi objevy v informatice, jako jsou shlu- kov´e anal´yzy, neuronov´e s´ıtˇe, rozhodovac´ı stromy a genetick´e algoritmy. Data mining vlastnˇe vyuˇz´ıv´a tyto metody k zisku skryt´ych vzorc˚u v rozs´ahl´ych datech. [1]
1.1 Ulohy v data miningu ´
Dolov´an´ı dat lze pouˇz´ıt na velk´e mnoˇzstv´ı nejr˚uznˇejˇs´ıch probl´em˚u. Jednotliv´e probl´emy lze zaˇradit do kategori´ı, avˇsak rozdˇelen´ı do kategori´ı nen´ı jasnˇe stanoven´e.
Zde je nˇekolik z´akladn´ıch ´uloh ˇreˇsen´ych v data miningu.
• Predikce – na z´akladˇe statick´ych technik jsou pˇredpov´ıd´any n´asleduj´ıc´ı hod- noty z pˇredeˇsl´ych hodnot.
• Deskripce – nalezen´ı skryt´e struktury nebo vazeb, kter´e jsou pouˇzity k n´asledn´emu vyhodnocov´an´ı.
• Klasifikace – rozdˇelen´ı objekt˚u do tˇr´ıd na z´akladˇe spoleˇcn´ych charakteris- tick´ych rys˚u. Tˇr´ıdy jsou d´any pˇredem, a kaˇzd´y objekt do nich lze jednoznaˇcnˇe zaˇradit.
• Regrese – na z´akladˇe pˇredeˇsl´ych zkuˇsenost´ı pˇredpov´ıd´a n´asleduj´ıc´ı hodnotu.
Jedn´a se o statickou metodu popisuj´ıc´ı vztahy mezi vstupn´ımi a v´ystupn´ımi hodnotami.
• Segmentace – jedn´a se o nejstarˇs´ı techniku pouˇz´ıvanou v data miningu, zaloˇzenou na rozdˇelen´ı objekt˚u do skupin (shluk˚u), kter´e jsou vytv´aˇreny v anal´yze dat. Objekty jsou zaˇrazeny do shluk˚u podle podobnosti charak- teristick´ych rys˚u.
• Sumarizace – sumarizaci je vhodn´e pouˇz´ıt u velk´eho poˇctu dat, k zjiˇstˇen´ı struktury tˇechto dat. Jsou zde pouˇzity z´akladn´ı aritmetick´e operace.
1.2 Metodologie
V souˇcasnosti se data miningem zab´yv´a st´ale v´ıce firem, kter´e chtˇej´ı v´ysledky rychle, levnˇe a efektivnˇe, v d˚usledku toho pˇrich´azej´ı na sc´enu metodologie. Stan- dardizace postup˚u je jedn´ım ze zp˚usob˚u, jak ˇsetˇrit prostˇredky a ˇcas. Bylo vy- tvoˇreno nˇekolik metodologi´ı popisuj´ıc´ı efektivn´ı postup zpracov´an´ı projektu, mezi nejzn´amˇejˇs´ı a nejpouˇz´ıvanˇejˇs´ı patˇr´ı metodologie SEMMA a CRISP-DM.
1.2.1 SEMMA
Jm´eno t´eto metodologie je sloˇzen´ım prvn´ıch p´ısmen z jednotliv´ych f´az´ı vytˇeˇzov´an´ı dat. SEMMA byla vyvinuta spoleˇcnost´ı SAS Institute a je povaˇzov´ana za obecnou metodiku dolov´an´ı dat. Spoleˇcnost SAS Institute tvrd´ı, ˇze SEMMA je sp´ıˇse logick´a organizace funkˇcn´ı sady n´astroj˚u pro produkt SAS Enterprise Miner, a proto jej´ı pouˇz´ıv´an´ı mimo tento produkt m˚uˇze b´yt dvojznaˇcn´e. Je zamˇeˇrena pˇredevˇs´ım na mo- delov´an´ı ´uloh a oproti CRISP-DM nezahrnuje obchodn´ı str´anku projektu. [6]
• Sample – v´ybˇer dat dostateˇcnˇe velik´ych a z´aroveˇn dostateˇcnˇe mal´ych, aby byla data efektivnˇe vyuˇzita.
• Explore – porozumˇen´ı dat˚um, objevov´an´ı souvislost´ı pomoc´ı vizualizace.
• Modify – pˇr´ıprava dat pro modelov´an´ı.
• Model – modelov´an´ı na pˇripraven´ych datech k dosaˇzen´ı v´ysledku.
• Assess – zhodnocen´ı v´ysledk˚u.
1.2.2 CRISP-DM
Metodologie CRISP-DM (CRoss – Industry Standard Process for Data Mining) byla vyvinuta jako projekt Evropsk´e komise standardizuj´ıc´ı postup vytv´aˇren´ı data miningov´ych projekt˚u. CRISP-DM nab´ız´ı n´avod krok po kroku pro kaˇzdou ˇc´ast projektu. Model pom´ah´a zpracov´avat projekty rychleji, efektivnˇeji, s niˇzˇs´ımi n´aklady a bez bˇeˇzn´ych chyb. Metodologie je pops´ana v ˇsesti kroc´ıch, to vˇsak neznamen´a, ˇze mus´ıme j´ıt od prvn´ıho kroku k posledn´ımu, v r´amci cel´eho projektu se m˚uˇzeme vracet k minul´ym krok˚um a mˇenit je tak, aby bylo dosaˇzeno poˇzadovan´eho c´ıle.
V praxi je bˇeˇzn´e vracet se i nˇekolikr´at do stejn´eho bodu. Na obr´azku 1.1 je zobrazen pr˚ubˇeh cyklu CRISP-DM. [4]
Obr´azek 1.1: Pr˚ubˇeh metodologie CRISP-DM [7]
• Business understanding - (porozumnˇen´ı problematice)
V prvn´ı f´azi je nutn´e pochopit, ˇceho chce z´akazn´ık dos´ahnout z obchodn´ıho hlediska. Z´akazn´ıci maj´ı obˇcas protich˚udn´e c´ıle a omezen´ı, kter´ym mus´ı analytik porozumˇet a navrhnout vyv´aˇzenou cestu. Dalˇs´ım ´ukolem analytika je odhalen´ı d˚uleˇzit´ych faktor˚u, jeˇz by mohly ovlivnit v´ysledek projektu.
Nejd˚uleˇzitˇejˇs´ı je stanovit spr´avn´y c´ıl a to pˇredevˇs´ım z obchodn´ıho hlediska.
Zde pˇrich´az´ı i prvn´ı pl´an projektu, jak dolovat data za spr´avn´ym ´uˇcelem projektu, stanoven´ı z´akladn´ıch postup˚u a v´ybˇer n´astroj˚u a technik. Je d˚uleˇzit´e stanovit krit´eria pro ´uspˇech z podnikatelsk´eho hlediska. Dalˇs´ım bodem je po- drobnˇejˇs´ı zjiˇstˇen´ı o zdroj´ıch dat, vytvoˇrit seznam dostupn´ych zdroj˚u pro pro- jekt, a to i lidsk´ych zdroj˚u a software. Zkouman´a vstupn´ı data mus´ı b´yt zhodnocena, zda by nemˇela b´yt doplnˇena nebo modifikov´ana. Na z´akladˇe zn´am´ych fakt˚u je nutn´e zhodnotit m´ıru rizika, dostupnost zdroj˚u a v´yˇsi n´aklad˚u. Na rozs´ahlejˇs´ıch projektech, na kter´ych spolupracuje velk´y t´ym je dobr´e sestavit slovn´ık term´ın˚u.
• Data understanding - (porozumnˇen´ı dat˚um)
Zisk dat, nebo pˇr´ıstupu k dat˚um z projektov´ych zdroj˚u, je nutn´e tato data po- chopit, k tomu je k dispozici velk´a ˇrada n´astroj˚u. Pomoc´ı tˇechto n´astroj˚u jsou data charakterizov´ana a jsou pops´any jejich vlastnosti, vˇcetnˇe form´atu dat, mnoˇzstv´ı dat, popis pol´ı kaˇzd´e tabulky a dalˇs´ı objeven´e vlastnosti, pomoc´ı nichˇz je vyhodnoceno, zda data splˇnuj´ı poˇzadavky. Pro anal´yzu se zde ˇcasto vyuˇz´ıv´a jednoduch´ych funkc´ı, jako nalezen´ı minima a maxima, pr˚umˇern´e hod- noty, nebo ˇcetnosti jednotliv´ych hodnot. Pot´e jsou zkoum´any data d˚ukladnˇeji a jsou vytipov´any souvisej´ıc´ı mnoˇziny a jejich podmnoˇziny. Zhodnot´ı se prvn´ı hypot´ezy a jejich vliv na v´ysledek projektu. D˚uleˇzit´e je zhodnocen´ı kvality dat, zda jsou data kompletn´ı a neobsahuj´ı chyby. Pokud obsahuj´ı chyby, je nutn´e vˇedˇet, o jak´e chyby se jedn´a, jak jsou ˇcast´e a jestli mohou ovlivnit v´ysledek.
• Data preparation - (pˇr´ıprava dat)
Na zaˇc´atku je d˚uleˇzit´e zhodnotit technick´e omezen´ı, jako objem dat nebo da- tov´ych typ˚u. Hlavn´ı je selekce potˇrebn´ych atribut˚u (sloupc˚u) a v´ybˇer z´aznam˚u (ˇr´adk˚u). Mus´ı b´yt rozhodnuto jak´e atributy a z´aznamy budou vybr´any nebo vylouˇceny. Pomoc´ı vylouˇcen´ı nˇekter´ych z´aznam˚u je zv´yˇsena kvalita dat.
T´ım jsou vybr´ana pouze kompletn´ı data, je moˇzn´e chybˇej´ıc´ı data doplnit po- moc´ı technik, odhaduj´ıc´ıch chybˇej´ıc´ı ´udaje. Pˇri konstrukci dat mohou vznikat
nov´e atributy nebo generovan´e z´aznamy, potˇrebn´e pro modelov´an´ı. ˇCasto se sluˇcuje v´ıce zdroj˚u do jednoho spoleˇcn´eho a vytv´aˇr´ı se zcela nov´e tabulky.
• Modeling - (modelov´an´ı)
V prvn´ım kroku byl vybr´an n´astroj pro modelov´an´ı, ale v tomto kroku je nutn´e vybrat konkr´etn´ı modelovac´ı techniku, kter´a bude pouˇzita. Mezi pouˇz´ıvan´e techniky patˇr´ı napˇr´ıklad rozhodovac´ı stromy, neuronov´e s´ıtˇe nebo asociaˇcn´ı pravidla. Je moˇzn´e pouˇz´ıt v´ıce modelovac´ıch technik a porovn´avat v´ysledky, coˇz zv´yˇs´ı pravdˇepodobnost spr´avn´eho v´ysledku. Nˇekter´e modelovac´ı techniky maj´ı specifick´e poˇzadavky na data, kter´e mus´ı b´yt splnˇeny. Pˇred samotn´ym modelov´an´ım je dobr´e sestavit mechanismus na testov´an´ı kvality modelu.
N´asleduje sestaven´ı modelu a nastaven´ı parametr˚u a citlivost jednotliv´ych modelovac´ıch technik pro potˇrebn´y v´ysledek. Na z´avˇer je posuzov´ana pˇresnost a kvalita modelu.
• Evaluation - (zhodnocen´ı)
V minul´em kroku byl model posuzov´an z hlediska pˇresnosti a obecnosti.
V tomto kroku je vˇsak posuzov´an z obchodn´ıho hlediska, zda model splˇnuje c´ıle projektu, je hodnoceno jestli je model pouˇziteln´y ˇci nikoliv. K hodnocen´ı kvality modelu slouˇz´ı dvˇe mnoˇziny, prvn´ı mnoˇzina vstupn´ıch dat, na kter´ych se model nauˇc´ı generovat pravidla, druh´a mnoˇzina slouˇz´ı k otestov´an´ı pravi- del. Pomoc´ı testovac´ıch dat lze urˇcit procentu´aln´ı ´uspˇeˇsnost modelu. V´ysledky mohou uk´azat dalˇs´ı moˇznosti smˇeˇrov´an´ı obchodn´ı taktiky, odhalit nov´e v´yzvy a informace. V okamˇziku, kdy se zd´a, ˇze jsou v´ysledky uspokojiv´e, je vhodn´e udˇelat pˇrezkoum´an´ı a pod´ıvat se do minul´ych krok˚u, jestli nedoˇslo k pˇrehl´ednut´ı chyby nebo nˇekter´eho z v´yznamn´ych faktor˚u. Na z´avˇer je sesta- ven seznam krok˚u dalˇs´ıch moˇzn´ych akc´ı, jak model zlepˇsit nebo modifikovat.
Nakonec je rozhodnuto zda se modul nasad´ı do praxe nebo jestli bude posl´an zpˇet k pˇrepracov´an´ı nˇekter´eho z krok˚u.
• Deployment - (uveden´ı do praxe)
Napl´anov´an´ı strategie pro nasazen´ı do praxe pops´ana krok po kroku. Po na- sazen´ı do praxe je nutn´e monitorovat a udrˇzovat. Spr´avn´a strategie ´udrˇzby pom´ah´a vyhnout se nespr´avn´emu pouˇz´ıv´an´ı. Po zaveden´ı do praxe je nutn´e zhodnotit zda se nevyskytli nˇejak´e chyby a zjistit co se mˇelo st´at ale nestalo.
1.3 Cross-selling
Bez Cross-sellingu (kˇr´ıˇzov´y prodej) se v dneˇsn´ı dobˇe neobejde ˇz´adn´y vˇetˇs´ı internetov´y obchod, pr´avˇe tato metoda nejv´ıce souvis´ı s prodejem zboˇz´ı na internetu.
Cross-selling je marketingov´a metoda zajiˇst’uj´ıc´ı zv´yˇsen´ı trˇzeb, pomoc´ı c´ılen´e nab´ıdky doplˇnk˚u k zakoupen´emu zboˇz´ı. K z´ısk´an´ı modelu t´eto metody je potˇreba zn´at, co si z´akazn´ıci koupili dˇr´ıve v kombinaci s jin´ym zboˇz´ım. To lze zjistit z da- tab´az´ı, kter´e si kaˇzd´y internetov´y obchod ukl´ad´a. Z tˇechto dat jsou doslova vy- dolov´ana pravidla urˇcuj´ıc´ı nab´ıdku k vybran´emu zboˇz´ı. Pro tento druh dolov´an´ı se nejˇcastˇeji pouˇz´ıv´a algoritmus Apriori.
1.4 Software
Pro sestavov´an´ı model˚u je d˚uleˇzit´e m´ıt software, kter´y zn´a potˇrebn´e modely ke generov´an´ı pravidel a z´aroveˇn um´ı pracovat s r˚uzn´ymi form´aty vstupn´ıch dat. V´ybˇer software z´avis´ı na prostˇredc´ıch, m˚uˇzeme si vybrat mezi open source a komerˇcn´ım software. Pro tuto pr´aci byl vybr´an komerˇcn´ı n´astroj IBM SPSS Modeler.
1.4.1 IBM SPSS Modeler
P˚uvodnˇe se software jmenoval Clementine a byl vyvinut spoleˇcnost´ı Inte- gral Solutions Limited (ISL) ve Velk´e Brit´anii. Prvn´ı verze vyˇsla roku 1994 pod oznaˇcen´ım Clementine 1.0. Tento n´astroj se rychle stal obl´ıben´ym v oblasti data miningu, hlavnˇe d´ıky pouˇzit´ı ikon v grafick´em prostˇred´ı, coˇz uˇzivatele osvobo- zovalo od ruˇcn´ıho psan´ı k´odu v programovac´ım jazyce. Ovˇsem prvn´ı verze Modeleru vydan´a spoleˇcnost´ı IBM je aˇz verze 14.2 z roku 2011.
IBM SPSS Modeler je data miningov´y n´astroj urˇcen´y na anal´yzu textu a do- lov´an´ı dat z datab´az´ı. Vytv´aˇr´ı prediktivn´ı modely a prov´ad´ı r˚uzn´e analytick´e ´ulohy pomoc´ı grafick´eho rozhran´ı, d´ıky kter´emu m˚uˇze uˇzivatel pouˇz´ıvat data miningov´e algoritmy. [3]
2. Modelov´ an´ı v data miningu pomoc´ı asociaˇ cn´ıch pravidel
2.1 Asociaˇ cn´ı pravidla
V bˇeˇzn´em jazyce se hojnˇe vyuˇz´ıv´a posuzov´an´ı bud’ a nebo, tato syntaxe je z´akladem aciaˇcn´ı pravidla. Jelikoˇz se jedn´a o jedno z nejstarˇs´ıch a nejjednoduˇsˇs´ıch vyhodno- cov´an´ı, patˇr´ı mezi nejpouˇz´ıvanˇejˇs´ı prostˇredky pro reprezentaci znalost´ı. Asociaˇcn´ı pravidla jsou spjata pˇredevˇs´ım s anal´yzou n´akupn´ıho koˇs´ıku. V anal´yze jde o hled´an´ı spoleˇcn´ych vztah˚u mezi jednotliv´ymi atributy, pˇr´ıtomnost jedn´e poloˇzky implikuje jednu nebo v´ıce poloˇzek v jedn´e transakci.
U nalezen´ych pravidel z dat je d˚uleˇzit´e naj´ıt vztahy mezi pˇredpokladem a z´avˇerem.
Ant⇒Con (2.1)
Kde Ant (antecedent, pˇredpoklad) implikuje Con (consequent, z´avˇer). Kombi- nace kategori´ı pro n koˇs´ık˚u zn´azorˇnuje kontingenˇcn´ı tabulka (Tabulka 2.1).
Con -Con P
Ant a b r
-Ant c d s
P k l n
Tabulka 2.1: Kontingenˇcn´ı tabulka
• a = n(Ant V Con)
Poˇcet pˇr´ıpad˚u kdy je splnˇen pˇredpoklad a z´aroveˇn z´avˇer.
• b = n(Ant V -Con)
Poˇcet pˇr´ıpad˚u kdy je splnˇen pˇredpoklad a z´avˇer nen´ı splnˇen.
• c = n(-Ant V Con)
Poˇcet pˇr´ıpad˚u kdy pˇredpoklad nen´ı splnˇen a z´avˇer je splnˇen.
• d = n(-Ant V -Con)
Poˇcet pˇr´ıpad˚u kdy nen´ı splnˇen pˇredpoklad ani z´avˇer.
Z tˇechto ˇcetnost´ı lze vypoˇc´ıtat charakteristiky vypov´ıdaj´ıc´ı o kvalitˇe nalezen´eho pravidla. Z´akladn´ımi charakteristikami jsou podpora (support) a spolehlivost (con- fidence). Podpora je v kolika procentech pˇr´ıpad˚u byl splnˇen pˇredpoklad i z´avˇer.
Support = a
n (2.2)
Spolehlivost je pravdˇepodobnost splnˇen´ı z´avˇeru, pokud je splnˇen pˇredpoklad.
Conf idence = a
r (2.3)
2.2 Princip algoritmu Apriori
Algoritmus Apriori slouˇz´ı k vyhled´av´an´ı frekventovan´ych mnoˇzin a k n´asledn´emu generov´an´ı asociaˇcn´ıch pravidel. Snahou algoritmu je nal´ezt vazby mezi jednotliv´ymi atributy v datab´azi, takov´e ˇze pˇr´ıtomnost jednoho nebo v´ıce atribut˚u implikuje pˇr´ıtomnost jin´ych atribut˚u v jedn´e transakci. Hlavn´ı snahou je z´ıskat co nejsilnˇejˇs´ı asociaˇcn´ı pravidla. Pomoc´ı n´asleduj´ıc´ıch metrik jsou vybr´ana nejsilnˇejˇs´ı pravidla. [2]
• Podpora (support)
Minim´aln´ı pr´ah ˇcetnosti mnoˇziny poloˇzek v cel´e datab´azi, vyj´adˇren´e v procen- tech. Pokud mnoˇzina poloˇzek splˇnuje minim´aln´ı podporu, je pro algoritmus zaj´ımav´a a bude s n´ı d´ale pracovat.
podpora = kosiky obsahujici mnozinu prvku
vsechny kosiky ∗ 100% (2.4)
• Spolehlivost (confidence)
Jak moc se lze spolehnout na v´ysledn´e pravidla. Spolehlivost je poˇc´ıt´ana pro kaˇzd´y prvek ve frekventovan´e mnoˇzinˇe a jsou vybr´ana jen ta nejsilnˇejˇs´ı pravidla, tedy jen pravidla splˇnuj´ıc´ı zadanou spolehlivost. Kaˇzd´y prvek frek- ventovan´e mnoˇziny je porovn´av´an se vˇsemi jeho podmnoˇzinami.
podpora = pocet vyskytu mnoziny
pocet vyskytu podmnoziny ∗ 100% (2.5)
2.2.1 Generov´ an´ı frekventovan´ ych mnoˇ zin
Generov´an´ı zaˇc´ın´a pr˚uchodem datab´aze a zjiˇstˇen´ım vˇsech dostupn´ych atribut˚u.
Z tˇech je sestavena prvn´ı jednopoloˇzkov´a mnoˇzina kandid´at˚u, kter´a obsahuje vˇsechny atributy.
Id objedn´avky Seznam zboˇz´ı
1 I1, I2, I4
2 I1, I5
3 I2, I4
4 I1, I2, I4, I5
5 I4, I5
6 I1, I2, I4
7 I2, I4, I5
8 I1, I2, I3, I4, I5
Tabulka 2.2: Datab´aze objedn´avek
V tabulce 2.2 je vidˇet 8 n´akupn´ıch koˇs´ık˚u, kde kaˇzd´y m´a sv˚uj seznam zboˇz´ı.
Pr´avˇe zboˇz´ı budeme potˇrebovat ke generov´an´ı frekventovan´ych mnoˇzin. Pˇredt´ım je vˇsak nutn´e si stanovit vstupn´ı podm´ınky pro generov´an´ı tˇechto mnoˇzin. Pokud zvol´ıme minim´aln´ı podporu 25%, je vypoˇc´ıt´an minim´aln´ı poˇcet koˇs´ık˚u, kter´e mus´ı obsahovat mnoˇzinu zboˇz´ı.
minimalni support = pocet vsech nakupu ∗ zadany support
100 = 8 ∗ 25
100 = 2 (2.6) Pokud je zn´am minim´aln´ı support, m˚uˇze b´yt sestavena prvn´ı mnoˇzina kandid´at˚u C1, kter´a bude obsahovat vˇsechny druhy zboˇz´ı z n´akup˚u. N´aslednˇe bude sestavena frekventovan´a mnoˇzina L1 z kandid´at˚u, kteˇr´ı splˇnuj´ı minim´aln´ı support. Pro zjiˇstˇen´ı ˇcetnosti v´yskytu je nutn´e v kaˇzd´em kroku proj´ıt celou datab´azi.
Zboˇz´ı Poˇcet v´yskyt˚u
I1 5
I2 6
I3 1
I4 7
I5 5
Tabulka 2.3: Mnoˇzina kandid´at˚u C1
Z mnoˇziny kandid´at˚u C1 vybereme pouze prvky splˇnuj´ıc´ı minim´aln´ı support, tak dostaneme frekventovanou mnoˇzinu L1.
Mnoˇzina Poˇcet v´yskyt˚u
I1 5
I2 6
I4 7
I5 5
Tabulka 2.4: Frekventovan´a mnoˇzina L1
Z vygenerovan´e frekventovan´e mnoˇziny z tabulky 2.3 sestav´ıme novou mnoˇzinu kandid´at˚u C2 spojen´ım mnoˇziny L1 s mnoˇzinou L1. V tomto kroku je vyuˇzita vlast- nost algoritmu Apriori, ten kontroluje jestli kaˇzd´a podmnoˇzina z mnoˇziny kandid´at˚u C2 je frekventovanou mnoˇzinou. Pokud nˇekter´a z podmnoˇzin nen´ı frekventovanou mnoˇzinou je mnoˇzina vylouˇcena z mnoˇziny kandid´at˚u.
Mnoˇzina Poˇcet v´yskyt˚u
I1, I2 4
I1, I4 4
I1, I5 3
I2, I4 5
I2, I5 3
I4, I5 3
Tabulka 2.5: Mnoˇzina kandid´at˚u C2
Jelikoˇz vˇsechny mnoˇziny v mnoˇzinˇe kandid´at˚u splˇnuj´ı minim´aln´ı podporu je v´ysledn´a frekventovan´a mnoˇzina L2 rovna mnoˇzinˇe kandid´at˚u C2. N´asledovalo
by dalˇs´ı spojen´ı mnoˇziny L2 s mnoˇzinou L2. Takto by algoritmus pokraˇcoval dokud by byly nal´ez´any frekventovan´e mnoˇziny.
2.2.2 Generov´ an´ı asociaˇ cn´ıch pravidel
Nalezen´ı asociaˇcn´ıch pravidel se prov´ad´ı pomoc´ı vyuˇzit´ı siln´ych mnoˇzin, odstranˇena jsou pouze pravidla, jejichˇz confidence nesplˇnuje minim´aln´ı confidenci. Minim´aln´ı confidence se vol´ı jiˇz na zaˇc´atku, pro tento pˇr´ıklad je urˇcena minim´aln´ı confidence 75%. Napˇr´ıklad z frekventovan´e mnoˇziny L2 je vybr´ana mnoˇzina {I2, I4}, z n´ıˇz jsou generov´ana pravidla.
• I2 → I4
conf idence = support{I2, I4}
support{I2} ∗ 100 = 5
6∗ 100 = 83, 3% (2.7)
• I4 → I2
conf idence = support{I2, I4}
support{I4} ∗ 100 = 5
7∗ 100 = 71, 4% (2.8) Odstranˇeno je druh´e pravidlo, kter´e nesplˇnuje minim´aln´ı confidenci. Takto jsou ge- nerov´ana vˇsechna pravidla ze vˇsech nalezen´ych frekventovan´ych mnoˇzin. Pro algorit- mus je nalezen´ı siln´ych pravidel nen´aroˇcn´e oproti hled´an´ı frekventovan´ych mnoˇzin.
3. Anal´ yza n´ akupn´ıch koˇ s´ık˚ u
C´ılem t´eto pr´ace je zpracov´an´ı ´ulohy anal´yza n´akupn´ıho koˇs´ıku pro pˇredmˇet data mining. Pro tento ´uˇcel byl vybr´an n´astroj IBM SPSS Modeler urˇcen k realizaci cel´ych projekt˚u v oblasti data miningu. V tomto projektu bude pouˇzit pˇredevˇs´ım k anal´yze dat a n´asledn´emu zpracov´an´ı dat. Analytick´a ˇc´ast m´a za ´ukol zjistit vˇse potˇrebn´e o datech, jako jsou chybˇej´ıc´ı hodnoty, nalezen´ı extr´emn´ıch hodnot. Pomoc´ı
´
udaj˚u z anal´yzy se budou data moci zpracovat do v´ysledn´e podoby, potˇrebn´e pro zpracov´an´ı algoritmem Apriori. D´ale bude z anal´yzy vypl´yvat, jak ˇcasto se z´akazn´ıci vracej´ı, z ˇcehoˇz lze vyvodit z´avˇery, jak k takov´ymto z´akazn´ık˚um pˇristupovat.
Kdyˇz jsou zn´ama vˇsechna fakta o datech, je potˇreba data transformovat na z´akladˇe zn´am´ych informac´ı. Proveden´a transformace nemus´ı b´yt koneˇcn´a, jestliˇze dalˇs´ı kroky uk´aˇz´ı, ˇze jsou data nedostateˇcn´a nebo naopak obsahuj´ı v´ıce informac´ı neˇz je potˇreba. Koneˇcn´a transformovan´a data budou uloˇzena do nov´e datov´eho sou- boru, kter´y bude n´aslednˇe zpracov´an. Zpracov´an´ı dat probˇehne pomoc´ı algoritmu Apriori, obsaˇzen´ym v IBM SPSS Modeleru. V tomto kroku je d˚uleˇzit´e nastaven´ı spr´avn´e citlivosti algoritmu, jinak by v´ysledek mohl b´yt znehodnocen. Z´ıskan´e im- plikace budou aplikov´any a na z´akladˇe v´ysledk˚u budou z´akazn´ıkovi nab´ızeny dalˇs´ı druhy zboˇz´ı.
Pro anal´yzu n´akupn´ıho koˇs´ıku je rozhodnuto, pokud je potˇreba efektivnˇe prod´avat souvisej´ıc´ı produkty. Pomoc´ı anal´yzy se dozv´ıme, co si z´akazn´ıci nejˇcastˇeji kupuj´ı v kombinaci s jin´ymi produkty. Toto zjiˇstˇen´ı je pro majitele internetov´eho ob- chodu velmi zaj´ımav´e, jelikoˇz m˚uˇze tˇechto znalost´ı vyuˇz´ıt k c´ılen´e nab´ıdce produktu, kter´e z´akazn´ık zat´ım nekoupil. Z´akazn´ıkovi, kter´y m´a v koˇs´ıku notebook, tak bude nab´ıdnuto to, co si lid´e nejˇcastˇeji kupuj´ı pr´avˇe s notebookem, jako je taˇska na notebook, myˇs nebo chlad´ıc´ı podloˇzka. C´ılem prod´avaj´ıc´ıho je tedy nab´ıdnout z´akazn´ıkovi co nejzaj´ımavˇejˇs´ı zboˇz´ı tak, aby si ho z´akazn´ık koupil.
3.1 Anal´ yza datov´ eho souboru
K dispozici byla pouze ide´aln´ı data, ze kter´ych nelze z´ıskat informace z praxe. Tato data jsou vytvoˇrena pouze k simulaci a jsou nastavena tak, aby z nich bylo moˇzn´e vydolovat informace. Proto byla sehn´ana re´aln´a data z internetov´eho obchodu, kter´a budou zkoum´ana.
Pˇred zaˇc´atkem generov´an´ı pravidel je nutn´e zjistit podobu dat. Jelikoˇz vstupn´ı soubor pro tento projekt je ve form´atu xsl, m˚uˇze prob´ıhat anal´yza v excelu, vzhledem k mnoˇzstv´ı dat, by anal´yza byla ˇcasovˇe extr´emnˇe n´aroˇcn´e. Ovˇsem v dneˇsn´ı dobˇe kdy je data mining hojnˇe vyuˇz´ıv´an existuje spousta n´astroj˚u urˇcen´ych pr´avˇe pro dolov´an´ı dat. Pro tento projekt byl zvolen IBM SPSS Modeler, kter´y slouˇz´ı jak k anal´yze dat tak i k modelov´an´ı cel´ych projekt˚u. Pomoc´ı IBM SPSS Modeleru budou data pro- zkoum´ana a na z´akladˇe zkoum´an´ı modifikov´ana do potˇrebn´e podoby.
Na obr´azku 3.1 je proud pouˇzit´y pro anal´yzu dat. Vstupem do proudu je soubor export-objednavky.xsl, coˇz jsou data urˇcen´a pro tento projekt v nezmˇenˇen´e podobˇe z internetov´eho obchodu. V uzlu Type se pouze naˇc´ıtaj´ı hodnoty jednotliv´ych atri- but˚u, popˇr´ıpadˇe se zde mohou mˇenit jejich datov´e typy. Tento proud umoˇzˇnuje prozkoumat data pomoc´ı nˇekolika uzl˚u, kter´e odhal´ı nˇekter´a fakta o datech.
Obr´azek 3.1: Proud pro anal´yzu dat
3.1.1 Data audit
Uzel Data Audit je ˇcasto pouˇz´ıv´an k prvotn´ımu zkoum´an´ı vstupn´ıch dat, poskytuje komplexn´ı pohled na data. Zobrazuje souhrnn´e statistiky, histogram a distribuˇcn´ı grafy pro kaˇzd´e pole. Uzel m´a dvˇe karty pouˇziteln´e pro zkoum´an´ı dat prvn´ı z nich karta Audit zobrazuje jiˇz zm´ınˇen´e statistiky a grafy. Na kartˇe quality je posuzov´ana kvalita dat, zobrazuje informace o extr´emn´ıch, odlehl´ych a chybˇej´ıc´ı hodnot´ach. Po- skytuje tak´e n´astroj pro zpracov´an´ı tˇechto dat.
Obr´azek 3.2: Zobrazen´ı karty quality z uzlu Data Audit
Z auditu dat zobrazen´em na obr´azku 3.2 je patrn´a struktura souboru, kter´y obsahuje ˇsest atribut˚u (sloupc˚u) a 49 428 z´aznam˚u (ˇr´adk˚u). Po pr˚uchodu sou- boru bylo zjiˇstˇeno, ˇze kaˇzd´y z´aznam obsahuje jeden produkt v koˇs´ıku, takˇze v´ıce z´aznam˚u se spoleˇcn´ym ID objedn´avky tvoˇr´ı jeden n´akupn´ı koˇs´ık. Proto bude nutn´e v pˇr´ıpravˇe dat pˇretransformovat data do podoby, kde jeden z´aznam bude obsaho- vat jeden n´akupn´ı koˇs´ık. Ze sloupce Unique je patrn´y poˇcet kategori´ı obsaˇzen´ych v souboru. Ovˇsem 203 kategori´ı je pro sestavov´an´ı modelu pˇr´ıliˇs mnoho. Bylo vyzkouˇseno, ˇze s takto velk´ym mnoˇzstv´ım kategori´ı nen´ı moˇzn´e naj´ıt spoleˇcn´e mnoˇziny.Z pr˚uchodu internetov´ych str´anek je patrn´e, ˇze se jedn´a o podkategorie.
Proto je nutn´e tyto podkategorie slouˇcit do pˇr´ısluˇsn´ych kategori´ı.
Obr´azek 3.3: Zobrazen´ı karty quality z uzlu Data Audit
Z karty quality auditu dat bylo zjiˇstˇeno, ˇze 58% dat nen´ı kompletn´ı coˇz je vidˇet na Obr´azku 3.3. V ID kategorie a N´azev kategorie produktu je spousta chybˇej´ıc´ıch hodnot, coˇz m˚uˇze b´yt probl´em, jelikoˇz pr´avˇe atribut N´azev kategorie produktu bude pro projekt nejd˚uleˇzitˇejˇs´ı a je nutn´e z´ıskat pouze data obsahuj´ıc´ı tento atribut.
3.1.2 Histogram ID objedn´ avky
Do histogramu vstupuj´ı jiˇz kompletn´ı data, v uzlu Odstranˇen´ı doˇslo k selekci dat bez chybˇej´ıc´ıch prvk˚u. U vybran´ych dat bylo spoˇc´ıt´ano, kolik z´aznam˚u obsahuje jeden n´akupn´ı koˇs´ık, jednotliv´e koˇs´ıky byly setˇr´ıdˇeny podle ID objedn´avky tak, aby bylo patrn´e, jak´y byl v´yvoj poˇctu n´akup˚u na koˇs´ık v ˇcase.
Obr´azek 3.4: Poˇcet n´akup˚u na ID objedn´avky
Z histogramu na obr´azku 3.4 je patrn´y n´ar˚ust okolo hodnoty ID objedn´avky 9 000, takˇze na jeden koˇs´ık pˇripad´a v pr˚umˇeru aˇz dvakr´at v´ıce zboˇz´ı. Tento n´ar˚ust lze vysvˇetlit velkou obchodn´ı kampan´ı, kter´a nal´akala z´akazn´ıky ke koupi zboˇz´ı z ob- chodu. Po pr˚uchodu dat je vˇsak patrn´e, ˇze d˚uvod je zcela jin´y. Do ID objedn´avky 8 914, nejsou kompletn´ı data u n´azv˚u kategori´ı produktu.
3.1.3 Poˇ cet n´ avrat˚ u z´ akazn´ıka
Z obchodn´ıho hlediska je dobr´e vˇedˇet jac´ı z´akazn´ıci se vrac´ı a nakupuj´ı pravi- delnˇe, o takov´e z´akazn´ıky je potˇreba se starat, aby neutekli ke konkurenci. Vˇern´ym z´akazn´ık˚um jsou nab´ızeny v´yhody ve formˇe bonus˚u, slev nebo d´arkov´ych poukaz˚u.
Proˇc se ale starat o nˇekolik z´akazn´ık˚u, kteˇr´ı se vrac´ı? Odpovˇed’ je jednoduch´a, protoˇze je zn´amo, ˇze n´aklady na udrˇzen´ı st´avaj´ıc´ıch uˇzivatel˚u jsou nˇekolikan´asobnˇe menˇs´ı, neˇz na zisk nov´ych z´akazn´ık˚u. Nejde vˇsak jen o penˇeˇzn´ı str´anku, ale i o ˇcas str´aven´y nad reklamn´ı kampan´ı a administrativou, kter´a vˇsak nakonec nemus´ı m´ıt ˇz´adnou odezvu. Z Obr´azku 3.5 je patrn´e, kteˇr´ı z´akazn´ıci se nejˇcastˇeji vracej´ı do tohoto obchodu.
Obr´azek 3.5: Poˇcet n´avrat˚u z´akazn´ık˚u
3.2 Pˇ r´ıprava dat
Z anal´yzy dat je zˇrejm´e, ˇze data mus´ı b´yt restrukturalizov´ana a nˇekter´e z´aznamy mus´ı b´yt odstranˇeny. Pr˚ubˇeh pˇr´ıpravy dat je zobrazen na obr´azku 3.6.
Obr´azek 3.6: Proud pro pˇr´ıpravu dat
Vstupem do proudu jsou p˚uvodn´ı data, kter´a pomoc´ı nˇekolika uzl˚u budou zmˇenˇena do potˇrebn´e podoby. Jednotliv´e uzly jsou pops´any na dalˇs´ı str´ance.
• Odstranˇen´ı mezer a uˇziteˇcn´a data
V uzlu Odstranˇen´ı mezer jsou odstranˇena pr´azdn´a m´ısta z atributu n´azev kategorie produktu. V n´asleduj´ıc´ım uzlu Uˇziteˇcn´a data jsou vybr´ana pouze data s ID objedn´avky vyˇsˇs´ı neˇz 8 914, protoˇze pr´avˇe do t´eto objedn´avky je ˇcast´y v´yskyt pr´azdn´ych m´ıst. U vyˇsˇs´ıch ID objedn´avky je poˇcet v´yskyt˚u pr´azdn´ych m´ıst zanedbateln´y a nem´a velk´y vliv na v´ysledn´a pravidla.
• Kategorie
Zde se prov´ad´ı slouˇcen´ı podkategori´ı do kategori´ı podle internetov´eho obchodu.
Jelikoˇz se nejˇcastˇeji kupuj´ı triˇcka a mikiny, bylo rozhodnuto, ˇze tyto dvˇe ka- tegorie se rozdˇel´ı do podkategori´ı a to p´ansk´a, d´amsk´a a dˇetsk´a. V´ysledn´ych implikac´ı je s takto rozdˇelen´ymi kategoriemi v´ıce, neˇz v pˇr´ıpadˇe kdy jsou pouze kategorie triˇcka a mikiny.
• Restrukturalizace
Koneˇcn´e slouˇcen´ı jednotliv´ych ˇr´adk˚u do jednotliv´ych koˇs´ık˚u podle ID ob- jedn´avky. V´ystupem z tohoto uzlu jsou data, kde v prvn´ım sloupci je ID ob- jedn´avky a v dalˇs´ıch kategorie. Pro kaˇzd´y koˇs´ık jsou v jednotliv´ych sloupc´ıch hodnoty T nebo F, podle toho, zda v koˇs´ıku byl produkt z dan´e kategorie (T) ˇ
ci nikoliv (F).
• N´azev kategori´ı a n´akupn´ı koˇs´ıky
Pouze kosmetick´a ´uprava jednotliv´ych atribut˚u, jelikoˇz uzel restrukturalizace automaticky pˇrid´a prefix kaˇzd´e kategorii. Nakonec jsou data exportov´ana do souboru v uzlu n´akupn´ı koˇs´ıky.
3.3 Modelov´ an´ı
V t´eto f´azi projektu doch´az´ı k z´ısk´an´ı p˚uvodn´ıch poˇzadavk˚u, v tomto pˇr´ıpadˇe k vyge- nerov´an´ı asociaˇcn´ıch pravidel pomoc´ı algoritmu Apriori. Je nutn´e nastavit spr´avn´e vstupn´ı podm´ınky algoritmu, abychom nalezli implikace. Optim´aln´ımi vstupn´ımi podm´ınkami jsou confidence 30% a minim´aln´ı support 3%. Je zˇrejm´e, ˇze vstupn´ı podm´ınky jsou n´ızk´e, to je zapˇr´ıˇcinˇeno pˇredevˇs´ım velkou spoustou jednopoloˇzkov´ych n´akup˚u.
Obr´azek 3.7: Proud pro generov´an´ı asociaˇcn´ıch pravidel
Pˇred samotn´ym generov´an´ım pravidel pomoc´ı Apriori se pod´ıv´ame na vz´ajemn´e vztahy vˇsech druh˚u zboˇz´ı. Pavuˇcinov´y graf z obr´azku 3.8 zobrazuje ˇcetnost spoleˇcn´ych v´yskyt˚u jednotliv´ych poloˇzek v jednom n´akupn´ım koˇs´ıku, s´ıla ˇc´ary urˇcuje ˇcetnost spoleˇcn´ych v´yskyt˚u. Nejˇcastˇeji z´akazn´ıci kupuj´ı p´ansk´a triˇcka s p´ansk´ymi mi- kinami, tento vztah by mˇel b´yt zˇrejm´y i ve vygenerovan´ych asociaˇcn´ıch pravidlech.
Obr´azek 3.8: Pavuˇcinov´y graf vztah˚u mezi poloˇzkami
Datov´y tok vstupuj´ıc´ı do uzlu Apriori vygeneruje krystal, v nˇemˇz jsou zobra- zeny nalezen´e implikace. Vygenerovan´e implikace podle vstupn´ıch podm´ınek jsou zobrazeny na obr´azku 3.9. Implikace jsou zn´azornˇeny dle n´asleduj´ıc´ıho vztahu.
X⇐A & B & C & ... (3.1) X zn´azorˇnuje sloupec consequent (z´avˇer), pˇredpoklady (sloupec antecedent) jsou zn´azornˇeny pomoc´ı hodnot A, B, C, atd. Aby bylo moˇzn´e nab´ıdnout z´akazn´ıkovi z´avˇer, mus´ı b´yt splnˇeny vˇsechny pˇredpoklady. Ostatn´ı sloupce popisuj´ı statistick´e hodnoty jednotliv´ych implikac´ı.
Obr´azek 3.9: Nalezen´e implikace
• Instances
Suma koˇs´ık˚u splˇnuj´ıc´ıch pˇredpoklad.
• Support
Kolik procent ze vˇsech koˇs´ık˚u splnilo pˇredpoklad.
• Confidence
Procento pˇr´ıpad˚u, kdy byl splnˇen pˇredpoklad a z´aroveˇn z´avˇer. V´ypoˇcet je prov´adˇen pouze z koˇs´ık˚u, kter´e splnily pˇredpoklad. Tento atribut urˇcuje m´ıru spolehlivosti pravidla.
• Rule support
V kolika procentech vˇsech koˇs´ık˚u se objevil pˇredpoklad i z´avˇer.
• Lift
Zlepˇsen´ı pravidla, kolikr´at je pravidlo lepˇs´ı pˇri pouˇzit´ı pˇredpokladu, neˇz pˇri n´ahodn´em v´ybˇeru zboˇz´ı bez ohledu na ostatn´ı zboˇz´ı.
Lif t = conf idence
support antecedentu (%) (3.2)
• Deployability Procento pˇr´ıpad˚u, kdy byl splnˇen pˇredpoklad, ale z´avˇer ne.
Pro tyto pˇr´ıpady je pravidlo pouˇzito a je nab´ıdnut z´akazn´ıkovi z´avˇer.
Deployability = support − rule support (3.3)
3.4 Nasazen´ı
Uveden´ı do praxe v Modeleru lze nasimulovat. Do koˇs´ıku je vloˇzen z´akazn´ık˚uv n´akup a na z´akladˇe vygenerovan´ych pravidel rozhodne uzel Apriori co z´akazn´ıkovi nab´ıdnout. Napˇr´ıklad z´akazn´ık m´a v koˇs´ıku d´amskou mikinu a p´ansk´e triˇcko, v uzlu nab´ıdka bude doporuˇcen´ı dalˇs´ıho zboˇz´ı.
Obr´azek 3.10: Doporuˇcen´ı n´akupu
Po pr˚uchodu uzlem Apriori budou z´akazn´ıkovi nab´ıdnuty dva produkty, kter´e splˇnuj´ı pˇredpoklad.
Obr´azek 3.11: Doporuˇcen´e produkty
Nab´ıdku lze ovˇeˇrit, na obr´azku 3.9 je pˇredpoklad d´amsk´a mikina s p´ansk´ym triˇckem dvakr´at a jako sv´e z´avˇery m´a pr´avˇe d´amsk´e triˇcko a p´anskou mikinu.
4. Implementace aplikace
Hlavn´ım c´ılem je naprogramovat aplikaci umoˇzˇnuj´ıc´ı zpracov´an´ı pˇripraven´ych dat algoritmem Apriori. Spustiteln´a aplikace bude naˇc´ıtat data ve form´atu csv [8].
P v´ybˇeru dat lez nastavit atributy a citlivost pro algoritmus. Pokud jsou dostupn´e osobn´ı informace o z´akazn´ıc´ıch, lze generovat pravidla pouze pro urˇcit´e skupiny z´akazn´ık˚u. Z´ıskan´e implikace budou zobrazeny v tabulce spoleˇcnˇe se statistick´ymi
´
udaji o implikac´ıch. Uˇzivatel pouˇz´ıvaj´ıc´ı aplikaci m˚uˇze simulovat n´akup a pomoc´ı z´ıskan´ych implikac´ı nab´ıdnout dalˇs´ı produkty.
Aplikace byla navrˇzena v jazyce Java, jako podpora pro pˇredmˇet data mining.
Pro jazyk Java bylo rozhodnuto pˇredevˇs´ım kv˚uli tomu, ˇze je multiplatformn´ı. Proto jej studenti budou moci pouˇz´ıvat bez ohledu na vlastn´ı operaˇcn´ı syst´em. Aplikace byla navrˇzena tak, aby simulovala chov´an´ı algoritmu Apriori v IBM SPSS Modeleru a nav´ıc mohla generovat pravidla pouze na c´ılen´e skupiny.
4.1 N´ avrh grafick´ eho rozhran´ı
Grafick´e rozhran´ı slouˇz´ı pˇredevˇs´ım ke snadnˇejˇs´ı manipulaci s algoritmem. Jeho podoba je zn´azornˇena na obr´azku 4.1 s jiˇz vygenerovan´ymi pravidly ze souboru z pˇr´ıpravy dat. Do aplikace je moˇzn´e nahr´avat pouze csv soubory v horn´ı ˇc´asti rozhran´ı pomoc´ı tlaˇc´ıtka vybrat. Po v´ybˇeru se cel´y soubor projde a zjist´ı se jeho atributy, kter´e mohou b´yt, bud’ jednotliv´e druhy zboˇz´ı nebo osobn´ı informace o z´akazn´ıkovi, ty jsou zobrazeny v lev´e ˇc´asti aplikace. Jako posledn´ı moˇznost je zvo- len´ı citlivosti algoritmu pomoc´ı nastaven´ı minim´aln´ıho supportu a minim´aln´ı con- fidence, kde obˇe hodnoty jsou zad´av´any procentu´alnˇe. Po vygenerov´an´ı pravidel se v prav´e ˇc´asti zobraz´ı tabulka s nalezen´ymi implikacemi, kter´e mohou b´yt vy- zkouˇseny pomoc´ı tlaˇc´ıtka n´akup. To vytvoˇr´ı nov´e okno s poloˇzkami a dle vybran´eho zboˇz´ı se zobraz´ı nab´ıdka.
Obr´azek 4.1: Vzhled grafick´eho rozhran´ı
4.2 Hierarchie tˇ r´ıd
V pˇr´ıloze A je zn´azornˇen diagram tˇr´ıd, kde jsou vidˇet vazby mezi tˇr´ıdami. Je zˇrejm´e, ˇze tˇr´ıda Data je j´adrem t´eto aplikace a ˇr´ıd´ı t´emˇeˇr cel´y program, poskytuje data pouze pro tˇr´ıdu GUI, kter´a ˇr´ıd´ı veˇskerou komunikaci s uˇzivatelem a zobrazuje v´ysledn´a data. K uchov´an´ı atribut˚u a jejich promˇenn´ych je zde tˇr´ıda HeadItems. Z tˇr´ıdy GUI je moˇzn´e spustit pouze GUIBuy, ta slouˇz´ı k ovˇeˇren´ı vygenerovan´ych implikac´ı.
V tˇr´ıdˇe FrequentItemsL jsou generov´any frekventovan´e mnoˇziny a je zde prov´adˇeno generov´an´ı kandid´at˚u a odstranˇen´ı mnoˇzin nesplˇnuj´ıc´ıch support. Poloˇzky ve frek- ventovan´ych mnoˇzin´ach jsou reprezentov´any instancemi z tˇr´ıdy ItemSet. Abstraktn´ı tˇr´ıda Reader slouˇz´ı pouze k dˇedˇen´ı a jej´ım potomkem je CSVReader, ten poskytuje data z vybran´eho souboru. Podrobnˇejˇs´ı popis tˇr´ıd je pops´an n´ıˇze.
4.2.1 Zisk dat
Pro zisk dat slouˇz´ı abstraktn´ı tˇr´ıda Reader slouˇz´ıc´ı pouze k dˇedˇen´ı, byla pouˇzita pˇredevˇs´ım kv˚uli moˇznosti naˇc´ıtat dalˇs´ı vstupn´ı form´aty souboru. Jednotn´e zpra- cov´an´ı vˇsech vstupn´ıch soubor˚u nen´ı moˇzn´e, jelikoˇz kaˇzd´y form´at m´a charakteristic- kou strukturu. Prozat´ım jsou naˇc´ıt´any pouze csv soubory, kter´e zpracov´av´a potomek t´eto tˇr´ıdy CSVReader.
Prvn´ı volan´a metoda, bez ohledu na to, jak´y je form´at vstupu, je metoda getHeadItems. Jako parametr je pˇred´av´ana cesta k souboru. Metoda vrac´ı pole string˚u s n´azvy atribut˚u a z´aroveˇn je v n´ı nastaveno poˇcet transakc´ı obsaˇzen´ych ve vstupn´ım souboru (setNumberOfShoping). Poˇcet transakc´ı je d˚uleˇzit´y pro v´ypoˇcet minim´aln´ıho supportu a confidence.
public String[] getHeadItems(String path){
this.path = path;
this.filterIndex = null;
setNumberOfShoping();
return getHead();
}
4.2.2 Cten´ı z csv souboru ˇ
CSVReader je potomek tˇr´ıdy Reader, zpracov´av´a vstupn´ı soubory ve form´atu csv.
Tato tˇr´ıda poskytuje data ze souboru a informace o nˇem ostatn´ım tˇr´ıd´am, prob´ıh´a zde i filtrov´an´ı dat podle osobn´ıch informac´ı z´akazn´ıka. Pokud je nastaven filtr, tak metoda getData vrac´ı pouze vyfiltrovan´a data. Na obr´azku 4.2 je zn´azornˇen v´yvojov´y diagram metody getData.
Obr´azek 4.2: Zisk dat ze souboru
V cyklech while se ˇcte cel´y soubor a je naˇc´ıt´an po ˇr´adc´ıch, ty jsou rozdˇeleny podle stˇredn´ıku do pole string˚u. Je-li nastaven filtr, data jsou filtrov´ana pomoc´ı index˚u filtrovan´ych atribut˚u a k nim pˇriˇrazen´ych hodnot, kter´e maj´ı b´yt vyfiltrov´any.
Metoda getHead vrac´ı pouze hlaviˇcku souboru, tedy vˇsechny atributy obsaˇzen´e v sou- boru. Pomoc´ı pozic tˇechto atribut˚u vrac´ı metoda getFlags hodnoty sv´ych atribut˚u, to je nutn´e abychom mohli nastavit filtrov´an´ı v grafick´em rozhran´ı. Jestliˇze je zvo- leno filtrov´an´ı podle nˇekter´eho atributu, vol´a se funkce setFilter. Ta nastav´ı indexy a s nimi spjat´e hodnoty urˇcen´e pro filtrov´an´ı a tak´e pˇrepoˇc´ıt´a hodnotu numbe- rOfShoping tak, aby odpov´ıdala poˇctu vyfiltrovan´ych koˇs´ık˚u.
4.2.3 Uchov´ an´ı atribut˚ u
Pomoc´ı instance tˇr´ıdy HeadItem jsou uchov´av´an potˇrebn´a data o atributech.
Pro aplikaci jsou uchov´any hodnoty jm´eno, index, moˇzn´e hodnoty atributu. Po- kud je nastaven filtr uloˇz´ı se vybran´a poloˇzka.
public HeadItem(String name, int index) { this.setName(name);
this.setIndex(index); }
Jiˇz v konstruktoru mus´ı b´yt uvedeny promˇenn´e name a index, jelikoˇz jsou po ce- lou dobu bˇehu programu spolu spjaty. Ostatn´ı metody v t´eto tˇr´ıdˇe jsou pouze gettery a settery pouˇzit´ych promˇenn´ych.
4.2.4 Zprostˇ redkov´ an´ı informac´ı
J´adrem cel´e aplikace je tˇr´ıda Data, kter´a prov´ad´ı veˇskerou komunikace s grafick´ym rozhran´ım, poskytuje k dispozici nejen v´ysledn´e implikace, ale uˇz od zaˇc´atku pro- gramu pˇred´av´a d˚uleˇzit´a data potˇrebn´a k zobrazen´ı uˇzivateli tak, aby mohl uˇzivatel nastavovat filtry a atributy, kter´e budou ovlivˇnovat v´ysledek. Uchov´av´a v sobˇe potˇrebn´e informace o vˇsech atributech, jejichˇz informace jsou uloˇzeny v poli He- adItem. Toto pole je naplnˇeno hned v konstruktoru, kter´y tak´e pˇrij´ım´a cestu k vy- bran´emu souboru, po nastaven´ı cesty jsou vygenerov´any informace o atributech ze souboru. Vˇetˇsina metod zajiˇst’uje r˚uznou komunikaci, takˇze jenom pˇrij´ımaj´ı nebo odes´ılaj´ı informace, nˇekter´e metody zpracov´avaj´ı pˇrijat´a data do potˇrebn´e podoby.
Pro samotn´e generov´an´ı frekventovan´ych mnoˇzin slouˇz´ı metoda run, kter´a pˇrij´ım´a vybran´e atributy, support, confidenci a maxim´aln´ı n-poloˇzkovou mnoˇzinu kandid´at˚u.
Obr´azek 4.3: Zisk dat ze souboru
Vstupem do metody jsou parametry ovlivˇnuj´ıc´ı generov´an´ı frekventovan´ych mnoˇzin v kaˇzd´em kroku cyklu se vygeneruje nov´a frekventovan´a mnoˇzina, pokud je vˇsak mnoˇzina pr´azdn´a nebo pˇrekroˇc´ı maxim´aln´ı ´uroveˇn (Ln), je posledn´ı mnoˇzina smaz´ana ze seznamu.
4.2.5 Frekventovan´ e mnoˇ ziny
V programu jsou reprezentov´any instanc´ı tˇr´ıdy FrequentItemsetsL, kter´a se star´a o vygenerov´an´ı mnoˇziny kandid´at˚u. Po vygenerov´an´ı kandid´at˚u jsou odstranˇeny mnoˇziny, jeˇz nesplˇnuj´ı pravidlo o frekventovan´ych mnoˇzin´ach (kaˇzd´a podmnoˇzina mus´ı b´yt z´aroveˇn frekventovanou mnoˇzinou ). Pr˚uchodem souboru jsou zjiˇstˇeny sup- porty mnoˇzin a odstranˇeny ty, jeˇz nesplˇnuj´ı minim´aln´ı support. Pro v´ypoˇcet pravidel jsou zde vygenerov´any vˇsechny podmnoˇziny z tˇechto mnoˇzin.
Obr´azek 4.4: Generov´an´ı frekventovan´e mnoˇziny
Vstupem jsou poloˇzky z minul´e frekventovan´e mnoˇziny, ty jsou pomoc´ı dvou for cykl˚u spojeny, tak se vytvoˇr´ı mnoˇzina kandid´at˚u pro tvorbu je d˚uleˇzit´a metoda compTwo, kter´a rozhodne zda, jsou obˇe poloˇzky vhodn´e ke spojen´ı, pokud ano je vy- tvoˇrena nov´a poloˇzka. Pot´e prob´ıh´a odstranˇen´ı nefrekventovan´ych mnoˇzin a vznik´a nov´a frekventovan´a mnoˇzina.
4.2.6 Nalezen´ı implikac´ı
Poloˇzky ve frekventovan´ych mnoˇzin´ach reprezentuj´ı instance tˇr´ıdy ItemSet, ve kter´ych doch´az´ı k nalezen´ı implikac´ı. V metodˇe getImplication se posuzuje, jak´a pravidla splˇnuj´ı zadan´e vstupn´ı podm´ınky a pro ty vypoˇc´ıt´av´a statistick´e ´udaje.
Vˇsechny nalezen´e implikace jsou vol´any do frekventovan´e mnoˇziny, tam se odstraˇnuj´ı duplicitn´ı z´aznamy, po odstranˇen´ı jsou nalezen´e implikace pˇred´any grafick´emu roz- hran´ı.
4.2.7 Ovˇ eˇ ren´ı nalezen´ ych implikac´ı
Nalezen´e implikace lze lehce otestovat pˇr´ımo v aplikaci pomoc´ı tlaˇc´ıtka n´akup, to otevˇre nov´e okno, kde je moˇzn´e zadat, co m´a z´akazn´ık v n´akupn´ım koˇs´ıku a na z´akladˇe obsahu jeho koˇs´ıku jsou vyps´any druhy zboˇz´ı, kter´e maj´ı b´yt nab´ıdnuty.
Obr´azek 4.5: Ovˇeˇren´ı nalezen´ych implikac´ı
5. Z´ avˇ er
C´ılem bakal´aˇrsk´e pr´ace je prov´est anal´yzu n´akupn´ıho koˇs´ıku, nal´ezt d˚uleˇzit´e faktory v datech, zjistit vztahy mezi daty a nal´ezt v nich implikace pomoc´ı asociaˇcn´ıho algo- ritmu Apriori. Naprogramovat aplikaci urˇcenou pro generov´an´ı asociaˇcn´ıch pravidel a vysvˇetlen´ı algoritmu. D´ale pak program a anal´yzu zpracovat jako e-learningovou podporu pro pˇredmˇet data mining. V teoretick´e ˇc´asti je rozeb´ır´ana problematika spjat´a s t´ımto projektem, pˇredevˇs´ım metodologie CRISP-DM, podle kter´e prob´ıhala cel´a anal´yza n´akupn´ıho koˇs´ıku.
Pro zpracov´an´ı bakal´aˇrsk´e pr´ace byla pouˇzita data z internetov´eho obchodu.
Anal´yza dat byla provedena data miningov´ym n´astrojem IBM SPSS Modeler.
Na z´akladˇe anal´yzy se odstranily nepotˇrebn´e nebo zkresluj´ıc´ı z´aznamy a byly zjiˇstˇeny nˇekter´e faktory d˚uleˇzit´e pro vyuˇzit´ı v marketingu. Data bylo nutn´e pˇretransformovat do podoby vhodn´e pro algoritmus Apriori slouˇcen´ım z´aznam˚u, kter´e obsahuj´ı jednu objedn´avku. Na z´avˇer probˇehlo modelov´an´ı, nalezen´ı a ovˇeˇren´ı implikac´ı.
Aplikace byla naprogramov´ana v jazyce java tak, aby byla nez´avisl´a na operaˇcn´ım syst´emu. V aplikaci je moˇzn´e prohl´ednout si, jak algoritmus Apriori funguje.
Z pˇredzpracovan´ych dat z anal´yzy lze vygenerovat implikace, kter´e se zobraz´ı v ta- bulce. Pokud jsou dostupn´a data o z´akazn´ıc´ıch, je moˇzn´e generovat pravidla pouze pro urˇcitou skupinu lid´ı. Z´ıskan´e implikace pomoc´ı programu se shoduj´ı s nalezen´ymi implikacemi d´ıky IBM SPSS Modeleru, pˇri stejn´em nastaven´ı vstupn´ıch podm´ınek.
Tyto implikace je moˇzn´e vyzkouˇset v aplikaci, nebo je uloˇzit do souboru a pouˇz´ıt v praxi.
K nalezen´ı implikac´ı by bylo moˇzn´e do aplikace pˇridat dalˇs´ı algoritmy, v´ysledky by se porovn´avaly a vybr´any by byly jen ty nejlepˇs´ı. Tak´e je moˇzn´e program rozˇs´ıˇrit o moˇznost z´ısk´an´ı implikac´ı v ˇcasov´em rozmez´ı.
Poˇ zit´ a literatura
[1] DOUG, Alexander. Data Mining. www.laits.utexas.edu [online]. [cit. 2014-05-10].
Dostupn´e z: http://www.laits.utexas.edu/ anorman/BUS.FOR/course.mat/A- lex/
[2] BERKA, Petr. Dob´yv´an´ı znalost´ı z datab´az´ı. Praha: Academia, 2003. 366s. ISBN 80-200-1062-9
[3] IBM SPSS Modeler. [online]. [cit. 2014-05-16].
Dostupn´e z: http://www-01.ibm.com/software/analytics/spss/products/modeler/
[4] What is the CRISP-DM methodology?[online]. [cit. 2014-05-10].
Dostupn´e z: http://www.sv-europe.com/crisp-dm-methodology/
[5] Knowledge Discovery in Databases (KDD). [online]. [cit. 2014-05-10].
Dostupn´e z: http://www.usc.edu/dept/ancntr/Paris-in-LA/Analysis/discove- ry.html
[6] SAS Enterprise Miner. [online]. [cit. 2014-05-16].
Dostupn´e z: http://www.sas.com/offices/europe/uk/technologies/analytics/da- tamining/miner/semma.html
[7] PROCH ´AZKA, Michal. Data mining: jin´y pohled na probl´em. [online]. [cit. 2014- 05-16].
Dostupn´e z: http://vtm.e15.cz/aktuality/data-mining-jiny-pohled-na-problem [8] Shafranovich, Y. Common Format and MIME Type for Comma-Separated Va-
lues (CSV) Files RFC 4180, IETF, October 2005.
Dostupn´e z: http://www.ietf.org/rfc/rfc4180.txt
[9] MCCONNELL, Steve. Dokonal´y k´od: Umˇen´ı programov´an´ı a techniky tvorby software. Computer press, 2006. ISBN 978-80-251-0849-9.
Seznam pˇ r´ıloh
Pˇr´ıloha A: Diagram tˇr´ıd