Chybějící hodnoty (Analysis Services – Dolování dat)

Platí pro: SQL Server 2019 a starší služby Analysis Services Azure Analysis Services Fabric/ Power BI Premium

Důležité

Dolování dat bylo v SQL Serveru 2017 Analysis Services zastaralé a nyní ukončeno ve službě SQL Server 2022 Analysis Services. Dokumentace se neaktualizuje pro zastaralé a ukončené funkce. Další informace najdete v tématu Zpětná kompatibilita služby Analysis Services.

Správné zpracování chybějících hodnot je důležitou součástí efektivního modelování. Tato část vysvětluje, co jsou chybějící hodnoty, a popisuje funkce poskytované ve službě SQL Server Analysis Services pro práci s chybějícími hodnotami při vytváření struktur dolování dat a modelů dolování.

Definice chybějících hodnot v dolování dat

Chybějící hodnota může značit řadu různých věcí. Pole se možná nepovedlo použít, událost se nestala nebo data nebyla k dispozici. Může se jednat o to, že osoba, která zadala data, nevěděla správnou hodnotu nebo se nezajímala, pokud pole nebylo vyplněno.

Existuje však mnoho scénářů dolování dat, ve kterých chybějící hodnoty poskytují důležité informace. Význam chybějících hodnot závisí převážně na kontextu. Například chybějící hodnota pro datum v seznamu faktur se výrazně liší od chybějícího data ve sloupci, který označuje datum zaměstnance. Služba SQL Server Analysis Services obecně považuje chybějící hodnoty za informativní a upraví pravděpodobnosti začlenění chybějících hodnot do výpočtů. Tímto způsobem můžete zajistit, aby modely byly vyváženy a nepřikládaly stávajícím případům příliš velkou váhu.

Služba SQL Server Analysis Services proto poskytuje dva odlišné mechanismy správy a výpočtu chybějících hodnot. První metoda řídí zpracování nulových hodnot na úrovni struktury dolování. Druhá metoda se u každého algoritmu liší v implementaci, ale obecně definuje, jak se chybějící hodnoty zpracovávají a počítají v modelech, které povolují hodnoty null.

Určení zpracování hodnot Null

Ve zdroji dat můžou být chybějící hodnoty reprezentovány mnoha způsoby: jako hodnoty null, jako prázdné buňky v tabulce, jako hodnota není k dispozici nebo nějaký jiný kód nebo jako umělá hodnota, například 9999. Pro účely dolování dat se však za chybějící hodnoty považují pouze hodnoty null. Pokud data obsahují zástupné hodnoty místo hodnot null, můžou mít vliv na výsledky modelu, takže pokud je to možné, měli byste je nahradit hodnotami null nebo odvodit správné hodnoty. Existují různé nástroje, které můžete použít k odvození a vyplnění vhodných hodnot, jako je například nástroj transformace Lookup nebo úloha Data Profiler v systému SQL Server Integration Services, nebo nástroj Vyplnit podle příkladu, který je k dispozici v Doplňcích pro dolování dat pro Excel.

Pokud úloha, kterou modelujete, určuje, že sloupec nesmí obsahovat chybějící hodnoty, měli byste při definování struktury dolování použít příznak NOT_NULL modelování na sloupec. Tento příznak označuje, že zpracování by mělo selhat, pokud případ nemá odpovídající hodnotu. Pokud k této chybě dojde při zpracování modelu, můžete chybu protokolovat a provést kroky k opravě dat zadaných do modelu.

Výpočet chybějícího stavu

Pro algoritmus dolování dat jsou chybějící hodnoty informativní. V případě tabulek je Chybějící platným stavem jako každý jiný. Model dolování dat navíc může použít jiné hodnoty k předpovídání, jestli hodnota chybí. Jinými slovy, skutečnost, že hodnota chybí, není chyba.

Při vytváření modelu dolování se do modelu automaticky přidá stav Chybějící pro všechny diskrétní sloupce. Pokud například vstupní sloupec [Pohlaví] obsahuje dvě možné hodnoty, muž a žena, třetí hodnota se automaticky přidá, aby představovala chybějící hodnotu, a histogram, který ukazuje rozdělení všech hodnot pro sloupec vždy obsahuje počet případů s chybějícími hodnotami. Pokud ve sloupci Pohlaví nechybí žádné hodnoty, histogram ukazuje, že chybějící stav se vyskytuje v 0 případech.

Odůvodnění zahrnutí stavu Chybějící ve výchozím nastavení je jasné, když se domníváte, že vaše data nemusí obsahovat příklady všech možných hodnot, a nechcete, aby model vyloučil možnost jen proto, že v datech nebyl žádný příklad. Pokud například údaje o prodeji v obchodě ukázaly, že všichni zákazníci, kteří si koupili určitý produkt, byly ženy, nechcete vytvořit model předpovídající, že produkt mohou koupit pouze ženy. Místo toho služba SQL Server Analysis Services přidá zástupný symbol s názvem Chybějící pro dodatečnou neznámou hodnotu jako způsob, jak zohlednit možné další stavy.

Následující tabulka například ukazuje rozdělení hodnot pro uzel (Vše) v modelu rozhodovacího stromu vytvořeného pro kurz Bike Buyer. V ukázkovém scénáři je sloupec [Bike Buyer] předvídatelný atribut, kde 1 označuje "Ano" a 0 označuje "Ne".

Hodnota Případy
0 9296
1 9098
Nepřítomný 0

Tato distribuce ukazuje, že přibližně polovina zákazníků zakoupila kolo a polovina ne. Tato konkrétní datová sada je velmi čistá; Proto má každý případ hodnotu ve sloupci [Bike Kupující] a počet chybějících hodnot je 0. Pokud by však některý případ měl v poli [Bike Buyer] hodnotu null, služba SQL Server Analysis Services by tento řádek spočítala jako případ s chybějící hodnotou.

Pokud je vstup průběžný sloupec, model tabuluje dva možné stavy atributu: Existující a Chybějící. Jinými slovy, sloupec obsahuje hodnotu některého číselného datového typu nebo neobsahuje žádnou hodnotu. V případech, které mají hodnotu, model vypočítá střední hodnotu, směrodatnou odchylku a další smysluplné statistiky. V případech, které nemají žádnou hodnotu, model poskytuje počet chybějících vales a odpovídajícím způsobem upravuje předpovědi. Metoda pro úpravu předpovědi se liší v závislosti na algoritmu a je popsána v následující části.

Poznámka:

U atributů ve vnořené tabulce nejsou chybějící hodnoty významné. Pokud například zákazník produkt nekoupil, vnořená tabulka Products by neměla řádek odpovídající ho produktu a model dolování by pro chybějící produkt nevytvoří atribut. Pokud ale máte zájem o zákazníky, kteří si některé produkty nekoupili, můžete vytvořit model, který je filtrovaný na neexistující produkty v vnořené tabulce, pomocí příkazu NOT EXISTS ve filtru modelu. Další informace naleznete v tématu Použití filtru na model dolování.

Úprava pravděpodobnosti pro chybějící stavy

Kromě počítání hodnot vypočítá služba SQL Server Analysis Services pravděpodobnost jakékoli hodnoty v datové sadě. Totéž platí pro chybějící hodnotu . Například následující tabulka ukazuje pravděpodobnosti pro případy v předchozím příkladu:

Hodnota Případy Pravděpodobnost
0 9296 50,55%
1 9098 49,42%
Nepřítomný 0 0,03%

Může se zdát liché, že pravděpodobnost chybějící hodnoty se vypočítá jako 0,03%, pokud je počet případů 0. Toto chování je ve skutečnosti návrhem a představuje úpravu, která modelu umožňuje elegantně zpracovávat neznámé hodnoty.

Obecně platí, že pravděpodobnost se vypočítá jako příznivé případy rozdělené všemi možnými případy. V tomto příkladu algoritmus vypočítá součet případů, které splňují určitou podmínku ([Bike Kupující] = 1, nebo [Bike Kupující] = 0) a vydělí toto číslo celkovým počtem řádků. Pro účely chybějících případů se ale k počtu možných případů přidá 1. Výsledkem je, že pravděpodobnost neznámého případu už není nula, ale velmi malé číslo, což znamená, že stav je pouze nepravděpodobný, nikoli nemožné.

Přidání malé chybějící hodnoty nemění výsledek prediktoru; Umožňuje ale lepší modelování ve scénářích, kdy historická data nezahrnují všechny možné výsledky.

Poznámka:

Poskytovatelé dolování dat se liší způsobem, jakým zpracovávají chybějící hodnoty. Někteří poskytovatelé například předpokládají, že chybějící data ve vnořeném sloupci jsou zhuštěná reprezentace, ale chybějící data v nenořeném sloupci chybí náhodně.

Pokud jste si jisti, že jsou ve vašich datech zadány všechny výsledky a chcete zabránit úpravám pravděpodobností, měli byste nastavit příznak modelování NOT_NULL ve sloupci ve struktuře dolování.

Poznámka:

Každý algoritmus, včetně vlastních algoritmů, které jste získali z modulu plug-in třetí strany, může zpracovávat chybějící hodnoty odlišně.

Speciální zpracování chybějících hodnot v modelech rozhodovacího stromu

Algoritmus Rozhodovací stromy Microsoftu vypočítá pravděpodobnosti chybějících hodnot jinak než v jiných algoritmech. Místo pouhého přidání 1 k celkovému počtu případů se algoritmus rozhodovacích stromů upraví pro chybějící stav pomocí mírně odlišného vzorce.

V modelu rozhodovacího stromu se pravděpodobnost chybějícího stavu vypočítá takto:

PravděpodobnostStavu = (NodePriorProbability) * (PodporaStavu + 1) / (PodporaUzlu + CelkovýPočetStavů)

Algoritmus Rozhodovací stromy poskytuje další úpravu, která pomáhá algoritmus kompenzovat přítomnost filtrů v modelu, což může vést k vyloučení mnoha stavů během trénování.

Pokud se v SQL Serveru 2017 objeví stav při tréninku, ale náhodou má nulovou podporu v určitém uzlu, provede se standardní úprava. Pokud se ale během trénování nikdy nenarazí stav, algoritmus nastaví pravděpodobnost na přesně nulu. Tato úprava platí nejen pro chybějící stav, ale také pro další stavy, které existují v trénovacích datech, ale mají nulovou podporu v důsledku filtrování modelu.

Výsledkem této další úpravy je následující vzorec:

StateProbability = 0,0, pokud tento stav má v trénovací sadě podporu 0

ELSE StateProbability = (NodePriorProbability)* (StateSupport + 1) / (NodeSupport + TotalStatesWithNonZeroSupport)

Čistým účinkem této úpravy je zachování stability stromu.

Následující témata obsahují další informace o tom, jak zpracovat chybějící hodnoty.

Tasks Links
Přidání příznaků do jednotlivých sloupců modelu pro řízení zpracování chybějících hodnot Zobrazení nebo změna příznaků modelování (dolování dat)
Nastavení vlastností modelu dolování pro řízení zpracování chybějících hodnot Změna vlastností modelu dolování
Zjistěte, jak určit příznaky modelování v DMX. Příznaky modelování (DMX)
Změna způsobu, jakým struktura dolování zpracovává chybějící hodnoty Změna vlastností těžební struktury

Viz také

Obsah modelu dolování (Analysis Services – Dolování dat)
Modelování příznaků (dolování dat)