Freigeben über


Beispiele für Abfragen von Sequenz-Clustering-Modellen

Wenn Sie eine Abfrage für ein Data Mining-Modell erstellen, können Sie entweder eine Inhaltsabfrage erstellen, die Details zu den im Modell gespeicherten Informationen bereitstellt, oder Sie können eine Vorhersageabfrage erstellen, die die Muster im Modell verwendet, um Vorhersagen basierend auf neuen Daten zu erstellen, die Sie bereitstellen. Bei einem Sequenzclusteringmodell stellen Inhaltsabfragen in der Regel zusätzliche Details zu den gefundenen Clustern oder den Übergängen innerhalb dieser Cluster bereit. Mithilfe einer Abfrage können Sie auch Metadaten zum Modell abrufen.

Vorhersageabfragen für ein Sequenzclusteringmodell machen in der Regel Empfehlungen basierend auf den Sequenzen und Übergängen, auf Nicht-Sequenzattributen, die im Modell enthalten waren, oder auf einer Kombination aus Sequenz- und Nicht-Sequenzattributen.

In diesem Abschnitt wird erläutert, wie Abfragen für Modelle erstellt werden, die auf dem Microsoft Sequence Clustering-Algorithmus basieren. Allgemeine Informationen zum Erstellen von Abfragen finden Sie unter Data Mining-Abfragen.

Inhaltsabfragen

Verwenden des Data Mining-Schema-Rowset zum Zurückgeben von Modellparametern

Abrufen einer Liste von Sequenzen für einen Zustand

Verwenden von vom System gespeicherten Prozeduren

Vorhersageabfragen

Vorhersagen des nächsten Zustands oder der nächsten Zustände

Suchen von Informationen zum Sequenzclusteringmodell

Um aussagekräftige Abfragen für den Inhalt eines Miningmodells zu erstellen, müssen Sie die Struktur des Modellinhalts verstehen und welche Knotentypen welche Art von Informationen speichern. Weitere Informationen finden Sie unter Miningmodellinhalt für Sequenzclusteringmodelle (Analysis Services - Data Mining).For more information, see Mining Model Content for Sequence Clustering Models (Analysis Services - Data Mining).

Beispielabfrage 1: Verwenden des Data Mining-Schema-Rowsets zum Zurückgeben von Modellparametern

Durch Abfragen des Data Mining-Schema-Rowsets finden Sie verschiedene Arten von Informationen zum Modell, einschließlich grundlegender Metadaten, datum und Uhrzeit, zu der das Modell erstellt und zuletzt verarbeitet wurde, den Namen der Miningstruktur, auf der das Modell basiert, und die Spalte, die als vorhersagbares Attribut verwendet wird.

Die folgende Abfrage gibt die Parameter zurück, die zum Erstellen und Trainieren des Modells verwendet wurden. [Sequence Clustering] Sie können dieses Modell in Lektion 5 des Einfachen Data Mining-Lernprogramms erstellen.

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

Beispielergebnisse:

ABBAUPARAMETER
CLUSTERANZAHL=15, MINDESTUNTERSTÜTZUNG=10, MAXIMALZUSTÄNDE=100, MAXIMALFOLGENZUSTÄNDE=64

Beachten Sie, dass dieses Modell mit dem Standardwert 10 für CLUSTER_COUNT erstellt wurde. Wenn Sie eine Nicht-Null-Anzahl von Clustern für CLUSTER_COUNT angeben, behandelt der Algorithmus diese Zahl als Hinweis für die ungefähre Anzahl der zu findenden Cluster. Im Analyseprozess kann der Algorithmus jedoch mehr oder weniger Cluster finden. In diesem Fall stellte der Algorithmus fest, dass 15 Cluster am besten den Schulungsdaten entsprechen. Daher meldet die Liste der Parameterwerte für das abgeschlossene Modell die Anzahl von Clustern, die durch den Algorithmus bestimmt werden, nicht den wert, der beim Erstellen des Modells übergeben wird.

Wie unterscheidet sich dieses Verhalten davon, dass der Algorithmus die beste Anzahl von Clustern bestimmt? Als Experiment können Sie ein weiteres Clusteringmodell erstellen, das dieselben Daten verwendet, aber CLUSTER_COUNT auf 0 festlegen. In diesem Fall erkennt der Algorithmus 32 Cluster. Daher schränken Sie mit dem Standardwert 10 für CLUSTER_COUNT die Anzahl der Ergebnisse ein.

Der Wert 10 wird standardmäßig verwendet, da das Verringern der Anzahl von Clustern für die meisten Personen das Durchsuchen und Verstehen von Gruppierungen in den Daten erleichtert. Jedes Modell und jede Datenmenge ist jedoch unterschiedlich. Möglicherweise möchten Sie mit unterschiedlichen Clusterzahlen experimentieren, um zu sehen, welcher Parameterwert das genaueste Modell liefert.

Beispielabfrage 2: Abrufen einer Liste von Sequenzen für einen Status

Der Inhalt des Miningmodells speichert die Sequenzen, die in den Schulungsdaten gefunden werden, als einen ersten Zustand, der mit einer Liste aller verwandten zweiten Zustände verknüpft ist. Der erste Zustand wird als Beschriftung für die Sequenz verwendet, und die zugehörigen zweiten Zustände werden als Übergänge bezeichnet.

Die folgende Abfrage gibt beispielsweise die vollständige Liste der ersten Zustände im Modell zurück, bevor die Sequenzen in Cluster gruppiert werden. Sie können diese Liste abrufen, indem Sie die Liste der Sequenzen (NODE_TYPE = 13) zurückgeben, die den Modellstammknoten als übergeordnetes Element (PARENT_UNIQUE_NAME = 0) aufweisen. Das Schlüsselwort FLATTENED erleichtert das Lesen der Ergebnisse.

Hinweis

Der Name der Spalten, PARENT_UNIQUE_NAME, Support und Wahrscheinlichkeit müssen in eckige Klammern gesetzt werden, um sie von den reservierten Schlüsselwörtern desselben Namens zu unterscheiden.

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  

Teilergebnisse:

NODE_EINDEUTIGER_NAME Produkt 1 Sequenzunterstützung Sequenzwahrscheinlichkeit
1081327 Fehlend 0 #######
1081327 All-Purpose Fahrradständer 17 0.00111
1081327 Fahrradwäsche 64 0.00418
1081327 (Zeilen 4-36 weggelassen)
1081327 Damen Bergshorts 506 0.03307

Die Liste der Sequenzen im Modell wird immer alphabetisch in aufsteigender Reihenfolge sortiert. Die Reihenfolge der Sequenzen ist wichtig, da Sie die zugehörigen Übergänge finden können, indem Sie sich die Reihenfolgenummer der Sequenz ansehen. Der Missing Wert ist immer der Übergangszustand 0.

In den vorherigen Ergebnissen ist das Produkt "Women's Mountain Shorts" beispielsweise die Sequenznummer 37 im Modell. Sie können diese Informationen verwenden, um alle Produkte anzuzeigen, die jemals nach dem Kauf von "Damen-Mountain-Shorts" gekauft wurden.

Dazu verweisen Sie zunächst auf den wert, der für NODE_UNIQUE_NAME in der vorherigen Abfrage zurückgegeben wird, um die ID des Knotens abzurufen, der alle Sequenzen für das Modell enthält. Sie übergeben diesen Wert an die Abfrage als ID des übergeordneten Knotens, um nur die In diesem Knoten enthaltenen Übergänge abzurufen, die eine Liste der al-Sequenzen für das Modell enthalten. Wenn Sie jedoch die Liste der Übergänge für einen bestimmten Cluster anzeigen möchten, können Sie die ID des Clusterknotens übergeben und nur die Sequenzen sehen, die diesem Cluster zugeordnet sind.

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

Beispielergebnisse:

NODE_EINDEUTIGER_NAME
1081365

Der durch diese ID dargestellte Knoten enthält eine Liste der Sequenzen, die dem Produkt "Damen-Mountain-Shorts" folgen, zusammen mit den Unterstützungs- und Wahrscheinlichkeitswerten.

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'  

Beispielergebnisse:

t.Product2 t.P2-Support t.P2-Wahrscheinlichkeit
Fehlend 230.7419 0.456012
Klassische Weste 8.16129 0.016129
Radkappe 60.83871 0.120235
Half-Finger Handschuhe 30.41935 0.060117
Long-Sleeve Logo-Trikot 86.80645 0.171554
Rennsocken 28.93548 0.057185
Short-Sleeve Klassisches Trikot 60.09677 0.118768

Beachten Sie, dass die Unterstützung für die verschiedenen Sequenzen im Zusammenhang mit Damen-Mountain-Shorts im Modell auf 506 festgelegt ist. Die Unterstützungswerte für die Übergänge ergeben ebenfalls 506. Die Zahlen sind jedoch keine ganzen Zahlen, was ein bisschen seltsam erscheint, wenn Sie erwarten, dass die Unterstützung einfach eine Anzahl von Fällen darstellt, die jeden Übergang enthalten. Da die Methode zum Erstellen von Clustern jedoch die Partielle Mitgliedschaft berechnet, muss die Wahrscheinlichkeit eines Übergangs innerhalb eines Clusters durch die Wahrscheinlichkeit der Zugehörigkeit zu diesem bestimmten Cluster gewichtet werden.

Wenn beispielsweise vier Cluster vorhanden sind, kann eine bestimmte Sequenz eine 40% Chance haben, zu Cluster 1 zu gehören, eine 30% Chance, zu Cluster 2 zu gehören, eine 20% Chance, zu Cluster 3 zu gehören, und eine 10% Chance, cluster 4 zu gehören. Nachdem der Algorithmus den Cluster bestimmt hat, zu dem der Übergang meist gehört, gewichtet er die Wahrscheinlichkeit innerhalb des Clusters nach der vorherigen Clusterwahrscheinlichkeit.

Beispielabfrage 3: Verwenden von gespeicherten Systemprozeduren

Anhand dieser Abfragebeispiele können Sie sehen, dass die im Modell gespeicherten Informationen komplex sind und dass Sie möglicherweise mehrere Abfragen erstellen müssen, um die benötigten Informationen abzurufen. Der Microsoft Sequence Clustering Viewer bietet eine leistungsstarke Reihe von Tools zum grafischen Durchsuchen der Informationen, die in einem Sequenz-Clustering-Modell enthalten sind. Sie können diesen Viewer jedoch auch verwenden, um das Modell abzufragen und weiter ins Detail vorzudringen.

In den meisten Fällen werden die Informationen, die im Microsoft Sequence Clustering Viewer angezeigt werden, mithilfe gespeicherter Prozeduren des Analysis Services-Systems erstellt, um das Modell abzufragen. Sie können Data Mining Extensions (DMX-Abfragen) gegen den Modellinhalt erstellen, um dieselben Informationen abzurufen, aber die Analysis Services-System gespeicherten Prozeduren bieten eine praktische Abkürzung für die Erkundung oder das Testen von Modellen.

Hinweis

Vom System gespeicherte Prozeduren werden für die interne Verarbeitung vom Server und von den Clients verwendet, die Microsoft für die Interaktion mit dem Analysis Services-Server bereitstellt. Daher behält sich Microsoft das Recht vor, sie jederzeit zu ändern. Obwohl sie hier für Ihren Komfort beschrieben werden, unterstützen wir ihre Verwendung in einer Produktionsumgebung nicht. Um Stabilität und Kompatibilität in einer Produktionsumgebung zu gewährleisten, sollten Sie Ihre eigenen Abfragen immer mithilfe von DMX schreiben.

Dieser Abschnitt enthält einige Beispiele für die Verwendung der gespeicherten Systemprozeduren zum Erstellen von Abfragen für ein Sequenzclusteringmodell:

Clusterprofile und Beispielfälle

Auf der Registerkarte "Clusterprofile" wird eine Liste der Cluster im Modell, die Größe jedes Clusters und ein Histogramm angezeigt, das die im Cluster enthaltenen Zustände angibt. Es gibt zwei vom System gespeicherte Prozeduren, die Sie in Abfragen verwenden können, um ähnliche Informationen abzurufen:

  • GetClusterProfile gibt die Merkmale des Clusters zurück, wobei alle Informationen in der NODE_DISTRIBUTION Tabelle für den Cluster gefunden werden.

  • GetNodeGraph gibt Knoten und Kanten zurück, die zum Erstellen einer mathematischen Graphdarstellung der Cluster verwendet werden können, wie sie auf der ersten Registerkarte der Sequenz-Clustering-Ansicht angezeigt wird. Die Knoten sind Cluster, und die Kanten stellen Gewichte oder Stärke dar.

Im folgenden Beispiel wird veranschaulicht, wie die gespeicherte Systemprozedur verwendet wird, GetClusterProfilesum alle Cluster im Modell mit ihren jeweiligen Profilen zurückzugeben. Diese gespeicherte Prozedur führt eine Reihe von DMX-Anweisungen aus, die alle Profile im Modell zurückgeben. Um diese gespeicherte Prozedur zu verwenden, müssen Sie jedoch die Adresse des Modells kennen.

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

Im folgenden Beispiel wird veranschaulicht, wie Sie das Profil für einen bestimmten Cluster, Cluster 12, mithilfe der gespeicherten Systemprozedur GetNodeGraphabrufen und die Cluster-ID angeben, die in der Regel mit der Nummer im Clusternamen identisch ist.

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

Wenn Sie die Cluster-ID weglassen, wie in der folgenden Abfrage dargestellt, GetNodeGraph wird eine sortierte, flache Liste aller Clusterprofile zurückgegeben:

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

Auf der Registerkarte "Clusterprofil " wird auch ein Histogramm von Modellbeispielen angezeigt. Diese Beispielfälle stellen die idealisierten Fälle für das Modell dar. Diese Fälle werden nicht auf die gleiche Weise im Modell gespeichert wie die Schulungsdaten; Sie müssen eine spezielle Syntax verwenden, um die Beispielfälle für das Modell abzurufen.

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

Weitere Informationen finden Sie unter SELECT FROM <model>.SAMPLE_CASES (DMX).

Clustermerkmale und Clusterdiskriminierung

Auf der Registerkarte "Clustermerkmale " werden die Hauptattribute jedes Clusters zusammengefasst, die nach Wahrscheinlichkeit bewertet werden. Sie können herausfinden, wie viele Fälle zu einem Cluster gehören und wie die Verteilung von Fällen im Cluster aussieht: Jedes Merkmal hat bestimmte Unterstützung. Um die Merkmale eines bestimmten Clusters anzuzeigen, müssen Sie die ID des Clusters kennen.

In den folgenden Beispielen wird die gespeicherte Systemprozedur verwendet, GetClusterCharacteristicsum alle Merkmale von Cluster 12 zurückzugeben, die einen Wahrscheinlichkeitswert über dem angegebenen Schwellenwert von 0,0005 aufweisen.

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

Um die Merkmale aller Cluster zurückzugeben, können Sie die Cluster-ID leer lassen.

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

Im folgenden Beispiel wird die gespeicherte Systemprozedur GetClusterDiscrimination aufgerufen, um die Merkmale von Cluster 1 und Cluster 12 zu vergleichen.

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

Wenn Sie eine eigene Abfrage in DMX schreiben möchten, um zwei Cluster zu vergleichen oder einen Cluster mit seiner Ergänzung zu vergleichen, müssen Sie zuerst einen Satz von Merkmalen abrufen und dann die Merkmale für den spezifischen Cluster abrufen, für den Sie sich interessieren, und die beiden Sätze vergleichen. Dieses Szenario ist komplizierter und erfordert in der Regel eine Clientverarbeitung.

Zustände und Übergänge

Auf der Registerkarte "Statusübergänge" der Microsoft Sequence Clustering werden komplizierte Abfragen auf dem Back-End ausgeführt, um die Statistiken für verschiedene Cluster abzurufen und zu vergleichen. Zum Reproduzieren dieser Ergebnisse ist eine komplexere Abfrage und einige Clientverarbeitung erforderlich.

Sie können jedoch die in Beispiel 2 des Abschnitts Inhaltsabfragen beschriebenen Abfragen verwenden, um Wahrscheinlichkeiten und Zustände für Sequenzen oder für einzelne Übergänge abzurufen.

Verwenden des Modells zum Erstellen von Vorhersagen

Vorhersageabfragen für ein Sequenzclusteringmodell können viele der Vorhersagefunktionen verwenden, die mit anderen Clusteringmodellen verwendet werden. Darüber hinaus können Sie die spezielle Vorhersagefunktion PredictSequence (DMX) verwenden, um Empfehlungen auszusprechen oder die nächsten Zustände vorherzusagen.

Beispielabfrage 4: Vorhersage des nächsten Zustands oder der Zustände

Sie können die Funktion PredictSequence (DMX) verwenden, um den nächsten höchstwahrscheinlichen Zustand mit einem Wert vorherzusagen. Sie können auch mehrere nächste Zustände vorhersagen: Sie können z. B. eine Liste der drei wichtigsten Produkte zurückgeben, die ein Kunde kaufen wird, um eine Liste mit Empfehlungen zu präsentieren.

Die folgende Beispielabfrage ist eine Singleton-Vorhersageabfrage, die die fünf obersten Vorhersagen zusammen mit ihrer Wahrscheinlichkeit zurückgibt. Da das Modell eine geschachtelte Tabelle enthält, müssen Sie die geschachtelte Tabelle als Spaltenverweis verwenden, [v Assoc Seq Line Items]wenn Sie Vorhersagen erstellen. Wenn Sie Werte als Eingabe angeben, müssen Sie außerdem sowohl die Falltabelle als auch die geschachtelten Tabellenspalten verbinden, wie in den geschachtelten SELECT-Anweisungen dargestellt.

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  

Beispielergebnisse:

Expression.$Sequence Expression.Zeilennummer Expression.Model
1 Radkappe
2 Radkappe
3 Sport-100
4 Long-Sleeve Logo-Jersey
5 Half-Finger Handschuhe
6 All-Purpose Fahrradständer
7 All-Purpose Fahrradständer

Es gibt drei Spalten in den Ergebnissen, obwohl Sie möglicherweise nur eine Spalte erwarten, da die Abfrage immer eine Spalte für die Falltabelle zurückgibt. Hier werden die Ergebnisse abgeflacht; andernfalls würde die Abfrage eine einzelne Spalte zurückgeben, die zwei geschachtelte Tabellenspalten enthält.

Die Spalte $sequence ist eine Spalte, die standardmäßig von der PredictSequence Funktion zurückgegeben wird, um die Vorhersageergebnisse zu sortieren. Die Spalte [Line Number] ist erforderlich, um mit den Sequenzschlüsseln im Modell übereinzustimmen, aber die Schlüssel werden nicht ausgegeben.

Interessanterweise sind die top vorhergesagten Sequenzen nach All-Purpose Fahrradständer radeln Cap und Cycling Cap. Dies ist kein Fehler. Je nachdem, wie die Daten dem Kunden präsentiert werden und wie sie beim Trainieren des Modells gruppiert werden, ist es sehr möglich, Sequenzen dieser Art zu haben. Beispielsweise kann ein Kunde eine Radkappe (rot) und dann eine andere Radkappe (blau) erwerben oder zwei in einer Zeile kaufen, wenn es keine Möglichkeit zum Angeben der Menge gab.

Die Werte in den Zeilen 6 und 7 sind Platzhalter. Wenn Sie das Ende der Kette möglicher Übergänge erreichen, anstatt die Vorhersageergebnisse zu beenden, wird der Wert, der als Eingabe übergeben wurde, den Ergebnissen hinzugefügt. Wenn Sie beispielsweise die Anzahl der Vorhersagen auf 20 erhöht haben, sind die Werte für die Zeilen 6-20 alle gleich, All-Purpose Fahrradständer.

Funktionsliste

Alle Microsoft-Algorithmen unterstützen einen gemeinsamen Satz von Funktionen. Der Microsoft Sequence Clustering-Algorithmus unterstützt jedoch die zusätzlichen Funktionen, die in der folgenden Tabelle aufgeführt sind.

Vorhersagefunktion Verwendung
Cluster (CLUSTERS) Gibt den Cluster zurück, der höchstwahrscheinlich den Eingabefall enthält.
ClusterDistance (UNIVERSE) Gibt den Abstand des Eingabefalles vom angegebenen Cluster zurück, oder wenn kein Cluster angegeben wird, wird der Abstand des Eingabefalles vom wahrscheinlichsten Cluster entfernt.

Diese Funktion kann mit jeder Art von Clusteringmodell (EM, K-Means usw.) verwendet werden, die Ergebnisse unterscheiden sich jedoch je nach Algorithmus.
ClusterProbability (UNIVERSE) Gibt die Wahrscheinlichkeit zurück, dass der Eingabefall zum angegebenen Cluster gehört.
IsInNode (NODE) Gibt an, ob der angegebene Knoten den aktuellen Fall enthält.
PredictAdjustedProbability (UNIVERSE) Gibt die angepasste Wahrscheinlichkeit eines angegebenen Zustands zurück.
PredictAssociation (UNIVERSE) Prognostiziert die assoziative Mitgliedschaft.
PredictCaseLikelihood (DMX) Gibt die Wahrscheinlichkeit zurück, dass ein Eingabefall in das vorhandene Modell passt.
PredictHistogram (DMX) Gibt eine Tabelle zurück, die ein Histogramm für die Vorhersage einer bestimmten Spalte darstellt.
PredictNodeId (UNIVERSE) Gibt die Node_ID des Knotens zurück, in den der Fall klassifiziert wird.
PredictProbability (UNIVERSE) Gibt die Wahrscheinlichkeit für einen angegebenen Zustand zurück.
PredictSequence (UNIVERSE) Prognostiziert zukünftige Sequenzwerte für einen angegebenen Satz von Sequenzdaten.
PredictStdev (UNIVERSE) Gibt die vorhergesagte Standardabweichung für die angegebene Spalte zurück.
PredictSupport (UNIVERSE) Gibt den Unterstützungswert für einen angegebenen Zustand zurück.
PredictVariance (DMX) Gibt die Varianz einer angegebenen Spalte zurück.

Eine Liste der Funktionen, die allen Microsoft-Algorithmen gemeinsam sind, finden Sie unter General Prediction Functions (DMX). Informationen zur Syntax bestimmter Funktionen finden Sie unter Data Mining Extensions (DMX) Funktion Referenz.

Siehe auch

Data Mining-Abfragen
Technische Referenz zu Microsoft Sequence Clustering Algorithm
Microsoft Sequence Clustering Algorithm
Miningmodellinhalt für Sequenzclusteringmodelle (Analysis Services - Data Mining)