Automatisches Trainieren eines Modells für die ZeitreihenprognoseAuto-train a time-series forecast model

GILT FÜR: JaBasic-Edition JaEnterprise-Edition                    (Upgrade auf Enterprise-Edition)APPLIES TO: yesBasic edition yesEnterprise edition                    (Upgrade to Enterprise edition)

In diesem Artikel erfahren Sie, wie Sie ein Regressionsmodell für die Zeitreihenprognose mit automatisiertem maschinellem Lernen in Azure Machine Learning konfigurieren und trainieren.In this article, you learn how to configure and train a time-series forecasting regression model using automated machine learning in Azure Machine Learning.

Das Konfigurieren eines Vorhersagemodells ähnelt zwar der Einrichtung eines Standard-Regressionsmodells mit automatisiertem maschinellem Lernen, die Verwendung von Zeitreihendaten erfordert jedoch bestimmte Konfigurationsoptionen und Vorverarbeitungsschritte.Configuring a forecasting model is similar to setting up a standard regression model using automated machine learning, but certain configuration options and pre-processing steps exist for working with time-series data.

Sie können beispielsweise konfigurieren, wie weit die Vorhersage in die Zukunft reichen soll (Vorhersagehorizont), und ob es Verzögerungen geben soll.For example, you can configure how far into the future the forecast should extend (the forecast horizon), as well as lags and more. Beim automatisierten maschinellen Lernen wird ein zwar einfaches, aber häufig in interne Verzweigungen unterteiltes Modell für alle Elemente im Dataset und in den Vorhersagehorizonten erlernt.Automated ML learns a single, but often internally branched model for all items in the dataset and prediction horizons. Dadurch sind mehr Daten verfügbar, um Modellparameter zu schätzen, und die Generalisierung von unbekannten Reihen wird möglich.More data is thus available to estimate model parameters and generalization to unseen series becomes possible.

In den Beispielen dieses Artikels wird Folgendes gezeigt:The following examples show you how to:

  • Vorbereiten von Daten für die ZeitreihenmodellierungPrepare data for time series modeling
  • Konfigurieren spezifischer Zeitreihenparameter in einem Objekt vom Typ AutoMLConfigConfigure specific time-series parameters in an AutoMLConfig object
  • Ausführen von Vorhersagen mit ZeitreihendatenRun predictions with time-series data

Im Gegensatz zu klassischen Methoden für Zeitreihen werden beim automatisierten maschinellen Lernen Zeitreihenwerte aus der Vergangenheit „pivotiert“ und dienen so zusammen mit anderen Vorhersageelementen als zusätzliche Dimensionen für den Regressor.Unlike classical time series methods, in automated ML past time-series values are "pivoted" to become additional dimensions for the regressor together with other predictors. Dieser Ansatz umfasst mehrere Kontextvariablen und deren Beziehung zueinander beim Training.This approach incorporates multiple contextual variables and their relationship to one another during training. Da sich mehrere Faktoren auf eine Vorhersage auswirken können, richtet sich diese Methode gut an realen Vorhersageszenarios aus.Since multiple factors can influence a forecast, this method aligns itself well with real world forecasting scenarios. Wenn z. B. Verkaufszahlen vorhergesagt werden sollen, wird das Ergebnis auf der Grundlage von Interaktionen von Trends aus der Vergangenheit, des Wechselkurses und des Preises berechnet.For example, when forecasting sales, interactions of historical trends, exchange rate and price all jointly drive the sales outcome.

Features, die aus den Trainingsdaten extrahiert werden, spielen eine wichtige Rolle.Features extracted from the training data play a critical role. Zudem werden beim automatisierten maschinellen Lernen einige Standardschritte für die Vorverarbeitung durchgeführt, und es werden zusätzliche Zeitreihenfeatures generiert, um saisonale Auswirkungen zu erfassen und die Vorhersage so genau wie möglich zu gestalten.And, automated ML performs standard pre-processing steps and generates additional time-series features to capture seasonal effects and maximize predictive accuracy

Zeitreihen- und Deep Learning-ModelleTime-series and deep learning models

Deep Learning mit automatisiertem maschinellem Lernen ermöglicht das Vorhersagen von ein- und mehrdimensionalen Zeitreihendaten.Automated ML's deep learning allows for forecasting univariate and multivariate time series data.

Deep Learning-Modelle weisen drei intrinsische Funktionen auf:Deep learning models have three intrinsic capabilities:

  1. Sie können von beliebigen Zuordnungen von Eingaben zu Ausgaben lernen.They can learn from arbitrary mappings from inputs to outputs
  2. Sie unterstützen mehrere Eingaben und Ausgaben.They support multiple inputs and outputs
  3. Sie können automatisch Muster in Eingabedaten extrahieren, die lange Folgen umfassen.They can automatically extract patterns in input data that spans over long sequences

Mit größeren Daten können Deep Learning-Modelle wie ForecastTCN von Microsoft die Scores des resultierenden Modells verbessern.Given larger data, deep learning models, such as Microsoft's ForecastTCN, can improve the scores of the resulting model. Erfahren Sie, wie Sie Ihr Experiment für Deep Learning konfigurieren.Learn how to configure your experiment for deep learning.

Automatisiertes maschinelles Lernen bietet Benutzern sowohl native Zeitreihen- als auch Deep Learning-Modelle als Teil des Empfehlungssystems.Automated ML provides users with both native time-series and deep learning models as part of the recommendation system.

ModelleModels BESCHREIBUNGDescription VorteileBenefits
Prophet (Vorschauversion)Prophet (Preview) Prophet funktioniert am besten mit Zeitreihen, die starke saisonale Effekte aufweisen und viele Saisons von historischen Daten umfassen.Prophet works best with time series that have strong seasonal effects and several seasons of historical data. Schnell und genau, stabil gegenüber Ausreißern, fehlenden Daten und dramatischen Änderungen in den ZeitreihenAccurate & fast, robust to outliers, missing data, and dramatic changes in your time series.
Auto-ARIMA (Vorschauversion)Auto-ARIMA (Preview) Die ARIMA-Methode (autoregressiver integrierter gleitender Mittelwert) erzielt die optimale Leistung, wenn die Daten stationär sind.AutoRegressive Integrated Moving Average (ARIMA) performs best, when the data is stationary. Das bedeutet, dass die statistischen Eigenschaften wie der Mittelwert und Varianz für das gesamte Dataset konstant sind.This means that its statistical properties like the mean and variance are constant over the entire set. Wenn Sie beispielsweise eine Münze werfen, ist Ihre Wahrscheinlichkeit für Kopf 50 %, ganz egal, ob Sie die Münze heute, morgen oder im nächsten Jahr werfen.For example, if you flip a coin, then the probability of you getting heads is 50%, regardless if you flip today, tomorrow or next year. Dies eignet sich für univariate Reihen, da vergangene Werte für die Vorhersage zukünftiger Werte verwendet werden.Great for univariate series, since the past values are used to predict the future values.
ForecastTCN (Preview)ForecastTCN (Preview) ForecastTCN ist ein neuronales Netzwerkmodell, das für die aufwändigsten Vorhersageaufgaben konzipiert wurde und nicht lineare lokale und globale Trends in Ihren Daten sowie Beziehungen zwischen Zeitreihen erfasst.ForecastTCN is a neural network model designed to tackle the most demanding forecasting tasks, capturing nonlinear local and global trends in your data as well as relationships between time series. Es kann komplexe Trends in Ihren Daten nutzen und problemlos auf die größten Datasets skaliert werden.Capable of leveraging complex trends in your data and readily scales to the largest of datasets.

VoraussetzungenPrerequisites

  • Ein Azure Machine Learning-Arbeitsbereich.An Azure Machine Learning workspace. Informationen zum Erstellen des Arbeitsbereichs finden Sie unter Erstellen eines Azure Machine Learning-Arbeitsbereichs.To create the workspace, see Create an Azure Machine Learning workspace.
  • In diesem Artikel werden Grundkenntnisse im Zusammenhang mit der Einrichtung eines Experiments mit automatisiertem maschinellem Lernen vorausgesetzt.This article assumes basic familiarity with setting up an automated machine learning experiment. Machen Sie sich anhand des Tutorials oder der Anleitung mit den grundlegenden Entwurfsmustern vertraut.Follow the tutorial or how-to to see the basic automated machine learning experiment design patterns.

Aufbereiten der DatenPreparing data

Der wichtigste Unterschied zwischen einem Regressionsaufgabentyp für die Vorhersage und einem regulären Regressionsaufgabentyp innerhalb des automatisierten maschinellen Lernens liegt in der Einbeziehung eines Features in Ihre Daten, das eine gültige Zeitreihe darstellt.The most important difference between a forecasting regression task type and regression task type within automated machine learning is including a feature in your data that represents a valid time series. Eine reguläre Zeitreihe besitzt ein klar definiertes und konsistentes Intervall sowie einen Wert an jedem Stichprobenpunkt in einem ununterbrochenen Zeitraum.A regular time series has a well-defined and consistent frequency and has a value at every sample point in a continuous time span. Betrachten Sie die folgende Momentaufnahme der Datei sample.csv:Consider the following snapshot of a file sample.csv.

day_datetime,store,sales_quantity,week_of_year
9/3/2018,A,2000,36
9/3/2018,B,600,36
9/4/2018,A,2300,36
9/4/2018,B,550,36
9/5/2018,A,2100,36
9/5/2018,B,650,36
9/6/2018,A,2400,36
9/6/2018,B,700,36
9/7/2018,A,2450,36
9/7/2018,B,650,36

Dieses Dataset ist ein einfaches Beispiel für die täglichen Verkaufsdaten eines Unternehmens mit zwei Filialen: A und B. Darüber hinaus ist ein Feature für week_of_year vorhanden, das dem Modell die Erkennung der wöchentlichen Saisonalität ermöglicht.This data set is a simple example of daily sales data for a company that has two different stores, A and B. Additionally, there is a feature for week_of_year that will allow the model to detect weekly seasonality. Das Feld day_datetime stellt eine bereinigte Zeitreihe mit täglichem Intervall dar. Das Feld sales_quantity ist die Zielspalte für laufende Vorhersagen.The field day_datetime represents a clean time series with daily frequency, and the field sales_quantity is the target column for running predictions. Lesen Sie die Daten in einen Pandas-Datenrahmen ein, und verwenden Sie anschließend die Funktion to_datetime, um sicherzustellen, dass eine Zeitreihe vom Typ datetime verwendet wird.Read the data into a Pandas dataframe, then use the to_datetime function to ensure the time series is a datetime type.

import pandas as pd
data = pd.read_csv("sample.csv")
data["day_datetime"] = pd.to_datetime(data["day_datetime"])

In diesem Fall sind die Daten bereits aufsteigend nach dem Zeitfeld day_datetime sortiert.In this case, the data is already sorted ascending by the time field day_datetime. Bei der Einrichtung eines Experiments muss jedoch darauf geachtet werden, dass die gewünschte Zeitspalte in aufsteigender Reihenfolge sortiert wird, um eine gültige Zeitreihe zu erstellen.However, when setting up an experiment, ensure the desired time column is sorted in ascending order to build a valid time series. Nehmen Sie an, die Daten umfassen 1.000 Datensätze, und teilen Sie die Daten deterministisch auf, um Trainings- und Testdatasets zu erstellen.Assume the data contains 1,000 records, and make a deterministic split in the data to create training and test data sets. Bestimmen Sie den Spaltennamen der Bezeichnung, und legen Sie ihn auf die Bezeichnung fest.Identify the label column name and set it to label. In diesem Beispiel lautet die Bezeichnung sales_quantity.In this example, the label will be sales_quantity. Trennen Sie dann das Bezeichnungsfeld von test_data, um die test_target-Menge zu bilden.Then separate the label field from test_data to form the test_target set.

train_data = data.iloc[:950]
test_data = data.iloc[-50:]

label =  "sales_quantity"
 
test_labels = test_data.pop(label).values

Hinweis

Stellen Sie beim Trainieren eines Modells für die Vorhersage zukünftiger Werte sicher, dass alle während des Trainings verwendeten Features beim Ausführen von Vorhersagen für Ihren gewünschten Vorhersagehorizont verwendet werden können.When training a model for forecasting future values, ensure all the features used in training can be used when running predictions for your intended horizon. Wenn Sie also beispielsweise eine Nachfrageprognose erstellen, lässt sich die Trainingsgenauigkeit durch die Einbeziehung eines Features für den aktuellen Aktienkurs erheblich verbessern.For example, when creating a demand forecast, including a feature for current stock price could massively increase training accuracy. Wenn Sie bei Ihrer Vorhersage allerdings einen Vorhersagehorizont verwenden, der weit in der Zukunft liegt, lassen sich zukünftige Aktienkurse für zukünftige Zeitreihenpunkte ggf. nicht präzise vorhersagen, was sich nachteilig auf die Modellgenauigkeit auswirken kann.However, if you intend to forecast with a long horizon, you may not be able to accurately predict future stock values corresponding to future time-series points, and model accuracy could suffer.

Trainings- und ÜberprüfungsdatenTrain and validation data

Sie können separate Datensätze für Training und Überprüfung direkt im AutoMLConfig-Konstruktor angeben.You can specify separate train and validation sets directly in the AutoMLConfig constructor.

Kreuzvalidierung mit rollierendem UrsprungRolling Origin Cross Validation

Die ROCV (Kreuzvalidierung mit rollierendem Ursprung) wird bei der Zeitreihenvorhersage verwendet, um Zeitreihen auf temporal konsistente Weise zu trennen.For time series forecasting Rolling Origin Cross Validation (ROCV) is used to split time series in a temporally consistent way. Die ROCV teilt die Reihe in Trainings- und Validierungsdaten mit einem Ursprungszeitpunkt auf.ROCV divides the series into training and validation data using an origin time point. Wenn der Ursprung zeitlich verschoben wird, werden Teilmengen für die Kreuzvalidierung erstellt.Sliding the origin in time generates the cross-validation folds.

alt text

Mit dieser Strategie wird die Datenintegrität von Zeitreihen beibehalten und das Risiko von Datenlecks vermieden.This strategy will preserve the time series data integrity and eliminate the risk of data leakage. Die ROCV wird automatisch für Vorhersageaufgaben verwendet, indem die Trainings- und Validierungsdaten gemeinsam übergeben und die Anzahl der Teilmengen für die Kreuzvalidierung mithilfe von n_cross_validations festgelegt wird.ROCV is automatically used for forecasting tasks by passing the training and validation data together and setting the number of cross validation folds using n_cross_validations.

automl_config = AutoMLConfig(task='forecasting',
                             n_cross_validations=3,
                             ...
                             **time_series_settings)

Erfahren Sie mehr über AutoMLConfig.Learn more about the AutoMLConfig.

Konfigurieren und Ausführen des ExperimentsConfigure and run experiment

Bei Vorhersageaufgaben nutzt das automatisierte maschinelle Lernen spezifische Vorverarbeitungs- und Schätzschritte für Zeitreihendaten.For forecasting tasks, automated machine learning uses pre-processing and estimation steps that are specific to time-series data. Folgende Vorverarbeitungsschritte werden ausgeführt:The following pre-processing steps will be executed:

  • Erkennen des Intervalls der Zeitreihenstichprobe (z. B. stündlich, täglich, wöchentlich) und Erstellen neuer Datensätze für fehlende Zeitpunkte, um eine ununterbrochene Reihe zu erhalten.Detect time-series sample frequency (for example, hourly, daily, weekly) and create new records for absent time points to make the series continuous.
  • Imputieren fehlender Werte in der Zielspalte (mittels Forward-Fill) und der Featurespalte (mittels Median-Spaltenwerten)Impute missing values in the target (via forward-fill) and feature columns (using median column values)
  • Erstellen granularitätsbasierter Features, um reihenübergreifend feste Effekte zu ermöglichenCreate grain-based features to enable fixed effects across different series
  • Erstellen zeitbasierter Features zur Ermittlung saisonaler MusterCreate time-based features to assist in learning seasonal patterns
  • Codieren kategorischer Variablen zu numerischen MengenEncode categorical variables to numeric quantities

Das Objekt AutoMLConfig definiert die erforderlichen Einstellungen und Daten für eine Aufgabe mit automatisiertem maschinellen Lernen.The AutoMLConfig object defines the settings and data necessary for an automated machine learning task. Sie definieren Standardtrainingsparameter wie Aufgabentyp, Iterationsanzahl, Trainingsdaten und Anzahl von Kreuzvalidierungen (ähnlich wie bei einem Regressionsproblem).Similar to a regression problem, you define standard training parameters like task type, number of iterations, training data, and number of cross-validations. Bei Vorhersageaufgaben müssen allerdings noch weitere Parameter für das Experiment festgelegt werden.For forecasting tasks, there are additional parameters that must be set that affect the experiment. In der folgenden Tabelle werden die einzelnen Parameter sowie deren Verwendung erläutert:The following table explains each parameter and its usage.

Parametername Parameter name BESCHREIBUNGDescription ErforderlichRequired
time_column_name Dient zum Angeben der Datetime-Spalte in den Eingabedaten, die zum Erstellen der Zeitreihe sowie zum Ableiten des Intervalls verwendet wird.Used to specify the datetime column in the input data used for building the time series and inferring its frequency.
grain_column_names Namen zum Definieren individueller Reihengruppen in den Eingabedaten.Name(s) defining individual series groups in the input data. Ohne definierte Granularität wird bei dem Dataset von einer einzelnen Zeitreihe ausgegangen.If grain is not defined, the data set is assumed to be one time-series.
max_horizon Definiert den maximal gewünschten Vorhersagehorizont in Einheiten von Zeitreihen.Defines the maximum desired forecast horizon in units of time-series frequency. Die Einheiten basieren auf dem Zeitintervall Ihrer Trainingsdaten, z. B. monatlich oder wöchentlich, die vorhergesagt werden sollen.Units are based on the time interval of your training data, for example, monthly, weekly that the forecaster should predict out.
target_lags Anzahl der Zeilen, um die die Zielwerte basierend auf der Häufigkeit der Daten verzögert werden sollen.Number of rows to lag the target values based on the frequency of the data. Diese Verzögerung wird als Liste oder als einzelner Integer dargestellt.The lag is represented as a list or single integer. Die Verzögerung sollte verwendet werden, wenn die Beziehung zwischen den unabhängigen Variablen und der abhängigen Variable standardmäßig nicht übereinstimmt oder korreliert.Lag should be used when the relationship between the independent variables and dependent variable doesn't match up or correlate by default. Wenn Sie beispielsweise versuchen, die Nachfrage nach einem Produkt vorherzusagen, hängt die Nachfrage in einem Monat möglicherweise vom Preis für bestimmte Produkte vor 3 Monaten ab.For example, when trying to forecast demand for a product, the demand in any month may depend on the price of specific commodities 3 months prior. In diesem Beispiel möchten Sie möglicherweise den Zielwert (Nachfrage) um 3 Monate negativ verzögern, sodass das Modell mit der richtigen Beziehung trainiert wird.In this example, you may want to lag the target (demand) negatively by 3 months so that the model is training on the correct relationship.
target_rolling_window_size n Historische Zeiträume zum Generieren der vorhergesagten Werte, < = Größe Trainingsmenge.n historical periods to use to generate forecasted values, <= training set size. Wenn nicht angegeben, ist n die vollständige Trainingsmenge.If omitted, n is the full training set size. Geben Sie diesen Parameter an, wenn Sie beim Trainieren des Modells nur eine bestimmte Menge des Verlaufs beachten möchten.Specify this parameter when you only want to consider a certain amount of history when training the model.
enable_dnn Aktivieren Sie Vorhersage-DNNs.Enable Forecasting DNNs.

Weitere Informationen finden Sie in der Referenzdokumentation.See the reference documentation for more information.

Erstellen Sie die Zeitreiheneinstellungen als Wörterbuchobjekt.Create the time-series settings as a dictionary object. Legen Sie time_column_name auf das Feld day_datetime im Dataset fest.Set the time_column_name to the day_datetime field in the data set. Definieren Sie den Parameter grain_column_names, um sicherzustellen, dass für die Daten zwei separate Zeitreihengruppen erstellt werden (jeweils eine für die Filialen A und B). Legen Sie abschließend max_horizon auf „50“ fest, um Vorhersagen für den gesamten Testsatz zu generieren.Define the grain_column_names parameter to ensure that two separate time-series groups are created for the data; one for store A and B. Lastly, set the max_horizon to 50 in order to predict for the entire test set. Legen Sie mit target_rolling_window_size ein Vorhersagefenster auf 10 Zeiträume fest, und geben Sie mit dem Parameter target_lags eine einzelne Verzögerung für das Ziel um zwei Zeiträume vorwärts an.Set a forecast window to 10 periods with target_rolling_window_size, and specify a single lag on the target values for two periods ahead with the target_lags parameter. Es wird empfohlen, max_horizon, target_rolling_window_size und target_lags auf „auto“ festzulegen, wodurch diese Werte automatisch für Sie erkannt werden.It is recommended to set max_horizon, target_rolling_window_size and target_lags to "auto" which will automatically detect these values for you. Im folgenden Beispiel wurden die „auto“-Einstellungen für diese Parameter verwendet.In the example below, "auto" settings have been used for these parameters.

time_series_settings = {
    "time_column_name": "day_datetime",
    "grain_column_names": ["store"],
    "max_horizon": "auto",
    "target_lags": "auto",
    "target_rolling_window_size": "auto",
    "preprocess": True,
}

Hinweis

Die Schritte zur Vorverarbeitung bei automatisiertem maschinellen Lernen (Featurenormalisierung, Behandlung fehlender Daten, Umwandlung von Text in numerische Daten usw.) werden Teil des zugrunde liegenden Modells.Automated machine learning pre-processing steps (feature normalization, handling missing data, converting text to numeric, etc.) become part of the underlying model. Bei Verwendung des Modells für Vorhersagen werden die während des Trainings angewendeten Vorverarbeitungsschritte automatisch auf Ihre Eingabedaten angewendet.When using the model for predictions, the same pre-processing steps applied during training are applied to your input data automatically.

Durch die Definition von grain_column_names im obigen Codeausschnitt erstellt AutoML zwei separate Zeitreihengruppen, die auch als mehrfache Zeitreihen bezeichnet werden.By defining the grain_column_names in the code snippet above, AutoML will create two separate time-series groups, also known as multiple time-series. Wenn keine Körnung definiert ist, geht AutoML davon aus, dass es sich bei dem Dataset um eine einzelne Zeitreihe handelt.If no grain is defined, AutoML will assume that the dataset is a single time-series. Weitere Informationen zu einzelnen Zeitreihen finden Sie unter energy_demand_notebook.To learn more about single time-series, see the energy_demand_notebook.

Erstellen Sie als Nächstes ein Standardobjekt vom Typ AutoMLConfig, geben Sie den Aufgabentyp forecasting an, und übermitteln Sie das Experiment.Now create a standard AutoMLConfig object, specifying the forecasting task type, and submit the experiment. Rufen Sie nach Fertigstellung des Modells die Iteration mit der besten Ausführung ab.After the model finishes, retrieve the best run iteration.

from azureml.core.workspace import Workspace
from azureml.core.experiment import Experiment
from azureml.train.automl import AutoMLConfig
import logging

automl_config = AutoMLConfig(task='forecasting',
                             primary_metric='normalized_root_mean_squared_error',
                             experiment_timeout_minutes=15,
                             enable_early_stopping=True,
                             training_data=train_data,
                             label_column_name=label,
                             n_cross_validations=5,
                             enable_ensembling=False,
                             verbosity=logging.INFO,
                             **time_series_settings)

ws = Workspace.from_config()
experiment = Experiment(ws, "forecasting_example")
local_run = experiment.submit(automl_config, show_output=True)
best_run, fitted_model = local_run.get_output()

Sehen Sie sich die Notebooks zum Vorhersagebeispiel an. Dort finden Sie ausführliche Codebeispiele zu einer erweiterten Vorhersagekonfiguration, einschließlich:See the forecasting sample notebooks for detailed code examples of advanced forecasting configuration including:

Konfigurieren eines DNN-fähigen VorhersageexperimentsConfigure a DNN enable Forecasting experiment

Hinweis

Die DNN-Unterstützung für Vorhersagen beim automatisierten maschinellen Lernen befindet sich in der Vorschauphase und wird für lokale Ausführungen nicht unterstützt.DNN support for forecasting in Automated Machine Learning is in Preview and not supported for local runs.

Um DNNs für die Vorhersage zu nutzen, müssen Sie den Parameter enable_dnn in AutoMLConfig auf TRUE festlegen.In order to leverage DNNs for forecasting, you will need to set the enable_dnn parameter in the AutoMLConfig to true.

automl_config = AutoMLConfig(task='forecasting',
                             enable_dnn=True,
                             ...
                             **time_series_settings)

Erfahren Sie mehr über AutoMLConfig.Learn more about the AutoMLConfig.

Alternativ können Sie die Option Enable deep learning in Studio auswählen.Alternatively, you can select the Enable deep learning option in the studio. Alternativer Textalt text

Es wird die Verwendung eines AML-Computeclusters mit GPU-SKUs und mindestens zwei Knoten als Computeziel empfohlen.We recommend using an AML Compute cluster with GPU SKUs and at least two nodes as the compute target. Es wird empfohlen, das Experimenttimeout auf mindestens einige Stunden festzulegen, damit ausreichend Zeit für das DNN-Training zur Verfügung steht.To allow sufficient time for the DNN training to complete, we recommend setting the experiment timeout to a minimum of a couple of hours. Weitere Informationen zu AML-Compute und den VM-Größen mit GPUs finden Sie in den Dokumentationen AML-Compute und Für GPU optimierte VM-Größen.For more information on AML compute and VM sizes that include GPU's, see the AML Compute documentation and GPU optimized virtual machine sizes documentation.

Ein detailliertes Codebeispiel für die Nutzung von DNNs finden Sie im Notebook für die Vorhersage der Getränkeproduktion.View the Beverage Production Forecasting notebook for a detailed code example leveraging DNNs.

Rollierende Zeitfensteraggregationen als ZielTarget Rolling Window Aggregation

In vielen Fällen ist die beste Information, über die ein Vorhersagemodell verfügen kann, der aktuelle Wert des Ziels.Often the best information a forecaster can have is the recent value of the target. Durch das Erstellen kumulativer Statistiken des Ziels kann die Genauigkeit Ihrer Vorhersagen erhöht werden.Creating cumulative statistics of the target may increase the accuracy of your predictions. Wenn Sie rollierende Zeitfensteraggregationen als Ziel verwenden, können Sie eine rollierende Aggregation von Datenwerten als Features hinzufügen.Target rolling window aggregations allows you to add a rolling aggregation of data values as features. Legen Sie target_rolling_window_size auf Ihre gewünschte ganzzahlige Zeitfensterlänge fest, um rollierende Zeitfenster als Ziel zu ermöglichen.To enable target rolling windows set the target_rolling_window_size to your desired integer window size.

Ein Beispiel hierfür finden Sie beim Vorhersagen des Energiebedarfs.An example of this can be seen when predicting energy demand. Angenommen, Sie fügen ein Feature für rollierende Zeitfenster von drei Tagen hinzu, um thermische Veränderungen beheizter Räume zu erfassen.You might add a rolling window feature of three days to account for thermal changes of heated spaces. Im folgenden Beispiel wurde dieses Zeitfenster mit dem Wert 3 erstellt, indem target_rolling_window_size=3 im AutoMLConfig-Konstruktor festgelegt wurde.In the example below, we've created this window of size three by setting target_rolling_window_size=3 in the AutoMLConfig constructor. In der Tabelle wird das Feature Engineering dargestellt, das auftritt, wenn die Zeitfensteraggregation angewendet wird.The table shows feature engineering that occurs when window aggregation is applied. Spalten für die Werte „minimum“, „maximum“ und „sum“ werden in einem gleitenden Fenster über drei Einträge basierend auf den definierten Einstellungen generiert.Columns for minimum, maximum, and sum are generated on a sliding window of three based on the defined settings. Jede Zeile verfügt über ein neues berechnetes Feature, für den Zeitstempel „8. September 2017, 4:00 Uhr“ werden die Werte „maximum“, „minimum“ und „sum“ mithilfe der Anforderungswerte für den Zeitstempel „8. September 2017, 3:00 Uhr“ berechnet.Each row has a new calculated feature, in the case of the time-stamp for September 8, 2017 4:00am the maximum, minimum, and sum values are calculated using the demand values for September 8, 2017 1:00AM - 3:00AM. Dieses drei Einträge umfassende Fenster wird verschoben, um die verbleibenden Zeilen mit Daten aufzufüllen.This window of three shifts along to populate data for the remaining rows.

alt text

Durch Erzeugen und Verwenden dieser zusätzlichen Features als zusätzliche Kontextdaten wird die Genauigkeit des Trainingsmodells gesteigert.Generating and using these additional features as extra contextual data helps with the accuracy of the train model.

Sehen Sie sich ein Python-Codebeispiel an, in dem das Feature für rollierende Zeitfensteraggregationen als Ziel verwendet wird.View a Python code example leveraging the target rolling window aggregate feature.

Anzeigen der Zusammenfassung der FeatureentwicklungView feature engineering summary

Für Aufgabentypen mit Zeitreihen beim automatisierten maschinellen Lernen können Sie Details aus dem Featureentwicklungsprozess anzeigen.For time-series task types in automated machine learning, you can view details from the feature engineering process. Der folgende Code zeigt jedes Rohfeature sowie die folgenden Attribute:The following code shows each raw feature along with the following attributes:

  • Name des RohfeaturesRaw feature name
  • Anzahl der entwickelten Features, die aus diesem Rohfeature gebildet wurdenNumber of engineered features formed out of this raw feature
  • Erkannter TypType detected
  • Ob das Feature gelöscht wurdeWhether feature was dropped
  • Liste der Featuretransformationen für dieses RohfeatureList of feature transformations for the raw feature
fitted_model.named_steps['timeseriestransformer'].get_featurization_summary()

Vorhersagen mit dem besten ModellForecasting with best model

Verwenden Sie die beste Modelliteration, um Werte für das Testdataset vorherzusagen.Use the best model iteration to forecast values for the test data set.

Die forecast()-Funktion sollte anstelle von predict() verwendet werden. Dadurch kann festgelegt werden, wann Vorhersagen beginnen sollen.The forecast() function should be used instead of predict(), this will allow specifications of when predictions should start. Im folgenden Beispiel ersetzen Sie zunächst alle Werte in y_pred durch NaN.In the following example, you first replace all values in y_pred with NaN. Der Ursprung der Vorhersage liegt in diesem Fall am Ende der Trainingsdaten, wie es normalerweise bei der Verwendung von predict() der Fall wäre.The forecast origin will be at the end of training data in this case, as it would normally be when using predict(). Wenn Sie jedoch nur die zweite Hälfte von y_pred durch NaN ersetzen, lässt die Funktion die numerischen Werte in der ersten Hälfte unverändert, sagt aber die NaN-Werte in der zweiten Hälfte voraus.However, if you replaced only the second half of y_pred with NaN, the function would leave the numerical values in the first half unmodified, but forecast the NaN values in the second half. Die Funktion gibt sowohl die vorhergesagten Werte als auch die angepassten Features zurück.The function returns both the forecasted values and the aligned features.

Sie können den Parameter forecast_destination in der Funktion forecast() auch verwenden, um Werte bis zu einem bestimmten Datum vorherzusagen.You can also use the forecast_destination parameter in the forecast() function to forecast values up until a specified date.

label_query = test_labels.copy().astype(np.float)
label_query.fill(np.nan)
label_fcst, data_trans = fitted_pipeline.forecast(
    test_data, label_query, forecast_destination=pd.Timestamp(2019, 1, 8))

Berechnen Sie den RMSE-Wert (Root Mean Squared Error) zwischen den tatsächlichen Werten (actual_labels) und den vorhergesagten Werten (predict_labels).Calculate RMSE (root mean squared error) between the actual_labels actual values, and the forecasted values in predict_labels.

from sklearn.metrics import mean_squared_error
from math import sqrt

rmse = sqrt(mean_squared_error(actual_labels, predict_labels))
rmse

Nach der Ermittlung der allgemeinen Modellgenauigkeit besteht der nächste Schritt in der Regel darin, mithilfe des Modells unbekannte zukünftige Werte vorherzusagen.Now that the overall model accuracy has been determined, the most realistic next step is to use the model to forecast unknown future values. Stellen Sie ein Dataset im gleichen Format wie das Testdataset test_data, aber mit zukünftigen Datums-/Uhrzeitwerten bereit, um einen Vorhersagesatz mit Vorhersagewerten für die einzelnen Zeitreihenschritte zu erhalten.Supply a data set in the same format as the test set test_data but with future datetimes, and the resulting prediction set is the forecasted values for each time-series step. Angenommen, die letzten Zeitreihendatensätze im Dataset waren für den 31.12.2018.Assume the last time-series records in the data set were for 12/31/2018. Wenn Sie die Nachfrage für den Folgetag (oder für beliebig viele Vorhersagezeiträume < = max_horizon) vorhersagen möchten, erstellen Sie für jede Filiale einen einzelnen Zeitreihendatensatz für den 01.01.2019.To forecast demand for the next day (or as many periods as you need to forecast, <= max_horizon), create a single time series record for each store for 01/01/2019.

day_datetime,store,week_of_year
01/01/2019,A,1
01/01/2019,A,1

Wiederholen Sie die erforderlichen Schritte, um diese zukünftigen Daten in einen Datenrahmen zu laden, und führen Sie anschließend best_run.predict(test_data) aus, um zukünftige Werte vorherzusagen.Repeat the necessary steps to load this future data to a dataframe and then run best_run.predict(test_data) to predict future values.

Hinweis

Werte können nur für eine Anzahl von Zeiträumen vorhergesagt werden, die maximal dem Wert von max_horizon entspricht.Values cannot be predicted for number of periods greater than the max_horizon. Das Modell muss mit einem weiter in der Zukunft liegenden Vorhersagehorizont neu trainiert werden, um zukünftige Werte vorhersagen können, die über den aktuellen Vorhersagehorizont hinausgehen.The model must be re-trained with a larger horizon to predict future values beyond the current horizon.

Nächste SchritteNext steps