Abfragen von Data Mining-Modellen (Analysis Services - Data Mining)

Nachdem Sie ein Data Mining-Modell trainiert haben, können Sie das Modell anhand der in SQL Server Management Studio oder Business Intelligence Development Studio verfügbaren benutzerdefinierten Viewer durchsuchen. Wenn Sie jedoch Vorhersagen treffen oder erweiterte bzw. spezifische Informationen vom Modell abrufen möchten, müssen Sie eine Abfrage für das Data Mining-Modell erstellen. Abfragen helfen Ihnen dabei, die Informationen im Modell besser zu verstehen und sie für folgende Aufgaben zu nutzen:

  • Treffen von einzelnen Vorhersagen und Batchvorhersagen.

  • Abrufen von weiteren Informationen über die vom Modell erkannten Muster.

  • Anzeigen von Details oder Trainingsfällen für ein bestimmtes Muster oder eine Teilmenge des Modells.

  • Ausführen eines Drillthroughs zu Details der Fälle im Miningmodell.

  • Extrahieren von Formeln, Regeln oder Statistiken über das gesamte Modell und alle Daten oder eine Teilmenge davon.

SQL Server Analysis Services bietet eine grafische Entwurfsoberfläche zum Erstellen von Abfragen sowie eine als Data Mining-Erweiterungen (Data Mining Extensions, DMX) bezeichnete Abfragesprache, die zum Erstellen von benutzerdefinierten Vorhersagen und komplexen Abfragen dient. Zum Generieren von DMX-Vorhersageabfragen verwenden Sie zunächst die Abfrage-Generatoren, die sowohl in SQL Server Management Studio als auch Business Intelligence Development Studio in verfügbar sind. Ein Satz von DMX-Abfragevorlagen wird auch in SQL Server Management Studio bereitgestellt.

Weitere Informationen zum Verwenden des Abfrage-Generators finden Sie unter Verwenden vom Generator für Vorhersageabfragen zum Erstellen von DMX-Vorhersageabfragen.

Weitere Informationen zum Verwenden der DMX-Abfragevorlagen finden Sie unter Erstellen von DMX-Abfragen in SQL Server Management Studio oder Vorgehensweise: Verwenden von Vorlagen in SQL Server Management Studio.

In diesem Abschnitt werden die Abfragetypen, die Sie erstellen können, sowie die Informationen, die sie jeweils liefern, beschrieben. Dieser Abschnitt enthält auch Beispiele für Abfragen für bestimmte Typen von Data Mining-Modellen.

  • Vorhersageabfragen

    • SINGLETON-Vorhersage

    • Batchvorhersageabfragen

    • Zeitreihenvorhersagen

  • Inhaltsabfragen

  • Datendefinitionsabfragen

Vorhersageabfragen

Das wichtigste Ziel vieler Data Mining-Projekte besteht darin, mithilfe von Miningmodellen Vorhersagen zu treffen. Angenommen, Sie möchten vorhersagen, wie viele Produkte Ihr Unternehmen im Dezember nächsten Jahres absetzen wird oder ob sich ein potenzieller Kunde von einer Werbekampagne zum Kauf eines Produkts anregen lässt.

Wenn Sie eine Vorhersage erstellen, geben Sie in der Regel neue Daten an und lassen das Modell auf Basis dieser neuen Daten eine Vorhersage erstellen. Vorhersagen können Sie als Batch treffen oder durch Zuordnen des Modells zu einer externen Datenquelle in einer Vorhersageverknüpfung. Alternativ können Sie Werte nacheinander bereitstellen. Erstellen Sie dazu eine SINGLETON-Abfrage.

Sowohl die SINGLETON- als auch die Batchvorhersageabfrage verwenden die PREDICTION JOIN-Syntax, um die neuen Daten zu definieren. Der Unterschied besteht darin, wie die Eingabeseite der Vorhersageverknüpfung angegeben wird. In einer SINGLETON-Abfrage werden die Daten inline als Teil der Abfrage angegeben. In einer Batchabfrage stammen die Daten aus einer externen Datenquelle, die mit der OPENQUERY-Syntax angegeben wird. Weitere Informationen finden Sie unter OPENQUERY (DMX).

Darüber hinaus ermöglichen Zeitreihenmodelle, Vorhersagen nur auf Basis des Modells zu treffen. Sie müssen keine neuen Daten eingeben, sondern nur Vorhersagen auf der Grundlage der vorhandenen Reihen anfordern.

Der folgende Abschnitt enthält Informationen über das Erstellen der einzelnen Abfragetypen:

Abfragetyp

Abfrageoptionen

SINGLETON-Vorhersageabfrage

Treffen Sie eine Vorhersage über einen neuen einzelnen Fall oder mehrere neue Fälle, die Sie in die Abfrage eingeben.

Batchvorhersagen

Ordnen Sie dem Modell neue Fälle in einer externen Datenquelle zu, und treffen Sie Vorhersagen.

Zeitreihenvorhersagen

Sagen Sie auf Grundlage eines vorhandenen Modells eine bestimmte Anzahl zukünftiger Schritte vorher.

Erweitern Sie ein vorhandenes Modell, indem Sie neue Daten hinzufügen, und treffen Sie Vorhersagen auf Grundlage der zusammengesetzten Reihe.

Übernehmen Sie das vorhandene Modell mit der REPLACE_MODEL_CASES-Option für die neuen Datenreihen.

Sie können nicht nur einen bestimmten Wert, wie den Umsatz des nächsten Monats, oder ein Produkt zur Empfehlung an den Kunden vorhersagen, sondern eine Vorhersageabfrage anpassen, um verschiedene Arten von Informationen, die mit der Vorhersage verknüpft sind, zurückzugeben. Es wäre beispielsweise hilfreich zu wissen, wie wahrscheinlich es ist, dass die Vorhersage richtig ist. So können Sie entscheiden, ob Sie die Empfehlung an den Benutzer weitergeben oder nicht.

Um die von einer Vorhersageabfrage zurückgegebenen Informationen anzupassen, fügen Sie der Abfrage Vorhersagefunktionen hinzu. Jedes Modell oder jeder Abfragetyp unterstützt bestimmte Funktionen. Clustermodelle unterstützen beispielsweise spezielle Vorhersagefunktionen, die zusätzliche Details über die vom Modell vorgenommenen Gruppierungen bereitstellen. Zeitreihenmodelle unterstützen Vorhersagefunktionen, die Unterschiede im Verlauf der Zeit berechnen. Es gibt auch allgemeine Vorhersagefunktionen, die mit fast allen Modelltypen funktionieren. Eine Liste der Vorhersagefunktionen, die in verschiedenen Abfragen unterstützt werden, finden Sie unter Zuordnen von Funktionen zu Abfragetypen (DMX). Eine vollständige Liste der Vorhersagefunktionen finden Sie unter Data Mining-Erweiterungen (DMX) - Funktionsreferenz.

Zurück zum Anfang

SINGLETON-Abfragen

Eine SINGLETON-Abfrage ist nützlich, wenn Sie einfache Vorhersagen in Echtzeit erstellen möchten. Sie erhalten beispielsweise Informationen von einem Kunden über eine Website und verwenden diese Daten anschließend, um Vorhersagen zurückzugeben, die als für diesen Kunden spezifische Empfehlungen dargestellt werden. Oder Sie analysieren den Inhalt einer E-Mail, ordnen der E-Mail anschließend anhand eines vorhandenen Klassifikationsmodells eine Kategorie zu und leiten die Nachricht entsprechend weiter.

SINGLETON-Abfragen erfordern keine separate Tabelle mit Eingaben. Stattdessen übergeben Sie eine einzelne Datenreihe an das Modell. Daraufhin wird eine einzelne Vorhersage in Echtzeit zurückgegeben. Sie können die SINGLETON-Abfrage auch erweitern, um mehrere Vorhersagen zu erstellen. Geben Sie dazu eine SELECT-Anweisung mit einem einzelnen Fall ein, fügen Sie den UNION-Operator hinzu, und geben Sie anschließend eine andere SELECT-Anweisung zur Angabe eines anderen Falls an.

Sie können SINGLETON-Abfragen für ein vorhandenes Modell wie folgt erstellen:

  • Mit dem Data Mining-Designer

  • Mit einer SINGLETON-Abfragevorlage

  • Durch programmgesteuertes Erstellen einer DMX-Anweisung oder in einem anderen Analysis Services-Client.

Beim Erstellen einer SINGLETON-Abfrage müssen Sie die neuen Daten in Form einer PREDICTION JOIN-Anweisung für das Modell bereitstellen. Dies bedeutet, dass Sie zwar keine Zuordnung zu einer tatsächlichen Tabelle vornehmen, jedoch dennoch sicherstellen müssen, dass die neuen Daten mit den vorhandenen Spalten des Miningmodells übereinstimmen. Wenn die neuen Datenspalten und die neuen Daten genau übereinstimmen, übernimmt Analysis Services die Zuordnung der Spalten. Dies wird als NATURAL PREDICTION JOIN bezeichnet. Wenn die Spalten jedoch nicht übereinstimmen oder die neuen Daten nicht dieselbe Art und Menge von Daten enthalten wie das Modell, müssen Sie angeben, welche Spalten im Modell den neuen Daten zuzuordnen sind, oder Sie legen die fehlenden Werte fest.

Informationen zum Erstellen einer SINGLETON-Abfrage in Data Mining-Designer finden Sie unter Vorgehensweise: Erstellen einer SINGLETON-Abfrage im Data Mining-Designer und Verwenden vom Generator für Vorhersageabfragen zum Erstellen von DMX-Vorhersageabfragen.

Informationen zur Verwendung von DMX zum Erstellen einer SINGLETON-Abfrage finden Sie unter Vorhersageabfragen (DMX).

Ein Beispiel zur Verwendung der DMX-Abfragevorlagen in SQL Server Management Studio finden Sie unter Vorgehensweise: Erstellen einer SINGLETON-Vorhersageabfrage von einer Vorlage.

Zurück zum Anfang

Batchvorhersageabfragen

Wenn Sie eine Vorhersageverknüpfung durchführen, ordnen Sie das Modell einer neuen Datenquelle zu. Analysis Services trifft dann Vorhersagen für jede Zeile der neuen Daten basierend auf Muster im Modell. Eine Vorhersageverknüpfung ist nützlich bei großen Informationsmengen in einer Tabelle oder einer anderen externen Datenquelle, wenn Sie Vorhersagen mit dem trainierten Modell treffen möchten.

Sie können Batchvorhersageabfragen für ein vorhandenes Modell wie folgt erstellen:

  • Mit dem Data Mining-Designer

  • Mit einer Vorlage

  • Durch programmgesteuertes Erstellen einer DMX-Anweisung oder in einem anderen Analysis Services-Client.

  • Wenn Sie eine Batchvorhersageabfrage mit dem Data Mining-Designer erstellen, muss die externe Datenquelle zunächst als Datenquellensicht definiert werden.

Wenn Sie eine Vorhersageverknüpfung mit DMX erstellen, können Sie die externe Datenquelle anhand der Befehle OPENQUERY, OPENROWSET oder SHAPE angeben. Die Standard-Datenzugriffsmethode in den DMX-Vorlagen ist OPENQUERY. Informationen zu diesen Methoden finden Sie unter <source data query>.

Unabhängig davon, wie Sie die externen Daten definieren, muss die angegebene Datenquelle Spalten mit Daten enthalten, die den Daten im Modell entsprechen. Die neuen Informationen können jedoch unvollständig sein. Die Kundenliste kann beispielsweise eine Spalte Age, jedoch keine Informationen über das Einkommen enthalten. Auch wenn Einkommensdaten beim Trainieren des Modells verwendet wurden, können Sie dem Modell die neuen Daten zuordnen und eine Vorhersage erstellen. In einigen Fällen wird die Qualität der Vorhersagen durch die fehlenden Informationen beeinträchtigt.

Die besten Ergebnisse erzielen Sie, wenn Sie möglichst viele der zwischen den neuen Daten und dem Modell übereinstimmenden Spalten verknüpfen. Die Abfrage wird jedoch auch dann erfolgreich durchgeführt, wenn keine Übereinstimmungen vorhanden sind. Wenn keine Spalten verknüpft werden, gibt die Abfrage die marginale Vorhersage zurück. Diese entspricht der Anweisung SELECT <predictable-column> FROM <model> ohne PREDICTION JOIN-Klausel.

Arbeiten mit den Ergebnissen einer Vorhersageabfrage

Eine Vorhersageabfrage entspricht nicht einer Abfrage einer relationalen Datenbank. Jede Vorhersagefunktion, die Sie einer Abfrage hinzufügen, gibt ein eigenes Rowset zurück. Wenn Sie eine Vorhersage für einen Einzelfall treffen, kann das Ergebnis aus einem vorhergesagten Wert und mehreren Spalten geschachtelter Tabellen mit zusätzlichen Details bestehen.

Jedes Mal, wenn Sie mehrere Funktionen in einer Abfrage kombinieren, werden die Rückgabeergebnisse als hierarchisches Rowset kombiniert. Wenn Ihr Anbieter keine hierarchischen Rowsets verarbeiten kann, können Sie die Ergebnisse mit dem FLATTEN-Schlüsselwort in der Vorhersageabfrage vereinfachen.

Weitere Informationen, einschließlich Beispiele vereinfachter Rowsets, finden Sie unter SELECT (DMX).

Vorhersagen für Zeitreihenminingmodelle

Zeitreihenmodelle bieten eine größere Flexibilität bei der Verwendung neuer Daten und beim Erstellen von Vorhersagen. Sie können entweder das Modell wie vorhanden verwenden, um Vorhersagen zu erstellen, oder Sie können neue Daten für das Modell angeben, um Vorhersagen auf der Basis jüngster Trends zu aktualisieren. Wenn Sie neue Daten hinzufügen, können Sie angeben, wie die neuen Daten verwendet werden sollen, um entweder die Modellfälle zu erweitern oder um die Modellfälle zu ersetzen.

Wenn Sie die Modellfälle erweitern, fügen Sie dem Zeitreihenmodell die neuen Faktendaten hinzu. Weitere Vorhersagen werden auf Basis der neuen, kombinierten Reihen getroffen. Wenn Sie die Modellfälle ersetzen, behalten Sie das trainierte Modell bei, ersetzen jedoch die zugrunde liegenden Fälle durch einen Satz neuer Falldaten.

Unabhängig vom verwendeten Ansatz ist der Ausgangspunkt für Vorhersagen stets das Ende der ursprünglichen Reihe.

Angenommen, es ist ein Zeitreihenmodell vorhanden, das mit Umsatzdaten vom vergangenen Jahr trainiert wurde. Nachdem Sie einige Monate neue Umsatzdaten gesammelt haben, möchten Sie Ihre Verkaufsprognosen für das laufende Jahr aktualisieren. Sie können eine Vorhersageverknüpfung erstellen, die das Modell durch Hinzufügen neuer Daten aktualisiert und es um neue Vorhersagen erweitert.

Alternativ können Sie Ihr Modell auf vorhandene Daten aufbauen und anschließend eine Vorhersageverknüpfung erstellen, die die Falldaten durch neue Daten ersetzt. Dies ist nützlich, wenn beispielsweise für ein Geschäft zahlreiche Daten fehlen und Sie zum Treffen von Vorhersagen ein Modell verwenden möchten, das auf den Daten eines anderen Geschäfts aufgebaut wurde. Weitere Informationen über das Erstellen von Vorhersageverknüpfungen für Zeitreihenmodelle finden Sie im Thema über Abfragen von Zeitreihenmodellen oder unter PredictTimeSeries (DMX).

Zurück zum Anfang

Inhaltsabfragen

Eine Inhaltsabfrage stellt eine Möglichkeit dar, Informationen über interne Statistiken und die Struktur des Miningmodells zu extrahieren. Mitunter enthält eine Inhaltsabfrage Details, die im Viewer nicht unmittelbar verfügbar sind. Sie können auch die Ergebnisse einer Inhaltsabfrage verwenden, um Informationen programmgesteuert zu anderen Verwendungszwecken zu extrahieren. So können Sie beispielsweise Formeln oder Wahrscheinlichkeiten extrahieren, um eigene Berechnungen anzustellen, oder aussagefähige Informationen über die Fälle in einem Modell abrufen.

Dieser Abschnitt enthält allgemeine Informationen über die Art der Informationen, die Sie mit einer Inhaltsabfrage abrufen können. Inhaltsabfragen verwenden die in der folgenden Tabelle dargestellte DMX-Syntax:

Abfragetyp

Abfrageoptionen

SELECT FROM <model>.CASES

Suchen Sie die Fälle, die zum Trainieren oder Testen eines Modells verwendet wurden Führen Sie einen Drillthrough in die Daten aus, einschließlich der Spalten in der zugrunde liegenden Miningstruktur.

SELECT FROM <structure>.CASES

Zeigen Sie alle Daten an, die in der Struktur enthalten sind, einschließlich Spalten, die nicht in einem bestimmten Miningmodell vorhanden sind.

SELECT FROM <model>.CONTENT

Rufen Sie ausführliche Informationen über bestimmte Knoten im Modell ab, einschließlich der Regeln und Formeln, der Unterstützung und der statistischen Varianzdaten usw.

SELECT FROM <model>.DIMENSIONCONTENT

Unterstützt Abfragen einer Data Mining-Dimension.

Dieser Abfragetyp dient hauptsächlich zur internen Verwendung. Wenn Sie einen eigenen Plug-In-Algorithmus entwickeln, können Sie diese Syntax verwenden, um die Modelle zu testen.

Nicht alle Algorithmen unterstützen diese Funktionalität. Die Unterstützung wird von einem Flag im MINING_SERVICES-Schemarowset angegeben.

Bestimmter Modellinhalt gehört bei allen Algorithmen zum Standard. Der Inhalt der einzelnen Modelle hängt im Allgemeinen jedoch von dem Algorithmus ab, mit dem Sie das Modell erstellt haben. Beim Erstellen einer Inhaltsabfrage müssen Sie daher wissen, welche Arten von Informationen im Modell am nützlichsten sind.

Wenn Sie beispielsweise eine Abfrage erstellen, die die Syntax SELECT FROM <model>.CONTENT verwendet, gibt die Abfrage sehr unterschiedliche Informationen zurück. Dies hängt davon ab, ob es sich bei dem Modell um ein Sequenzclustermodell, ein Entscheidungsstrukturmodell oder ein Zeitreihenmodell handelt. Für ein Zuordnungsmodell können Sie die Beschreibungen bestimmter Regeln abrufen, sodass Sie die Regeln in einer benutzerdefinierten Anwendung verwenden können. Im Gegensatz dazu können Sie in einem Zeitreihen- oder Sequenzclustermodell weitere Informationen über die vom Modell erkannten Zeitmuster suchen.

Die folgenden Abschnitte enthalten einige Beispiele zur Veranschaulichung der Breite und Tiefe der Informationen, die Sie mit einer Inhaltsabfrage abrufen können. Informationen über den Miningmodellinhalt sowie über den für den einzelnen Modelltyp spezifischen Inhalt finden Sie unter Miningmodellinhalt (Analysis Services - Data Mining).

Beispiel 1: Inhaltsabfrage eines Zuordnungsmodells

Mit der Anweisung SELECT FROM <model>.CONTENT können Sie je nach Typ des abgefragten Modells verschiedene Arten von Inhalt zurückgeben. Für ein Zuordnungsmodell haben Knoten, die Regeln repräsentieren, einen NODE_TYPE-Wert von 8, während Itemsets einen NODE_TYPE-Wert von 7 besitzen. So würde die folgende Abfrage die obersten 10 Itemsets, nach Unterstützung geordnet (Standardreihenfolge), zurückgeben.

SELECT TOP 10 NODE_DESCRIPTION, NODE_PROBABILITY, SUPPORT
FROM <model>.CONTENT WHERE NODE_TYPE = 7

Das folgende Beispiel gibt drei Spalten zurück: die ID des Knotens, die vollständige Regel und das Produkt auf der rechten Seite des Itemsets, das heißt, das Produkt, das für die Zuordnung mit einem anderen Produkt im Rahmen eines Itemsets vorhergesagt wird.

Das FLATTENED-Schlüsselwort gibt an, dass das geschachtelte Rowset in eine flache Tabelle konvertiert werden sollte. Das Attribut, das das Produkt auf der rechten Seite der Regel darstellt, ist in der NODE_DISTRIBUTION-Tabelle enthalten. Daher rufen wir nur die Zeile ab, die einen Attributnamen enthält. Dazu wird die Anforderung hinzugefügt, dass die Länge größer als zwei sein muss. Eine einfache Zeichenfolgenfunktion wird verwendet, um den Namen des Modells aus der dritten Spalte zu entfernen. Normalerweise besitzt der Modellname immer ein Präfix im Hinblick auf die Werte geschachtelter Spalten. Die WHERE-Klausel gibt an, dass der NODE_TYPE-Wert 8 betragen sollte, um nur Regeln abzurufen.

SELECT FLATTENED NODE_UNIQUE_NAME , NODE_DESCRIPTION,
     (SELECT RIGHT(ATTRIBUTE_NAME, (LEN(ATTRIBUTE_NAME)-LEN('Association model name'))) 
FROM NODE_DISTRIBUTION
WHERE LEN(ATTRIBUTE_NAME)>2
) 
AS RightSideProduct
FROM [<Association model name>].CONTENT
WHERE NODE_TYPE = 8 
ORDER BY NODE_SUPPORT DESC

Weitere Beispiele finden Sie unter Abfragen eines Zuordnungsmodells (Analysis Services – Data Mining).

Beispiel 2: Inhaltsabfrage für ein Entscheidungsstrukturmodell

Die Abfrage des Modellinhalts ist beispielsweise nützlich, wenn Sie eine Vorhersageabfrage weiter bearbeiten möchten, indem Sie die Regel zurückgeben, die erklärt, warum dieser Status vorhergesagt wurde. Sie können beispielsweise einer Abfrage die Vorhersagefunktion PredictNodeId (DMX) hinzufügen, um die ID des Knotens zu erhalten, der die Regel enthält. Verwenden Sie dazu die folgende Syntax:

SELECT  Predict([Bike Buyer]), PredictNodeID([Bike Buyer]) 
FROM [<decision tree model name>]
PREDICTION JOIN 
<input rowset> 

Für ein Entscheidungsstrukturmodell enthält die Beschriftung die Beschreibung des Pfads zum Ergebnis. Sobald Sie die ID des Knotens, der das Ergebnis enthält, erhalten haben, können Sie daher die Regel oder den Pfad abrufen, der die Vorhersage erläutert. Erstellen Sie dazu eine Inhaltsabfrage wie beispielsweise folgende:

SELECT NODE_CAPTION
FROM [<decision tree model name>] 
WHERE NODE_UNIQUE_NAME= '<node id>'

Weitere Beispiele finden Sie unter Abfragen eines Entscheidungsstrukturmodells (Analysis Services – Data Mining).

Zurück zum Anfang

Datendefinitionsabfragen

Analysis Services stellt eine Vielzahl von Datendefinitionsanweisungen zum Erstellen und Verwalten von Miningstrukturen und Modellen bereit. Weitere Informationen finden Sie unter Verwalten von Data Mining-Strukturen und -Modellen.