Příklady dotazů modelu sekvenčního clusteringu

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 vytvořit buď dotaz na obsah, který poskytuje podrobnosti o informacích uložených v modelu, nebo můžete vytvořit prediktivní dotaz, který používá vzory v modelu k vytváření předpovědí na základě nových dat, která zadáte. V případě sekvenčního modelu clusteringu obvykle dotazy na obsah poskytují další podrobnosti o nalezených clusterech nebo přechodech v těchto clusterech. Metadata o modelu můžete také načíst pomocí dotazu.

Prediktivní dotazy na sekvenční clusteringový model obvykle obsahují doporučení založená na sekvencích a přechodech, na atributech, které nebyly součástí modelu, nebo na kombinaci sekvenčních a nesekvenčních atributů.

Tato část vysvětluje, jak vytvářet dotazy pro modely založené na algoritmu clusteringu Microsoft Sequence. Obecné informace o vytváření dotazů naleznete v tématu Dotazy dolování dat.

Dotazy na obsah

Použití sady řádků schématu dolování dat k vrácení parametrů modelu

Získání seznamu sekvencí pro stav

Použití systémových uložených procedur

Prediktivní dotazy

Předpověď dalšího stavu nebo stavů

Vyhledání informací o modelu sekvenčního clusteringu

Pokud chcete vytvořit smysluplné dotazy na obsah modelu dolování, musíte pochopit strukturu obsahu modelu a typy uzlů, které ukládají jaký druh informací. Další informace naleznete v tématu Obsah modelu dolování pro sekvenční clustering modely (Analysis Services - Data Mining).

Ukázkový dotaz 1: Použití sady řádků schématu dolování dat k vrácení parametrů modelu

Dotazováním sady řádků schématu dolování dat můžete najít různé druhy informací o modelu, včetně základních metadat, data a času, kdy byl model vytvořen a naposledy zpracován, název dolování struktury, na které je model založen, a sloupec použitý jako předvídatelný atribut.

Následující dotaz vrátí parametry, které byly použity k sestavení a trénování modelu, [Sequence Clustering]. Tento model můžete vytvořit v lekci 5 základního kurzu dolování dat.

SELECT MINING_PARAMETERS   
from $system.DMSCHEMA_MINING_MODELS  
WHERE MODEL_NAME = 'Sequence Clustering'  

Příklady výsledků:

MINING_PARAMETERS
CLUSTER_COUNT=15,MINIMUM_SUPPORT=10,MAXIMUM_STATES=100,MAXIMUM_SEQUENCE_STATES=64

Všimněte si, že tento model byl vytvořen pomocí výchozí hodnoty 10 pro CLUSTER_COUNT. Když pro CLUSTER_COUNT zadáte nenulový počet clusterů, algoritmus toto číslo považuje za nápovědu pro přibližný počet shluků, které se mají najít. V procesu analýzy však algoritmus může najít více nebo méně clusterů. V tomto případě algoritmus zjistil, že 15 clusterů nejlépe vyhovuje trénovacím datům. Proto seznam hodnot parametrů dokončeného modelu hlásí počet clusterů určených algoritmem, nikoli hodnotu předanou při vytváření modelu.

Jak se toto chování liší od toho, aby algoritmus určil nejlepší počet clusterů? Jako experiment můžete vytvořit jiný model clusteringu, který používá stejná data, ale nastavit CLUSTER_COUNT na hodnotu 0. Když to uděláte, algoritmus zjistí 32 clusterů. Proto pomocí výchozí hodnoty 10 pro CLUSTER_COUNT omezíte počet výsledků.

Hodnota 10 se používá ve výchozím nastavení, protože snížení počtu clusterů usnadňuje většině uživatelů procházení a pochopení seskupení v datech. Každý model a sada dat se ale liší. Možná budete chtít experimentovat s různými čísly clusterů a zjistit, která hodnota parametru přináší nejpřesnější model.

Ukázkový dotaz 2: Získání seznamu sekvencí pro stav

Obsah modelu dolování ukládá sekvence nalezené v trénovacích datech jako první stav ve spojení se seznamem všech souvisejících druhých stavů. První stav se používá jako popisek pro sekvenci a související druhé stavy se nazývají přechody.

Následující dotaz například vrátí úplný seznam prvních stavů v modelu před seskupením sekvencí do clusterů. Tento seznam můžete získat vrácením seznamu sekvencí (NODE_TYPE = 13), které mají kořenový uzel modelu jako nadřazený (PARENT_UNIQUE_NAME = 0). Klíčové slovo FLATTENED usnadňuje čtení výsledků.

Poznámka:

Název sloupců, PARENT_UNIQUE_NAME, Podpora a Pravděpodobnost, musí být uzavřen v hranatých závorkách, aby se odlišila od vyhrazených klíčových slov stejného názvu.

SELECT FLATTENED NODE_UNIQUE_NAME,  
(SELECT ATTRIBUTE_VALUE AS [Product 1],  
[Support] AS [Sequence Support],   
[Probability] AS [Sequence Probability]  
FROM NODE_DISTRIBUTION) AS t  
FROM [Sequence Clustering].CONTENT  
WHERE NODE_TYPE = 13  
AND [PARENT_UNIQUE_NAME] = 0  

Částečné výsledky:

NODE_UNIQUE_NAME Produkt 1 Podpora sekvence Sekvenční pravděpodobnost
1081327 Nepřítomný 0 #######
1081327 All-Purpose Stojan na kolo 17 0.00111
1081327 Mytí kol 64 0.00418
1081327 (řádky 4–36 vynechány)
1081327 Dámské horské šortky 506 0.03307

Seznam sekvencí v modelu je vždy seřazen abecedně ve vzestupném pořadí. Řazení sekvencí je důležité, protože související přechody najdete tak, že se podíváte na číslo pořadí sekvence. Chybějící hodnota je vždy přechod 0.

Například v předchozích výsledcích je produkt "Dámské horské šortky" pořadové číslo 37 v modelu. Tyto informace můžete použít k zobrazení všech produktů, které byly zakoupeny po "Dámské horské šortky".

Nejprve odkazujete na hodnotu vrácenou pro NODE_UNIQUE_NAME v předchozím dotazu, abyste získali ID uzlu, který obsahuje všechny sekvence modelu. Tuto hodnotu předáte dotazu jako ID nadřazeného uzlu, abyste získali pouze přechody zahrnuté v tomto uzlu, které obsahují seznam alekvencí modelu. Pokud byste ale chtěli zobrazit seznam přechodů pro konkrétní cluster, mohli byste předat ID uzlu clusteru a zobrazit pouze sekvence přidružené k ho clusteru.

SELECT NODE_UNIQUE_NAME  
FROM [Sequence Clustering].CONTENT  
WHERE NODE_DESCRIPTION = 'Transition row for sequence state 37'  
AND [PARENT_UNIQUE_NAME] = '1081327'  

Příklady výsledků:

NODE_UNIQUE_NAME
1081365

Uzel reprezentovaný tímto ID obsahuje seznam sekvencí, které následují za produktem Women's Mountain Shorts spolu s hodnotami podpory a pravděpodobnosti.

SELECT FLATTENED  
(SELECT ATTRIBUTE_VALUE AS Product2,  
[Support] AS [P2 Support],  
[Probability] AS [P2 Probability]  
FROM NODE_DISTRIBUTION) AS t  
FROM [Sequence Clustering].CONTENT  
WHERE NODE_UNIQUE_NAME = '1081365'  

Příklady výsledků:

t.Product2 t.P2 Podpora t.P2 Pravděpodobnost
Nepřítomný 230.7419 0.456012
Classic Vest 8.16129 0.016129
Cyklistická čepice 60.83871 0.120235
rukavice Half-Finger 30.41935 0.060117
Long-Sleeve Logo Jersey 86.80645 0.171554
Závodní ponožky 28.93548 0.057185
Short-Sleeve Classic Jersey 60.09677 0.118768

Všimněte si, že podpora různých sekvencí souvisejících s women's Mountain Shorts je v modelu 506. Hodnoty podpory pro přechody také sčítají až 506. Čísla ale nejsou celá čísla, což se zdá trochu liché, pokud očekáváte, že podpora jednoduše představuje počet případů, které obsahují každý přechod. Vzhledem k tomu, že metoda pro vytváření clusterů počítá částečné členství, musí být pravděpodobnost jakéhokoli přechodu v clusteru vážená pravděpodobností, že do tohoto konkrétního clusteru patří.

Pokud jsou například čtyři shluky, může mít určitá posloupnost 40% šanci, že patří ke clusteru 1, 30% šance, že patří ke clusteru 2, 20% šanci, že patří ke clusteru 3 a 10% šanci, že patří ke clusteru 4. Jakmile algoritmus určí cluster, do kterého bude přechod pravděpodobně patřit, váží pravděpodobnosti v clusteru podle předchozí pravděpodobnosti clusteru.

Ukázkový dotaz 3: Použití systémových uložených procedur

Z těchto ukázek dotazů můžete vidět, že informace uložené v modelu jsou složité a že možná budete muset vytvořit více dotazů, abyste získali potřebné informace. Prohlížeč clusteringu Microsoft Sequence ale poskytuje výkonnou sadu nástrojů pro grafické procházení informací obsažených v modelu sekvencování clusteringu a můžete také použít prohlížeč k dotazování a procházení podrobností modelu.

Ve většině případů se informace, které jsou prezentovány v prohlížeči clusteringu Microsoft Sequence, vytvoří pomocí systémových uložených procedur služby Analysis Services k dotazování modelu. Můžete napsat dotazy rozšíření DMX (Data Mining Extensions) na obsah modelu, aby se načetly stejné informace, ale uložené procedury služby Analysis Services poskytují pohodlný zástupce při zkoumání nebo testování modelů.

Poznámka:

Systémové uložené procedury se používají pro interní zpracování serverem a klienty, které společnost Microsoft poskytuje pro interakci se serverem analysis Services. Společnost Microsoft si proto vyhrazuje právo je kdykoli změnit. I když jsou zde popsány pro vaše pohodlí, nepodporujeme jejich použití v produkčním prostředí. Pokud chcete zajistit stabilitu a kompatibilitu v produkčním prostředí, měli byste vždy psát vlastní dotazy pomocí DMX.

Tato část obsahuje několik ukázek použití systémových uložených procedur k vytváření dotazů na model sekvenčního clusteringu:

Profily clusteru a ukázkové případy

Na kartě Profily clusteru se zobrazí seznam clusterů v modelu, velikost jednotlivých clusterů a histogram, který označuje stavy zahrnuté v clusteru. Existují dvě systémové uložené procedury, které můžete použít v dotazech k načtení podobných informací:

  • GetClusterProfile vrátí charakteristiky clusteru se všemi informacemi, které jsou nalezeny v tabulce NODE_DISTRIBUTION clusteru.

  • GetNodeGraph vrátí uzly a hrany, které lze použít k vytvoření matematické reprezentace grafů clusterů, které odpovídají tomu, co vidíte na první kartě zobrazení Sequence Clustering. Uzly jsou clustery a hrany představují váhy nebo sílu.

Následující příklad ukazuje, jak použít systém uloženou proceduru , GetClusterProfilesvrátit všechny clustery v modelu s příslušnými profily. Tato uložená procedura spustí řadu příkazů DMX, které vrátí úplnou sadu profilů v modelu. Chcete-li však použít tuto uloženou proceduru, musíte znát adresu modelu.

CALL System.Microsoft.AnalysisServices.System.DataMining.Clustering.GetClusterProfiles('Sequence Clustering', 2147483647, 0)

Následující příklad ukazuje, jak načíst profil pro konkrétní cluster, Cluster 12 pomocí systémové uložené procedury GetNodeGrapha zadat ID clusteru, což je obvykle stejné jako číslo v názvu clusteru.

CALL System.Microsoft.AnalysisServices.System.DataMining.Clustering.GetNodeGraph('Sequence Clustering','12',0)  

Pokud vynecháte ID clusteru, jak je znázorněno v následujícím dotazu, GetNodeGraph vrátí seřazený a zploštěný seznam všech profilů clusteru:

CALL System.Microsoft.AnalysisServices.System.DataMining.Clustering.GetNodeGraph('Sequence Clustering','',0)  

Na kartě Profil clusteru se také zobrazí histogram ukázkových případů modelu. Tyto ukázkové případy představují ideální případy modelu. Tyto případy nejsou uloženy v modelu stejným způsobem jako trénovací data; K načtení ukázkových případů pro model je nutné použít speciální syntaxi.

SELECT * FROM [Sequence Clustering].SAMPLE_CASES WHERE IsInNode('12')  

Další informace naleznete v tématu SELECT FROM <model>. SAMPLE_CASES (DMX)

Charakteristiky clusteru a diskriminace clusterů

Karta Charakteristiky clusteru shrnuje hlavní atributy každého clusteru seřazené podle pravděpodobnosti. Můžete zjistit, kolik případů patří do clusteru a jak je rozdělení případů v clusteru podobné: Každá charakteristika má určitou podporu. Pokud chcete zobrazit charakteristiky konkrétního clusteru, musíte znát ID clusteru.

Následující příklady používají systém uloženou proceduru GetClusterCharacteristics, vrátit všechny vlastnosti clusteru 12, které mají skóre pravděpodobnosti nad zadanou prahovou hodnotou 0,0005.

CALL System.Microsoft.AnalysisServices.System.DataMining.Clustering.GetClusterCharacteristics('Sequence Clustering','12',0.0005)  

Pokud chcete vrátit charakteristiky všech clusterů, můžete ponechat ID clusteru prázdné.

CALL System.Microsoft.AnalysisServices.System.DataMining.Clustering.GetClusterCharacteristics('Sequence Clustering','',0.0005)  

Následující příklad volá systém uloženou proceduru GetClusterDiscrimination k porovnání charakteristik clusteru 1 a clusteru 12.

CALL System.Microsoft.AnalysisServices.System.DataMining.Clustering.GetClusterDiscrimination('Sequence Clustering','1','12',0.0005,true)  

Pokud chcete do DMX napsat vlastní dotaz, abyste mohli porovnat dva clustery nebo porovnat cluster s jeho doplňkem, musíte nejprve načíst jednu sadu charakteristik a potom načíst charakteristiky pro konkrétní cluster, který vás zajímá, a porovnat tyto dvě sady. Tento scénář je složitější a obvykle vyžaduje zpracování klienta.

Stavy a přechody

Karta Přechody stavu clusteringu Microsoft Sequence provádí složité dotazy na back-endu a načítá a porovnává statistiky pro různé clustery. K reprodukci těchto výsledků je potřeba složitější dotaz a zpracování některých klientů.

Dotazy DMX popsané v příkladu 2 části Dotazy na obsah ale můžete použít k načtení pravděpodobností a stavů pro sekvence nebo pro jednotlivé přechody.

Použití modelu k vytváření předpovědí

Prediktivní dotazy na sekvenční clusteringový model můžou používat řadu prediktivních funkcí, které se používají s jinými modely clusteringu. Kromě toho můžete použít speciální predikční funkci, PredictSequence (DMX) k vytváření doporučení nebo k předpovídání dalších stavů.

Ukázkový dotaz 4: Předpověď dalšího stavu nebo stavů

Pomocí funkce PredictSequence (DMX) můžete předpovědět další nejpravděpodobnější stav vzhledem k hodnotě. Můžete také předpovědět několik dalších stavů: Můžete například vrátit seznam nejlepších tří produktů, které si zákazník pravděpodobně koupí, a prezentovat seznam doporučení.

Následující ukázkový dotaz je jednotonový prediktivní dotaz, který vrátí prvních pět předpovědí společně s jejich pravděpodobností. Vzhledem k tomu, že model obsahuje vnořenou tabulku, musíte při předpovědích použít vnořenou tabulku jako [v Assoc Seq Line Items]odkaz na sloupec. Při zadávání hodnot jako vstupu je také nutné spojit tabulku velkých a vnořených tabulek, jak je znázorněno vnořenými příkazy SELECT.

SELECT FLATTENED PredictSequence([v Assoc Seq Line Items], 7)  
FROM [Sequence Clustering]  
NATURAL PREDICTION JOIN  
(SELECT  (SELECT 1 as [Line Number],  
   'All-Purpose Bike Stand' as [Model]) AS [v Assoc Seq Line Items])   
AS t  

Příklady výsledků:

Expression.$Sequence Expression.Line Number Expression.Model
1 Cyklistická čepice
2 Cyklistická čepice
3 Sport-100
4 Long-Sleeve logo Jersey
5 rukavice Half-Finger
6 All-Purpose Stojan na kolo
7 All-Purpose Stojan na kolo

Ve výsledcích jsou tři sloupce, i když můžete očekávat jenom jeden sloupec, protože dotaz vždy vrátí sloupec pro tabulku velkých a malých písmen. Zde jsou výsledky zploštěné; v opačném případě by dotaz vrátil jeden sloupec, který obsahuje dva vnořené sloupce tabulky.

Sloupec $sequence je sloupec vrácený ve výchozím nastavení PredictSequence funkcí k seřazení výsledků předpovědi. Sloupec , [Line Number]je nutné, aby se shodovaly s klíči sekvence v modelu, ale klíče nejsou výstupem.

Zajímavé je, že nejlepší predikované sekvence po All-Purpose Bike Stand jsou cyklistická čepice a cyklistická čepice. Nejedná se o chybu. V závislosti na tom, jak jsou data prezentována zákazníkovi a jak se seskupují při trénování modelu, je velmi možné mít sekvence tohoto typu. Zákazník si například může koupit cyklistickou čepici (červenou) a pak jinou cyklickou čepici (modrou) nebo koupit dva po sobě, pokud neexistuje způsob, jak zadat množství.

Hodnoty v řádcích 6 a 7 jsou zástupné symboly. Když se dostanete na konec řetězce možných přechodů místo ukončení výsledků předpovědi, přidá se do výsledků hodnota, která byla předána jako vstup. Pokud byste například zvýšili počet předpovědí na 20, hodnoty řádků 6–20 budou stejné, All-Purpose Stojan kola.

Seznam funkcí

Všechny algoritmy Microsoftu podporují společnou sadu funkcí. Algoritmus clusteringu Microsoft Sequence však podporuje další funkce uvedené v následující tabulce.

Prediktivní funkce Usage
Cluster (DMX) Vrátí cluster, který s největší pravděpodobností bude obsahovat 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.

Tuto funkci lze použít s jakýmkoli druhem modelu clusteringu (EM, K-Means atd.), ale výsledky se liší v závislosti na algoritmu.
ClusterProbability (DMX) Vrátí pravděpodobnost, že vstupní případ patří do zadaného clusteru.
IsInNode (DMX) Určuje, zda zadaný uzel obsahuje aktuální případ.
PredictAdjustedProbability (DMX) Vrátí upravenou pravděpodobnost zadaného stavu.
PredictAssociation (DMX) Predikuje asociativní členství.
PredictCaseLikelihood (DMX) Vrátí pravděpodobnost, že se vstupní případ vejde do existujícího modelu.
PredictHistogram (DMX) Vrátí tabulku, která představuje histogram pro predikci daného sloupce.
PredictNodeId (DMX) Vrátí Node_ID uzlu, do kterého je případ klasifikovaný.
PredictProbability (DMX) Vrátí pravděpodobnost zadaného stavu.
PredictSequence (DMX) Předpovídá budoucí hodnoty sekvence pro zadanou sadu sekvenčních dat.
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.

Seznam funkcí, které jsou společné pro všechny algoritmy Microsoftu, najdete v tématu Obecné prediktivní funkce (DMX). Syntaxi konkrétních funkcí najdete v tématu Odkazy na funkce Rozšíření dolování dat (DMX).

Viz také

Dotazy na dolování dat
Technické informace o algoritmu clusteringu Microsoft Sequence
Algoritmus clusteringu Microsoft Sequence
Obsah modelu dolování pro sekvenční clusteringové modely (Analysis Services – Dolování dat)