

 Amazon Forecast non è più disponibile per i nuovi clienti. I clienti esistenti di Amazon Forecast possono continuare a utilizzare il servizio normalmente. [Scopri di più»](https://aws.amazon.com/blogs/machine-learning/transition-your-amazon-forecast-usage-to-amazon-sagemaker-canvas/)

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Nozioni di base (AWS CLI)
<a name="gs-cli"></a>

In questo esercizio, usi il AWS Command Line Interface (AWS CLI) per esplorare Amazon Forecast. Puoi creare un set di dati Amazon Forecast, addestrare un predittore e utilizzare il predittore risultante per generare una previsione. Prima di iniziare, assicurati di disporre di un Account AWS e di avere configurato AWS CLI. Per ulteriori informazioni, consulta [Configurazione](setup.md).

**Nota**  
I AWS CLI comandi di questo esercizio sono stati testati su Linux. Per informazioni sull'utilizzo dei AWS CLI comandi in Windows, vedere [Specificazione dei valori dei parametri per la AWS Command Line Interface](https://docs.aws.amazon.com/cli/latest/userguide/cli-using-param.html) nella *Guida per l'AWS Command Line Interface utente*.

## Fase 1: importazione dei dati di training
<a name="gs-create-ds"></a>

Inizia creando un set di dati e importando al suo interno i dati del consumo di elettricità.

**Per creare un set di dati di Amazon Forecast**

1. Decidere quale dominio e tipo di set di dati sono appropriati.

   I dati di training che verranno importati nel set di dati influenzano la scelta del dominio e del tipo di set di dati. Pertanto, è opportuno rivedere alcune righe di esempio dei dati di consumo di elettricità.

   ```
   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
   ```

   Il formato dei dati è CSV (valori separati da virgola) e sono raccolti su base oraria (come mostrato dal timestamp). Sono incluse le colonne seguenti:
   + Colonna 1: timestamp che mostrano quando è stato registrato il consumo di elettricità.
   + Colonna 2 — Valori di consumo orario di elettricità (nota come i valori del timestamp aumentano di ora in ora).
   + Colonna 3 — Valori dell'ID cliente che identificano i clienti che utilizzano l'elettricità.

   Per questi dati, scegliere il dominio di set di dati e il tipo di set di dati predefiniti seguenti:
   + Dominio personalizzato: nessuno dei domini del set di dati, come METRICS, RETAIL o WEB\$1TRAFFIC, si applica a questi dati, quindi scegli il dominio personalizzato.
   + Tipo di serie temporale di destinazione: i dati sono una serie temporale perché tengono traccia del consumo di elettricità nel tempo. Includono anche il *target* per il quale generare la previsione (Colonna 2, consumo di elettricità). Pertanto, scegliere il tipo di set di dati di serie temporali target.

     Per comprendere perché si sceglie questo tipo, consulta [Domini di set di dati e tipi di set di dati predefiniti](howitworks-domains-ds-types.md).

1. Scegliere uno schema di set di dati.

   Il tipo di serie temporali target per [Dominio CUSTOM](custom-domain.md) richiede questi campi: `timestamp`, `target_value` e `item_id`. Il `target_value` campo è l'obiettivo. Amazon Forecast genera la previsione per questo campo.

   Per mappare i campi obbligatori alle colonne nei dati, è necessario creare uno schema. Ogni *attributo* nello schema è mappato a un campo nei dati.
**Importante**  
L'ordine degli attributi nello schema deve corrispondere all'ordine dei campi nei dati di training.

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

   Sono ora disponibili le informazioni necessarie per creare un set di dati e importare al suo interno i dati.

1. Creare il set di dati.

   ```
   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"
       }
     ]
   }'
   ```

   Nella richiesta, il valore `data-frequency` `H` rappresenta una frequenza di raccolta dei dati su base oraria. Di seguito è riportata una risposta di esempio.

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

   Per ulteriori informazioni su questa operazione, consulta [CreateDataset](API_CreateDataset.md).

1. (Facoltativo) Ottenere la descrizione del set di dati.

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

   Di seguito è riportata una risposta di esempio.

   ```
   {
       "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"
   }
   ```
**Nota**  
L'ordine delle coppie chiave-valore nella risposta è arbitrario.

1. Creare un gruppo di set di dati e aggiungere a esso il set di dati. Il valore del parametro `domain` deve corrispondere a `domain` del set di dati.

   ```
   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
   ```

   Di seguito è riportata una risposta di esempio.

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

   Per ulteriori informazioni su questa operazione, consulta [CreateDatasetGroup](API_CreateDatasetGroup.md).

1. (Facoltativo) Ottenere la descrizione del gruppo di set di dati.

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

   Di seguito è riportata una risposta di esempio.

   ```
   {
       "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"
   }
   ```

1. Importa i dati di addestramento sul consumo di elettricità dal tuo bucket Amazon S3 al set di dati. Il ruolo IAM che fornisci deve avere l'autorizzazione a leggere i dati dal tuo bucket S3. Per informazioni su come creare un ruolo IAM, consulta. [Crea un ruolo IAM per Amazon Forecast (AWS CLI)](aws-forecast-iam-roles.md#aws-forecast-create-iam-role-with-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"
       }
     }'
   ```

   Di seguito è riportata la sintassi abbreviata per il parametro `data-source`.

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

   Di seguito è riportata una risposta di esempio.

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

   Per ulteriori informazioni su questa operazione, consulta [CreateDatasetImportJob](API_CreateDatasetImportJob.md).

1. Controllare lo stato di importazione. 

   ```
   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
   ```

   Di seguito è riportata una risposta di esempio.

   ```
   {
       "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"
   }
   ```

   Quando tutti i dati sono stati importati, lo stato diventa ACTIVE (ATTIVO) e la risposta include le statistiche per i dati, come mostrato nell'esempio seguente.

   ```
   {
       "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
           }
       },
       ...
   }
   ```
**Importante**  
Devi attendere che lo stato sia ACTIVE (ATTIVO) prima di creare un predittore con il gruppo di set di dati.

   Per ulteriori informazioni su questa operazione, consulta [DescribeDatasetImportJob](API_DescribeDatasetImportJob.md).

## Fase 2: creazione di un predittore
<a name="gs-create-predictor"></a>

Per creare un predittore, utilizza l'operazione [CreateAutoPredictor](API_CreateAutoPredictor.md) e fornisci le informazioni seguenti.
+ **Nome del predittore**: assegna un nome al predittore in modo da poterlo distinguere dagli altri predittori
+ Gruppo di **set di dati: il gruppo** di set di dati è stato creato nel passaggio precedente.
+ **Frequenza delle previsioni**: la granularità delle previsioni (orarie, giornaliere, settimanali, ecc.).
+ **Forecast horizon**: il numero di fasi temporali previste.

Dopo aver creato il predittore, rivedi le metriche di precisione generate da Amazon Forecast. I parametri consentono di decidere se utilizzare il predittore per generare una previsione. Per ulteriori informazioni sui predittori, consulta [Predittori di allenamento](howitworks-predictor.md).

**Per creare un predittore e rivedere i parametri di accuratezza**

1. Creare il predittore.

   ```
   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
   ```

   Di seguito è riportata una risposta di esempio.

   ```
   {
       "PredictorArn": "arn:aws:forecast:us-west-2:acct-id:predictor/electricitypredictor"
   }
   ```

1. Ottenere lo stato del predittore.

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

   Di seguito è riportata una risposta di esempio.

   ```
   {
       "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"
       }
   }
   ```
**Importante**  
Il training del modello richiede tempo. Non continuare finché non è stato completato il training e lo stato del predittore è ACTIVE.

1. Ottenere i parametri di precisione per il predittore.

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

   Di seguito è riportata una risposta di esempio.

   ```
   {
       "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
                   }
               ]
           }
       ]
   }
   ```

   I parametri mostrano la perdita di errore per ogni quantile. Ad esempio, si è verificato un errore dell'11,7% per il primo quantile. Le metriche mostrano anche l' root-mean-squareerrore (). `RMSE`

   I parametri di riepilogo mostrano la media dei parametri calcolati in tutte le finestre di test. Poiché c'era una sola finestra di test, i parametri di riepilogo e calcolati sono uguali.

   Per ulteriori informazioni su questa operazione, consulta [GetAccuracyMetrics](API_GetAccuracyMetrics.md).

## Fase 3: creazione di una previsione
<a name="gs-create-campaign"></a>

Amazon Forecast crea una previsione per il `target_value` campo (determinata dal dominio e dal tipo di set di dati) per ogni elemento univoco `item_id` del set di dati. In questo esercizio, il `target_value` campo fornisce il consumo di elettricità e il cliente `item_id` fornisce. IDs Puoi ottenere una previsione del consumo orario di elettricità per cliente.

Dopo aver creato la previsione, puoi eseguire una query per un singolo elemento o esportare la previsione completa.

**Per creare, recuperare ed esportare una previsione**

1. Creare la previsione.

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

   L'operazione utilizza il predittore per creare una previsione. Nella risposta, viene restituito l'Amazon Resource Name (ARN) della previsione. Puoi utilizzare questo ARN per recuperare ed esportare la previsione. Di seguito è riportata una risposta di esempio.

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

   Per ulteriori informazioni su questa operazione, consulta [CreateForecast](API_CreateForecast.md).

1. Recuperare le prime due ore della previsione per `client_1`.
**Nota**  
Il nome del servizio, `forecastquery`, è diverso dal nome del servizio utilizzato altrove.

   ```
   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"}'
   ```

   L'operazione include i parametri seguenti.
   + `start-date`e`end-date`: specifica un intervallo di date opzionale per il quale recuperare la previsione. Se non si specificano questi parametri, l'operazione restituisce l'intera previsione per `client_1`.
   + `filters`— specifica il `item_id` filtro per il quale recuperare la previsione dell'elettricità. `client_1`

     Di seguito è riportata la sintassi abbreviata per il parametro `filters`.

     ```
     --filters item_id="client_1"
     ```

   Di seguito è riportata una risposta di esempio.

   ```
   {
       "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
                   }
               ]
           }
       }
   }
   ```

   Poiché questa è una previsione oraria, la risposta mostra i valori di previsione oraria. Nella risposta, tenere presente quanto segue:
   + `mean`— Per la data e l'ora specifiche, la media è il valore medio previsto del consumo di elettricità per il cliente.
   + `p90``p50`, e `p10` — Specificate il livello di confidenza che il valore effettivo sarà inferiore al valore elencato alla data e all'ora specificate. Ad esempio, alle 01:00:00:00 del 01/2015, Amazon Forecast è sicuro al 90% che il consumo di elettricità sarà inferiore a 24,5. Amazon Forecast è sicuro del 50% che l'utilizzo sarà inferiore a 20,8 e del 10% che l'utilizzo sarà inferiore a 18,5.

   Per ulteriori informazioni su questa operazione, consulta [QueryForecast](API_forecastquery_QueryForecast.md).

1. Esporta la previsione completa nel tuo bucket Amazon S3. Il ruolo IAM che fornisci deve avere l'autorizzazione a scrivere dati nel tuo bucket S3. Per informazioni su come creare un ruolo IAM, consulta. [Crea un ruolo IAM per Amazon Forecast (AWS CLI)](aws-forecast-iam-roles.md#aws-forecast-create-iam-role-with-cli)

   Creare un processo di esportazione della previsione.

   ```
   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'}"
   ```

   Di seguito è riportata una risposta di esempio.

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

   Per ulteriori informazioni su questa operazione, consulta [CreateForecastExportJob](API_CreateForecastExportJob.md).

1. Ottenere lo stato del processo di esportazione.

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

   Di seguito è riportata una risposta di esempio.

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

   Quando lo stato è ACTIVE (ATTIVO), è possibile individuare i file di previsione nel bucket S3 specificato.