Freigeben über


Vorhersageabfragen (Data Mining)

Das Ziel eines typischen Data Mining-Projekts ist die Verwendung des Miningmodells, um Vorhersagen zu erstellen. Sie können z. B. die Anzahl der erwarteten Ausfallzeiten für einen bestimmten Servercluster vorhersagen oder eine Bewertung generieren, die angibt, ob Segmente von Kunden wahrscheinlich auf eine Werbekampagne reagieren. Um all diese Dinge zu erledigen, würden Sie eine Vorhersageabfrage erstellen.

Funktionell gibt es verschiedene Arten von Vorhersageabfragen, die in SQL Server unterstützt werden, je nachdem, welche Art von Eingaben für die Abfrage erforderlich ist:

Abfragetyp Abfrageoptionen
Singleton-Vorhersageabfragen Verwenden Sie eine Singleton-Abfrage, wenn Sie Ergebnisse für einen einzelnen neuen Fall oder mehrere neue Fälle vorhersagen möchten. Sie stellen die Eingabewerte direkt in der Abfrage bereit, und die Abfrage wird als einzelne Sitzung ausgeführt.
Batchvorhersagen Verwenden Sie Batchvorhersagen, wenn Sie externe Daten haben, die Sie in das Modell einfügen möchten, um sie als Grundlage für Vorhersagen zu verwenden. Um Vorhersagen für einen ganzen Satz von Daten zu erstellen, ordnen Sie die Daten in der externen Quelle den Spalten im Modell zu, und geben Sie dann den Typ der prädiktiven Daten an, die Sie ausgeben möchten.

Die Abfrage für das gesamte Dataset wird in einer einzigen Sitzung ausgeführt, wodurch diese Option wesentlich effizienter ist als das Senden mehrerer wiederholter Abfragen.
Zeitreihenvorhersagen Verwenden Sie eine Zeitreihenabfrage, wenn Sie einen Wert über eine bestimmte Anzahl zukünftiger Schritte vorhersagen möchten. SQL Server Data Mining bietet auch die folgenden Funktionen in Zeitreihenabfragen:

Sie können ein vorhandenes Modell erweitern, indem Sie neue Daten als Teil der Abfrage hinzufügen und Vorhersagen basierend auf der zusammengesetzten Datenreihe erstellen.

Sie können ein vorhandenes Modell auf eine neue Datenreihe anwenden, indem Sie die Option REPLACE_MODEL_CASES verwenden.

Sie können Kreuzvorhersagen durchführen.

In den folgenden Abschnitten werden die allgemeine Syntax von Vorhersageabfragen, die verschiedenen Arten von Vorhersageabfragen und das Arbeiten mit den Ergebnissen von Vorhersageabfragen beschrieben.

Entwurf einer grundlegenden Vorhersageabfrage

Arbeiten mit den Ergebnissen von Abfragen

Entwurf einer grundlegenden Vorhersageabfrage

Wenn Sie eine Vorhersage erstellen, stellen Sie in der Regel einige neue Daten bereit und bitten das Modell, eine Vorhersage basierend auf den neuen Daten zu generieren.

  • In einer Batchvorhersageabfrage ordnen Sie das Modell einer externen Datenquelle mithilfe einer Vorhersage-Verknüpfung zu.

  • In einer Singleton-Vorhersageabfrage geben Sie einen oder mehrere Werte ein, die als Eingaben verwendet werden sollen. Sie können mehrere Vorhersagen mithilfe einer Singleton-Vorhersageabfrage erstellen. Wenn Sie jedoch viele Vorhersagen erstellen müssen, ist die Leistung beim Verwenden einer Batchabfrage besser.

Sowohl Singleton- als auch Batchvorhersageabfragen verwenden PREDICTION JOIN, um die neuen Daten zu definieren. Der Unterschied liegt darin, wie die Eingabeseite bei einer Prognoseverbindung spezifiziert wird.

  • In einer Batchvorhersageabfrage stammen die Daten aus einer externen Datenquelle, die mithilfe der OPENQUERY-Syntax angegeben wird.

  • In einer Singleton-Vorhersageabfrage werden die Daten als Teil der Abfrage inline bereitgestellt.

Für Zeitreihenmodelle sind eingabedaten nicht immer erforderlich; Es ist möglich, Vorhersagen mit nur den Daten zu erstellen, die bereits im Modell vorhanden sind. Wenn Sie jedoch neue Eingabedaten angeben, müssen Sie entscheiden, ob Sie die neuen Daten zum Aktualisieren und Erweitern des Modells verwenden oder die ursprüngliche Datenreihe ersetzen möchten, die im Modell verwendet wurde. Weitere Informationen zu diesen Optionen finden Sie unter "Abfragebeispiele für Zeitreihenmodell".

Hinzufügen von Vorhersagefunktionen

Zusätzlich zur Vorhersage eines Werts können Sie eine Vorhersageabfrage anpassen, um verschiedene Arten von Informationen zurückzugeben, die mit der Vorhersage zusammenhängen. Wenn die Vorhersage beispielsweise eine Liste von Produkten erstellt, die einem Kunden empfohlen werden sollen, können Sie auch die Wahrscheinlichkeit für jede Vorhersage zurückgeben, damit Sie sie bewerten und nur die wichtigsten Empfehlungen für den Benutzer darstellen können.

Dazu fügen Sie der Abfrage Vorhersagefunktionen hinzu. Jedes Modell oder Abfragetyp unterstützt bestimmte Funktionen. Clusteringmodelle unterstützen z. B. spezielle Vorhersagefunktionen, die zusätzliche Details zu den durch das Modell erstellten Clustern bereitstellen, während Zeitreihenmodelle Funktionen haben, die Unterschiede im Laufe der Zeit berechnen. Es gibt auch allgemeine Vorhersagefunktionen, die mit fast allen Modelltypen funktionieren. Eine Liste der Vorhersagefunktionen, die in verschiedenen Arten von Abfragen unterstützt werden, finden Sie in diesem Thema in der DMX-Referenz: Allgemeine Vorhersagefunktionen (DMX).

Erstellen von Singleton-Vorhersageabfragen

Eine Singleton-Vorhersageabfrage ist nützlich, wenn Sie schnelle Vorhersagen in Echtzeit erstellen möchten. Ein häufiges Szenario könnte sein, dass Sie Informationen von einem Kunden erhalten haben, z. B. mithilfe eines Formulars auf einer Website, und Sie möchten diese Daten als Eingabe an eine Singleton-Vorhersageabfrage übermitteln. Wenn ein Kunde z. B. ein Produkt aus einer Liste auswäht, können Sie diese Auswahl als Eingabe für eine Abfrage verwenden, die die besten Produkte vorhersagt, die empfohlen werden sollen.

Singleton-Vorhersageabfragen erfordern keine separate Tabelle, die Eingaben enthält. Stattdessen geben Sie eine oder mehrere Wertezeilen als Eingabe für das Modell an, und die Vorhersagen werden in Echtzeit zurückgegeben.

Warnung

Trotz des Namens machen Singleton-Vorhersageabfragen nicht nur einzelne Vorhersagen– Sie können für jeden Satz von Eingaben mehrere Vorhersagen generieren. Sie stellen mehrere Eingabefälle bereit, indem Sie eine SELECT-Anweisung für jeden Eingabefall erstellen und mit dem UNION-Operator kombinieren.

Wenn Sie eine Singleton-Vorhersageabfrage erstellen, müssen Sie dem Modell die neuen Daten in Form eines PREDICTION JOIN bereitstellen. Dies bedeutet, dass Sie, auch wenn Sie keine tatsächliche Tabelle zuordnen, sicherstellen müssen, dass die neuen Daten den vorhandenen Spalten im Miningmodell entsprechen. Wenn die neuen Datenspalten und die neuen Daten exakt übereinstimmen, ordnet Analysis Services die Spalten für Sie zu. Dies wird als NATURAL PREDICTION JOIN bezeichnet. Wenn die Spalten jedoch nicht übereinstimmen oder die neuen Daten nicht die gleiche Art und Menge von Daten enthalten, die sich im Modell befinden, müssen Sie angeben, welche Spalten im Modell den neuen Daten zugeordnet sind, oder die fehlenden Werte angeben.

Abfragen zur Batch-Vorhersage

Eine Batchvorhersageabfrage ist nützlich, wenn Sie externe Daten haben, die Sie bei der Erstellung von Vorhersagen verwenden möchten. Beispielsweise haben Sie möglicherweise ein Modell erstellt, das Kunden nach ihrer Onlineaktivität und ihrem Einkaufsverlauf kategorisiert. Sie können dieses Modell auf eine Liste neu erworbener Leads anwenden, Projektionen für Verkäufe erstellen oder Ziele für vorgeschlagene Kampagnen identifizieren.

Wenn Sie eine Vorhersageverbindung durchführen, müssen Sie die Spalten des Modells den Spalten in der neuen Datenquelle zuordnen. Daher muss die Datenquelle, die Sie für eine Eingabe auswählen, Daten enthalten, die den Daten im Modell etwas ähneln. Die neuen Informationen müssen nicht exakt übereinstimmen und können unvollständig sein. Angenommen, das Modell wurde mit Informationen über Einkommen und Alter trainiert, aber die Kundenliste, die Sie für Vorhersagen verwenden, enthält das Alter, aber keine Angaben zum Einkommen. In diesem Szenario könnten Sie dem Modell weiterhin die neuen Daten zuordnen und für jeden Kunden eine Vorhersage erstellen. Wenn das Einkommen jedoch ein wichtiger Vorhersager für das Modell war, würde sich das Fehlen vollständiger Informationen auf die Qualität der Vorhersagen auswirken.

Um die besten Ergebnisse zu erzielen, sollten Sie so viele der übereinstimmenden Spalten wie möglich zwischen den neuen Daten und dem Modell verknüpfen. Die Abfrage wird jedoch erfolgreich ausgeführt, auch wenn keine Übereinstimmungen vorhanden sind. Wenn keine Spalten verknüpft sind, gibt die Abfrage die Marginalvorhersage zurück, die der Anweisung SELECT <predictable-column> FROM <model> ohne eine PREDICTION JOIN-Klausel entspricht.

Nachdem Sie alle relevanten Spalten erfolgreich zugeordnet haben, führen Sie die Abfrage aus, und Analysis Services erstellt Vorhersagen für jede Zeile in den neuen Daten basierend auf Mustern im Modell. Sie können die Ergebnisse wieder in einer neuen Tabelle in der Datenquellenansicht speichern, die die externen Daten enthält, oder Sie können die Daten kopieren und einfügen, indem Sie SQL Server Data Tools (SSDT) oder SQL Server Management Studio verwenden.

Warnung

Wenn Sie den Designer in SQL Server Data Tools (SSDT) verwenden, muss die externe Datenquelle zuerst als Datenquellenansicht definiert werden.

Wenn Sie mithilfe von DMX eine Vorhersageverknüpfung erstellen, können Sie die externe Datenquelle mit den Befehlen OPENQUERY, OPENROWSET oder SHAPE angeben. Die Standardmethode für den Datenzugriff in den DMX-Vorlagen ist OPENQUERY. Informationen zu diesen Methoden finden Sie in <der Quelldatenabfrage>.

Vorhersagen in Zeitreihen-Mining-Modellen

Zeitreihenmodelle unterscheiden sich von anderen Modelltypen; Sie können entweder das Modell wie zum Erstellen von Vorhersagen verwenden, oder Sie können dem Modell neue Daten bereitstellen, um das Modell zu aktualisieren und Vorhersagen basierend auf aktuellen Trends zu erstellen. Wenn Sie neue Daten hinzufügen, können Sie angeben, wie die neuen Daten verwendet werden sollen.

  • Das Erweitern der Modellfälle bedeutet, dass Sie die neuen Daten zur vorhandenen Datenreihe im Zeitreihenmodell hinzufügen. Daher basieren Vorhersagen auf der neuen kombinierten Datenreihe. Diese Option eignet sich gut, wenn Sie einfach ein paar Datenpunkte zu einem vorhandenen Modell hinzufügen möchten.

    Angenommen, Sie haben ein vorhandenes Zeitreihenmodell, das auf die Umsatzdaten aus dem Vorjahr trainiert wurde. Nachdem Sie mehrere Monate neuer Umsatzdaten gesammelt haben, entscheiden Sie sich, Ihre Umsatzprognosen für das aktuelle Jahr zu aktualisieren. Sie können einen Vorhersagebeitritt erstellen, der das Modell aktualisiert, indem Sie neue Daten hinzufügen und das Modell erweitern, um neue Vorhersagen zu erstellen.

  • Das Ersetzen der Modellfälle bedeutet, dass Sie das trainierte Modell beibehalten, aber die zugrunde liegenden Fälle durch eine neue Gruppe von Falldaten ersetzen. Diese Option ist nützlich, wenn Sie den Trend im Modell beibehalten möchten, sie aber auf eine andere Datenmenge anwenden.

    Ihr ursprüngliches Modell könnte beispielsweise auf eine Reihe von Daten mit sehr hohen Verkaufsmengen geschult worden sein. Wenn Sie die zugrunde liegenden Daten durch eine neue Datenreihe (z. B. aus einem Speicher mit niedrigerem Umsatzvolumen) ersetzen, behalten Sie den Trend bei, aber die Vorhersagen beginnen mit den Werten in der Ersetzungsreihe.

Unabhängig davon, welcher Ansatz Sie verwenden, ist der Ausgangspunkt für Vorhersagen immer das Ende der ursprünglichen Datenreihe.

Weitere Informationen zum Erstellen von Prognoseverknüpfungen für Zeitreihenmodelle finden Sie unter Time Series Model Query Examples oder PredictTimeSeries (DMX).

Arbeiten mit den Ergebnissen einer Vorhersageabfrage

Die Optionen zum Speichern der Ergebnisse einer Data Mining-Vorhersageabfrage unterscheiden sich je nach Erstellung der Abfrage.

  • Wenn Sie eine Abfrage mithilfe des Vorhersageabfrage-Generators in SQL Server Management Studio oder SQL Server Data Tools (SSDT) erstellen, können Sie die Ergebnisse einer Vorhersageabfrage in einer vorhandenen Analysis Services-Datenquelle speichern. Weitere Informationen finden Sie unter Anzeigen und Speichern der Ergebnisse einer Vorhersageabfrage.

  • Wenn Sie Vorhersageabfragen mithilfe von QUERY im Abfragebereich von SQL Server Management Studio erstellen, können Sie die Abfrageausgabeoptionen verwenden, um die Ergebnisse in einer Datei oder im Bereich "Abfrageergebnisse" als Text oder in einem Raster zu speichern. Weitere Informationen finden Sie unter Abfrage- und Text-Editoren (SQL Server Management Studio).

  • Wenn Sie eine Vorhersageabfrage mit den Integration Services-Komponenten ausführen, kann die Aufgabe die Ergebnisse mithilfe eines verfügbaren ADO.NET-Verbindungs-Managers oder eines OLEDB-Verbindungs-Managers in eine Datenbank schreiben. Weitere Informationen finden Sie unter Data Mining Query Task.

Es ist wichtig zu verstehen, dass die Ergebnisse einer Vorhersageabfrage nicht wie die Ergebnisse einer Abfrage in einer relationalen Datenbank sind, die immer eine einzelne Zeile verwandter Werte zurückgibt. Jede DMX-­Prognosefunktion, die Sie einer Abfrage hinzufügen, gibt ein eigenes Rowset zurück. Wenn Sie also eine Vorhersage für einen einzelnen Fall vornehmen, kann das Ergebnis ein vorhergesagter Wert zusammen mit mehreren Spalten geschachtelter Tabellen sein, die zusätzliche Details enthalten.

Wenn Sie mehrere Funktionen in einer Abfrage kombinieren, werden die Rückgabeergebnisse als hierarchisches Rowset kombiniert. Zum Beispiel: Angenommen, Sie verwenden ein Zeitreihenmodell, um zukünftige Werte für den Verkaufsbetrag und die Verkaufsmenge vorherzusagen, indem Sie eine Abfrage wie diese DMX-Anweisung verwenden:

SELECT  
  PredictTimeSeries([Forecasting].[Amount]) as [PredictedAmount]  
, PredictTimeSeries([Forecasting].[Quantity]) as [PredictedQty]  
FROM  
  [Forecasting]  
  

Die Ergebnisse dieser Abfrage sind zwei Spalten, eine für jede vorhergesagte Datenreihe, wobei jede Zeile eine geschachtelte Tabelle mit den vorhergesagten Werten enthält:

PredictedAmount

$TIME Betrag
201101 172067.11
$TIME Betrag
201102 363390.68

Vorhergesagte Menge

$TIME Menge
201101 77
$TIME Menge
201102 260

Wenn Ihr Anbieter hierarchische Rowsets nicht verarbeiten kann, können Sie die Ergebnisse mithilfe des Schlüsselwortes FLATTEN in der Vorhersageabfrage abflachen. Weitere Informationen, einschließlich Beispiele für flache Zeilenmengen, finden Sie unter SELECT (DMX).

Siehe auch

Inhaltsabfragen (Data Mining)
Datendefinitionsabfragen (Data Mining)