Technische Referenz für den Microsoft Time Series-Algorithmus
Der Microsoft Time Series-Algorithmus umfasst zwei separate Algorithmen:
Der ARTXP-Algorithmus, der seit SQL Server 2005 im Produktumfang enthalten ist, wurde zur Vorhersage des nächsten wahrscheinlichen Werts in einer Reihe optimiert.
Der ARIMA-Algorithmus wurde in SQL Server 2008 hinzugefügt, um die Genauigkeit bei langfristigen Vorhersagen zu verbessern.
Standardmäßig verwendet Analysis Services jeden Algorithmus separat, um das Modell zu trainieren, und mischt dann die Ergebnisse, um die beste Vorhersage für eine variable Anzahl an Vorhersagen zu erzielen. Je nach Daten und Vorhersageanforderungen können Sie sich auch dazu entschließen, nur einen der Algorithmen zu verwenden. In SQL Server 2008 Enterprise können Sie auch den Grenzwert anpassen, mit dem die Mischung der Algorithmen während der Vorhersage gesteuert wird.
Dieses Thema enthält zusätzliche Informationen darüber, wie Sie die einzelnen Algorithmen implementieren und den Algorithmus durch Festlegen der Parameter anpassen können, um die Analyse und Vorhersageergebnisse zu optimieren.
Implementierung der Time Series-Algorithmen
Microsoft Research hat den ARTXP-Algorithmus entwickelt und dabei den Microsoft Decision Trees-Algorithmus als Grundlage verwendet. Dabei handelt es sich um ein autoregressives Strukturmodell zur Darstellung von periodischen Zeitreihendaten. Der ARTXP-Algorithmus setzt eine variable Anzahl von Vergangenheitselementen mit jedem aktuellen Element, das vorhergesagt wird, in Beziehung. Der Name ARTXP leitet sich von der Tatsache ab, dass der ART-Algorithmus (Autoregressive Tree Method) auf mehrere unbekannte frühere Zustände angewendet wird. Eine ausführliche Erklärung des ARTXP-Algorithmus finden Sie unter Autoregressive Tree Models for Time-Series Analysis.
Der ARIMA-Algorithmus wird für die langfristige Vorhersage verwendet. Es handelt sich um eine Implementierung des ARIMA-Algorithmus, der von Box und Jenkins entwickelt wurde. ARIMA (Autoregressive Integrated Moving Average) ist eine bekannte Methode zum Bestimmen von Abhängigkeiten bei Beobachtungen in einer Zeitreihe. Die Methode unterstützt auch multiplizierende Saisonabhängigkeit. Der ARIMA-Algorithmus basiert auf den Konzepten von Autoregression und gleitendem Durchschnitt.
Der ARTXP-Algorithmus unterstützt Kreuzvorhersagen, der ARIMA-Algorithmus jedoch nicht. Daher ist die Kreuzvorhersage nur möglich, wenn Sie eine Mischung verschiedener Algorithmen verwenden oder das Modell so konfigurieren, dass nur ARTXP verwendet wird.
Anpassen des Microsoft Time Series-Algorithmus
Der Microsoft Time Series-Algorithmus unterstützt mehrere Parameter, die sich auf das Verhalten, die Leistung und die Genauigkeit des resultierenden Miningmodells auswirken.
Erkennen der Saisonabhängigkeit
Beide Algorithmen unterstützen die Erkennung der Saisonabhängigkeit oder Periodizität. Analysis Services verwendet die schnelle Fourier-Transformation, um die Saisonabhängigkeit vor dem Training zu ermitteln.
Um die besten Ergebnisse zu erzielen, können Sie die Saisonabhängigkeitserkennung steuern, indem Sie Algorithmusparameter festlegen. Indem Sie den Wert AUTODETECT_SEASONALITY ändern, können Sie die mögliche Anzahl an erstellten Zeitsegmenten beeinflussen. Wenn Sie einen Wert oder mehrere Werte für PERIODICITY_HINT festlegen, können Sie für den Algorithmus Informationen zu bekannten Wiederholungszeiträumen bereitstellen und die Erkennungsgenauigkeit verbessern.
Hinweis |
---|
Sowohl der ARTXP- als auch der ARIMA-Algorithmus sind empfindlich gegenüber Saisonabhängigkeitshinweisen. Die Bereitstellung des falschen Hinweises kann die Ergebnisse negativ beeinflussen. |
Mischen von Algorithmen
Standardmäßig kombiniert und gewichtet Analysis Services die Algorithmen gleichmäßig. In SQL Server 2008 Enterprise können Sie jedoch die Kombination der Ergebnisse anpassen, indem Sie die Option MIXED auswählen und einen Parameter festlegen, der die Ergebnisse für die kurz- oder langfristige Vorhersage gewichtet.
Wenn Sie eine Kreuzvorhersage verwenden möchten, müssen Sie die Option ARTXP oder MIXED verwenden, da ARIMA keine Kreuzvorhersagen unterstützt.
Um die Auswahl der Algorithmen zu steuern, müssen Sie den FORECAST_METHOD-Parameter festlegen. Standardmäßig ist der FORECAST_METHOD-Parameter auf MIXED festgelegt, und Analysis Services verwendet beide Algorithmen und gewichtet dann ihre Werte, um die Stärken der einzelnen Algorithmen zu maximieren. Sie können den FORECAST_METHOD-Parameter jedoch auf ARTXP festlegen, wenn Sie nur den ARTXP-Algorithmus verwenden möchten, oder auf ARIMA, wenn Sie nur den ARIMA-Algorithmus verwenden möchten.
In SQL Server 2008 Enterprise können Sie auch anpassen, wie Analysis Services die ARIMA- und ARTXP-Algorithmen kombiniert. Sie können sowohl den Anfangspunkt der Mischung als auch die Änderungsrate steuern, indem Sie den PREDICTION_SMOOTHING-Parameter festlegen:
Wenn Sie PREDICTION_SMOOTHING auf 0 festlegen, wird das Modell in ein reines ARTXP-Modell geändert.
Wenn Sie PREDICTION_SMOOTHING auf 1 setzen, wird das Modell in ein reines ARIMA-Modell geändert.
Wenn set PREDICTION_SMOOTHING auf einen Wert zwischen 0 und 1 festgelegt wird, gewichtet das Modell den ARTXP-Algorithmus als eine exponentiell absteigende Funktion der Vorhersageschritte. Das Modell gewichtet den ARIMA-Algorithmus zugleich als das 1-Komplement der ARTXP-Gewichtung. Das Modell verwendet Normalisierung und eine Stabilisierungskonstante, um die Kurven zu glätten.
Wenn Sie bis zu 5 Zeitscheiben vorhersagen, ist ARTXP grundsätzlich fast immer die bessere Option. Wenn Sie jedoch die Anzahl der vorherzusagenden Zeitscheiben erhöhen, bietet ARIMA in der Regel eine bessere Leistung.
Das folgende Diagramm veranschaulicht, wie das Modell die Algorithmen kombiniert, wenn PREDICTION_SMOOTHING auf den Standardwert 0,5 gesetzt wird. ARIMA und ARTXP werden zuerst gleichmäßig gewichtet, mit zunehmender Anzahl an Vorhersageschritten wird ARIMA jedoch stärker gewichtet.
Das folgende Diagramm veranschaulicht hingegen die Mischung der Algorithmen, wenn PREDICTION_SMOOTHING auf 0,2 gesetzt wird. Für Schritt 0 gewichtet das Modell ARIMA als 0,2 und ARTXP als 0,8. Danach nimmt die Gewichtung von ARIMA exponentiell zu, und die Gewichtung von ARTXP nimmt exponentiell ab.
Festlegen von Algorithmusparametern
Die folgende Tabelle beschreibt die Parameter, die mit dem Microsoft Time Series-Algorithmus verwendet werden können.
Parameter |
Beschreibung |
---|---|
AUTO_DETECT_PERIODICITY |
Gibt einen numerischen Wert zwischen 0 und 1 an, der Periodizität erkennt. Die Standardeinstellung ist 0,6. Wenn der Wert näher bei 0 liegt, wird Periodizität nur bei stark periodischen Daten erkannt. Das Festlegen dieses Werts näher bei 1 begünstigt die Erkennung vieler fast periodischer Muster und die automatische Generierung von Periodizitätshinweisen.
Hinweis
Der Umgang mit einer großen Anzahl von Periodizitätshinweisen führt häufig zu erheblich längeren Modelltrainingszeiten, gleichzeitig jedoch auch zu genaueren Modellen.
|
COMPLEXITY_PENALTY |
Steuert das Anwachsen der Entscheidungsstruktur. Die Standardeinstellung ist 0,1. Das Verringern des Werts erhöht die Wahrscheinlichkeit einer Teilung. Das Erhöhen des Werts senkt die Wahrscheinlichkeit einer Teilung.
Hinweis
Dieser Parameter ist nur in SQL Server Enterprise verfügbar.
|
FORECAST_METHOD |
Gibt an, welcher Algorithmus für die Analyse und Vorhersage verwendet werden soll. Mögliche Werte sind ARTXP, ARIMA oder MIXED. Der Standard lautet MIXED. |
HISTORIC_MODEL_COUNT |
Gibt die Anzahl von Vergangenheitsmodellen an, die erstellt werden. Der Standard lautet 1.
Hinweis
Dieser Parameter ist nur in SQL Server Enterprise verfügbar.
|
HISTORICAL_MODEL_GAP |
Gibt die Zeitverzögerung zwischen zwei aufeinander folgenden Vergangenheitsmodellen an. Der Standardwert ist 10. Der Wert stellt eine Anzahl von Zeiteinheiten dar, wobei die Einheit vom Modell definiert wird. Wenn Sie z. B. diesen Wert auf g setzen, werden Vergangenheitsmodelle für Daten erstellt, die von Zeitscheiben in Intervallen von g, 2*g, 3*g usw. abgeschnitten werden.
Hinweis
Dieser Parameter ist nur in SQL Server Enterprise verfügbar.
|
INSTABILITY_SENSITIVITY |
Steuert den Punkt, bei dem die Vorhersagevarianz einen bestimmten Schwellenwert übersteigt und der ARTXP-Algorithmus die Vorhersagen unterdrückt. Der Standardwert ist 1.
Hinweis
Dieser Parameter gilt nur für ARTXP und gilt daher nicht für Modelle, die nur mit dem ARIMA-Algorithmus erstellt werden. Wenn er auf ein MIXED-Modell angewendet wird, gilt der Parameter nur für den ARTXP-Teil des Modells.
Der Standardwert 1 bietet für ARTXP-Modelle das gleiche Verhalten wie in SQL Server 2005. Analysis Services überwacht die normalisierte Standardabweichung für jede Vorhersage. Sobald die Standardabweichungen für eine Vorhersage den Schwellenwert überschreiten, gibt der Time Series-Algorithmus eine NULL zurück und beendet den Vorhersageprozess. Ein Wert von 0 beendet die Instabilitätserkennung. Dies bedeutet, dass Sie eine unendliche Anzahl von Vorhersagen erstellen können, unabhängig von der Varianz.
Hinweis
Dieser Parameter kann nur in SQL Server Enterprise geändert werden. In SQL Server Standard verwendet Analysis Services nur den Standardwert 1.
|
MAXIMUM_SERIES_VALUE |
Gibt den maximalen Wert an, der für Vorhersagen verwendet werden soll. Dieser Parameter wird zusammen mit MINIMUM_SERIES_VALUE verwendet, um die Vorhersagen auf einen erwarteten Bereich zu beschränken. Sie können beispielsweise festlegen, dass die vorhergesagte Verkaufsmenge an einem Tag niemals die Anzahl der Produkte im Lager überschreiten darf.
Hinweis
Dieser Parameter ist nur in SQL Server Enterprise verfügbar.
|
MINIMUM_SERIES_VALUE |
Gibt den minimalen Wert an, der vorhergesagt werden kann. Dieser Parameter wird zusammen mit MAXIMUM_SERIES_VALUE verwendet, um die Vorhersagen auf einen erwarteten Bereich zu beschränken. Zum Beispiel können Sie angeben, dass die vorhergesagte Verkaufsmenge nie eine negative Zahl sein darf.
Hinweis
Dieser Parameter ist nur in SQL Server Enterprise verfügbar.
|
MINIMUM_SUPPORT |
Gibt die Mindestanzahl von Zeitscheiben an, die erforderlich sind, um eine Teilung in jeder Zeitreihenstruktur zu generieren. Der Standardwert ist 10. |
MISSING_VALUE_SUBSTITUTION |
Gibt an, wie Lücken in Vergangenheitsdaten gefüllt werden. Standardmäßig sind Lücken in Daten nicht zulässig. Die folgende Tabelle enthält die möglichen Werte für diesen Parameter:
WertBeschreibung
PreviousWiederholt den Wert aus der vorherigen Zeitscheibe.
MeanVerwendet einen gleitenden Durchschnitt von im Training verwendeten Zeitscheiben.
Numeric constantVerwendet die festgelegte Anzahl, um alle fehlenden Werte zu ersetzen.
NoneErsetzt fehlende Werte mit Werten, die entlang der Kurve des trainierten Modells grafisch dargestellt werden. Dies ist der Standardwert.
Wenn die Daten mehrere Reihen enthalten, können die Reihen auch keine unregelmäßigen Ränder haben. Das heißt, alle Reihen sollten die gleichen Anfangs- und Endpunkte haben. Analysis Services verwendet ebenfalls den Wert dieses Parameters, um die Lücken in den neuen Daten zu füllen, wenn Sie PREDICTION JOIN für ein Zeitreihenmodell ausführen. |
PERIODICITY_HINT |
Stellt für den Algorithmus einen Periodizitätshinweis der Daten bereit. Beispiel: Wenn die Verkaufszahlen jahresabhängig variieren und als Maßeinheit für die Reihe Monate gewählt wurde, ist die Periodizität 12. Dieser Parameter weist das Format {n [, n]} auf, wobei n eine beliebige positive Zahl ist. Das n innerhalb der eckigen Klammern [] ist optional und kann so oft wie nötig wiederholt werden. Um beispielsweise mehrere Periodizitätshinweise für monatlich bereitgestellte Daten anzugeben, könnten Sie {12, 3, 1} eingeben, um für das Jahr, Quartal und den Monat Muster zu ermitteln. Die Periodizität hat jedoch starke Auswirkungen auf die Modellqualität. Wenn der von Ihnen gegebene Hinweis von der tatsächlichen Periodizität abweicht, können die Ergebnisse beeinträchtigt werden. Der Standardwert lautet {1}.
Hinweis
Die Klammern sind erforderlich. Dieser Parameter verfügt zudem über einen String-Datentyp. Wenn Sie daher diesen Parameter als Teil einer Data Mining Extensions (DMX)-Anweisung eingeben, müssen Sie die Nummer und Klammern in Anführungszeichen einschließen.
|
PREDICTION_SMOOTHING |
Gibt an, wie das Modell kombiniert werden sollte, um die Vorhersage zu optimieren. Sie können einen beliebigen Wert zwischen 0 und 1 eingeben oder die folgenden Werte verwenden:
Hinweis
Verwenden Sie den FORECAST_METHOD-Parameter, um das Training zu steuern.
WertBeschreibung
0Gibt an, dass diese Vorhersage nur ARTXP verwendet. Das Forecasting ist für weniger Vorhersagen optimiert.
1Gibt an, dass diese Vorhersage nur ARIMA verwendet. Das Forecasting ist für viele Vorhersagen optimiert.
0.5(Standard) Gibt an, dass für die Vorhersage beide Algorithmen verwendet und die Ergebnisse gemischt werden sollen.
Hinweis
Dieser Parameter ist nur in SQL Server Enterprise verfügbar.
|
Modellierungsflags
Der Microsoft Time Series-Algorithmus unterstützt folgende Modellierungsflags. Wenn Sie die Miningstruktur oder das Miningmodell erstellen, definieren Sie Modellierungsflags, die angeben, wie die Werte in den einzelnen Spalten während der Analyse behandelt werden. Weitere Informationen finden Sie unter Modellierungsflags (Data Mining).
Modellierungsflag |
Beschreibung |
---|---|
NOT NULL |
Gibt an, dass die Spalte keinen NULL-Wert enthalten kann. Ein Fehler tritt auf, wenn Analysis Services während des Modelltrainings einen NULL-Wert erkennt. Gilt für die Miningstrukturspalten. |
MODEL_EXISTENCE_ONLY |
Dies bedeutet, dass die Spalte zwei mögliche Statuswerte haben kann: Missing und Existing. Ein NULL-Wert ist ein fehlender Wert. Gilt für die Miningmodellspalten. |
Anforderungen
Ein Zeitreihenmodell muss eine Schlüsselzeitspalte enthalten, die eindeutige Werte, Eingabespalten und mindestens eine vorhersagbare Spalte umfasst.
Eingabespalten und vorhersagbare Spalten
Der Microsoft Time Series-Algorithmus unterstützt Eingabespalten und vorhersagbare Eingabespalten eines bestimmten Inhaltstyps und Modellierungsflags. Diese Elemente sind in der folgenden Tabelle aufgeführt.
Spalte |
Inhaltstypen |
---|---|
Eingabeattribut |
Kontinuierlich, Schlüssel, Schlüsselzeit und Tabelle |
Vorhersagbares Attribut |
Kontinuierlich, Tabelle |
Hinweis |
---|
Zyklische und sortierte Inhaltstypen werden unterstützt, der Algorithmus behandelt sie jedoch als diskrete Werte und führt keine spezielle Verarbeitung durch. |