Dolování znalostí

Copyright © květen 2001   Martin Přikryl a Eva Sokolowská

Obsah

  1. Úvod
  2. Příprava pracovního prostředí
    1. LISP-miner
    2. Databáze
    3. Automatizace nastavení prostředí
  3. Stanovení úlohy
    1. Seznámení se z daty
    2. Formulace úlohy
    3. Příprava dat
      1. Agregace dat
      2. Definování proměnných
  4. Formulace a rozbor úloh
    1. Úloha 1: Jak rozmístnit zaměstnance během dne a týdne?
      1. Vsedni den - zakaznici
      2. Vikend - zakaznici
      3. Závěr
    2. Úloha 2: Kdy pořádat reklamní akce na různé typy výrobků?
      1. Řešení
      2. Závěr

Úvod

V této dokumentaci se pokusíme popsat postup, jakým jsme formulovali a řešili úlohu data miningu nad zadanými daty. Nejdříve popíšeme jakým způsobem jsme si připravili pracovní prostředí (nastavení databáze, softwaru...). V další kapitole si vysvětlíme, jak jsme stanovili úlohu a co je jejím cílem. Ve stejné kapitole je také popsáno, jak jsme si připravili data do vhodné podoby pro analýzu zvoleného problému. Dále vysvětlíme jakým způsobem jsme postupovali při formulování úlohy v systému LISP-miner a k jakým výsledkům jsme dospěli. Nakonec se pokusíme interpretovat vygenerované výstupy systému LISP-miner.

Příprava pracovního prostředí

Abychom mohli začít pracovat na naší úloze, museli jsme nejdříve získat potřebná data a software.

LISP-miner

Programové moduly systému LISP-miner jsme získaly z projektového disku předmětu "IZI491 - Informační inženýrství - seminář." Systém se skládá ze tří modulů:

4ftTask
modul pro zadávání úloh
4ftResult
modul prohlížení výsledků úloh
LMDataSource
v tomto modulu se připravují datové matice pro analýzu

Tyto moduly nevyžadují žádnou konfiguraci. Mimo projektového disku lze systém získat na Internetu na adrese: http://lisp.vse.cz/~xsimm16/lm/LISp-Miner.zip

Databáze

Data, která jsme měli analyzovat, jsme dostali ve formě Access databáze "grocery.mdb". Pro využití v systému LISP-miner je zapotřebí, mimo vlastní databáze, mít připravenu databázi s metadaty v definované struktuře. Prázdnou databázi metadat ve formátu Access jsme získali z adresy: http://lisp.vse.cz/~xsimm16/lm/LMDBDemo.zip

Dále jsme vytvořily datový zdroj ODBC pro obě databáze. Datové zdroje se nastavují volbou v "Menu Start" OS Windows. Příslušná volba je "Start - Nastavení - Ovládací panely - ODBC data sources". Na záložce "Systémové DSN" (resp. "Uživatelské DSN") se nastavení provede volbou "Přidat". Je nutné vybrat správný formát databáze (Access), zadat vhodný název datového zdroje a nastavit cestu k databázovým souborům. My jsme zdroj metadat pojmenovali "Statit", a zdroj vlastních dat "Statit data". V databázi metat jsme provedli propojení se základními daty nastavením jména datového zdroje do položky "DSN" v tabulce "tpParamsDB .

Při spuštění libovolného z modulů systému LISP-miner je uživatel dotázán, s kterou databází chce pracovat. Zobrazí se mu seznam již použitých databází, ze kterého může vybrat nebo volbou "Other" zvolit jinou ještě nepoužitou.

Automatizace nastavení prostředí

Vzhledem k tomu, že jsme na naší úloze pracovali střídavě na mnoha počítačích, museli bychom veškerá uvedená nastavení provádět pokaždé znovu. Z tohoto důvodu jsme si připravili dávkový soubor, který provede nakopírování potřebných souborů do příslušných adresářů a pomocí úprav v registrech operačních systému vytvoří datové zdroje a přidá naši databázi do seznamu pro systém LISP-miner.

Stanovení úlohy

Seznámení se z daty

Zadaná data obsahují údaje o nákupech v provozovnách obchodního řetězce. Jsou k dispozici informace o obchodních domech, jejich umístnění (stát, město) a rozdělení na oddělení a pododdělení.

Dále jsou z databáze dostupné záznamy o jednotlivých druzích zboží. Jednotlivé artikly jsou rozděleny do skupin, z nichž každá se prodává v určitém oddělení. I tyto informace jsou dostupné. Mimo to je možné zjistit cenu výrobků.

Nejdůležitější jsou však údaje o zákaznících, je možné zjistit věk, pohlaví, bydliště a další údaje. Jsou zaznamenány všechny nákupy provedené klientem, a to velmi podrobně, až na úroveň kusů zboží a cen za jaké byly prodány.

Formulace úlohy

Po seznámení se z daty jsme se pokusily vyjádřit problém, se kterým se může management obchodního řetězce potýkat. Cíl úlohy jsme specifikovali následovně:

Úloha má sloužit vedoucím pracovníkům, kteří chtějí ve svých obchodních domech zlepšit či změnit služby zákazníkům během dne, a to buď v konkrétní části dne nebo během dnů v týdnů. K tomu by měly posloužit informace týkající se tržeb a počtu zákazníků, kteří v daných dnech či v dané části dne.

Příprava dat

Agregace dat

Vzhledem k charakteru úlohy, je pro nás míra podrobnosti dat obsažená v databázi nadbytečná. Proto jsme se v rámci urychlení pozdějších analýz rozhodli záznamy agregovat.

S přihlédnutím k formulaci úlohy jsou pro nás nepodstatná data o struktuře nákupů (jaké zboží a kolik kusů). Zajímá nás jen počet nákupů (zákazníků) a celková cena nákupu, a to jen souhrnně po jednotlivých hodinách. Protože budeme zkoumat jen vliv dnů v týdnu na velikost tržby a budeme ignorovat roční dobu (resp. kalendářní měsíc), stačí nám získat agregovaná data za den v týdnu a hodinu. Na základě takto stanoveného požadavku na data jsme si připravili novou databázovou tabulku "nase."

CREATE TABLE nase
(
  dvt         SMALLINT,
  hodina      SMALLINT,
  obchodak    INTEGER,
  zakaznici   INTEGER,
  trzba       FLOAT,
  prodej      INTEGER
);

Do nově vytvořené tabulky jsme vložili agregovaná data pomocí SQL příkazu:

INSERT INTO NASE
  SELECT
    Weekday(txn_summary.sales_dte) AS dvt,
    Hour(txn_summary.sales_time) AS hodina,
    txn_summary.store_id AS obchodak,
    count(txn_detail.txnd_id) AS zakaznici,
    sum(txn_detail.amount) AS trzba
  FROM
    txn_summary,
    txn_detail
  WHERE
    txn_summary.txn_id = txn_detail.txn_id
  GROUP BY
    Weekday(txn_summary.sales_dte),
    Hour(txn_summary.sales_time),
    txn_summary.store_id;

Uvedeným příkazem se nevyplní atribut "prodej". Ten by měl obsahovat ohodnocení prodeje v danou hodinu a den v týdnu. Toto ohodnocení jsme vyjádřili jako vztah tržby a počtu zákazníků (nákupů). Určili jsme čtyři úrovně "kvality" prodeje. Pro zařazení do jedné z kategorií jsme definovali omezení tak, že buď celkové tržby a nebo počet zákazníků musí přesáhnout určitou hranici relativní k maximální hodnotě ukazatele a zároveň oba ukazatele musí přesáhnout jinou (nižší) hranici. Hranice jsme určili následovně:

ÚroveňPopis
("kvalita" prodeje)
Alespoň jeden ukazatel musí přesáhnout ... z maximaOba ukazatele musí přesáhnout ... z maxima
1.velmi dobrá2/31/2
2.dobrá1/21/3
3.dostatečný1/31/4
4.nedostatečnýzbytek

Úrovně prodeje jsme nastavily v databázi pomocí SQL příkazů sestavených podle uvedené tabulky. Na ukázku uvádíme příkaz pro nastavení úrovně jedna:

UPDATE nase
  SET prodej = 1
  WHERE
    prodej = 0 AND
    (zakazici > (SELECT max(zakaznici) FROM nase) * 2/3 OR
     trzba > (SELECT MAX(trzba) FROM nase) * 2/3) AND
    (zakazici > (SELECT max(zakaznici) FROM nase) / 2 AND
     trzba > (SELECT max(trzba) FROM nase) / 2)

Následuje několik ukázkových záznamů ze vzniklé tabulky (matice):

dvthodinaobchodakzakaznicitrzbaprodej
61324181 257,712
49442137,554
22233280,014
31354181 244,182
21626101 742,611
11334231 296,802
51334201 075,182
38347109,124
42223495,624
22243456,294
41716111 805,561
18450162,664
52243387,844
21746122 038,151
22253698,654
29352176,864
31624251 366,092
71156142 051,371

Definování proměnných

Nad vytvořenou tabulkou jsme pomocí modulu LMDataSource definovaly proměnné, které později využijeme při analýze jako položky antecedentu a succedentu.

Den v tydnu
Veličina "den v tydnu" je definovaná nad atributem "dvt". Proměnná má 7 kategorií, každá kategorie odpovídá jednomu dnu. Kategorie jsou pojmenovány názvy dní v týdnu.
Vsedni den - vikend
Tato veličina je také vytvořena nad atributem "dvt". Má dvě kategorie "Vsedni den" a "Vikend". První z nich obsahuje hodnoty 1-5 (pondělí - pátek) a druhá 6-7 (sobota, neděle).
Hodina
Veličina "Hodina" je definována nad stejnojmenným atributem. Nabývá tří hodnot "Dopoledne", "Odpoledne" a "Vecer". Hodnota "Dopoledne" odpovídá intervalu <8;13) atributu "Hodina", "Odpoledne" pokrývá interval <13; 18) a "Vecer" interval <18; 23).
Hodina (cas)
Veličina "Hodina (cas)" je také definována nad atributem "hodina". Narozdíl od předchozí má kategorii pro každou hodnotu atributu "hodina", tedy 15 kategorií v rozsahu 8 až 22.
Obchodak
Veličina "Obchodak" je definována nad stejnojmenným atributem. Jejím účelem je jen přiřazení názvů obchodních domů k jejich identifikačním číslům.
Prodej, Trzba, Zakaznici
Všechny tyto veličiny jsou definovány nad stejnojmennými atributy. Všechny tři přiřazují k určitým intervalům (hodnotám u atributu "prodej") příslušného atributu popisné názvy podle následující tabulky (se zohledněním skloňování; hodnoty jsou zaokrouhleny):
PopisProdejTrzbaZakaznici
Velmi dobrý (-á)1(1985; ∞)(556; ∞)
Dobrá (-á)2(1488; 1985>(417; 556>
Dostatečný (-á)3(992; 1488>(278; 417>
Nedostatečný (-á)4<0; 992><0; 278>

Formulace a rozbor úloh

Na základě stanoveného cíle jsme formulovali dvě úlohy. Podrobněji rozebereme jejich formulaci a postup řešení v systému LISP-miner.

Úloha 1: Jak rozmístnit zaměstnance během dne a týdne?

Management obchodní sítě řeší problém, jak a kolik zaměstnanců umístit v jednotlivých obchodních domech o víkendu a ve všední dny. Zaměstnance potřebuje podle počtu zákazníků rozdělit tak, že část jde na pokladnu a část se stará o doplnění zásob. Samozřejmě, že pokud je frekvence zákazníků vysoká, je potřeba velké množství zaměstnanců na pokladnu a pokud přijde málo zákazníků, pak je velký počet zaměstnanců na pokladnách zbytečný. Zaměstnanci u pokladen pak mohou být mnohem více prospěšní např. v doplňování zboží, menší počet zákazníků tak umožňuje operativnější přístup do regálů.

Tuto úlohu jsme rozdělili na dvě části, neboť bázi musíme s ohledem na rozdílný počet hodnot v kategoriích "vsedni den" (5 hodnot) a "vikend" (2) zvolit odlišnou.

Vsedni den - zakaznici

Nejprve tedy management řeší problém, jak umístit pracovníky během pracovních dnů. Provedli jsme následující fundovanou implikaci:

 Vsedni den - vikend (Vsedni den), Hodina(*) → Zakaznici(*) / Obchodak(*)

Tato úloha znamená, že hledáme všechny takové segmenty hodin všedních dnů a zákazníků, aby procento příznivých nákupů bylo vysoké, tj. aby v dané části dne provedlo nákup dost zákazníků. Pro management je také velice důležité vědět, ve kterém obchodním domě to bylo, proto jsme do dotazu přidali podmínku obchodního domu.

Velikost báze jsme postupně upravili na 12 záznamů. Původně jsme zvolili bázi vyšší, ale to vyšel počet hypotéz příliš malý, proto jsme velikost báze upravili na 12. Pravděpodobnost jsme postupně zvolili 60%, pro vyšší hodnotu už vycházel velmi malý počet hypotéz. V modulu 4ftTask jsme tedy provedli dotaz. Za 1 sekundu bylo vygenerováno 11 hypotéz. Pro doplnění uvádíme výstup, který nám byl poskytnut:

Task name: vsedni den-zakaznici
Task description: +
Date of output: 23.5.2001

Survey of antecedent quantities
        Name    Description
        Hodina(*)       -
        Vsedni den - vikend(Vsedni den) -

Survey of succedent quantities
        Name    Description
        Zakaznici(*)    -

Survey of condition quantities
        Name    Description
        Obchodak(*)     -

Quantifier parameters:  Founded Implication
        p = 0.60
        Base = 12

Task parameters
        Length of antecedent: 0 - 99
        Length of succedent: 1 - 99
        Length of condition: 0 - 99
        Include symetric hypotheses: Yes
        Include extensions of 100% implications (antecedent): Yes
        Include extensions of 100% implications (succedent): Yes
        Processing of missing information: Delete

Total time: 0h 0m 1s
Time spend by communication with ODBC: 0h 0m 0s
Number of verifications: 192
Number of hypotheses: 11

V modulu 4ftResult tedy vyšlo 11 následujících hypotéz:

Nr. Hypothesis                                                Prob
6   Hodina(Dopoledne) & Vsedni den - vikend(Vsedni den) ...
    Zakaznici(Nedostatecny) / Obchodak(Vancouver)             0.6800
5   Hodina(Dopoledne) ...
    Zakaznici(Nedostatecny) / Obchodak(Vancouver)             0.6571
8   Hodina(Dopoledne) ...
    Zakaznici(Nedostatecny) / Obchodak(West Linn)             0.6571
9   Hodina(Dopoledne) & Vsedni den - vikend(Vsedni den) ...
    Zakaznici(Nedostatecny) / Obchodak(West Linn)             0.6400
1   Hodina(Dopoledne) ...
    Zakaznici(Nedostatecny)                                   0.6171
2   Hodina(Dopoledne) & Vsedni den - vikend(Vsedni den) ...
    Zakaznici(Nedostatecny)                                   0.6160
4   Hodina(Dopoledne) & Vsedni den - vikend(Vsedni den) ...
    Zakaznici(Nedostatecny) / Obchodak(Beaverton)             0.6000
7   Hodina(Dopoledne) & Vsedni den - vikend(Vsedni den) ...
    Zakaznici(Nedostatecny) / Obchodak(Portland)              0.6000
10  Hodina(Vecer) & Vsedni den - vikend(Vsedni den) ...
    Zakaznici(Nedostatecny) / Obchodak(West Linn)             0.6000
3   Hodina(Dopoledne) ...
    Zakaznici(Nedostatecny) / Obchodak(Beaverton)             0.6000
11  Hodina(Dopoledne) ...
    Zakaznici(Nedostatecny) / Obchodak(Lake Oswego)           0.6000

"Nejsilnější" a zřejmě i pro management nejzajímavější, by byla hypotéza č. 6 a proto ji rozebereme trochu podrobněji.

*** Hypothesis number: 6
    Antecedent      Hodina  Dopoledne
                    Vsedni den -    Vsedni den
    Succedent       Zakaznici       Nedostatecny
    Condition       Obchodak        Vancouver

Values from frequency table:
    a/(a+b) =       0.680000        (Prob, Validity)
    a/(a+b+c) =     0.354167
    a/n =           0.163462
    Weight =        0.680000

Frequency table
                    Succedent       NOT Succedent
    Antecedent      17              8                25
    NOT Antecedent  23              56               79
                    40              64               104
Row percentage
                    Succedent       NOT Succedent
    Antecedent      68.00           32.00            100.00
    NOT Antecedent  29.11           70.89            100.00
                    38.46           61.54            100.00

Column percentage
                    Succedent       NOT Succedent
    Antecedent      42.50           12.50            24.04
    NOT Antecedent  57.50           87.50            75.96
                    100.00          100.00           100.00

Total percentage
                    Succedent       NOT Succedent
     Antecedent     16.35           7.69             24.04
     NOT Antecedent 22.12           53.85            75.96
                    38.46           61.54            100.00

Z těchto výsledků plyne, že počet objektů, které splňují antecedent a succedent je 17, to znamená, že v dopoledních hodinách ve všední dny provedl nákup v obchodním domě ve městě Vancouver nedostatečný počet zákazníků. Celkový počet nákupů v dopoledních hodinách ve všední dny ve městě Vancouver je 25. Hodnota p je tedy 0,68. Jinými slovy to znamená, že dopolední hodiny ve všední dny ve městě Vancouver implikují na 68%, že počet zákazníků, kteří provedou v této době nákup, bude nedostatečný.

Pro management je také velice zajímavá hypotéza číslo 2, která udává, že pokud je dopoledne ve všední den, tak na 61,6% je počet zákazníků, kteří nakupují v obchodních domech v kterémkoliv z výše uvedených obchodních domů, nedostatečný. Pro názornost uvádíme opět výstup z modulu 4ftResult.

*** Hypothesis number: 2
        Antecedent      Hodina  Dopoledne
                Vsedni den -    Vsedni den
        Succedent       Zakaznici       Nedostatecny

Values from frequency table:
        a/(a+b) =       0.616000        (Prob, Validity)
        a/(a+b+c) =     0.326271
        a/n =   0.148077
        Weight =        0.616000

Frequency table
                Succedent       NOT Succedent
        Antecedent      77      48      125
        NOT Antecedent  111     284     395
                188     332     520

Row percentage
                Succedent       NOT Succedent
        Antecedent      61.60   38.40   100.00
        NOT Antecedent  28.10   71.90   100.00
                        36.15   63.85   100.00

Column percentage
                Succedent       NOT Succedent
        Antecedent      40.96   14.46   24.04
        NOT Antecedent  59.04   85.54   75.96
                        100.00  100.00  100.00

Třeba ještě uvést, že z výše uvedených hypotéz je zřejmé, že pokud je dopoledne ve všední den, tak je vždy v každém z obchodních domů alespoň na 60% počet zákazníků nedostatečný.

Vikend - zakaznici

Další problém, který management řeší je, jak umístit pracovníky během víkendu. Opět jsme provedli fundovanou implikaci:

 Vsedni den - vikend (Vikend), Hodina(*) → Zakaznici(*) / Obchodak(*)

Analogicky první části znamená tato úloha, že hledáme všechny takové segmenty hodin víkendů a zákazníků, aby procento příznivých nákupů bylo vysoké, tj. aby v dané části dne provedlo nákup dost zákazníků. I v tomto případě je pro management velice důležité vědět, ve kterém obchodním domě to bylo, proto je v dotazu opět podmínka obchodního domu.

Oproti první části je rozdíl ve velikosti báze. Počet hodnot v kategorii "vikend" je 2 (sobota a neděle), zatímco počet hodnot v kategorii "vsedni den" je 5. Kategorie "vikend" tedy obsahuje menší počet záznamů, proto jsme bázi v tomto případě po několika pokusech zvolili optimální hodnotu 5. Pravděpodobnost jsme opět stanovili na 60%.

V modulu 4ftTask bylo za 2 sekundy vygenerováno 14 hypotéz. Výstup byl následující:

Task name: vikend-zakaznici
Task description: +
Date of output: 24.5.2001

Survey of antecedent quantities
        Name    Description
        Hodina(*)       -
        Vsedni den - vikend(Vikend)     -

Survey of succedent quantities
        Name    Description
        Zakaznici(*)    -

Survey of condition quantities
        Name    Description
        Obchodak(*)     -

Quantifier parameters:  Founded Implication
        p = 0.60
        Base = 5

Task parameters
        Length of antecedent: 0 - 99
        Length of succedent: 1 - 99
        Length of condition: 0 - 99
        Include symetric hypotheses: Yes
        Include extensions of 100% implications (antecedent): Yes
        Include extensions of 100% implications (succedent): Yes
        Processing of missing information: Delete

Total time: 0h 0m 2s
Time spend by communication with ODBC: 0h 0m 1s
Number of verifications: 192
Number of hypotheses: 14

Modulu 4ftResult nám nabídnul 14 následujících hypotéz:

Nr. Hypothesis                                                Prob
14  Hodina(Odpoledne) & Vsedni den - vikend(Vikend) ...
    Zakaznici(Dobry) / Obchodak(Lake Oswego)                  0.7000
13  Hodina(Dopoledne) & Vsedni den - vikend(Vikend) ...
    Zakaznici(Nedostatecny) / Obchodak(Lake Oswego)           0.7000
11  Hodina(Dopoledne) & Vsedni den - vikend(Vikend) ...
    Zakaznici(Nedostatecny) / Obchodak(West Linn)             0.7000
9   Hodina(Odpoledne) & Vsedni den - vikend(Vikend) ...
    Zakaznici(Dobry) / Obchodak(Portland)                     0.7000
5   Hodina(Odpoledne) & Vsedni den - vikend(Vikend) ...
    Zakaznici(Dobry) / Obchodak(Beaverton)                    0.7000
10  Hodina(Dopoledne) ...
    Zakaznici(Nedostatecny) / Obchodak(West Linn)             0.6571
6   Hodina(Dopoledne) ...
    Zakaznici(Nedostatecny) / Obchodak(Vancouver)             0.6571
2   Hodina(Dopoledne) & Vsedni den - vikend(Vikend) ...
    Zakaznici(Nedostatecny)                                   0.6200
1   Hodina(Dopoledne) ...
    Zakaznici(Nedostatecny)                                   0.6171
12  Hodina(Dopoledne) ...
    Zakaznici(Nedostatecny) / Obchodak(Lake Oswego)           0.6000
8   Hodina(Vecer) & Vsedni den - vikend(Vikend) ...
    Zakaznici(Nedostatecny) / Obchodak(Vancouver)             0.6000
7   Hodina(Dopoledne) & Vsedni den - vikend(Vikend) ...
    Zakaznici(Nedostatecny) / Obchodak(Vancouver)             0.6000
4   Hodina(Dopoledne) & Vsedni den - vikend(Vikend) ...
    Zakaznici(Nedostatecny) / Obchodak(Beaverton)             0.6000
3   Hodina(Dopoledne) ...
    Zakaznici(Nedostatecny) / Obchodak(Beaverton)             0.6000

Pro management jsou zajímavé především hypotézy číslo 14, 13, 11, 9 a 5. Proto tyto hypotézy rozebereme trochu podrobněji:

Nr. Hypothesis                                                Prob
11  Hodina(Dopoledne) & Vsedni den - vikend(Vikend) ...
    Zakaznici(Nedostatecny) / Obchodak(West Linn)             0.7000
13  Hodina(Dopoledne) & Vsedni den - vikend(Vikend) ...
    Zakaznici(Nedostatecny) / Obchodak(Lake Oswego)           0.7000

Z těchto dvou hypotéz vyplývá, že počet zákazníků, kteří provedou nákup o víkendu dopoledne v obchodním domě v Lake Oswego nebo ve West Linn, bude na 70% nedostatečný.

Nr. Hypothesis                                                Prob
14  Hodina(Odpoledne) & Vsedni den - vikend(Vikend) ...
    Zakaznici(Dobry) / Obchodak(Lake Oswego)                  0.7000
9   Hodina(Odpoledne) & Vsedni den - vikend(Vikend) ...
    Zakaznici(Dobry) / Obchodak(Portland)                     0.7000
5   Hodina(Odpoledne) & Vsedni den - vikend(Vikend) ...
    Zakaznici(Dobry) / Obchodak(Beaverton)                    0.7000

Z těchto třech hypotéz je naopak zřejmé, že pokud je odpoledne a víkend, pak v obchodních domech v Lake Oswego, Portland a Beaverton provede na 70% nákup "dobrý počet" zákazníků.

Závěr

Z výše uvedených hypotéz je patrné, že jsou některé duplicitní. Souhrnně lze hypotézy rozdělit následovně:

Hypotézy týkající se každého dne v týdnu

   Hypothesis                                                 Prob
-  Hodina(Dopoledne) ...
   Zakaznici(Nedostatecny) / Obchodak(West Linn)              0.6571
-  Hodina(Dopoledne) ...
   Zakaznici(Nedostatecny) / Obchodak(Vancouver)              0.6571
-  Hodina(Dopoledne) ...
   Zakaznici(Nedostatecny)                                    0.6171
-  Hodina(Dopoledne) ...
   Zakaznici(Nedostatecny) / Obchodak(Lake Oswego)            0.6000
-  Hodina(Dopoledne) ...
   Zakaznici(Nedostatecny) / Obchodak(Beaverton)              0.6000

Hypotézy týkající se jen všedních dnů

   Hypothesis                                                 Prob
-  Hodina(Dopoledne) & Vsedni den - vikend(Vsedni den) ...
   Zakaznici(Nedostatecny) / Obchodak(Vancouver)              0.6800
-  Hodina(Dopoledne) & Vsedni den - vikend(Vsedni den) ...
   Zakaznici(Nedostatecny) / Obchodak(West Linn)              0.6400
-  Hodina(Dopoledne) & Vsedni den - vikend(Vsedni den) ...
   Zakaznici(Nedostatecny)                                    0.6160
-  Hodina(Dopoledne) & Vsedni den - vikend(Vsedni den) ...
   Zakaznici(Nedostatecny) / Obchodak(Beaverton)              0.6000
-  Hodina(Dopoledne) & Vsedni den - vikend(Vsedni den) ...
   Zakaznici(Nedostatecny) / Obchodak(Portland)               0.6000

Hypotézy týkající se jen dnů o víkendu

   Hypothesis                                                 Prob
-  Hodina(Odpoledne) & Vsedni den - vikend(Vikend) ...
   Zakaznici(Dobry) / Obchodak(Lake Oswego)                   0.7000
-  Hodina(Dopoledne) & Vsedni den - vikend(Vikend) ...
   Zakaznici(Nedostatecny) / Obchodak(Lake Oswego)            0.7000
-  Hodina(Dopoledne) & Vsedni den - vikend(Vikend) ...
   Zakaznici(Nedostatecny) / Obchodak(West Linn)              0.7000
-  Hodina(Odpoledne) & Vsedni den - vikend(Vikend) ...
   Zakaznici(Dobry) / Obchodak(Portland)                      0.7000
-  Hodina(Odpoledne) & Vsedni den - vikend(Vikend) ...
   Zakaznici(Dobry) / Obchodak(Beaverton)                     0.7000
-  Hodina(Dopoledne) & Vsedni den - vikend(Vikend) ...
   Zakaznici(Nedostatecny)                                    0.6200
-  Hodina(Vecer) & Vsedni den - vikend(Vikend) ...
   Zakaznici(Nedostatecny) / Obchodak(Vancouver)              0.6000
-  Hodina(Dopoledne) & Vsedni den - vikend(Vikend) ...
   Zakaznici(Nedostatecny) / Obchodak(Vancouver)              0.6000
-  Hodina(Dopoledne) & Vsedni den - vikend(Vikend) ...
   Zakaznici(Nedostatecny) / Obchodak(Beaverton)              0.6000

Celkově je pro management asi nejdůležitější zjištění, že každé dopoledne v každém obchodním domě provede na 61,71% nákup nedostatečný počet zákazníků. Proto se tedy management rozhodne, že v dopoledních hodinách přesune část zaměstnanců, kteří doposud obsluhovali pokladny, do areálu obchodního domu, kde budou doplňovat zboží.

To je výhodné i v tom, že v dopoledních hodinách se v prostorech obchodních domů nevyskytuje příliš mnoho zákazníků a zaměstnanci tak mohou bez problémů doplnit chybějící zboží do regálů.

Největší přemístění zaměstnanců dopoledne se provede o víkendech v obchodních domech v Lake Oswego a West Linn a ve všedních dnech v obchodním domě ve Vancouver. (Hypotézy vyšly pro tyto obchodní domy "silné").

Management se dále na základě výše získaných výsledků rozhodne, že o víkendech zvýší odpoledne výrazně počet zaměstnanců na pokladnách v obchodních domech v Lake Oswego, West Linn a Portlando, neboť počet zákazníků, kteří v tuto dobu provedou nákup, je relativně vysoký.

Úloha 2: Kdy pořádat reklamní akce na různé typy výrobků?

Management obchodní sítě chce mít stále dobrou pověst, a tak se rozhodl, že bude pravidelně pořádat reklamní akce na nejrůznější typy prodávaných výrobků. Potřebuje ale zjistit, kdy tyto akce provádět. Nejvýhodnější je to v době, kdy je v obchodním domě dostatečné množství zákazníků a utržená částka peněz je dostatečně vysoká.

Řešení

K této analýze použije proměnnou týkající se kvality prodeje, ta v sobě zahrnuje jak údaje o počtu zákazníků, kteří provedli nákup, tak i údaje o objemu tržeb. Bližší specifikace proměnné prodej byla uvedena již výše. Provedli jsme tedy následující fundovanou implikaci.

 Den v tydnu (*), Hodina(*) → Prodej (*) / Obchodak (*)

Hledáme tedy všechny takové segmenty hodin dnů v týdnu a prodejů, aby procento příznivého prodeje bylo vysoké. Pro management je opět také důležité vědět, ve kterém obchodním domě to bylo, proto jsme do dotazu přidali podmínku obchodního domu.

Velikost báze jsme postupně upravili na 5 záznamů s tím, že výsledky nám nevycházely příznivě dokud jsme proměnnou prodej nenadefinovali v modulu 4ftTask jako intervaly o minimální délce 1 a maximální 2. Pravděpodobnost jsme stanovili 90%. Po provedení dotazu bylo po 2 sekundách vygenerováno 26 hypotéz:

Task name: Dny v tydnu
Task description: +
Date of output: 24.5.2001

Survey of antecedent quantities
        Name    Description
        Den v tydnu(*)  -
        Hodina(*)       -

Survey of succedent quantities
        Name    Description
        Prodej(*)       -

Survey of condition quantities
        Name    Description
        Obchodak(*)     -

Quantifier parameters:  Founded Implication
        p = 0.90
        Base = 5

Task parameters
        Length of antecedent: 0 - 99
        Length of succedent: 1 - 99
        Length of condition: 0 - 99
        Include symetric hypotheses: Yes
        Include extensions of 100% implications (antecedent): Yes
        Include extensions of 100% implications (succedent): Yes
        Processing of missing information: Delete

Total time: 0h 0m 2s
Time spend by communication with ODBC: 0h 0m 2s
Number of verifications: 2016
Number of hypotheses: 26

Podrobnosti o hypotézách z modulu 4ftResult:

Nr. Hypothesis                                                 Prob
12  Den v tydnu(Pondeli) & Hodina(Dopoledne) ...
    Prodej(Dostatecny, Nedostatecny) / Obchodak(Portland)      1.0000
2   Den v tydnu(Pondeli) & Hodina(Odpoledne) ...
    Prodej(Velmi dobry, Dobry) / Obchodak(Beaverton)           1.0000
23  Den v tydnu(Pondeli) & Hodina(Odpoledne) ...
    Prodej(Dobry, Dostatecny) / Obchodak(Lake Oswego)          1.0000
24  Den v tydnu(Utery) & Hodina(Dopoledne) ...
    Prodej(Dostatecny, Nedostatecny) / Obchodak(Lake Oswego)   1.0000
25  Den v tydnu(Utery) & Hodina(Odpoledne) ...
    Prodej(Velmi dobry, Dobry) / Obchodak(Lake Oswego)         1.0000
13  Den v tydnu(Streda) & Hodina(Dopoledne) ...
    Prodej(Dostatecny, Nedostatecny) / Obchodak(Portland)      1.0000
20  Den v tydnu(Streda) & Hodina(Dopoledne) ...
    Prodej(Dostatecny, Nedostatecny) / Obchodak(West Linn)     1.0000
7   Den v tydnu(Streda) & Hodina(Odpoledne) ...
    Prodej(Dobry, Dostatecny) / Obchodak(Vancouver)            1.0000
3   Den v tydnu(Ctvrtek) & Hodina(Dopoledne) ...
    Prodej(Dostatecny, Nedostatecny) / Obchodak(Beaverton)     1.0000
14  Den v tydnu(Ctvrtek) & Hodina(Dopoledne) ...
    Prodej(Dostatecny, Nedostatecny) / Obchodak(Portland)      1.0000
15  Den v tydnu(Ctvrtek) & Hodina(Odpoledne) ...
    Prodej(Velmi dobry, Dobry) / Obchodak(Portland)            1.0000
21  Den v tydnu(Ctvrtek) & Hodina(Vecer) ...
    Prodej(Dostatecny, Nedostatecny) / Obchodak(West Linn)     1.0000
4   Den v tydnu(Patek) & Hodina(Dopoledne) ...
    Prodej(Dostatecny, Nedostatecny) / Obchodak(Beaverton)     1.0000
8   Den v tydnu(Patek) & Hodina(Odpoledne) ...
    Prodej(Velmi dobry, Dobry) / Obchodak(Vancouver)           1.0000
9   Den v tydnu(Patek) & Hodina(Vecer) ...
    Prodej(Dostatecny, Nedostatecny) / Obchodak(Vancouver)     1.0000
5   Den v tydnu(Sobota) & Hodina(Dopoledne) ...
    Prodej(Dostatecny, Nedostatecny) / Obchodak(Beaverton)     1.0000
16  Den v tydnu(Sobota) & Hodina(Dopoledne) ...
    Prodej(Dostatecny, Nedostatecny) / Obchodak(Portland)      1.0000
22  Den v tydnu(Sobota) & Hodina(Dopoledne) ...
    Prodej(Dostatecny, Nedostatecny) / Obchodak(West Linn)     1.0000
17  Den v tydnu(Sobota) & Hodina(Odpoledne) ...
    Prodej(Velmi dobry, Dobry) / Obchodak(Portland)            1.0000
10  Den v tydnu(Nedele) & Hodina(Dopoledne) ...
    Prodej(Dostatecny, Nedostatecny) / Obchodak(Vancouver)     1.0000
18  Den v tydnu(Nedele) & Hodina(Dopoledne) ...
    Prodej(Dostatecny, Nedostatecny) / Obchodak(Portland)      1.0000
6   Den v tydnu(Nedele) & Hodina(Odpoledne) ...
    Prodej(Velmi dobry, Dobry) / Obchodak(Beaverton)           1.0000
11  Den v tydnu(Nedele) & Hodina(Odpoledne) ...
    Prodej(Velmi dobry, Dobry) / Obchodak(Vancouver)           1.0000
26  Den v tydnu(Nedele) & Hodina(Odpoledne) ...
    Prodej(Dobry, Dostatecny) / Obchodak(Lake Oswego)          1.0000
19  Hodina(Dopoledne) ...
    Prodej(Dostatecny, Nedostatecny) / Obchodak(Portland)      0.9429
1   Den v tydnu(Sobota) & Hodina(Dopoledne) ...
    Prodej(Dostatecny, Nedostatecny)                           0.9200

Závěr

Z hypotéz je zřejmé, že management Grocery by měl reklamní akce provádět v těchto obchodních dnech v tuto dobu:

Beaverton
pondělí odpoledne, neděle odpoledne
Lake Oswego
úterý odpoledne
Portland
čtvrtek odpoledne, sobota odpoledne
Vancouver
pátek odpoledne, neděle odpoledne

V této době je prodej na 100% alespoň dobrý.

Z výsledků dále plyne pro management Grocery doporučení, aby reklamní akce na různé výrobky rozhodně neprováděl v tuto dobu:

Beaverton
dopoledne ve dnech čtvrtek, pátek a sobota
Lake Oswego
úterý dopoledne
Portland
dopoledne ve dnech pondělí, středa, čtvrtek, sobota, neděle
Vancouver
pátek večer, neděle dopoledne
West Linn
středa a sobota dopoledne, čtvrtek večer

V těchto případech je totiž prodej na 100% dostatečný nebo nedostatečný.

Pro management je také zajímavá informace o tom, že pokud je sobotu dopoledne, tak na 92% bude prodej ve všech obchodních domech nezajímavý. Proto by v tuto dobu nebylo dobré provádět jakékoliv reklamní akce.

Pro názornost uvádíme ještě přesnější popis příslušné hypotézy:

*** Hypothesis number: 1
        Antecedent      Den v tydnu     Sobota
                        Hodina          Dopoledne
        Succedent       Prodej          Dostatecny, Nedostatecny

Values from frequency table:
        a/(a+b) =       0.920000        (Prob, Validity)
        a/(a+b+c) =     0.073016
        a/n =           0.044231
        Weight =        0.920000

Frequency table
                        Succedent       NOT Succedent
        Antecedent      23              2             25
        NOT Antecedent  290             205           495
                        313             207           520

Row percentage
                        Succedent       NOT Succedent
        Antecedent      92.00           8.00          100.00
        NOT Antecedent  58.59           41.41         100.00
                        60.19           39.81         100.00

Column percentage
                        Succedent       NOT Succedent
        Antecedent      7.35            0.97          4.81
        NOT Antecedent  92.65           99.03         95.19
                        100.00          100.00        100.00

Total percentage
                        Succedent       NOT Succedent
        Antecedent      4.42            0.38          4.81
        NOT Antecedent  55.77           39.42         95.19
                        60.19           39.81         100.00