Příklady dotazů modelu přidružení

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 pravidlech a sadách položek zjištěných během analýzy, nebo můžete vytvořit prediktivní dotaz, který pomocí přidružení zjištěných v datech vytváří předpovědi. U modelu přidružení jsou předpovědi obvykle založené na pravidlech a lze je použít k vytváření doporučení, zatímco dotazy na obsah obvykle prozkoumávají vztah mezi sadami položek. Můžete také načíst metadata o modelu.

Tato část vysvětluje, jak vytvořit tyto druhy dotazů pro modely založené na algoritmu pravidel přidružení Microsoftu.

Dotazy na obsah

Získání dat metadat modelu pomocí DMX

Získání metadat ze sady řádků schématu

Načtení původních parametrů pro model

Načtení seznamu itemsetů a produktů

Vrácení prvních 10 sad položek

Prediktivní dotazy

Predikce přidružených položek

Určení spolehlivosti pro související sady položek

Vyhledání informací o modelu

Všechny modely dolování zpřístupňují obsah, který algoritmus naučil, podle standardizovaného schématu, které se nazývá sada řádků schématu modelu dolování. Dotazy na sadu řádků schématu modelu dolování můžete vytvářet buď pomocí příkazů DMX (Data Mining Extensions), nebo pomocí uložených procedur služby SQL Server Analysis Services. V SQL Serveru 2017 můžete také dotazovat sady řádků schématu přímo jako systémové tabulky pomocí syntaxe podobné SQL.

Ukázkový dotaz 1: Získání metadat modelu pomocí DMX

Následující dotaz vrátí základní metadata modelu přidružení, Associationnapříklad 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 Association.CONTENT  
WHERE NODE_TYPE = 1  

Poznámka:

Název sloupce, CHILDREN_CARDINALITY, musíte uzavřít do závorek, abyste ho odlišili od rezervovaného klíčového slova MDX stejného názvu.

Příklady výsledků:

Row Metadatové informace
Katalog modelů Test přidružení
MODEL_NAME Sdružení
NODE_CAPTION Model pravidel přidružení
NODE_SUPPORT 14879
CHILDREN_CARDINALITY 942
Popis_uzlu Model asociativních pravidel; ITEMSET_COUNT=679; RULE_COUNT=263; MIN_SUPPORT=14; MAX_SUPPORT=4334; MIN_ITEMSET_SIZE=0; MAX_ITEMSET_SIZE=3; MIN_PROBABILITY=0.400390625; MAX_PROBABILITY=1; MIN_LIFT=0.14309369632511; MAX_LIFT=1.95758227647523

Definice toho, co tyto sloupce znamenají v modelu přidružení, naleznete v tématu Obsah modelu dolování pro modely přidružení (Analysis Services - Data Mining).

Zpět na začátek

Ukázkový dotaz 2: Získání dalších metadat ze sady řádků schématu

Dotazováním sady řádků schématu dolování dat najdete stejné informace, které se vrátí v dotazu na obsah DMX. Sada řádků schématu však poskytuje několik dalších sloupců, jako je datum posledního zpracování modelu, struktura dolování a název sloupce použitého jako předvídatelný atribut.

SELECT MODEL_CATALOG, MODEL_NAME, SERVICE_NAME, PREDICTION_ENTITY,   
MINING_STRUCTURE, LAST_PROCESSED  
FROM $system.DMSCHEMA_MINING_MODELS  
WHERE MODEL_NAME = 'Association'  

Příklady výsledků:

Row Metadatové informace
Katalog modelů Adventure Works DW Multidimenzionální 2012
MODEL_NAME Sdružení
SERVICE_NAME Model pravidel přidružení
PREDICTION_ENTITY Položky řádků v Assoc Seq
TĚŽEBNÍ_STRUKTURA Sdružení
LAST_PROCESSED 29.9.2007 10:21:24

Zpět na začátek

Ukázkový dotaz 3: Načtení původních parametrů pro model

Následující dotaz vrátí jeden sloupec, který obsahuje podrobnosti o nastavení parametrů, která byla použita při vytvoření modelu.

SELECT MINING_PARAMETERS   
from $system.DMSCHEMA_MINING_MODELS  
WHERE MODEL_NAME = 'Association'  

Příklady výsledků:

MAXIMUM_ITEMSET_COUNT=200000,MAXIMUM_ITEMSET_SIZE=3,MAXIMUM_SUPPORT=1,MINIMUM_SUPPORT=9,40923449156529E-04,MINIMUM_IMPORTANCE=-99999999999,MINIMUM_ITEMSET_SIZE=0,MINIMUM_PROBABILITY=0,4

Zpět na začátek

Vyhledání informací o pravidlech a sadách položek

Existují dvě běžná použití modelu přidružení: zjišťování informací o častých sadách položek a extrakce podrobností o konkrétních pravidlech a sadách položek. Můžete například chtít extrahovat seznam pravidel, která byla vyhodnocena jako zvlášť zajímavá, nebo vytvořit seznam nejběžnějších sad položek. Tyto informace načtete pomocí dotazu obsahu DMX. Tyto informace můžete také procházet pomocí prohlížeče Microsoft Association Viewer.

Ukázkový dotaz 4: Načítání seznamu sad položek a produktů

Následující dotaz načte všechny sady položek společně s vnořenou tabulkou, která obsahuje seznam produktů zahrnutých v každé sadě položek. Sloupec NODE_NAME obsahuje jedinečné ID sady položek v modelu, zatímco NODE_CAPTION obsahuje textový popis položek. V tomto příkladu je vnořená tabulka zploštěná tak, aby sada položek, která obsahuje dva produkty, vygenerovala ve výsledcích dva řádky. Pokud klient podporuje hierarchická data, můžete vynechat klíčové slovo FLATTENED.

SELECT FLATTENED NODE_NAME, NODE_CAPTION,  
NODE_PROBABILITY, NODE_SUPPORT,  
(SELECT ATTRIBUTE_NAME FROM NODE_DISTRIBUTION) as PurchasedProducts  
FROM Association.CONTENT  
WHERE NODE_TYPE = 7  

Příklady výsledků:

Row Metadatové informace
NODE_NAME 37
NODE_CAPTION Sport-100 = Existující
NODE_PROBABILITY 0.291283016331743
NODE_SUPPORT 4334
ZAKOUPENÉ PRODUKTY. ATTRIBUTE_NAME v Asociovaných Sekvenčních Řádkových Položek (Sport-100)

Zpět na začátek

Ukázkový dotaz 5: Vrácení prvních 10 sad položek

Tento příklad ukazuje, jak používat některé funkce seskupení a řazení, které dmX poskytuje ve výchozím nastavení. Dotaz vrátí prvních 10 sad položek při řazení podle podpory jednotlivých uzlů. Všimněte si, že nemusíte explicitně seskupovat výsledky, stejně jako v Transact-SQL; V každém dotazu však můžete použít pouze jednu agregační funkci.

SELECT TOP 10 (NODE_SUPPORT),NODE_NAME, NODE_CAPTION  
FROM Association.CONTENT  
WHERE NODE_TYPE = 7  

Příklady výsledků:

Row Metadatové informace
NODE_SUPPORT 4334
NODE_NAME 37
NODE_CAPTION Sport-100 = Existující

Zpět na začátek

Vytváření předpovědí pomocí modelu

Model pravidel přidružení se často používá ke generování doporučení, která jsou založená na korelacích zjištěných v sadách položek. Proto při vytváření prediktivního dotazu založeného na modelu pravidel přidružení obvykle používáte pravidla v modelu k odhadování na základě nových dat. PredictAssociation (DMX) je funkce, která vrací doporučení, a má několik argumentů, které můžete použít k přizpůsobení výsledků dotazu.

Dalším příkladem, kdy mohou být dotazy na asociační model užitečné, je získání důvěryhodnosti pro různá pravidla a položkové množiny, abyste mohli porovnat efektivitu různých strategií křížového prodeje. Následující příklady ukazují, jak tyto dotazy vytvořit.

Ukázkový dotaz 6: Předpověď přidružených položek

V tomto příkladu se používá model přidružení vytvořený v kurzu pro dolování průběžných dat (Analysis Services – Dolování dat). Ukazuje, jak vytvořit prediktivní dotaz, který vám řekne, jaké produkty doporučí zákazníkovi, který si koupil konkrétní produkt. Tento typ dotazu, kde poskytujete hodnoty modelu v SELECT...UNION příkazu, se nazývá singleton dotaz. Vzhledem k tomu, že předvídatelný sloupec modelu, který odpovídá novým hodnotám, je vnořená tabulka, musíte použít jednu klauzuli SELECT k namapování nové hodnoty na sloupec [Model]vnořené tabulky a další klauzule SELECT pro mapování vnořeného sloupce tabulky na sloupec na úrovni případu. [v Assoc Seq Line Items] Přidání klíčového slova INCLUDE-STATISTICS do dotazu vám umožní zobrazit pravděpodobnost a podporu doporučení.

SELECT PredictAssociation([Association].[vAssocSeqLineItems],INCLUDE_STATISTICS, 3)  
FROM [Association]  
NATURAL PREDICTION JOIN   
(SELECT  
(SELECT 'Classic Vest' as [Model])  
AS [v Assoc Seq Line Items])  
AS t  

Příklady výsledků:

Model $SUPPORT $PROBABILITY $ADJUSTEDPROBABILITY
Sport-100 4334 0.291283 0.252696
Láhev vody 2866 0.19262 0.175205
Opravná sada 2113 0.142012 0.132389

Zpět na začátek

Ukázkový dotaz 7: Určení spolehlivosti pro související sady položek

Zatímco pravidla jsou užitečná pro generování doporučení, sady položek jsou zajímavější pro hlubší analýzu vzorů v sadě dat. Pokud jste například nebyli spokojení s doporučením vráceným předchozím ukázkovým dotazem, mohli byste prozkoumat další sady položek obsahující produkt A, abyste získali lepší představu o tom, jestli je produkt A příslušenstvím, které si lidé obvykle kupují se všemi druhy produktů, nebo jestli A silně koreluje s nákupy konkrétních produktů. Nejjednodušší způsob, jak tyto relace prozkoumat, je filtrování sad položek v prohlížeči Microsoft Association Viewer; Stejné informace však můžete načíst pomocí dotazu.

Následující ukázkový dotaz vrátí všechny sady položek, které obsahují položku Láhev vody, včetně jedné položky Láhev vody.

SELECT TOP 100 FROM   
(  
SELECT FLATTENED NODE_CAPTION, NODE_SUPPORT,   
(SELECT ATTRIBUTE_NAME from NODE_DISTRIBUTION  
WHERE ATTRIBUTE_NAME = 'v Assoc Seq Line Items(Water Bottle)') as D  
FROM Association.CONTENT  
WHERE NODE_TYPE = 7  
) AS Items  
WHERE [D.ATTRIBUTE_NAME] <> NULL  
ORDER BY NODE_SUPPORT DESC  

Příklady výsledků:

NODE_CAPTION NODE_SUPPORT D.ATTRIBUTE_NAME
Láhev vody = existující 2866 v Assoc Seq Line Items(láhev vody)
Mountain Bottle Cage = Stávající, Water Bottle = Stávající 1136 v Assoc Seq Line Items (láhev vody)
Silniční držák na láhev = Existující, Láhev na vodu = Existující 1068 v Assoc Seq Line Items(láhev vody)
Láhev na vodu = Existující, Sport-100 = Existující 734 v Assoc Seq Line Items(láhev vody)

Tento dotaz vrátí jak řádky z vnořené tabulky, které odpovídají kritériím, tak všechny řádky z hlavní tabulky. Proto je nutné přidat podmínku, která eliminuje řádky tabulky případu, které mají hodnotu null pro název cílového atributu.

Zpět na začátek

Seznam funkcí

Všechny algoritmy Microsoftu podporují společnou sadu funkcí. Algoritmus přidružení Microsoftu však podporuje další funkce uvedené v následující tabulce.

Prediktivní funkce Usage
IsDescendant (DMX) Určuje, zda je jeden uzel podřízený jinému uzlu v grafu neurální sítě.
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ě.
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.
PredictSupport (DMX) Vrátí hodnotu podpory pro zadaný stav.
PredictVariance (DMX) Vrátí odchylku předpovězené hodnoty.

Viz také

Algoritmus přidružení Microsoftu
Technické referenční informace k algoritmu přidružení Microsoftu
Obsah modelu dolování pro modely přidružení (Analysis Services – Dolování dat)