

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="getting-started-cli"></a>

In questo esercizio, usi il AWS Command Line Interface (AWS CLI) per esplorare Amazon Personalize. Prevede la creazione di una campagna che restituisce i film raccomandati per un determinato ID utente.

Prima di iniziare l'esercitazione, effettua le seguenti operazioni:
+ Esamina i [Prerequisiti per iniziare](gs-prerequisites.md) delle Nozioni di base.
+ Configura il AWS CLI, come specificato in[Configurare il AWS CLI](aws-personalize-set-up-aws-cli.md).

Al termine dell'esercizio introduttivo, per evitare di incorrere in addebiti inutili, elimina le risorse che hai creato. Per ulteriori informazioni, consulta [Requisiti per l'eliminazione delle risorse Amazon Personalize](deleting-resources.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 allenamento
<a name="gs-create-ds"></a>

Seguire la procedura per creare un gruppo di set di dati, aggiungere un set di dati al gruppo e quindi popolare il set di dati utilizzando il dati delle valutazioni dei film.

1. Creare un gruppo di set di dati eseguendo il seguente comando. Puoi crittografare il gruppo di set di dati passando una chiave ARN e l'[AWS Key Management Service](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html)ARN di un ruolo IAM che dispone delle autorizzazioni di accesso a quella chiave come parametri di input. Per ulteriori informazioni sull'API, consulta [CreateDatasetGroup](API_CreateDatasetGroup.md).

   ```
   aws personalize create-dataset-group --name MovieRatingDatasetGroup --kms-key-arn {{arn:aws:kms:us-west-2:01234567890:key/1682a1e7-a94d-4d92-bbdf-837d3b62315e}} --role-arn {{arn:aws:iam::01234567890:KMS-key-access}}
   ```

   Viene visualizzato l'ARN del gruppo di set di dati, ad esempio:

   ```
   {
     "datasetGroupArn": "arn:aws:personalize:us-west-2:acct-id:dataset-group/MovieRatingDatasetGroup"
   }
   ```

   Specificando l'ARN del gruppo di set di dati restituito, utilizzare il comando `describe-dataset-group` per visualizzare il gruppo di set di dati che è stato creato.

   ```
   aws personalize describe-dataset-group \
   --dataset-group-arn arn:aws:personalize:us-west-2:{{acct-id}}:dataset-group/MovieRatingDatasetGroup
   ```

   Vengono visualizzati il gruppo di set di dati e le relative proprietà, ad esempio:

   ```
   {
       "datasetGroup": {
           "name": "MovieRatingDatasetGroup",
           "datasetGroupArn": "arn:aws:personalize:us-west-2:acct-id:dataset-group/MovieRatingDatasetGroup",
           "status": "ACTIVE",
           "creationDateTime": 1542392161.262,
           "lastUpdatedDateTime": 1542396513.377
       }
   }
   ```
**Nota**  
Prima di creare un set di dati all'interno del gruppo, attendere fino a che lo stato del gruppo di set di dati `status` assume il valore ACTIVE. Questa operazione è in genere rapida.

   Se non ricordi il gruppo di set di dati ARN, usa `list-dataset-groups` il comando per visualizzare tutti i gruppi di set di dati che hai creato, insieme ai relativi. ARNs

   ```
   aws personalize list-dataset-groups
   ```
**Nota**  
I `list-objects` comandi `describe-object` and sono disponibili per la maggior parte degli oggetti Amazon Personalize. Questi comandi non sono mostrati nel prosieguo di questa esercitazione, ma sono disponibili.

1. Creare un file di schema in formato JSON salvando il codice seguente in un file denominato `MovieRatingSchema.json`. Lo schema corrisponde alle intestazioni precedentemente aggiunte al file `ratings.csv`. Il nome dello schema è`Interactions`, che corrisponde a uno dei tipi di set di dati riconosciuti da Amazon Personalize. Per ulteriori informazioni, consulta [Creazione di file JSON di schema per schemi Amazon Personalize](how-it-works-dataset-schema.md).

   ```
   {
     "type": "record",
     "name": "Interactions",
     "namespace": "com.amazonaws.personalize.schema",
     "fields": [
         {
             "name": "USER_ID",
             "type": "string"
         },
         {
             "name": "ITEM_ID",
             "type": "string"
         },
         {
             "name": "TIMESTAMP",
             "type": "long"
         }
     ],
     "version": "1.0"
   }
   ```

1. Creare uno schema eseguendo il seguente comando. Specificare il file salvato nel passaggio precedente. L'esempio illustra il file come appartenente alla cartella corrente. Per ulteriori informazioni sull'API, consulta [CreateSchema](API_CreateSchema.md).

   ```
   aws personalize create-schema \
     --name MovieRatingSchema \
     --schema file://MovieRatingSchema.json
   ```

   Viene visualizzato l'Amazon Resource Name (ARN) dello schema, ad esempio:

   ```
   {
     "schemaArn": "arn:aws:personalize:us-west-2:acct-id:schema/MovieRatingSchema"
   }
   ```

1. Creare un gruppo di set di dati vuoto eseguendo il seguente comando. Fornire l'ARN del gruppo di set di dati e l'ARN dello schema restituiti nei passaggi precedenti. Il `dataset-type` deve corrispondere al `name` dello schema del passaggio precedente. Per ulteriori informazioni sull'API, consulta [CreateDataset](API_CreateDataset.md).

   ```
   aws personalize create-dataset \
     --name MovieRatingDataset \
     --dataset-group-arn arn:aws:personalize:us-west-2:{{acct-id}}:dataset-group/MovieRatingDatasetGroup \
     --dataset-type Interactions \
     --schema-arn arn:aws:personalize:us-west-2:{{acct-id}}:schema/MovieRatingSchema
   ```

   Viene visualizzato l'ARN del set di dati, ad esempio:

   ```
   {
     "datasetArn": "arn:aws:personalize:us-west-2:acct-id:dataset/MovieRatingDatasetGroup/INTERACTIONS"
   }
   ```

1. Aggiungere i dati di training al set di dati.

   1. Creare un processo di importazione del set di dati eseguendo il seguente comando. Fornisci l'ARN del set di dati e il nome del bucket Amazon S3 restituiti nei passaggi precedenti. Fornisci il ruolo AWS Identity and Access Management (IAM) ARN in cui hai creato. [Creazione di un ruolo IAM per Amazon Personalize](set-up-required-permissions.md#set-up-create-role-with-permissions) Per ulteriori informazioni sull'API, consulta [CreateDatasetImportJob](API_CreateDatasetImportJob.md).

      ```
      aws personalize create-dataset-import-job \
        --job-name MovieRatingImportJob \
        --dataset-arn arn:aws:personalize:us-west-2:{{acct-id}}:dataset/MovieRatingDatasetGroup/INTERACTIONS \
        --data-source dataLocation=s3://{{amzn-s3-demo-bucket}}/ratings.csv \
        --role-arn {{roleArn}}
      ```

      Viene visualizzato l'ARN del processo di importazione del set di dati, ad esempio:

      ```
      {
        "datasetImportJobArn": "arn:aws:personalize:us-west-2:acct-id:dataset-import-job/MovieRatingImportJob"
      }
      ```

   1. Verificare lo stato utilizzando il comando `describe-dataset-import-job`. Fornire l'ARN del processo di importazione del set di dati restituito nel passaggio precedente. Per ulteriori informazioni sull'API, consulta [DescribeDatasetImportJob](API_DescribeDatasetImportJob.md).

      ```
      aws personalize describe-dataset-import-job \
        --dataset-import-job-arn arn:aws:personalize:us-west-2:{{acct-id}}:dataset-import-job/MovieRatingImportJob
      ```

      Vengono visualizzate le proprietà del processo di importazione del set di dati, incluso lo stato. Inizialmente, lo `status` mostra il valore CREATE PENDING, ad esempio:

      ```
      {
        "datasetImportJob": {
            "jobName": "MovieRatingImportJob",
            "datasetImportJobArn": "arn:aws:personalize:us-west-2:acct-id:dataset-import-job/MovieRatingImportJob",
            "datasetArn": "arn:aws:personalize:us-west-2:acct-id:dataset/MovieRatingDatasetGroup/INTERACTIONS",
            "dataSource": {
                "dataLocation": "s3://amzn-s3-demo-bucket/ratings.csv"
            },
            "roleArn": "role-arn",
            "status": "CREATE PENDING",
            "creationDateTime": 1542392161.837,
            "lastUpdatedDateTime": 1542393013.377
        }
      }
      ```

      L'importazione del set di dati è completata quando lo stato mostra il valore ACTIVE. A questo punto è possibile addestrare il modello utilizzando il set di dati specificato.
**Nota**  
L'attività di importazione richiede del tempo. Prima di addestrare il modello con il set di dati, attendere il completamento dell'importazione del set di dati.

## Fase 2: Creare una soluzione (addestrare il modello)
<a name="gs-create-solution"></a>

Per addestrare un modello, si crea la configurazione per l'addestramento del modello utilizzando l'[CreateSolution](API_CreateSolution.md)operazione e si lascia attivo l'addestramento automatico. La soluzione avvia automaticamente l'addestramento della prima soluzione entro un'ora.

Si addestra un modello utilizzando una ricetta e i dati di allenamento. Amazon Personalize fornisce una serie di ricette predefinite. Per ulteriori informazioni, consulta [Scegliere una ricetta](working-with-predefined-recipes.md). Per questo esercizio, usi la ricetta User-Personalization-v 2.

1. Creare la configurazione per l'addestramento di un modello eseguendo il seguente comando. Questo comando crea una soluzione che utilizza l'addestramento automatico. Crea automaticamente una nuova versione della soluzione ogni sette giorni (impostazione predefinita).

   ```
   aws personalize create-solution \
     --name MovieSolution \
     --dataset-group-arn arn:aws:personalize:us-west-2:{{acct-id}}:dataset-group/MovieRatingDatasetGroup \
     --recipe-arn arn:aws:personalize:::recipe/aws-user-personalization-v2 \ 
     --perform-auto-training \
     --solution-config "{\"autoTrainingConfig\": {\"schedulingExpression\": \"rate(7 days)\"}}"
   ```

   Viene visualizzato l'ARN della soluzione, ad esempio:

   ```
   {
     "solutionArn": "arn:aws:personalize:us-west-2:acct-id:solution/MovieSolution"
   }
   ```

1. Verificare lo stato della *creazione* utilizzando il comando `describe-solution`. Fornire l'ARN della soluzione restituito al passaggio precedente. Per ulteriori informazioni sull'API, consulta [DescribeSolution](API_DescribeSolution.md).

   ```
   aws personalize describe-solution \
     --solution-arn arn:aws:personalize:us-west-2:{{acct-id}}:solution/MovieSolution
   ```

   Vengono visualizzati le proprietà della soluzione e lo `status` di creazione. Per esempio:

   ```
   {      
     "solution": {
         "name": "MovieSolution",
         "solutionArn": "arn:aws:personalize:us-west-2:acct-id:solution/MovieSolution",
         "performHPO": false,
         "performAutoML": false,
         "recipeArn": "arn:aws:personalize:::recipe/aws-user-personalization-v2",
         "datasetGroupArn": "arn:aws:personalize:us-west-2:acct-id:dataset-group/MovieRatingDatasetGroup",
         "solutionConfig": {
               "algorithmHyperParameters": {
                   "apply_recency_bias": "true"
               },
               "featureTransformationParameters": {},
               "autoTrainingConfig": {
                   "schedulingExpression": "rate(7 days)"
               }
          },
         "status": "ACTIVE",
         "creationDateTime": "2021-05-12T16:27:59.819000-07:00",
         "lastUpdatedDateTime": "2021-05-12T16:27:59.819000-07:00"
     }
   }
   ```

1.  Con l'addestramento automatico, l'addestramento sulla versione della soluzione inizia dopo che la soluzione è ATTIVA. Dopo l'inizio della formazione, puoi ottenere l'Amazon Resource Name (ARN) della versione della soluzione con il seguente comando: [ListSolutionVersions](https://docs.aws.amazon.com/personalize/latest/dg/API_ListSolutionVersions.html) 

   ```
   aws personalize list-solution-versions --solution-arn arn:aws:personalize:us-west-2:{{acct-id}}:solution/MovieSolution
   ```

1. Verificare lo stato dell'*addestramento* della versione della soluzione usando il comando `describe-solution-version`. Fornire l'ARN della versione della soluzione restituito al passaggio precedente. Per ulteriori informazioni sull'API, consulta [DescribeSolutionVersion](API_DescribeSolutionVersion.md).

   ```
   aws personalize describe-solution-version \
     --solution-version-arn arn:aws:personalize:us-west-2:{{acct-id}}:solution/MovieSolution/{{version-id}}
   ```

   Vengono visualizzate le proprietà della versione della soluzione e lo `status` dell'addestramento. Inizialmente, lo stato mostra il valore CREATE PENDING, ad esempio:

   ```
   {
     "solutionVersion": {
         "solutionVersionArn": "arn:aws:personalize:us-west-2:acct-id:solution/MovieSolution/<version-id>",
         ...,
         "status": "CREATE PENDING"
     }
   }
   ```

1. Quando la versione della soluzione `status` è ATTIVA, la formazione è completa.

   Ora puoi rivedere le metriche di formazione e creare una campagna utilizzando la versione della soluzione.
**Nota**  
L'attività di addestramento richiede del tempo. Prima di utilizzare questa versione della soluzione in una campagna, attendere fino al termine dell'addestramento (lo stato dell'*addestramento* mostra ACTIVE).

1. È possibile convalidare le prestazioni della versione della soluzione riesaminando i parametri. Ottenere i parametri della versione della soluzione eseguendo il seguente comando. Fornire l'ARN della versione della soluzione restituito in precedenza. Per ulteriori informazioni sull'API, consulta [GetSolutionMetrics](API_GetSolutionMetrics.md).

   ```
   aws personalize get-solution-metrics \
     --solution-version-arn arn:aws:personalize:us-west-2:{{acct-id}}:solution/MovieSolution/{{version-id}}
   ```

   Di seguito è mostrata una risposta di esempio:

   ```
   {
     "solutionVersionArn": "arn:aws:personalize:us-west-2:acct-id:solution/www-solution/<version-id>",
     "metrics": {
           "coverage": 0.0485,
           "mean_reciprocal_rank_at_25": 0.0381,
           "normalized_discounted_cumulative_gain_at_10": 0.0363,
           "normalized_discounted_cumulative_gain_at_25": 0.0984,
           "normalized_discounted_cumulative_gain_at_5": 0.0175,
           "precision_at_10": 0.0107,
           "precision_at_25": 0.0207,
           "precision_at_5": 0.0107
       }
   }
   ```

## Fase 3: Creare una campagna (implementare la soluzione)
<a name="gs-create-campaign"></a>

Prima di ricevere consigli, è necessario distribuire una versione della soluzione. La distribuzione di una soluzione è nota anche come creazione di una campagna. Una volta creata la campagna, l'applicazione client può ottenere raccomandazioni utilizzando l'API [GetRecommendations](API_RS_GetRecommendations.md).

1. Creare una campagna eseguendo il seguente comando. Fornire l'ARN della versione della soluzione restituito al passaggio precedente. Per ulteriori informazioni sull'API, consulta [CreateCampaign](API_CreateCampaign.md).

   ```
   aws personalize create-campaign \
     --name MovieRecommendationCampaign \
     --solution-version-arn arn:aws:personalize:us-west-2:{{acct-id}}:solution/MovieSolution/{{version-id}} \
     --min-provisioned-tps 1
   ```

   Di seguito è mostrata una risposta di esempio:

   ```
   {
     "campaignArn": "arn:aws:personalize:us-west-2:acct-id:campaign/MovieRecommendationCampaign"
   }
   ```

1. Verificare lo stato della distribuzione eseguendo il seguente comando. Fornire l'ARN della campagna restituito al passaggio precedente. Per ulteriori informazioni sull'API, consulta [DescribeCampaign](API_DescribeCampaign.md).

   ```
   aws personalize describe-campaign \
     --campaign-arn arn:aws:personalize:us-west-2:{{acct-id}}:campaign/MovieRecommendationCampaign
   ```

   Di seguito è mostrata una risposta di esempio:

   ```
   {
     "campaign": { 
         "name": "MovieRecommendationCampaign",
         "campaignArn": "arn:aws:personalize:us-west-2:acct-id:campaign/MovieRecommendationCampaign",
         "solutionVersionArn": "arn:aws:personalize:us-west-2:acct-id:solution/MovieSolution/<version-id>",
         "minProvisionedTPS": "1",
         "creationDateTime": 1543864775.923,
         "lastUpdatedDateTime": 1543864791.923,
         "status": "CREATE IN_PROGRESS"
     }
   }
   ```
**Nota**  
Prima di ottenere le raccomandazioni dalla campagna, attendere fino a che lo `status` assume il valore ACTIVE.

## Fase 4: Ottieni consigli
<a name="gs-test"></a>

È possibile ottenere raccomandazioni eseguendo il comando `get-recommendations`. Fornire l'ARN della campagna restituito al passaggio precedente. Nella richiesta, è necessario specificare un ID utente dal set di dati delle valutazioni dei film. Per ulteriori informazioni sull'API, consulta [GetRecommendations](API_RS_GetRecommendations.md).

**Nota**  
Non tutte le ricette supportano l'API `GetRecommendations`. Per ulteriori informazioni, consulta [Scegliere una ricetta](working-with-predefined-recipes.md).  
Il AWS CLI comando richiamato in questo passaggio è diverso rispetto ai passaggi precedenti. `personalize-runtime`

```
aws personalize-runtime get-recommendations \
  --campaign-arn arn:aws:personalize:us-west-2:{{acct-id}}:campaign/MovieRecommendationCampaign \
  --user-id 123
```

In risposta, la campagna restituisce un elenco di articoli consigliati (film IDs) che potrebbero interessare all'utente. L'elenco è ordinato in ordine decrescente di rilevanza per l'utente.

```
{
  "itemList": [
      {
          "itemId": "14"
      },
      {
          "itemId": "15"
      },
      {
          "itemId": "275"
      },
      {
          "itemId": "283"
      },
      {
          "itemId": "273"
      },
      ...
  ]
}
```