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:29]
msi [Typy odvozených hodnot]
lmexplore:columnderived [2016/12/12 17:11] (aktuální)
msi [Hodnoty vypočtené z geografických dat]
Řádek 23: Řádek 23:
 ===== Hodnoty vypočtené vnořeným SQL dotazem ===== ===== Hodnoty vypočtené vnořeným SQL dotazem =====
  
-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é. ​+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:** [[:​lmexplore:​columnquery|Hodnoty vypočtené vnořeným SQL dotazem]]\\ **Více viz:** [[:​lmexplore:​columnquery|Hodnoty vypočtené vnořeným SQL dotazem]]\\
  
-===== Hodnoty ​odvozené ​analýzy hlavních komponent ​=====+===== Hodnoty ​vypočtené ​geografických dat =====
  
-Dalším typem odvozených sloupců jsou sloupce vzniklé ​jako výsledek [[:​lmianalysis:​pca#​vytvoreni_odvozenych_sloupcu|analýzy hlavní komponent]].+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íce viz:** [[:lmianalysis:pca|analýzy hlavní komponent]]\\+**Více viz:** [[:lmexplore:columngeo|Hodnoty vypočtené z geografických dat]]\\
  
 ===== Hodnoty odvozené z analýzy hlavních komponent ===== ===== Hodnoty odvozené z analýzy hlavních komponent =====
  
-Konečně je možné vytvářet odvozené ​sloupce ​nad nalezenými vztahy.+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íce viz:** [[:lmexplore:columnhypothesis|Hodnoty vypočtené z výsledků úloh DZD]]\\+**Více viz:** [[:lmianalysis:pca|Analýza hlavních komponent]]\\
  
-===== Hodnoty ​vypočtené výrazem ​=====+===== Hodnoty ​odvozené z výsledků úloh =====
  
-Odvozený sloupec vypočtený výrazem přidáme tlačítkem ''​Add expr.''​+Konečně je možné vytvářet odvozené sloupce nad nalezenými vztahy.
  
-{{: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]]. +**Více viz:** [[:​lmexplore:​columnhypothesis|Hodnoty ​vypočtené výsledků úloh DZD]]\\
- +
-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 seznamu sloupců databázové tabulky bude odvozený sloupec označen type //Expr.// (od //​Expression//​). +
- +
-==== Zadávání matematického výrazu ==== +
- +
-Př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 při výpočtu odvozené hodnoty k chybě (chybná syntaxe výrazu, dělení nulou apod.), bude sloupec označen jako nevalidní. +
- +
-**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. +
-==== 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//​. +
- +
-==== Příklady hodnot vypočtených výrazem ==== +
- +
-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 rozpoznat, zda se jedná o ženu (číslice bude 5 nebo 6), nebo o muže: +
- +
-  * **výraz:** //CInt( Mid( RC, 3, 1)) In (5, 6)// **datový typ:** boolean +
- +
-nebo věk v letech: +
- +
-  * **výraz:** //Year( Now())- (CInt( Left(RC, 2))+ 1900))// **datový typ:** celé číslo +
- +
-//​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). +
- +
-Další příklady výpočtu odvozených hodnot: +
- +
-^ 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í.+
  
 ----- -----
lmexplore/columnderived.1451849369.txt.gz · Poslední úprava: 2016/01/03 20:29 autor: msi