Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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.
Když vytváříte dotaz na model dolování dat, můžete načíst metadata o modelu nebo vytvořit dotaz na obsah, který poskytuje podrobnosti o vzorech zjištěných v analýze. Alternativně můžete vytvořit prediktivní dotaz, který pomocí vzorů v modelu vytvoří předpovědi pro nová data. Každý typ dotazu poskytuje různé informace. Dotaz na obsah může například poskytnout další podrobnosti o clusterech nalezených analýzou, zatímco prediktivní dotaz vám může říct, do kterého clusteru pravděpodobně patří nový datový bod.
Tato část vysvětluje, jak vytvářet dotazy pro modely založené na algoritmu Microsoft Clustering.
Dotazy na obsah
Získání metadat modelu pomocí DMX
Načítání metadat modelu ze sady řádků schématu
Vrácení clusteru nebo seznamu clusterů
Vrácení profilu clusteru pomocí systémových uložených procedur
Hledání faktorů diskriminujících pro cluster
Vrácení případů, které patří do clusteru
Dotazy predikce
Predikce výsledků z modelu clusteringu
Vrácení všech možných shluků s pravděpodobností a vzdáleností
Vyhledání informací o modelu
Všechny modely dolování zveřejňují obsah, který algoritmus naučil podle standardizovaného schématu, sada řádků schématu modelu dolování. Dotazy na sadu řádků schématu modelu dolování můžete vytvářet pomocí příkazů DMX (Data Mining Extension). V SQL Serveru 2017 můžete také dotazovat sady řádků schématu přímo jako systémové tabulky.
Ukázkový dotaz 1: Získání metadat modelu pomocí DMX
Následující dotaz vrátí základní metadata o modelu clusteringu, TM_Clusteringkterý jste vytvořili v kurzu Základní dolování dat. Metadata dostupná v nadřazeném uzlu modelu clusteringu zahrnují název modelu, databázi, ve které je model uložený, a počet podřízených uzlů v modelu. Tento dotaz používá dotaz obsahu DMX k načtení metadat z nadřazeného uzlu modelu:
SELECT MODEL_CATALOG, MODEL_NAME, NODE_CAPTION,
NODE_SUPPORT, [CHILDREN_CARDINALITY], NODE_DESCRIPTION
FROM TM_Clustering.CONTENT
WHERE NODE_TYPE = 1
Poznámka:
Název sloupce, CHILDREN_CARDINALITY, musíte uzavřít do hranatých závorek, abyste ho odlišili od rezervovaného klíčového slova MDX (Multidimensional Expressions) se stejným názvem.
Příklady výsledků:
| Row | Metadatové informace |
|---|---|
| Katalog modelů | TM_Clustering |
| MODEL_NAME | Adventure Works DW |
| NODE_CAPTION | Model clusteru |
| NODE_SUPPORT | 12939 |
| CHILDREN_CARDINALITY | 10 |
| Popis_uzlu | Všechno |
Definice toho, co tyto sloupce znamenají v modelu clusteringu, najdete v tématu Obsah modelu dolování pro clusteringové modely (Analysis Services – Dolování dat).
Ukázkový dotaz 2: Načtení metadat modelu ze sady řádků schématu
Dotazováním sady řádků schématu dolování dat můžete najít stejné informace, které vrátí dotaz obsahu DMX. Sada řádků schématu ale poskytuje některé přidané sloupce. Mezi tyto sloupce patří parametry použité při vytváření modelu, datum a čas posledního zpracování modelu a vlastník modelu.
Následující příklad vrátí datum vytvoření, změny a poslední zpracování modelu s parametry clusteringu použitými k sestavení modelu a velikosti trénovací sady. Tyto informace můžou být užitečné pro dokumentaci modelu nebo určení, které možnosti clusteringu byly použity k vytvoření existujícího modelu.
SELECT MODEL_NAME, DATE_CREATED, LAST_PROCESSED, PREDICTION_ENTITY, MINING_PARAMETERS
from $system.DMSCHEMA_MINING_MODELS
WHERE MODEL_NAME = 'TM_Clustering'
Příklady výsledků:
| Row | Metadatové informace |
|---|---|
| MODEL_NAME | TM_Clustering |
| DATE_CREATED | 10.12.2007 12:42:51 |
| LAST_PROCESSED | 10/12/2007 8:09:54 PM |
| PREDICTION_ENTITY | Kupující na kole |
| PARAMETRY TĚŽBY | CLUSTER_COUNT=10, CLUSTER_SEED=0, CLUSTERING_METHOD=1, MAXIMUM_INPUT_ATTRIBUTES=255, MAXIMUM_STATES=100, MINIMUM_SUPPORT=1, MODELLING_CARDINALITY=10, SAMPLE_SIZE=50000, STOPPING_TOLERANCE=10 |
Vyhledání informací o clusterech
Nejužitečnější dotazy na obsah v modelech clusteringu obecně vracejí stejný typ informací, které můžete procházet pomocí Prohlížeče clusteru. Mezi tyto informace patří profily clusterů, charakteristiky clusteru a diskriminace clusterů. Tato část obsahuje příklady dotazů, které načítají tyto informace.
Ukázkový dotaz 3: Vrácení clusteru nebo seznamu clusterů
Vzhledem k tomu, že všechny clustery mají typ uzlu 5, můžete snadno načíst seznam clusterů dotazováním obsahu modelu pouze pro uzly tohoto typu. Můžete také filtrovat uzly vrácené pravděpodobností nebo podporou, jak je znázorněno v tomto příkladu.
SELECT NODE_NAME, NODE_CAPTION ,NODE_SUPPORT, NODE_DESCRIPTION
FROM TM_Clustering.CONTENT
WHERE NODE_TYPE = 5 AND NODE_SUPPORT > 1000
Příklady výsledků:
| Row | Metadatové informace |
|---|---|
| NODE_NAME | 002 |
| NODE_CAPTION | Cluster 2 |
| NODE_SUPPORT | 1649 |
| Popis_uzlu | Angličtina =Vzdělání=Absolvent , 32 <=Věk <=48 , Číslo auta vlastněná=0 , 35964.0771121808 <=Roční příjem <=97407.7163393957 , Angličtina Povolání=Profesionální , Vzdálenost do zaměstnání=2-5 km , Region=Severní Amerika , Kupec kol =1 , Číslo děti doma=0 , Číslo auta vlastněná=1 , vzdálenost dojíždějící=0-1 km , Angličtina Vzdělávání =Bachelors , Total Children=1 , Number Children At Home=2 , English Occupation=Skilled Manual , Rodinný stav=S , Celkový počet dětí=0 , Vlastník domu Flag=0 , Gender=F , Total Children=2 , Region=Pacific |
Atributy, které definují cluster ve dvou sloupcích v sadě řádků schématu dolování dat, najdete.
Sloupec NODE_DESCRIPTION obsahuje čárkami oddělený seznam atributů. Všimněte si, že seznam atributů může být zkrácen pro účely zobrazení.
Vnořená tabulka ve sloupci NODE_DISTRIBUTION obsahuje úplný seznam atributů clusteru. Pokud klient nepodporuje hierarchické sady řádků, můžete vnořenou tabulku vrátit přidáním klíčového slova FLATTENED před seznam sloupců SELECT. Další informace o použití klíčového slova FLATTENED naleznete v tématu SELECT FROM <model>. OBSAH (DMX).
Ukázkový dotaz 4: Návratové atributy pro cluster
Pro každý cluster zobrazí Prohlížeč clusteru profil, který obsahuje atributy a jejich hodnoty. Prohlížeč také zobrazí histogram, který zobrazuje rozdělení hodnot pro celý základní soubor případů v modelu. Pokud model procházíte v prohlížeči, můžete histogram snadno zkopírovat z legendy dolování a pak ho vložit do Excel nebo do Word dokumentu. Pomocí podokna Charakteristiky clusteru prohlížeče můžete také graficky porovnat atributy různých clusterů.
Pokud potřebujete hodnoty pro více než jeden cluster najednou, je jednodušší dotazovat se na model. Například při procházení modelu si můžete všimnout, že horní dva clustery se liší v jednom atributu, Number Cars Owned. Proto chcete extrahovat hodnoty pro každý cluster.
SELECT TOP 2 NODE_NAME,
(SELECT ATTRIBUTE_VALUE, [PROBABILITY] FROM NODE_DISTRIBUTION WHERE ATTRIBUTE_NAME = 'Number Cars Owned')
AS t
FROM [TM_Clustering].CONTENT
WHERE NODE_TYPE = 5
První řádek kódu určuje, že chcete pouze horní dva clustery.
Poznámka:
Ve výchozím nastavení jsou clustery seřazené podle podpory. Proto můžete vynechat sloupec NODE_SUPPORT.
Druhý řádek kódu přidá příkaz dílčího výběru, který vrátí pouze určité sloupce ze sloupce vnořené tabulky. Toto dílčí nastavení také omezuje řádky z vnořené tabulky na řádky související s cílovým atributem . Number Cars Owned Aby se zobrazení zjednodušilo, je vnořená tabulka aliasovaná.
Poznámka:
V závorkách musíte uzavřít sloupec vnořené tabulky, PROBABILITYprotože se jedná také o název rezervovaného klíčového slova MDX.
Příklady výsledků:
| NODE_NAME | T.ATTRIBUTE_VALUE | T.PRAVDĚPODOBNOST |
|---|---|---|
| 001 | 2 | 0.829207754 |
| 001 | 1 | 0.109354156 |
| 001 | 3 | 0.034481552 |
| 001 | 4 | 0.013503302 |
| 001 | 0 | 0.013453236 |
| 001 | Nepřítomný | 0 |
| 002 | 0 | 0.576980023 |
| 002 | 1 | 0.406623939 |
| 002 | 2 | 0.016380082 |
| 002 | 3 | 1.60E-05 |
| 002 | 4 | 0 |
| 002 | Nepřítomný | 0 |
Ukázkový dotaz 5: Vrácení profilu clusteru pomocí systémových uložených procedur
Místo psaní vlastních dotazů pomocí DMX můžete také volat systémové uložené procedury, které Analytické služby SQL Serveru používá k práci s clustery. Následující příklad ukazuje, jak použít interní uložené procedury k vrácení profilu clusteru s ID 002.
CALL System.Microsoft.AnalysisServices.System.DataMining.Clustering.GetClusterProfiles('TM_Clustering", '002',0.0005
Podobně můžete použít systémovou uloženou proceduru k vrácení charakteristik konkrétního clusteru, jak je znázorněno v následujícím příkladu:
CALL System.Microsoft.AnalysisServices.System.DataMining.Clustering.GetClusterCharacteristics('TM_Clustering", '009',0.0005
Příklady výsledků:
| Attributes | Hodnoty | Četnost | Support |
|---|---|---|---|
| Číslo dětí doma | 0 | 0.999999829076798 | 899 |
| Región | Severní Amerika | 0.999852875241508 | 899 |
| Celkový počet podřízených položek | 0 | 0.993860958572323 | 893 |
Poznámka:
Uložené procedury systému dolování dat jsou určené pro interní použití a Společnost Microsoft si vyhrazuje právo je podle potřeby změnit. Pro produkční použití je nejlepší vytvářet dotazy pomocí DMX, AMO nebo XMLA.
Ukázkový dotaz 6: Vyhledání nerozlišujících faktorů pro cluster
Karta Diskriminace clusteruprohlížeče clusterů usnadňuje porovnání clusteru s jiným clusterem nebo se všemi zbývajícími případy, což je doplněk clusteru.
Vytváření dotazů pro vrácení těchto informací však může být složité. Pokud chcete uložit dočasné výsledky a porovnat výsledky dvou nebo více dotazů, budete možná potřebovat další zpracování na klientovi. Jako zástupce můžete použít systémové uložené procedury.
Následující dotaz vrátí jednu tabulku, která zobrazuje primární faktory diskriminující mezi dvěma clustery, které mají ID uzlů 009 a 007. Atributy s kladnými hodnotami upřednostňují cluster 009, zatímco atributy s zápornými hodnotami upřednostňují cluster 007.
CALL System.Microsoft.AnalysisServices.System.DataMining.Clustering.GetClusterDiscrimination('TM_Clustering','009','007',0.0005,true)
Příklady výsledků:
| Attributes | Hodnoty | Score |
|---|---|---|
| Región | Severní Amerika | 100 |
| Angličtina Zaměstnání | Zkušená příručka | 94.9003803898654 |
| Región | Evropa | -72.5041051379789 |
| Angličtina Zaměstnání | Příručka | -69.6503163202722 |
Tato tabulka zobrazuje stejné informace uvedené v grafu prohlížeče diskriminace clusteru , pokud vyberete Cluster 9 z prvního rozevíracího seznamu a Cluster 7 z druhého rozevíracího seznamu. Pokud chcete porovnat cluster 9 s jeho doplňkem, použijte prázdný řetězec v druhém parametru, jak je znázorněno v následujícím příkladu:
CALL System.Microsoft.AnalysisServices.System.DataMining.Clustering.GetClusterDiscrimination('TM_Clustering','009','',0.0005,true)
Poznámka:
Uložené procedury systému dolování dat jsou určené pro interní použití a Společnost Microsoft si vyhrazuje právo je podle potřeby změnit. Pro produkční použití je nejlepší vytvářet dotazy pomocí DMX, AMO nebo XMLA.
Ukázkový dotaz 7: Návratové případy, které patří do clusteru
Pokud je u modelu dolování povolená podrobná analýza, můžete vytvořit dotazy, které vrátí podrobné informace o případech použitých v modelu. Pokud povolíte podrobnou analýzu ve struktuře dolování, můžete zahrnout sloupce ze základní struktury pomocí funkce StructureColumn (DMX).
Následující příklad vrátí dva sloupce, které model používá, Age (Věk) a Region (Oblast) a jeden další sloupec ( First Name), který model nepoužívá. Dotaz vrátí pouze případy, které model klasifikuje do clusteru 1.
SELECT [Age], [Region], StructureColumn('First Name')
FROM [TM_Clustering].CASES
WHERE IsInNode('001')
Pokud chcete vrátit případy, které patří do clusteru, musíte znát ID clusteru. ID clusteru můžete získat procházením modelu v jednom z prohlížečů. Nebo můžete cluster přejmenovat, abyste ho mohli snadněji odkazovat, a pak místo čísla ID použít název. Názvy, které přiřadíte ke clusteru, se však při opětovném zpracování modelu ztratí.
Vytváření předpovědí pomocí modelu
I když se clustering obvykle používá k popisu a porozumění datům, implementace Microsoft také umožňuje vytvářet předpovědi o členství v clusteru a vracet pravděpodobnosti spojené s predikcí. Tato část obsahuje příklady vytváření prediktivních dotazů na modely clusteringu. Předpovědi pro více případů můžete provést zadáním tabulkového zdroje dat nebo můžete zadat nové hodnoty po jednom vytvořením dotazu s jednímtonem. Pro přehlednost jsou příklady v této části všechny jednoúčelové dotazy.
Další informace o vytváření prediktivních dotazů pomocí DMX naleznete v tématu Nástroje pro dotazy dolování dat.
Ukázkový dotaz 8: Předpověď výsledků z modelu clusteringu
Pokud model clusteringu, který vytvoříte, obsahuje předvídatelný atribut, můžete ho použít k předpovědím o výsledcích. Model ale zpracovává předvídatelný atribut odlišně v závislosti na tom, jestli nastavíte předvídatelný sloupec na Predict nebo PredictOnly. Pokud nastavíte použití sloupce na Predict, hodnoty tohoto atributu se přidají do modelu clusteringu a zobrazí se jako atributy v hotovém modelu. Pokud ale nastavíte použití sloupce na PredictOnly, hodnoty se nepoužívají k vytváření clusterů. Místo toho po dokončení modelu vytvoří algoritmus clusteringu nové hodnoty pro atribut PredictOnly na základě clusterů, do nichž každý případ patří.
Následující dotaz poskytuje modelu jeden nový případ, kde jedinými informacemi o případu je věk a pohlaví. Příkaz SELECT určuje předvídatelný pár atributů a hodnot, který vás zajímá, a funkce PredictProbability (DMX) vám řekne pravděpodobnost, že případ s těmito atributy bude mít cílový výsledek.
SELECT
[TM_Clustering].[Bike Buyer], PredictProbability([Bike Buyer],1)
FROM
[TM_Clustering]
NATURAL PREDICTION JOIN
(SELECT 40 AS [Age],
'F' AS [Gender]) AS t
Příklad výsledků, když je použití nastaveno na Předpověď:
| Kupující na kole | Expression |
|---|---|
| 1 | 0.592924735740338 |
Příklad výsledků, když je použití nastaveno na PredictOnly a model je znovu zpracován:
| Kupující na kole | Expression |
|---|---|
| 1 | 0.55843544003102 |
V tomto příkladu není rozdíl v modelu významný. Někdy ale může být důležité zjistit rozdíly mezi skutečným rozdělením hodnot a tím, co model predikuje. Funkce PredictCaseLikelihood (DMX) je v tomto scénáři užitečná, protože vám řekne, jak pravděpodobné je případ vzhledem k modelu.
Číslo vrácené funkcí PredictCaseLike probabilit je pravděpodobnost, a proto je vždy mezi 0 a 1 a hodnotou 0,5 představující náhodný výsledek. Proto skóre menší než 0,5 znamená, že předpovězený případ je nepravděpodobné vzhledem k modelu a skóre nad,5 znamená, že předpovězený případ je pravděpodobnější, než že se do modelu nevejde.
Následující dotaz například vrátí dvě hodnoty, které charakterizují pravděpodobnost nového ukázkového případu. Nenormalizované hodnoty představují pravděpodobnost vzhledem k aktuálnímu modelu. Při použití klíčového slova NORMALIZED se skóre pravděpodobnosti vrácené funkcí upraví rozdělením pravděpodobnosti s modelem podle pravděpodobnosti bez modelu.
SELECT
PredictCaseLikelihood(NORMALIZED) AS [NormalizedValue], PredictCaseLikelihood(NONNORMALIZED) AS [NonNormalizedValue]
FROM
[TM_Clustering_PredictOnly]
NATURAL PREDICTION JOIN
(SELECT 40 AS [Age],
'F' AS [Gender]) AS t
Příklady výsledků:
| NormalizedValue | NonNormalizedValue |
|---|---|
| 5.56438372679893E-11 | 8.65459953145182E-68 |
Čísla v těchto výsledcích jsou vyjádřena ve vědeckém zápisu.
Ukázkový dotaz 9: Určení členství v clusteru
Tento příklad používá funkci Cluster (DMX) k vrácení nového případu, do kterého pravděpodobně patří nový případ, a pomocí funkce DmX (ClusterProbability) vrátí pravděpodobnost členství v tomto clusteru.
SELECT Cluster(), ClusterProbability()
FROM
[TM_Clustering]
NATURAL PREDICTION JOIN
(SELECT 40 AS [Age],
'F' AS [Gender],
'S' AS [Marital Status]) AS t
Příklady výsledků:
| $CLUSTER | Expression |
|---|---|
| Cluster 2 | 0.397918596951617 |
Poznámka:
Ve výchozím nastavení vrátí funkce ClusterProbability pravděpodobnost nejpravděpodobnějšího clusteru. Pomocí syntaxe ClusterProbability('cluster name')však můžete zadat jiný cluster . Pokud ano, mějte na paměti, že výsledky z každé predikční funkce jsou nezávislé na ostatních výsledcích. Proto skóre pravděpodobnosti ve druhém sloupci může odkazovat na jiný cluster než cluster pojmenovaný v prvním sloupci.
Ukázkový dotaz 10: Vrátí všechny možné clustery s pravděpodobností a vzdáleností.
V předchozím příkladu nebylo skóre pravděpodobnosti příliš vysoké. Pokud chcete zjistit, jestli existuje lepší cluster, použijte funkci PredictHistogram (DMX) s funkcí Cluster (DMX) k vrácení vnořené tabulky, která obsahuje všechny možné clustery a pravděpodobnost, že nový případ patří do každého clusteru. Pomocí klíčového slova FLATTENED můžete hierarchickou sadu řádků změnit na plochou tabulku pro snadnější zobrazení.
SELECT FLATTENED PredictHistogram(Cluster())
From
[TM_Clustering]
NATURAL PREDICTION JOIN
(SELECT 40 AS [Age],
'F' AS [Gender],
'S' AS [Marital Status])
| Expression.$CLUSTER | Expression.$DISTANCE | Expression.$PROBABILITY |
|---|---|---|
| Cluster 2 | 0.602081403048383 | 0.397918596951617 |
| Cluster 10 | 0.719691686785675 | 0.280308313214325 |
| Cluster 4 | 0.867772590378791 | 0.132227409621209 |
| Cluster 5 | 0.931039872200985 | 0.0689601277990149 |
| Cluster 3 | 0.942359230072167 | 0.0576407699278328 |
| Cluster 6 | 0.958973668972756 | 0.0410263310272437 |
| Cluster 7 | 0.979081275926724 | 0.0209187240732763 |
| Cluster 1 | 0.999169044818624 | 0.000830955181376364 |
| Cluster 9 | 0.999831227795894 | 0.000168772204105754 |
| Cluster 8 | 1 | 0 |
Ve výchozím nastavení jsou výsledky seřazené podle pravděpodobnosti. Předchozí výsledky naznačují, že i když je pravděpodobnost clusteru 2 poměrně nízká, je cluster 2 stále nejvhodnější pro nový datový bod.
Poznámka:
Přidaný $DISTANCE sloupec představuje vzdálenost od datového bodu ke clusteru. Ve výchozím nastavení používá algoritmus clusteringu Microsoftu škálovatelné clustering EM, který každému datovému bodu přiřazuje více clusterů a řadí možné clustery. Pokud ale vytvoříte model clusteringu pomocí algoritmu K-means, může být ke každému datovému bodu přiřazen pouze jeden cluster a tento dotaz by vrátil pouze jeden řádek. Pochopení těchto rozdílů je nezbytné k interpretaci výsledků funkce PredictCaseLikelihood (DMX). Další informace o rozdílech mezi clusteringem EM a K-Means najdete v technických referenčních informacích k algoritmu Microsoft Clustering.
Seznam funkcí
Všechny algoritmy Microsoftu podporují společnou sadu funkcí. Modely vytvořené pomocí algoritmu clusteringu Microsoft však podporují následující další funkce:
| Prediktivní funkce | Usage |
|---|---|
| Cluster (DMX) | Vrátí cluster, který s největší pravděpodobností obsahuje vstupní případ. |
| ClusterDistance (DMX) | Vrátí vzdálenost vstupního případu od zadaného clusteru nebo pokud není zadaný žádný cluster, vzdálenost vstupního případu od nejpravděpodobnějšího clusteru. Vrátí pravděpodobnost, že vstupní případ patří do zadaného clusteru. |
| ClusterProbability (DMX) | Vrátí pravděpodobnost, že vstupní případ patří do zadaného clusteru. |
| IsDescendant (DMX) | Určuje, zda je jeden uzel podřízeným jiným uzlem v modelu. |
| IsInNode (DMX) | Určuje, zda zadaný uzel obsahuje aktuální případ. |
| PredictAdjustedProbability (DMX) | Vrátí váženou pravděpodobnost. |
| PredictAssociation (DMX) | Predikuje členství v asociativní datové sadě. |
| PredictCaseLikelihood (DMX) | Vrátí pravděpodobnost, že se vstupní případ vejde do existujícího modelu. |
| PredictHistogram (DMX) | Vrátí tabulku hodnot souvisejících s aktuální predikovanou hodnotou. |
| PredictNodeId (DMX) | Vrátí Node_ID pro každý případ. |
| PredictProbability (DMX) | Vrátí pravděpodobnost predikované hodnoty. |
| PredictStdev (DMX) | Vrátí předpokládanou směrodatnou odchylku zadaného sloupce. |
| PredictSupport (DMX) | Vrátí hodnotu podpory pro zadaný stav. |
| PredictVariance (DMX) | Vrátí odchylku zadaného sloupce. |
Syntaxi konkrétních funkcí najdete v Odkazu na funkce Rozšíření dolování dat (DMX).
Viz také
Dotazy na dolování dat
Technické informace o algoritmech clusteringu Microsoftu
Algoritmus clusteringu Microsoftu