Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för:
SQL Server 2019 och tidigare Analysis Services
Azure Analysis Services
Fabric/Power BI Premium
Viktigt!
Datautvinningen upphörde i SQL Server 2017 Analysis Services och upphörde nu i SQL Server 2022 Analysis Services. Dokumentationen uppdateras inte för inaktuella och utgångna funktioner. Mer information finns i Analysis Services bakåtkompatibilitet.
När du skapar en fråga mot en datautvinningsmodell kan du skapa antingen en innehållsfråga som innehåller information om den information som lagras i modellen, eller så kan du skapa en förutsägelsefråga som använder mönstren i modellen för att göra förutsägelser baserat på nya data som du anger. För en sekvensklustermodell ger innehållsfrågor vanligtvis ytterligare information om de kluster som hittades eller övergångarna i dessa kluster. Du kan också hämta metadata om modellen med hjälp av en fråga.
Förutsägelsefrågor på en sekvensklustermodell gör vanligtvis rekommendationer baserat antingen på sekvenser och övergångar, på icke-sekvensattribut som ingick i modellen eller på en kombination av sekvens- och icke-sekvensattribut.
I det här avsnittet beskrivs hur du skapar frågor för modeller som baseras på Microsoft Sequence Clustering-algoritmen. Allmän information om hur du skapar frågor finns i Data Mining-frågor.
Innehållsfrågor
Använda datautvinningsschemaraduppsättningen för att returnera modellparametrar
Hämta en lista över sekvenser för ett tillstånd
Använda system lagrade procedurer
Förutsägelsefrågor
Förutsäga nästa tillstånd eller tillstånd
Hitta information om sekvensklustermodellen
Om du vill skapa meningsfulla frågor om innehållet i en gruvmodell måste du förstå strukturen för modellinnehållet och vilka nodtyper som lagrar vilken typ av information. Mer information finns i Mining Model Content for Sequence Clustering Models (Analysis Services – Data Mining).
Exempelfråga 1: Använda datautvinningsschemaraduppsättningen för att returnera modellparametrar
Genom att fråga datautvinningsschemaraduppsättningen kan du hitta olika typer av information om modellen, inklusive grundläggande metadata, datum och tid då modellen skapades och senast bearbetades, namnet på den gruvstruktur som modellen baseras på och kolumnen som används som förutsägbart attribut.
Följande fråga returnerar de parametrar som användes för att skapa och träna modellen, [Sequence Clustering]. Du kan skapa den här modellen i lektion 5 i självstudiekursen om grundläggande datautvinning.
SELECT MINING_PARAMETERS
from $system.DMSCHEMA_MINING_MODELS
WHERE MODEL_NAME = 'Sequence Clustering'
Exempelresultat:
| MINING_PARAMETERS |
|---|
| CLUSTER_COUNT=15,MINIMUM_SUPPORT=10,MAXIMUM_STATES=100,MAXIMUM_SEQUENCE_STATES=64 |
Observera att den här modellen skapades med standardvärdet 10 för CLUSTER_COUNT. När du anger ett icke-noll antal kluster för CLUSTER_COUNT behandlar algoritmen det här talet som ett tips för det ungefärliga antalet kluster som ska hittas. I analysprocessen kan algoritmen dock hitta fler eller färre kluster. I det här fallet fann algoritmen att 15 kluster bäst passar träningsdata. Därför rapporterar listan med parametervärden för den slutförda modellen antalet kluster som bestäms av algoritmen, inte det värde som skickades när modellen skapades.
Hur skiljer sig det här beteendet från att låta algoritmen bestämma det bästa antalet kluster? Som ett experiment kan du skapa en annan klustringsmodell som använder samma data, men ange CLUSTER_COUNT till 0. När du gör detta identifierar algoritmen 32 kluster. Genom att använda standardvärdet 10 för CLUSTER_COUNT begränsar du därför antalet resultat.
Värdet 10 används som standard eftersom en minskning av antalet kluster gör det enklare för de flesta att bläddra bland och förstå grupper i data. Varje modell och uppsättning data skiljer sig dock åt. Du kanske vill experimentera med olika antal kluster för att se vilket parametervärde som ger den mest exakta modellen.
Exempelfråga 2: Hämta en lista över sekvenser för ett tillstånd
Innehållet i gruvmodellen lagrar sekvenserna som finns i träningsdata som ett första tillstånd tillsammans med en lista över alla relaterade andra tillstånd. Det första tillståndet används som etikett för sekvensen och de relaterade andra tillstånden kallas övergångar.
Följande fråga returnerar till exempel den fullständiga listan över de första tillstånden i modellen innan sekvenserna grupperas i kluster. Du kan hämta den här listan genom att returnera listan över sekvenser (NODE_TYPE = 13) som har modellrotnoden som överordnad (PARENT_UNIQUE_NAME = 0). Nyckelordet FLATED gör resultatet lättare att läsa.
Anmärkning
Namnet på kolumnerna, PARENT_UNIQUE_NAME, support och sannolikhet måste omges av hakparenteser för att skilja dem från de reserverade nyckelorden med samma namn.
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
Partiella resultat:
| NOD_UNIKT_NAMN | Produkt 1 | Sekvensstöd | Sekvensens sannolikhet |
|---|---|---|---|
| 1081327 | Försvunnen | 0 | ####### |
| 1081327 | All-Purpose cykelställ | 17 | 0.00111 |
| 1081327 | Cykeltvätt | 64 | 0.00418 |
| 1081327 | (raderna 4–36 utelämnas) | ||
| 1081327 | Shorts för damberg | 506 | 0.03307 |
Listan över sekvenser i modellen sorteras alltid alfabetiskt i stigande ordning. Ordningen på sekvenserna är viktig eftersom du kan hitta relaterade övergångar genom att titta på sekvensens ordningsnummer. Värdet Saknas är alltid övergång 0.
I föregående resultat är till exempel produkten "Women's Mountain Shorts" sekvensnumret 37 i modellen. Du kan använda den informationen för att visa alla produkter som någonsin köpts efter "Women's Mountain Shorts".
För att göra detta refererar du först till värdet som returnerades för NODE_UNIQUE_NAME i föregående fråga för att hämta ID:t för noden som innehåller alla sekvenser för modellen. Du skickar det här värdet till frågan som ID för den överordnade noden för att endast hämta de övergångar som ingår i den här noden, som råkar innehålla en lista över al-sekvenser för modellen. Men om du vill se listan över övergångar för ett specifikt kluster kan du skicka in ID:t för klusternoden och bara se de sekvenser som är associerade med klustret.
SELECT NODE_UNIQUE_NAME
FROM [Sequence Clustering].CONTENT
WHERE NODE_DESCRIPTION = 'Transition row for sequence state 37'
AND [PARENT_UNIQUE_NAME] = '1081327'
Exempelresultat:
| NOD_UNIKT_NAMN |
|---|
| 1081365 |
Noden som representeras av det här ID:t innehåller en lista över sekvenserna som följer produkten "Women's Mountain Shorts" tillsammans med stöd- och sannolikhetsvärdena.
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'
Exempelresultat:
| t.Product2 | t.P2-support | t.P2 Sannolikhet |
|---|---|---|
| Försvunnen | 230.7419 | 0.456012 |
| Klassisk väst | 8.16129 | 0.016129 |
| Cykelmössa | 60.83871 | 0.120235 |
| Half-Finger handskar | 30.41935 | 0.060117 |
| Long-Sleeve Logo Jersey | 86.80645 | 0.171554 |
| Racingstrumpor | 28.93548 | 0.057185 |
| Short-Sleeve Klassisk Jersey | 60.09677 | 0.118768 |
Observera att stödet för de olika sekvenserna som rör Women's Mountain Shorts är 506 i modellen. Stödvärdena för övergångarna lägger också till upp till 506. Siffrorna är dock inte heltal, vilket verkar lite konstigt om du förväntar dig att stödet bara ska representera ett antal fall som innehåller varje övergång. Men eftersom metoden för att skapa kluster beräknar partiellt medlemskap, måste sannolikheten för en övergång inom ett kluster vägas med dess sannolikhet att tillhöra det specifika klustret.
Om det till exempel finns fyra kluster kan en viss sekvens ha 40% chans att tillhöra kluster 1, 30% chans att tillhöra kluster 2, 20% chans att tillhöra kluster 3 och 10% chans att tillhöra kluster 4. När algoritmen har fastställt det kluster som övergången troligen tillhör vägs sannolikheten i klustret av klustrets tidigare sannolikhet.
Exempelfråga 3: Använda system lagrade procedurer
Du kan se från dessa frågeexempel att informationen som lagras i modellen är komplex och att du kan behöva skapa flera frågor för att få den information du behöver. Visningsprogrammet för Microsoft Sequence Clustering innehåller dock en kraftfull uppsättning verktyg för grafisk surfning av informationen i en sekvensklustermodell, och du kan också använda visningsprogrammet för att fråga och öka detaljnivån i modellen.
I de flesta fall skapas den information som visas i Visningsprogrammet för Microsoft Sequence Clustering med hjälp av Analysis Services systemlagringsprocedurer för att fråga modellen. Du kan skriva DMX-frågor (Data Mining Extensions) mot modellinnehållet för att hämta samma information, men de lagrade procedurerna för Analysis Services-systemet ger en praktisk genväg när du ska utforska eller testa modeller.
Anmärkning
Systemlagrade procedurer används för intern bearbetning av servern och av de klienter som Microsoft tillhandahåller för att interagera med Analysis Services-servern. Därför förbehåller sig Microsoft rätten att ändra dem när som helst. Även om de beskrivs här för din bekvämlighet, stöder vi inte deras användning i en produktionsmiljö. För att säkerställa stabilitet och kompatibilitet i en produktionsmiljö bör du alltid skriva egna frågor med hjälp av DMX.
Det här avsnittet innehåller några exempel på hur du använder systemlagringsprocedurerna för att skapa frågor mot en sekvensklustermodell:
Klusterprofiler och exempelfall
Fliken Klusterprofiler visar en lista över klustren i modellen, storleken på varje kluster och ett histogram som anger de tillstånd som ingår i klustret. Det finns två system lagrade procedurer som du kan använda i frågor för att hämta liknande information:
GetClusterProfilereturnerar klustrets egenskaper med all information som finns i NODE_DISTRIBUTION-tabellen för klustret.GetNodeGraphreturnerar noder och kanter som kan användas för att konstruera en matematisk grafrepresentation av klustren, vilket motsvarar det du ser på den första fliken i sekvensklustringsvyn. Noderna är kluster och kanterna representerar vikter eller styrka.
I följande exempel visas hur du använder den systemlagringsprocedur som används för GetClusterProfilesatt returnera alla kluster i modellen med respektive profil. Den här lagrade proceduren kör en serie DMX-instruktioner som returnerar den fullständiga uppsättningen profiler i modellen. Om du vill använda den här lagrade proceduren måste du dock känna till modellens adress.
CALL System.Microsoft.AnalysisServices.System.DataMining.Clustering.GetClusterProfiles('Sequence Clustering', 2147483647, 0)
I följande exempel visas hur du hämtar profilen för ett specifikt kluster, kluster 12, med hjälp av den system lagrade proceduren GetNodeGraphoch anger kluster-ID: t, vilket vanligtvis är samma som talet i klusternamnet.
CALL System.Microsoft.AnalysisServices.System.DataMining.Clustering.GetNodeGraph('Sequence Clustering','12',0)
Om du utelämnar kluster-ID:t, som du ser i följande fråga, GetNodeGraph returneras en ordnad, utplattad lista över alla klusterprofiler:
CALL System.Microsoft.AnalysisServices.System.DataMining.Clustering.GetNodeGraph('Sequence Clustering','',0)
Fliken Klusterprofil visar också ett histogram över modellexempelfall. Dessa exempelfall representerar de idealiserade fallen för modellen. Dessa fall lagras inte i modellen på samma sätt som träningsdata. du måste använda en särskild syntax för att hämta exempelfallen för modellen.
SELECT * FROM [Sequence Clustering].SAMPLE_CASES WHERE IsInNode('12')
Mer information finns i SELECT FROM model (VÄLJ FRÅN-modell<>). SAMPLE_CASES (DMX).
Klusteregenskaper och klusterdiskriminering
Fliken Klusteregenskaper sammanfattar huvudattributen för varje kluster, rangordnade efter sannolikhet. Du kan ta reda på hur många fall som tillhör ett kluster och hur fördelningen av ärenden är i klustret: Varje egenskap har visst stöd. Om du vill se egenskaperna för ett visst kluster måste du känna till klustrets ID.
I följande exempel används den system lagrade proceduren , GetClusterCharacteristicsför att returnera alla egenskaper för kluster 12 som har en sannolikhetspoäng över det angivna tröskelvärdet 0,0005.
CALL System.Microsoft.AnalysisServices.System.DataMining.Clustering.GetClusterCharacteristics('Sequence Clustering','12',0.0005)
Om du vill returnera egenskaperna för alla kluster kan du lämna kluster-ID:t tomt.
CALL System.Microsoft.AnalysisServices.System.DataMining.Clustering.GetClusterCharacteristics('Sequence Clustering','',0.0005)
I följande exempel anropas den system lagrade proceduren GetClusterDiscrimination för att jämföra egenskaperna för kluster 1 och kluster 12.
CALL System.Microsoft.AnalysisServices.System.DataMining.Clustering.GetClusterDiscrimination('Sequence Clustering','1','12',0.0005,true)
Om du vill skriva en egen fråga i DMX för att jämföra två kluster eller jämföra ett kluster med dess komplement måste du först hämta en uppsättning egenskaper och sedan hämta egenskaperna för det specifika kluster som du är intresserad av och jämföra de två uppsättningarna. Det här scenariot är mer komplicerat och kräver vanligtvis viss klientbearbetning.
Tillstånd och övergångar
Fliken Tillståndsövergångar i Microsoft Sequence Clustering utför komplicerade frågor på serverdelen för att hämta och jämföra statistiken för olika kluster. För att återskapa dessa resultat krävs en mer komplex fråga och viss klientbearbetning.
Du kan dock använda DMX-frågorna som beskrivs i exempel 2 i avsnittet Innehållsfrågor för att hämta sannolikheter och tillstånd för sekvenser eller för enskilda övergångar.
Använda modellen för att göra förutsägelser
Förutsägelsefrågor i en sekvensklustermodell kan använda många av de förutsägelsefunktioner som används med andra klustringsmodeller. Dessutom kan du använda den speciella förutsägelsefunktionen PredictSequence (DMX) för att ge rekommendationer eller förutsäga nästa tillstånd.
Exempelfråga 4: Förutsäga nästa tillstånd eller tillstånd
Du kan använda funktionen PredictSequence (DMX) för att förutsäga nästa mest sannolika tillstånd, givet ett värde. Du kan också förutsäga flera nästa tillstånd: du kan till exempel returnera en lista över de tre främsta produkterna som en kund sannolikt kommer att köpa för att presentera en lista med rekommendationer.
Följande exempelfråga är en singleton-förutsägelsefråga som returnerar de fem främsta förutsägelserna, tillsammans med deras sannolikhet. Eftersom modellen innehåller en kapslad tabell måste du använda den kapslade tabellen, [v Assoc Seq Line Items], som kolumnreferens när du gör förutsägelser. När du anger värden som indata måste du också koppla både skiftlägestabellen och de kapslade tabellkolumnerna, enligt de kapslade SELECT-uttrycken.
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
Exempelresultat:
| Expression.$Sequence | Expression.Line Number | Expression.Model |
|---|---|---|
| 1 | Cykelmössa | |
| 2 | Cykelmössa | |
| 3 | Sport-100 | |
| 4 | Long-Sleeve logo Jersey | |
| 5 | Half-Finger handskar | |
| 6 | All-Purpose cykelställ | |
| 7 | All-Purpose cykelställ |
Det finns tre kolumner i resultatet, även om du kanske bara förväntar dig en kolumn, eftersom frågan alltid returnerar en kolumn för ärendetabellen. Här plattas resultaten ut. Annars returnerar frågan en enda kolumn som innehåller två kapslade tabellkolumner.
Kolumnen $sequence är en kolumn som returneras som standard av PredictSequence funktionen för att ordna förutsägelseresultatet. Kolumnen , [Line Number], krävs för att matcha sekvensnycklarna i modellen, men nycklarna är inte utdata.
Intressant nog är de mest förutsagda sekvenserna efter All-Purpose Bike Stand cykelmössa och cykelmössa. Det här är inget fel. Beroende på hur data presenteras för kunden och hur de grupperas när modellen tränas är det mycket möjligt att ha sekvenser av den här typen. En kund kan till exempel köpa ett cykeltak (rött) och sedan ett annat cykeltak (blått) eller köpa två i rad om det inte fanns något sätt att ange kvantitet.
Värdena i raderna 6 och 7 är platshållare. När du når slutet av kedjan med möjliga övergångar, i stället för att avsluta förutsägelseresultatet, läggs värdet som skickades som indata till resultatet. Om du till exempel ökade antalet förutsägelser till 20 skulle värdena för raderna 6–20 vara desamma, All-Purpose Bike Stand.
Funktionslista
Alla Microsoft-algoritmer stöder en gemensam uppsättning funktioner. Microsoft Sequence Clustering-algoritmen stöder dock de ytterligare funktioner som visas i följande tabell.
| Förutsägelsefunktion | Usage |
|---|---|
| Kluster (DMX) | Returnerar det kluster som mest sannolikt innehåller indatafallet |
| ClusterDistance (DMX) | Returnerar indatafallets avstånd från det angivna klustret, eller om inget kluster anges, avståndet för indatafallet från det mest sannolika klustret. Den här funktionen kan användas med valfri typ av klustringsmodell (EM, K-Means osv.), men resultatet skiljer sig beroende på algoritmen. |
| ClusterProbability (DMX) | Returnerar sannolikheten att indatafallet tillhör det angivna klustret. |
| IsInNode (DMX) | Anger om den angivna noden innehåller det aktuella fallet. |
| PredictAdjustedProbability (DMX) | Returnerar den justerade sannolikheten för ett angivet tillstånd. |
| PredictAssociation (DMX) | Förutsäger associativt medlemskap. |
| PredictCaseLikelihood (DMX) | Returnerar sannolikheten för att ett indatafall får plats i den befintliga modellen. |
| PredictHistogram (DMX) | Returnerar en tabell som representerar ett histogram för förutsägelsen av en viss kolumn. |
| PredictNodeId (DMX) | Returnerar Node_ID för noden som ärendet klassificeras till. |
| PredictProbability (DMX) | Returnerar sannolikheten för ett angivet tillstånd. |
| PredictSequence (DMX) | Förutsäger framtida sekvensvärden för en angiven uppsättning sekvensdata. |
| PredictStdev (DMX) | Returnerar den förutsagda standardavvikelsen för den angivna kolumnen. |
| PredictSupport (DMX) | Returnerar supportvärdet för ett angivet tillstånd. |
| PredictVariance (DMX) | Returnerar variansen för en angiven kolumn. |
En lista över de funktioner som är gemensamma för alla Microsoft-algoritmer finns i Allmänna förutsägelsefunktioner (DMX). Syntaxen för specifika funktioner finns i Dmx-funktionsreferens (Data Mining Extensions).
Se även
Frågor om datautvinning
Teknisk referens för Microsoft Sequence Clustering Algorithm
Microsoft Sequence Clustering Algorithm
Mining Model Content for Sequence Clustering Models (Analysis Services – Data Mining)