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:04]
msi [Výpočet odvozených hodnot]
lmexplore:columnderived [2016/12/12 17:11] (aktuální)
msi [Hodnoty vypočtené z geografických dat]
Řádek 1: Řádek 1:
 ====== Výpočet odvozených hodnot ====== ====== Výpočet odvozených hodnot ======
  
-Typickou odvozenou hodnotou je den v týdnu vypočtený datumu. Zároveň je možné z datumu vypočítat i pořadový den rocepořadí týdne v rocečtvrtletí nebo i pořadový den na základě minimální hodnoty v daném sloupci +Odvozené hodnoty jsou počítány ​hodnot již dostupných ​analyzovaných datechale nabízejí jinýtrochu odlišný pohled ​na data
  
-Samotné datum a čas jsou složené datové typy, které se skládají z dílčích hodnot – rok, měsíc a den pro datum a hodina, minuta, sekunda pro časS každou z těchto dílčích hodnot ​můžeme ​pracovat samostatně jako s odvozenou hodnotou+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
  
-Č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. ​+===== Automaticky vytvořené odvozené hodnoty =====
  
-Za odvozené hodnoty ​je možné ​považovat i různé agregované údaje. Ty můžeme ​vypočítat ​jak ze samotné databázové tabulkynad kterou provádíme analýzutak 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 ​tabulce druhé.+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 rocepořadí týdne v rocečtvrtletí nebo i pořadový ​den na základě ​minimální hodnoty ​daném sloupci 
  
 +Samotné datum a čas jsou složené datové typy, které se skládají z dílčích hodnot – rok, měsíc a den pro datum a hodina, minuta, sekunda pro čas. S každou z těchto dílčích hodnot můžeme pracovat samostatně jako s odvozenou hodnotou. ​
  
-===== Odvozené sloupce =====+Výše zmíněné odvozené hodnoty vytvoří LISp-Miner automaticky.
  
-Vypočtené ​odvozené hodnoty se v systému LISp-Miner přidávají jako tzv. //odvozené sloupce// (angl. //derived columns//) do seznamu sloupců na záložce [[:​lmexplore:​table|databázové tabulky]]. Odvozený sloupec přidáme tlačítkem ''​Add derived''​. ​+===== Hodnoty vypočtené ​výrazem =====
  
-{{:​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í ​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]].+Častým pří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ý ​lékařském prostředí a zohledňující jak hmotnosttak výšku pacienta
  
-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ýrazkterým jsou hodnoty ​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ů+Jde o odvozené hodnoty vypočtené z jiných ​sloupců, ​ale dy pouze z hodnot ​jednom ​řádku databázové tabulky
  
-V seznamu sloupců databázové tabulky bude odvozený sloupec označen type //Expr.// (od //​Expression//​).+**Více viz:** [[:​lmexplore:​columnexpr|Hodnoty vypočtené výrazem]]\\
  
-==== Zadávání matematického výrazu ​====+===== Hodnoty vypočtené vnořeným SQL dotazem =====
  
-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 AccessSQL/PL pro Oracle atp.). Dojde-li přvýpočtu odvozené hodnoty k chybě ​(chybná syntaxe výrazu, dělení nulou apod.), bude sloupec označen jako nevalidní.+Za odvozené hodnoty je možné považovat ​různé agregované údajeTy můžeme ​vypočítat jak ze samotné databázové tabulkynad kterou provádíme analýzutak z dalších ​(nějakým způsobem provázanýchdatabázových tabulek
  
-**Pozor!** Př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í ​databázové ​tabulce. +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**. ​íkladem druhého způsobu ​výpočtu ​ž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é
-==== 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 z 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//.+**Více viz:** [[:​lmexplore:​columnquery|Hodnoty vypočtené vnořeným SQL dotazem]]\\
  
-===== Další příklady odvozených sloupců ​=====+===== Hodnoty vypočtené z geografických dat =====
  
-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é z třetí číslice rodného čísla rozpoznatzda se jedná o ženu íslice bude 5 nebo 6), nebo o muže:+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íhohoteluke kterému má host nejblíže ze svého bydliště"​ nebo "​název gangu, v jehož teritoriu se zločin stal"​. ​
  
-  ​* **výraz:** //CInt( Mid( RC, 3, 1)) In (5, 6)// **datový typ:** boolean+**Více viz:** [[:lmexplore:​columngeo|Hodnoty vypočtené z geografických dat]]\\
  
-nebo věk v letech:+===== Hodnoty odvozené z analýzy hlavních komponent =====
  
-  * **výraz:** //Year( Now())- (CInt( Left(RC, 2))+ 1900))// **datový typ:** celé číslo+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]].
  
-//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).+**Více viz:** [[:​lmianalysis:​pca|Analýza hlavních komponent]]\\
  
-Další příklady výpočtu odvozených hodnot:+===== Hodnoty odvozené z výsledků úloh =====
  
-^ Hodnota ^ Výraz ^ Datový typ ^ +Konečně je možné vytvářet odvozené sloupce nad nalezenými vztahy.
-| 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.1451847869.txt.gz · Poslední úprava: 2016/01/03 20:04 autor: msi