Amazon Forecast ist für Neukunden nicht mehr verfügbar. Bestehende Kunden von Amazon Forecast können den Service weiterhin wie gewohnt nutzen. Erfahren Sie mehr“
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
-
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.
-
-
Legen Sie ein Dataset-Schema fest.
Der Ziel-Zeitreihentyp für die CUSTOM-Domäne hat folgende Pflichtfelder:
timestamp
,target_value
unditem_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.
-
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
-WertH
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.
-
(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_dsNachfolgend 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.
-
Erstellen Sie eine Dataset-Gruppe und fügen Sie ihr das Dataset hinzu: Der Wert des
domain
-Parameters muss mit derdomain
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 CUSTOMNachfolgend 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.
-
(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_groupNachfolgend 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" }
-
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.
-
Ü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_jobNachfolgend 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
-
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 DNachfolgend finden Sie eine Beispielantwort.
{ "PredictorArn": "arn:aws:forecast:us-west-2:acct-id:predictor/electricitypredictor" }
-
Rufen Sie den Status des Predictors ab.
aws forecast describe-predictor \ --predictor-arn arn:aws:forecast:us-west-2:
acct-id
:predictor/electricitypredictorNachfolgend 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.
-
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/electricitypredictorNachfolgend 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
-
Erstellen Sie die Prognose.
aws forecast create-forecast \ --forecast-name electricityforecast \ --predictor-arn arn:aws:forecast:us-west-2:
acct-id
:predictor/electricitypredictorDie 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.
-
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-date
undend-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ürclient_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.
-
-
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.
-
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.