Uživatelské nástroje

Nástroje pro tento web


lmexplore:columnderived

Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

Obě strany předchozí revize Předchozí verze
Následující verze
Předchozí verze
lmexplore:columnderived [2016/01/03 20:21]
msi [Hodnoty vypočtené výrazem]
lmexplore:columnderived [2016/12/12 17:11] (aktuální)
msi [Hodnoty vypočtené z geografických dat]
Řádek 5: Řádek 5:
 Přístupné jsou jako dodatečně přidané (odvozené) sloupce (angl. //derived columns//) do původní databázové tabulky. Objevují se tak v seznamu sloupců na záložce [[:​lmexplore:​table|databázové tabulky]], kde můžeme přidávat i další odvozené sloupce. ​ Přístupné jsou jako dodatečně přidané (odvozené) sloupce (angl. //derived columns//) do původní databázové tabulky. Objevují se tak v seznamu sloupců na záložce [[:​lmexplore:​table|databázové tabulky]], kde můžeme přidávat i další odvozené sloupce. ​
  
-===== Typy odvozených hodnot ​=====+===== Automaticky vytvořené odvozené hodnoty ​=====
  
 Typickou odvozenou hodnotou je den v týdnu vypočtený z datumu. Zároveň je možné z datumu vypočítat i pořadový den v roce, pořadí týdne v roce, čtvrtletí nebo i pořadový den na základě minimální hodnoty v daném sloupci.  ​ Typickou odvozenou hodnotou je den v týdnu vypočtený z datumu. Zároveň je možné z datumu vypočítat i pořadový den v roce, pořadí týdne v roce, čtvrtletí nebo i pořadový den na základě minimální hodnoty v daném sloupci.  ​
Řádek 12: Řádek 12:
  
 Výše zmíněné odvozené hodnoty vytvoří LISp-Miner automaticky. Výše zmíněné odvozené hodnoty vytvoří LISp-Miner automaticky.
- 
-Častým případem odvozených hodnot je výpočet jednotkových cen z cen celkových. Dalším příkladem může být věk vypočtený z datumu narození nebo **BMI** (//​body-mass index//) používaný v lékařském prostředí a zohledňující jak hmotnost, tak výšku pacienta. ​ 
- 
-Jde o odvozené hodnoty vypočtené z jiných sloupců, ale vždy pouze z hodnot v jednom řádku databázové tabulky. Více viz [[#Hodnoty vypočtené výrazem]]. 
- 
-Za odvozené hodnoty je možné považovat i různé agregované údaje. Ty můžeme vypočítat jak ze samotné databázové tabulky, nad kterou provádíme analýzu, tak i z dalších (nějakým způsobem provázaných) databázových tabulek. Příklad první agregované hodnoty může být pro každého hosta výpočet počtu dalších hostů, kteří ve **stejný den** přijeli ze **stejného města**. Příkladem druhého způsobu výpočtu může být zjištění vzdálenosti k nejbližší policejní stanici pro každý ze spáchaný zločinů na základě souřadnic místa zločinu v hlavní tabulce a souřadnic policejních stanic v tabulce druhé. Více viz [[#Hodnoty vypočtené vnořeným SQL dotazem]]. 
- 
-Dalším typem odvozených sloupců jsou sloupce vzniklé jako výsledek [[:​lmianalysis:​pca#​vytvoreni_odvozenych_sloupcu|analýzy hlavní komponent]]. 
- 
-Konečně je možné vytvářet odvozené sloupce nad nalezenými vztahy. 
  
 ===== Hodnoty vypočtené výrazem ===== ===== Hodnoty vypočtené výrazem =====
  
-Odvozený sloupec vypočtený výrazem ​idáme tlačítkem ''​Add expr.''​+Častým ​ípadem odvozených hodnot je výpočet jednotkových cen z cen celkovýchDalším příkladem může být věk vypočtený z datumu narození nebo **BMI** (//​body-mass index//) používaný v lékařském prostředí a zohledňující jak hmotnost, tak výšku pacienta
  
-{{:​lmexplore:​databasecolumnderived.pcenaubytovanizakladni.png?​300 |}} Nejprve je třeba zadat výstižný název nově přidávaného sloupce -- ten musí být unikátní v rámci ​databázové tabulky. Následně zadáváme přesný [[#​Zadávání matematického výrazu|matematický výraz]], podle kterého mají být hodnoty ve sloupci spočítány. Konečně je třeba zvolit vhodný [[#Volba datového typu|datový typ]].+Jde o odvozené hodnoty vypočtené z jiných sloupců, ale vždy pouze z hodnot v jednom ​řádku databázové tabulky. ​
  
-Po stisku tlačítka ''​Ok''​ se objeví záložka s [[:​lmexplore:​column|detaily o databázovém sloupci]]. Oproti sloupcům existujících přímo v databázi obsahuje tento i zadaný výraz, kterým jsou hodnoty v odvozeném sloupci vypočteny. Tento výraz je možné upravovat po stisku tlačítka ''​Edit''​. Funkčnost záložky i další zacházení s odvozenými sloupci je však zcela shodné jako v případě původních databázových sloupců. ​+**Více viz:​** ​[[:​lmexplore:​columnexpr|Hodnoty vypočtené výrazem]]\\
  
-V seznamu sloupců databázové tabulky bude odvozený sloupec označen type //Expr.// (od //​Expression//​).+===== Hodnoty vypočtené vnořeným SQL dotazem =====
  
-==== Zadávání matematického výrazu ====+Za odvozené hodnoty je možné považovat i různé agregované údaje. Ty můžeme vypočítat jak ze samotné databázové tabulky, nad kterou provádíme analýzu, tak i z dalších (nějakým způsobem provázaných) databázových tabulek. ​
  
-i zápisu matematického výrazu pro výpočet odvozeného sloupce se budou nabízet názvy existujících sloupců. Použitelný sloupec ​můžeme vyhledat i ze seznamu rozbalovací nabídky. Při zápisu výrazu je nutné dodržet syntaxi databázového prostředí, ve kterém jsou uložena analyzovaná data (tj. syntaxi VBA) pro MS Access, SQL/PL pro Oracle atp.). Dojde-li ​výpočtu ​odvozené hodnoty ​chybě (chybná syntaxe výrazu, dělení nulou apod.), bude sloupec označen jako nevalidní.+íklad první agregované hodnoty ​může být pro každého hosta výpočet počtu dalších hostůkteří ​ve **stejný den** ijeli ze **stejného města**. Příkladem druhého způsobu ​výpočtu ​může být zjištění vzdálenosti ​nejbližší policejní stanici pro každý ze spáchaný zločinů na základě souřadnic místa zločinu v hlavní tabulce a souřadnic policejních stanic v tabulce druhé
  
-**Pozor!** Při výpočtu nelze používat jiné, dříve vytvořené odvozené sloupce. Výraz není vyhodnocován LISp-Miner, ale prostředy databázového prostředí, ve kterém jsou uložena analyzovaná data. Proto se ve výrazu mohou objevit pouze sloupce, které existují v databázové tabulce. +**Více viz:** [[:​lmexplore:​columnquery|Hodnoty vypočtené vnořeným SQL dotazem]]\\
-==== Volba datového typu ====+
  
-Vhodný datový typ je třeba zvolit s ohledem na datový typ hodnot, ze kterých je odvozená hodnota počítána, a podle použitých matematických operací. V zásadě platí, že textových hodnot může vzniknout pouze hodnota datového typu //text//. Datový typ //celé číslo// volíme pouze u výpočtu z celočíselných hodnot, ve kterém není použito dělení. V ostatních případech je nutné zvolit datový typ //​desetinné číslo//.+===== Hodnoty vypočtené geografických dat =====
  
-===== Další příklady odvozených sloupců =====+Jsou-li součástí dat i geografické souřadnice bodu (např. místa nehody nebo trestného činu, bydliště hosta...), můžeme je využít pro výpočet dalšího typu odvozených hodnot počítaných na základě geografických relací jako např. "​vzdálenost od místa nehody k nejbližší nemocnici",​ "​název (konkurenčního) hotelu, ke kterému má host nejblíže ze svého bydliště"​ nebo "​název gangu, v jehož teritoriu se zločin stal"​. ​
  
-Výraz pro výpočet odvozených hodnot může být i složitější a používat interní funkce databázového prostředí (zde pro //​VisualBasic for Applications//​ použitý v //MS Accessu//). Tak je například možné ​třetí číslice rodného čísla rozpoznat, zda se jedná o ženu (číslice bude 5 nebo 6), nebo o muže:+**Více viz:** [[:​lmexplore:​columngeo|Hodnoty vypočtené geografických dat]]\\
  
-  * **výraz:** //CInt( Mid( RC, 3, 1)) In (5, 6)// **datový typ:** boolean+===== Hodnoty odvozené z analýzy hlavních komponent =====
  
-nebo věk v letech:+Dalším typem odvozených sloupců jsou sloupce vzniklé představující jednotlivé hlavní komponenty jako výsledek [[:lmianalysis:​pca#​vytvoreni_odvozenych_sloupcu|analýzy hlavní komponent]].
  
-  ​* **výraz:** //Year( Now())- (CInt( Left(RC, 2))+ 1900))// **datový typ:** celé číslo+**Více viz:** [[:lmianalysis:​pca|Analýza hlavních komponent]]\\
  
-//​Poznámka://​ Pozorný čtenář si jistě všimne nebezpečí,​ které při použití výše uvedeného vztahu pro výpočet věku v letech hrozí, pokud v databázi budou osoby narozené v roce 2000 a později).+===== Hodnoty odvozené z výsledků úloh =====
  
-Další příklady výpočtu odvozených hodnot: +Konečně je možné vytvářet odvozené sloupce nad nalezenými vztahy.
- +
-^ Hodnota ^ Výraz ^ Datový typ ^ +
-| Cena celkem | //​PCenaUbytovani+PCenaStrava-PCenaSleva//​ | desetinné číslo | +
-| Cena celkem v eurech | //​PCenaCelkem / SEUR// | desetinné číslo | +
-| Cena za noc | //​PCenaCelkem / PNoci// | desetinné číslo | +
-| Cena za osobu a noc | //​PCenaCelkem / (POsob * PNoci)// | desetinné číslo | +
-| Turnus | //​(PPobytOd.DayOfWeek = 6) & (PNoci % 7 = 0)// | boolean | +
-| Přes sobotní noc | //<​nowiki>​((PPobytOd.DayOfWeek % 7)+ PNoci) > 6</​nowiki>//​ | boolean | +
-| Věk | //​Now()-RokNarozeni//​ | celé číslo | +
-| BMI | //<​nowiki>​Vaha / ((Vyska/​100) * (Vyska/​100))</​nowiki>//,​ resp. po úpravě //Vaha / (Vyska × Vyska / 10000)// | desetinné číslo | +
-| Vzdálenost bydliště od hotelu | //<​nowiki>​sqr((BydlisteX-HotelX)*(BydlisteX-HotelX)+(BydlisteY-HotelY)*(BydlisteY-HotelY))</​nowiki>//​ | desetinné číslo |+
  
-//​Poznámka://​ Zcela správně bychom při zápisu výrazu měli používat plně kvalifikované názvy (např. ​**Hotel.PCenaCelkem**, **Hotel.PNoci**). Syntaxe SQL příkazu ''​SELECT''​ (který se interně pro výpočet hodnot používá) však umožňuje zkrácený zápis v případě, že nehrozí nejednoznačnost v tom, ve které tabulce se použitý sloupec nachází.+**Více viz:** [[:​lmexplore:​columnhypothesis|Hodnoty vypočtené z výsledků úloh DZD]]\\
  
 ----- -----
lmexplore/columnderived.1451848865.txt.gz · Poslední úprava: 2016/01/03 20:21 autor: msi