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 dieAWS Command Line Interface (AWS CLI), um Amazon Forecast zu erkunden. Sie erstellen einen Amazon Forecast-Datensatz, trainieren einen Prädiktor und verwenden den resultierenden Prädiktor, um eine Prognose zu generieren. Bevor Sie beginnen, vergewissern Sie sich, dass Sie eine AWS-Konto haben und dass Sie die AWS CLI eingerichtet haben. Weitere Informationen finden Sie unter Einrichten.

Anmerkung

DieAWS CLI Befehle in dieser Übung wurden unter Linux getestet. Informationen zur Verwendung derAWS CLI Befehle unter Windows finden SieAWS Command Line Interface im AWS Command Line InterfaceBenutzerhandbuch unter Angeben von Parameterwerten für.

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 anzeigen, wann der Stromverbrauch aufgezeichnet wurde.

    • Spalte 2 — Stündliche Stromverbrauchswerte (beachten Sie, wie sich die Zeitstempelwerte von Stunde zu Stunde erhöhen).

    • Spalte 3 — Kunden-ID-Werte, die die Kunden identifizieren, die den Strom verbrauchen.

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

    • Benutzerdefinierte Domain — Keine der Datensatzdomänen, wie METRICS, RETAIL oder WEB_TRAFFIC, gilt für diese Daten. Wählen Sie daher die benutzerdefinierte Domain.

    • Zielzeitreihentyp — Bei den Daten handelt es sich um eine Zeitreihe, da sie den Stromverbrauch im Zeitverlauf verfolgen. 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. Dastarget_value Feld ist das Ziel. Amazon Forecast generiert 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:dataset/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 Trainingsdaten Ihres Amazon-S3-Buckets Ihren Amazon-S3-Bucket mit dem Datensatz. Die von Ihnen bereitgestellte IAM-Rolle muss die Berechtigung haben, Daten aus Ihrem S3-Bucket zu lesen. Informationen über die Erstellung 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 CreateAutoPredictor und geben Sie die folgenden Informationen an.

  • Prädiktorname — Geben Sie dem Prädiktor einen Namen, damit Sie ihn von Ihren anderen Prädiktoren unterscheiden können

  • Datensatzgruppe — Sie haben die Datensatzgruppe im vorherigen Schritt erstellt.

  • Häufigkeit der Forecast — Die Granularität Ihrer Prognosen (stündlich, täglich, wöchentlich usw.).

  • Prognosehorizont — Die Anzahl der prognostizierten Zeitschritte.

Nachdem der Prädiktor erstellt wurde, überprüfen Sie die von Amazon Forecast 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 Trainingsvorhersagen.

Erstellen eines Predictors und Überprüfen der Genauigkeitsmetriken
  1. Erstellen Sie den Predictor.

    aws forecast create-predictor \ --predictor-name electricitypredictor \ --input-data-config DatasetGroupArn="arn:aws:forecast:us-west-2:acct-id:dsgroup/electricity_ds_group" \ --forecast-horizon 36 \ --forecast-frequency D

    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.

    { "PredictorArn": "arn:aws:forecast:<region>:<acct-num>:predictor/electricitypredictor", "PredictorName": "electricitypredictor", "ForecastHorizon": 36, "ForecastTypes": [ "0.1", "0.5", "0.9" ], "ForecastFrequency": "D", "DatasetImportJobArns": [ "arn:aws:forecast:<region>:<acct-num>:dataset-import-job/getting_started_dataset/gs_import" ], "DataConfig": { "DatasetGroupArn": "arn:aws:forecast:<region>:<acct-num>:dataset-group/getting_started", "AttributeConfigs": [ { "AttributeName": "target_value", "Transformations": { "aggregation": "sum", "backfill": "zero", "frontfill": "none", "middlefill": "zero" } } ] }, "EstimatedTimeRemainingInMinutes": 97, "Status": "CREATE_IN_PROGRESS", "CreationTime": "2022-02-23T09:26:24.643000-08:00", "LastModificationTime": "2022-02-23T09:49:26.899000-08:00", "ExplainabilityInfo": { "Status": "NOT_AVAILABLE" } }
    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. Die Metriken zeigen auch den root-mean-square Fehler (RMSE).

    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 für jedes einzelneitem_id Objekt im Datensatz eine Prognose für dastarget_value Feld (abhängig von der Domäne und dem Typ des Datensatzes). 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 an, für den die Prognose abgerufen werden soll. Wenn Sie diese Parameter nicht angeben, wird die gesamte Prognose für client_1 zurückgegeben.

    • filters— Gibt denitem_id Filter an, für den die Stromprognose abgerufen werden sollclient_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 spezifische Datum und die Uhrzeit ist der Mittelwert der prognostizierte durchschnittliche Stromverbrauchswert für den Kunden.

    • p90,p50, undp10 — Geben Sie das Konfidenzniveau an, mit dem der tatsächliche Wert am angegebenen Datum und zur angegebenen Uhrzeit unter dem angegebenen Wert liegt. Zum Beispiel ist Amazon Forecast zum Zeitpunkt 2015-01-01T 01:00:00 zu 90% davon überzeugt, dass der Stromverbrauch unter 24,5 liegen wird. Amazon Forecast ist zu 50% zuversichtlich, dass die Nutzung unter 20,8 liegen wird, und zu 10%, dass die Nutzung unter 18,5 liegen wird.

    Weitere Informationen zu dieser Operation finden Sie im Abschnitt QueryForecast.

  3. Exportieren Sie die abgeschlossene Prognose Ihren Amazon-S3-Bucket. Die von Ihnen bereitgestellte IAM-Rolle muss die Berechtigung haben, Daten in den S3-Bucket zu schreiben. Informationen über die Erstellung 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.