Erste Schritte (AWS CLI) - Amazon Forecast

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Erste Schritte (AWS CLI)

In dieser Übung verwenden Sie die AWS-Befehlszeilenschnittstelle (CLI), um sich mit Amazon Forecast vertraut zu machen. Sie erstellen ein Amazon Forecast-Dataset, schulen einen Predictor und erstellen anhand dieses Predictors eine Prognose. Stellen Sie zunächst sicher, dass Sie ein AWS-Konto erstellt und die AWS CLI eingerichtet haben. Weitere Informationen finden Sie unter Einrichten.

Anmerkung

Die CLI-Befehle in dieser Übung wurden unter Linux getestet. Weitere Informationen zur Verwendung der CLI-Befehle unter Windows finden Sie unterFestlegen von Parameterwerten für die AWS BefehlszeilenschnittstelleimAWS Command Line InterfaceBenutzerhandbuch.

Erstellen Sie zunächst ein Dataset und importieren Sie die Stromverbrauchsdaten darin.

So erstellen Sie ein Amazon Forecast-Dataset

  1. Entscheiden Sie, welche Domäne und welcher Dataset-Typ geeignet ist.

    Welche Domäne und welchen Typ Sie für Ihr Dataset auswählen, ist abhängig von den Schulungsdaten, die Sie in das Dataset importieren. Sehen wir uns daher zunächst einige Beispielzeilen der Stromverbrauchsdaten an:

    2014-01-01 01:00:00, 2.53807106598985, client_0 2014-01-01 01:00:00, 23.648648648648624, client_1 2014-01-01 02:00:00, 9.648648648612345, client_0

    Das Dateiformat ist CSV (durch Komma getrennte Werte) und die Daten werden stündlich erfasst (erkennbar an den Zeitstempeln). Die Datei enthält die folgenden Spalten:

    • Spalte 1 — Zeitstempel, die angeben, wann der Stromverbrauch aufgezeichnet wurde

    • Spalte 2 — Stündliche Stromverbrauchswerte (die Zeitstempelwerte steigen stündlich an)

    • Spalte 3 — Kunden-ID-Werte, mit denen die Kunden identifiziert werden, die Strom verbrauchen

    Wählen Sie für diese Daten die folgenden vordefinierten Werte für Domäne und Typ des Datasets aus:

    • Benutzerdefinierte Domäne — Keine der Dataset-Domänen wie METRICS, RETAIL oder WEB_TRAFFIC passt auf diese Daten. Wählen Sie daher die CUSTOM-Domäne aus.

    • Ziel-Zeitreihen-Typ — Bei den Daten handelt es sich um eine Zeitreihe, da der Stromverbrauch im Zeitverlauf erfasst wird. Die Daten enthalten auch das Ziel, für das eine Prognose erstellt werden soll (Spalte 2, Stromverbrauch). Wählen Sie daher den Ziel-Zeitreihen-Dataset-Typ aus.

      Eine Erläuterung zur Auswahl dieses Typs finden Sie unter Vordefinierte Dataset-Domänen und Dataset-Typen.

  2. Legen Sie ein Dataset-Schema fest.

    Der Ziel-Zeitreihentyp für die CUSTOM-Domäne hat folgende Pflichtfelder: timestamp, target_value und item_id. Dietarget_valueist das Ziel. Amazon Forecast erstellt die Prognose für dieses Feld.

    Um die erforderlichen Felder den Spalten in Ihren Daten zuzuordnen, erstellen Sie ein Schema. Jedes Attribut im Schema entspricht einem Feld in den Daten.

    Wichtig

    Die Reihenfolge der Attribute im Schema muss mit der Reihenfolge der Felder in den Schulungsdaten übereinstimmen.

    { "Attributes":[ { "AttributeName": "timestamp", "AttributeType": "timestamp" }, { "AttributeName": "target_value", "AttributeType": "float" }, { "AttributeName": "item_id", "AttributeType": "string" } ] }

    Jetzt haben Sie alle Informationen, die Sie brauchen, um ein Dataset zu erstellen und Daten darin zu importieren.

  3. Erstellen Sie das Dataset.

    aws forecast create-dataset \ --dataset-name electricity_demand_ds \ --domain CUSTOM \ --dataset-type TARGET_TIME_SERIES \ --data-frequency H \ --schema '{ "Attributes": [ { "AttributeName": "timestamp", "AttributeType": "timestamp" }, { "AttributeName": "target_value", "AttributeType": "float" }, { "AttributeName": "item_id", "AttributeType": "string" } ] }'

    Der data-frequency-Wert H in der Anforderung gibt an, dass die Datenerfassung stündlich erfolgt. Nachfolgend finden Sie eine Beispielantwort.

    { "DatasetArn": "arn:aws:forecast:us-west-2:acct-id:dataset/electricity_demand_ds" }

    Weitere Informationen zu dieser Operation finden Sie im Abschnitt CreateDataset.

  4. (Optional) Rufen Sie die Beschreibung des Datasets ab.

    aws forecast describe-dataset \ --dataset-arn arn:aws:forecast:us-west-2:acct-id:dataset/electricity_demand_ds

    Nachfolgend finden Sie eine Beispielantwort.

    { "DatasetName": "electricity_demand_ds", "DatasetArn": "arn:aws:forecast:us-west-2:acct-id:dataset/electricity_demand_ds", "CreationTime": 1564533087.907, "LastModificationTime": 1564533087.907, "Domain": "CUSTOM", "DatasetType": "TARGET_TIME_SERIES", "DataFrequency": "H", "Schema": { ... }, "EncryptionConfig": {}, "Status": "ACTIVE" }
    Anmerkung

    Die Reihenfolge der Schlüssel-Wert-Paare in der Antwort ist beliebig.

  5. Erstellen Sie eine Dataset-Gruppe und fügen Sie ihr das Dataset hinzu: Der Wert des domain-Parameters muss mit der domain des Datasets übereinstimmen.

    aws forecast create-dataset-group \ --dataset-group-name electricity_ds_group \ --dataset-arns arn:aws:forecast:us-west-2:acct-id:ds/electricity_demand_ds \ --domain CUSTOM

    Nachfolgend finden Sie eine Beispielantwort.

    { "DatasetGroupArn": "arn:aws:forecast:us-west-2:acct-id:dataset-group/electricity_ds_group" }

    Weitere Informationen zu dieser Operation finden Sie im Abschnitt CreateDatasetGroup.

  6. (Optional) Rufen Sie die Beschreibung der Dataset-Gruppe ab.

    aws forecast describe-dataset-group \ --dataset-group-arn arn:aws:forecast:us-west-2:acct-id:dataset-group/electricity_ds_group

    Nachfolgend finden Sie eine Beispielantwort.

    { "DatasetGroupName": "electricity_ds_group", "DatasetGroupArn": "arn:aws:forecast:us-west-2:acct-id:dataset-group/electricity_ds_group", "DatasetArns": [ "arn:aws:forecast:us-west-2:acct-id:dataset-group/electricity_ds_group" ], "Domain": "CUSTOM", "CreationTime": 1564533719.852, "LastModificationTime": 1564533719.852, "Status": "ACTIVE" }
  7. Importieren Sie die Schulungsdaten für den Stromverbrauch aus Ihrem Amazon S3 Bucket in das Dataset. Die von Ihnen angegebene IAM-Rolle muss über die Berechtigung zum Lesen von Daten aus Ihrem S3-Bucket verfügen. Informationen zum Erstellen einer IAM-Rolle finden Sie unterErstellen einer IAM-Rolle für Amazon Forecast (AWS CLI).

    aws forecast create-dataset-import-job \ --dataset-arn arn:aws:forecast:us-west-2:acct-id:dataset/electricity_demand_ds \ --dataset-import-job-name electricity_ds_import_job \ --data-source '{ "S3Config": { "Path": "s3://bucket/electricityusagedata.csv", "RoleArn": "arn:aws:iam::acct-id:role/Role" } }'

    Nachfolgend finden Sie die Syntax-Kurzschrift für den data-source-Parameter.

    --data-source S3Config="{Path='s3://bucket/electricityusagedata.csv',RoleArn='arn:aws:iam::acct-id:role/Role'}"

    Nachfolgend finden Sie eine Beispielantwort.

    { "DatasetImportJobArn": "arn:aws:forecast:us-west-2:acct-id:dataset-import-job/electricity_demand_ds/electricity_ds_import_job" }

    Weitere Informationen zu dieser Operation finden Sie im Abschnitt CreateDatasetImportJob.

  8. Überprüfen Sie den Status des Imports.

    aws forecast describe-dataset-import-job \ --dataset-import-job-arn arn:aws:forecast:us-west-2:acct-id:dataset-import-job/electricity_demand_ds/electricity_ds_import_job

    Nachfolgend finden Sie eine Beispielantwort.

    { "DatasetImportJobName": "electricity_ds_import_job", "DatasetImportJobArn": "arn:aws:forecast:us-west-2:acct-id:dataset-import-job/electricity_demand_ds/electricity_ds_import_job", "DatasetArn": "arn:aws:forecast:us-west-2:acct-id:dataset/electricity_demand_ds", "DataSource": { "S3Config": { "Path": "s3://bucket/electricityusagedata.csv", "RoleArn": "arn:aws:iam::acct-id:role/ForecastRole" } }, "DataSize": 0.14639010466635227, "TimeStampFormat": "yyyy-MM-dd HH:mm:ss", "CreationTime": 1564537011.114, "LastModificationTime": 1564537028.223, "Status": "CREATE_IN_PROGRESS" }

    Wenn alle Daten importiert wurden, ändert sich der Status in ACTIVE und die Antwort enthält Statistiken für die Daten, wie im folgenden Beispiel gezeigt.

    { "DatasetArn": "arn:aws:forecast:us-west-2:acct-id:dataset/electricity_demand_ds", "Status": "ACTIVE", "FieldStatistics": { "date": { "Min": "2014-01-01T01:00:00Z", "Max": "2015-01-01T00:00:00Z", "Count": 3241200, "CountDistinct": 8760, "CountNull": 0 }, "target": { "Min": "0.0", "Max": "168200.0", "Avg": 606.5167610461679, "Stddev": 3518.405223972031, "Count": 3241200, "CountDistinct": 1196961, "CountNull": 0, "CountNan": 0 }, "item": { "Count": 3241200, "CountDistinct": 370, "CountNull": 0 } }, ... }
    Wichtig

    Sie müssen warten, bis der Status ACTIVE lautet, bevor Sie einen Predictor mit der Dataset-Gruppe erstellen.

    Weitere Informationen zu dieser Operation finden Sie im Abschnitt DescribeDatasetImportJob.

Verwenden Sie zum Erstellen eines Predictors die Operation CreatePredictor und geben Sie die folgenden Informationen an.

  • Ein Algorithmus — Amazon Forecast tor verwendet den Algorithmus, um den Predictor mithilfe der Daten in der Dataset-Gruppe zu schulen. Für diese Übung verwenden Sie einen Algorithmus namensforecast_DEEP_AR_PLUS, das von Amazon Forecast bereitgestellt wird. Eine Liste der Algorithmen, die Amazon Forecast bereitstellt, finden Sie unterAmazon-Prognosealgorithmen.

    Anmerkung

    Wenn Sie unsicher sind, welchen Algorithmus Sie verwenden sollen, legen Sie das Flag PerformAutoML in der Operation CreatePredictor fest, um Amazon Forecast anzuweisen, AutoML auszuführen. AutoML bestimmt, welcher Algorithmus für die Predictor-Schulung verwendet werden soll.

  • Eine Dataset-Gruppe — Sie haben die Dataset-Gruppe im vorherigen Schritt erstellt.

Nach dem Erstellen des Predictors überprüfen Sie die von Amazon Forecast tor generierten Genauigkeitsmetriken. Mithilfe der Metriken können Sie entscheiden, ob Sie den Predictor zum Erstellen einer Prognose verwenden möchten. Weitere Informationen zu Predictors finden Sie in Trainings Predictors.

Erstellen eines Predictors und Überprüfen der Genauigkeitsmetriken

  1. Erstellen Sie den Predictor.

    aws forecast create-predictor \ --predictor-name electricitypredictor \ --algorithm-arn arn:aws:forecast:::algorithm/Deep_AR_Plus \ --input-data-config DatasetGroupArn="arn:aws:forecast:us-west-2:acct-id:dsgroup/electricity_ds_group" \ --forecast-horizon 20 \ --featurization-config '{ "ForecastFrequency": "H" }'

    Nachfolgend finden Sie eine Beispielantwort.

    { "PredictorArn": "arn:aws:forecast:us-west-2:acct-id:predictor/electricitypredictor" }
  2. Rufen Sie den Status des Predictors ab.

    aws forecast describe-predictor \ --predictor-arn arn:aws:forecast:us-west-2:acct-id:predictor/electricitypredictor

    Nachfolgend finden Sie eine Beispielantwort.

    { "PredictorName": "electricitypredictor", "PredictorArn": "arn:aws:forecast:us-west-2:acct-id:predictor/electricitypredictor", "AlgorithmArn": "arn:aws:forecast:::algorithm/Deep_AR_Plus", "DatasetImportJobArns": [ "arn:aws:forecast:us-west-2:acct-id:dataset-import-job/electricity_demand_ds/electricity_ds_import_job" ], "InputDataConfig": { "DatasetGroupArn": "arn:aws:forecast:us-west-2:acct-id:dataset-group/electricity_ds_group" }, "ForecastHorizon": 20, "FeaturizationConfig": { "ForecastFrequency": "H", "Featurizations": [ { "AttributeName": "target_value", "FeaturizationPipeline": [ { "FeaturizationMethodName": "filling", "FeaturizationMethodParameters": { "frontfill": "none", "aggregation": "sum", "backfill": "zero", "middlefill": "zero" } } ] } ] }, "CreationTime": 1564611261.617, "LastModificationTime": 1564611279.896, "PerformAutoML": false, "PerformHPO": false, "EvaluationParameters": { "BackTestWindowOffset": 20, "NumberOfBacktestWindows": 1 }, "Status": "CREATE_IN_PROGRESS" }
    Wichtig

    Die Modellschulung nimmt einige Zeit in Anspruch. Fahren Sie erst fort, wenn die Schulung abgeschlossen ist und der Status des Predictors zu ACTIVE gewechselt hat.

  3. Rufen Sie die Genauigkeitsmetriken für den Predictor ab.

    aws forecast get-accuracy-metrics \ --predictor-arn arn:aws:forecast:us-west-2:acct-id:predictor/electricitypredictor

    Nachfolgend finden Sie eine Beispielantwort.

    { "PredictorEvaluationResults": [ { "TestWindows": [ { "EvaluationType": "SUMMARY", "Metrics": { "RMSE": 448.19602551622864, "WeightedQuantileLosses": [ { "Quantile": 0.9, "LossValue": 0.11574311406253326 }, { "Quantile": 0.5, "LossValue": 0.1706269067283527 }, { "Quantile": 0.1, "LossValue": 0.11724164222477837 } ] } }, { "EvaluationType": "COMPUTED", "Metrics": { "RMSE": 448.19602551622864, "WeightedQuantileLosses": [ { "Quantile": 0.9, "LossValue": 0.11574311406253326 }, { "Quantile": 0.5, "LossValue": 0.1706269067283527 }, { "Quantile": 0.1, "LossValue": 0.11724164222477837 } ] }, "TestWindowEnd": 1420070400.0, "TestWindowStart": 1420002000.0 } ] } ] }

    Die Metriken zeigen den Fehlerverlust für jedes Quantil. Beispielsweise gab es einen Fehler von 11,7 % für das erste Quantil. Außerdem zeigen die Metriken auch den Root-Mean-Square-Error (RMSE) an.

    Die zusammenfassenden Metriken zeigen den Durchschnitt der berechneten Metriken über alle Testfenster an. Da es nur ein Testfenster gab, sind die zusammenfassenden und berechneten Metriken gleich.

    Weitere Informationen zu dieser Operation finden Sie im Abschnitt GetAccuracyMetrics.

Amazon Forecast erstellt eine Prognose für dietarget_value-Feld (festgelegt durch die Domäne und den Typ des Datasets) für jede eindeutigeitem_idim Dataset. In dieser Übung stellt das target_value-Feld die Stromnutzung und item_id die Kunden-IDs bereit. Sie erhalten eine Prognose für den stündlichen Stromverbrauch pro Kunde.

Nachdem die Prognose erstellt wurde, können Sie ein einzelnes Element abfragen oder die vollständige Prognose exportieren.

Erstellen, Abrufen und Exportieren einer Prognose

  1. Erstellen Sie die Prognose.

    aws forecast create-forecast \ --forecast-name electricityforecast \ --predictor-arn arn:aws:forecast:us-west-2:acct-id:predictor/electricitypredictor

    Die Operation verwendet den Predictor zum Erstellen einer Prognose. In der Antwort erhalten Sie den Amazon-Ressourcennamen (ARN) der Prognose. Sie verwenden diesen ARN zum Abrufen und Exportieren der Prognose. Nachfolgend finden Sie eine Beispielantwort.

    { "ForecastArn": "arn:aws:forecast:us-west-2:acct-id:forecast/electricityforecast" }

    Weitere Informationen zu dieser Operation finden Sie im Abschnitt CreateForecast.

  2. Rufen Sie die ersten zwei Stunden der Prognose für client_1 ab.

    Anmerkung

    Der Servicename forecastquery unterscheidet sich von dem Servicenamen, der an anderer Stelle verwendet wird.

    aws forecastquery query-forecast \ --forecast-arn arn:aws:forecast:us-west-2:acct-id:forecast/electricityforecast \ --start-date 2015-01-01T00:00:00 \ --end-date 2015-01-01T02:00:00 \ --filters '{"item_id":"client_1"}'

    Die Operation enthält die folgenden Parameter.

    • start-dateundend-date— Gibt einen optionalen Datumsbereich für den Abruf der Prognose an. Wenn Sie diese Parameter nicht angeben, wird die gesamte Prognose für client_1 zurückgegeben.

    • filters— Gibt an, wieitem_id-Filter zum Abrufen der Stromverbrauchsprognose fürclient_1.

      Nachfolgend finden Sie die Syntax-Kurzschrift für den filters-Parameter.

      --filters item_id="client_1"

    Nachfolgend finden Sie eine Beispielantwort.

    { "Forecast": { "Predictions": { "mean": [ { "Timestamp": "2015-01-01T01:00:00", "Value": 20.952411651611328 }, { "Timestamp": "2015-01-01T02:00:00", "Value": 19.11078453063965 } ], "p90": [ { "Timestamp": "2015-01-01T01:00:00", "Value": 24.524038314819336 }, { "Timestamp": "2015-01-01T02:00:00", "Value": 22.319091796875 } ], "p50": [ { "Timestamp": "2015-01-01T01:00:00", "Value": 20.7841739654541 }, { "Timestamp": "2015-01-01T02:00:00", "Value": 19.237524032592773 } ], "p10": [ { "Timestamp": "2015-01-01T01:00:00", "Value": 18.507278442382812 }, { "Timestamp": "2015-01-01T02:00:00", "Value": 16.15062141418457 } ] } } }

    Da es sich hierbei um eine stündliche Prognose handelt, werden stündliche Prognosewerte angezeigt. In der Antwort ist Folgendes zu beachten:

    • mean— Für das angegebene Datum und die angegebene Uhrzeit ist der Mittelwert der prognostizierte durchschnittliche Stromverbrauch des Kunden.

    • p90,p50, undp10— Geben Sie das Konfidenzniveau an, mit dem der tatsächliche Wert zum angegebenen Datum und zur angegebenen Uhrzeit unterhalb des aufgeführten Werts liegen wird. Beispielsweise ist bei 2015-01-01T 01:00:00 Amazon Forecast 90% sicher, dass der Stromverbrauch unter 24,5 liegt. Amazon Forecast ist zu 50% sicher, dass die Nutzung unter 20,8 liegt, und zu 10% sicher, dass die Nutzung unter 18,5 liegt.

    Weitere Informationen zu dieser Operation finden Sie im Abschnitt QueryForecast.

  3. Exportieren Sie die vollständige Prognose in Ihren Amazon S3 Bucket. Die von Ihnen angegebene IAM-Rolle muss über die Berechtigung zum Schreiben von Daten in Ihren S3-Bucket verfügen. Informationen zum Erstellen einer IAM-Rolle finden Sie unterErstellen einer IAM-Rolle für Amazon Forecast (AWS CLI).

    Erstellen Sie einen Exportauftrag für die Prognose.

    aws forecast create-forecast-export-job \ --forecast-export-job-name electricityforecast_exportjob \ --forecast-arn arn:aws:forecast:us-west-2:acct-id:forecast/electricityforecast \ --destination S3Config="{Path='s3://bucket',RoleArn='arn:aws:iam::acct-id:role/Role'}"

    Nachfolgend finden Sie eine Beispielantwort.

    { "ForecastExportJobArn": "arn:aws:forecast::us-west-2:acct-id:forecast-export/64bbc087" }

    Weitere Informationen zu dieser Operation finden Sie im Abschnitt CreateForecastExportJob.

  4. Rufen Sie den Status des Exportauftrags ab.

    aws forecast describe-forecast-export-job \ --forecast-export-job-arn arn:aws:forecast:us-west-2:acct-id:forecast/electricityforecast

    Nachfolgend finden Sie eine Beispielantwort.

    { "ForecastExportJobArn": "arn:aws:forecast::us-west-2:acct-id:forecast-export/64bbc087", "ForecastExportJobName": "electricityforecast_exportjob", "Status": "CREATE_IN_PROGRESS" }

    Wenn der Status ACTIVE lautet, finden Sie die Prognosedateien im angegebenen S3-Bucket.