Uživatelské nástroje

Nástroje pro tento web


lmprepro:attribute:categoryauto

Automatické vytváření kategorií

Nejpohodlnější způsob, jak vytvořit kategorie (zejména při jejich očekávaném vysokém počtu), je pomocí tlačítka Autocreate na záložce s detailem atributu. To vyvolá funkci pro automatické vytvoření kategorií na základě několika jednoduchých parametrů.

V současné době jsou k dispozici tyto volby pro automatickou tvorbu kategorií:

  • Výčet hodnot (angl. Each value – one category) – pro každou hodnotu v databázovém sloupci se vytvoří samostatná kategorie.
  • Ekvidistantní intervaly (angl. Equidistant intervals) – vytvoří se intervaly o stále stejné délce, s daným počátkem a s daným způsobem uzavření (zleva, zprava).
  • Ekvifrekvenční intervaly (angl. Equifrequency intervals) – vytvoří se zadaný počet intervalů tak, že do každého intervalu bude patřit pokud možno stejný počet záznamů z analyzované tabulky.
  • Podle hodnot v číselníkové tabulce (angl. By values in associated table) – jako výčet hodnot, ale kódy jsou nahrazeny jejich významem uvedeným v číselníkové tabulce.

Je na uživateli, aby zvolil vhodný typ kategorizace a vhodně nastavil meze intervalů, respektive jejich počet. K tomu by měl dopomoci i seznam v pravém dolním rohu zobrazující úplný výčet hodnot ze sloupce databázové tabulky, doplněný četností každé hodnoty a vypočtenými statistickými hodnotami.

S automaticky vytvořenými kategoriemi lze dále pracovat – lze je ručně editovat, slučovat, mazat, či přidávat další.

Poznámka: Automatické vytváření kategorií je plně funkční pouze do maximálního počtu 10 tisíc různých hodnot v databázovém sloupci. Jinak viz Příliš mnoho různých hodnot v databázovém sloupci.

Výčet hodnot

Automatické vytvoření kategorií jako výčtu hodnot je nejjednodušším způsobem předzpracování. Vlastně ani o předzpracování nejde, protože pro každou z hodnot v databázovém sloupci je vytvořena jedna kategorie. Protože však v analytických procedurách systému LISp-Miner pracujeme pouze s atributy, musíme nad každým databázovým sloupcem atribut vytvořit.

Vytvoření kategorií výčtem se hodí pro textové hodnoty, pro celočíselné hodnoty (obvykle reprezentující nějaké kódy) a pro hodnoty typu boolean. Nehodí se pro hodnoty typu desetinné číslo.

Praktická ukázka: Demo Hotel: Atribut Host/Pohlaví
Praktická ukázka: Demo Hotel: Atribut Host/Bydliště/Město
Praktická ukázka: Demo Hotel: Atribut Host/Bydliště/Stát
Praktická ukázka: Demo Hotel: Atribut Meteo/Obloha

Omezení počtu vytvořených kategorií

Při vytváření kategorií jako výčtu hodnot můžeme použít parametry v rámečku Enumerations v pravém horním rohu dialogového okna. Zejména pro databázové sloupce s mnoha rozdílnými hodnotami bývá vhodné omezit počet vytvářených kategorií pouze na daný počet nejčetnějších hodnot. Volitelně pak mohou být všechny ostatní hodnoty seskupeny do kategorie Others.

Alternativně mohou být ignorovány hodnoty s příliš vysokou nebo příliš nízkou četností. Pro takové hodnoty pak nebude kategorie vytvořena (a nebudou vloženy ani do kategorie Others).

Ekvidistantní intervaly

Při vytváření ekvidistantních intervalů je třeba zadat počáteční hodnotu, délku a způsob uzavření zleva, či zprava. Počáteční hodnota je přednastavena podle minimální hodnoty v daném sloupci. Obvykle je však vhodné ji ručně poopravit, aby názvy vzniklých kategorií byly přehlednější – název <1;2) se čte lépe než <1,0137897;2,0137897). A také, aby se zároveň snadno interpretovaly nalezené výsledky – obvykle se lépe hovoří o hodnotách okolo 50, 60, 70…, a proto bývá vhodnější počáteční hodnotu volit na „pětce“, než na „nule“ – tedy <45;55), <55;65)… a nikoliv <50;60), <60;70)… Vhodná počáteční hodnota může být ovlivněna cílem analýzy nebo doménovými znalostmi.

Počet vytvořených ekvidistantních intervalů bude kromě zadané délky záviset i na maximální hodnotě v daném sloupci – vytvoří se tolik intervalů, aby i nejvyšší hodnota byla zahrnuta. Ruční editací však lze počet intervalů snížit, a pak nebudou pokrývat celé rozpětí hodnot ve sloupci. Dokonce už při zadávání parametrů je možné zadat počáteční hodnotu nad minimální hodnotou ve sloupci.

Zadání intervalů počtem

Alternativně lze při vytváření ekvidistantních intervalů místo jejich délky zadat počet. Délka intervalů pak bude vypočtena ze zadané počáteční hodnoty a z maximální hodnoty ve sloupci. Zadání délky má přednost a parametr Count (počet) bude použit pouze v případě, že délka je nastavena na nulu.

Pojmenování kategorií

Při zaškrnutí volby Use mnemonic names je pro pojmenování vzniklých kategorii použita zkratka ed_XX, kde XX je pořadové číslo intervalu. Toto pojmenování se hodí zejména při vytváření ekvidistantních intervalů počtem v případě, že nám nejde ani tak o přesné meze intervalů, jako spíš o pořadí daného intervalu.

Praktická ukázka: Demo Hotel: Atribut Host/Věk
Praktická ukázka: Demo Hotel: Atribut Pobyt/Začátek (ekvidistatní intervaly počtem)
Praktická ukázka: Demo Hotel: Atribut Pobyt/Cena (ekvidistatní intervaly počtem)
Praktická ukázka: Demo Hotel: Atribut Pobyt/Sleva
Praktická ukázka: Demo Hotel: Atribut Směnárna/Kurz
Praktická ukázka: Demo Hotel: Atribut Meteo/Teplota
Praktická ukázka: Demo Hotel: Atribut Dotazník/Dílčí hodnocení (ekvidistatní intervaly počtem)

Ekvifrekvenční intervaly

Základním parametrem při vytváření ekvifrekvenčních interval intervalů je jich požadovaný počet. Kromě toho je možné upravit i počáteční a koncovou hodnotu vytvářených intervalů. Ve většině případů však ponecháváme hodnoty na minimu a maximu zjištěné pro daný sloupce, aby se vytvořily intervaly pro celé rozpětí hodnot. Vždy záleží na konkrétní podobě dat ve sloupci, zda se opravdu podaří vytvořit intervaly s naprosto shodnou četností.

Pojmenování kategorií

Při zaškrnutí volby Use mnemonic names jsou pro srozumitelnější pojmenování vzniklých kategorií použity slovní názvy (použitý jazyk odpovídá uživatelskému nastavení).

Praktická ukázka: Demo Hotel: Atribut Host/Věk
Praktická ukázka: Demo Hotel: Atribut Pobyt/Cena
Praktická ukázka: Demo Hotel: Atribut Dotazník/Dílčí hodnocení

Číselníková tabulka

Speciálním typem automatické kategorizace je volba By values in associated table. Pomůže v případě, že hodnoty v databázovém sloupci jsou kódy pro předpřipravené varianty (např. odpovědi v dotazníku) a zároveň je v databázi analyzovaných dat číselníková tabulka převádějící tyto kódy na textová vysvětlení. Potom je možné automaticky vytvořit kategorie s názvy podle textových vysvětlení. Kategorie přitom v definici i nadále obsahují původní číselné kódy.

Pojmenování kategorií

Při automatickém vytváření kategorií jsou automaticky nastaveny i jejich názvy. Pro typ Výčet hodnot je název nastaven podle hodnoty. U obou typů intervalů obsahuje název krajní meze intervalu a způsob uzavření zleva a zprava. Zejména u ekvifrekvenčních intervalů mohou být automaticky odvozené názvy nepřehledné.

Proto je pro tento typ implicitně zaškrtnutá volba, aby se vzniklé kategorie pojmenovaly slovními mnemotechnickými názvy. Například, když se vytváří tři ekvifrekvenční intervaly, budou kategorie pojmenovány Low, Avg a High. Pro pět intervalů to bude Very low, Low, Avg, High a Very High. Alternativně může být použita i čeština. Jazyk se nastavuje v menu Files/Application Options/Miscellaneus Options.

Bez ohledu na typ automatického vytváření kategorií může uživatel zadat názvy kategorií vlastní. Názvy se zadávají po stisku tlačítka Category names – jeden název na řádek a v pořadí, v jakém mají být vznikajícím kategoriím přiřazovány. Vytvořené kategorie budou místo nic neříkajících číselných kódů pojmenovány srozumitelně.

Zadání názvů kategorií lze použít pro libovolný počet kategorií a není nutné, aby jejich počet odpovídal počtu vznikajících kategorií. Bude-li jich zadáno méně, budou nově vzniklé kategorie, na které už řetězec nevyjde, pojmenovány standardním způsobem.

Datový typ desetinné číslo a volba typu vytvářených kategorií

Volba vhodného typu automaticky vytvářených kategorií závisí jednak na zamýšleném dalším nakládání s atributem, ale také na datovém typu databázového sloupce. Zvláštní péči je třeba věnovat hodnotám datového typu decimal number (desetinné číslo). Vzhledem k interní reprezentaci tohoto typu čísel v číslicovém počítači, je jejich přesnost omezená – u typu desetinné číslo je to pouze sedm platných číslic (bez ohledu na to, jestli jsou před nebo za desetinnou čárkou). I čísla s menším počtem číslic (např. 1,79) se mohou interně uložit v počítači s drobnou odchylkou (např. jako 1,789999). Pro běžné výpočty to nemusí představovat problém (a např. v LISp-Mineru se pro další zpracování používá datový typ double, který má 15 platných číslic). Interní zaokrouhlování však působí problémy pro (přesné) porovnávání dvou čísel. Z tohoto důvodu se pro datový typ desetinné číslo nedoporučuje používat kategorie typu výčet hodnot (volba Each value – one category).

Ve výjimečných případech může zároveň dojít k tomu, že v analyzovaných datech uložená hodnota 1,79 bude po načtení z databáze interně uložena jako 1,789999 a nebude proto zahrnuta do kategorie typu interval, která byla zadána intervalem <1,79;1,8). V systému LISp-Miner byly implementovány kontroly, které by takovému případu měly zabránit. Přesto je dobré mít při práci s hodnotami typu desetinné číslo tyto skutečnosti na paměti. To platí jak pro ruční přidávání kategorií, tak i pro jejich automatické vytváření.

Příliš mnoho různých hodnot v databázovém sloupci

Je-li v databázovém sloupci velmi vysoký počet různých hodnot (v současné době je tento limit nastaven na 10 tisíc různých hodnot), nelze je zobrazit v seznamu a objeví se chybové hlášení „Too many distinct values in '<Název sloupce>'. Consider creating a derived column to number of distinct values“. V takovém případě je možné pro automatické vytvoření kategorií použít pouze volbu Ekvidistantní intervaly s tím, že je třeba zkontrolovat a případně ručně opravit horní a dolní mez hodnot.

Alternativně je možné vytvořit kategorie ručně. V neposlední řadě je možné využít doporučení a vytvořit odvozený sloupec, ve kterém pomocí vhodně zadaného výrazu omezíme počet různých hodnot (např. zaokrouhlením).


Související témata:

Atribut a jeho kategorie
Ruční editace kategorií
Vytvoření atributu
Klonování atributu

Praktická ukázka: Demo Hotel: Vytvoření atributů a jejich kategorií

lmprepro/attribute/categoryauto.txt · Poslední úprava: 2016/12/14 19:29 (upraveno mimo DokuWiki)