

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à.

# Miglioramento di un modello Amazon Rekognition Custom Labels addestrato
<a name="improving-model"></a>

Al termine dell'addestramento, puoi valutare le prestazioni del modello. Per aiutarti, Amazon Rekognition Custom Labels fornisce metriche di riepilogo e metriche di valutazione per ogni etichetta. Per ulteriori informazioni sulle metriche disponibili, consulta [Metriche per la valutazione del modello](im-metrics-use.md). Per migliorare il tuo modello utilizzando le metriche, consulta. [Miglioramento di un modello Amazon Rekognition Custom Labels](tr-improve-model.md) 



Se sei soddisfatto della precisione del modello, puoi iniziare a utilizzarlo. Per ulteriori informazioni, consulta [Esecuzione di un modello Amazon Rekognition Custom Labels addestrato](running-model.md). 

**Topics**
+ [Metriche per la valutazione del modello](im-metrics-use.md)
+ [Accesso alle metriche di valutazione (Console)](im-access-training-results.md)
+ [Accesso alle metriche di valutazione (SDK) di Amazon Rekognition Custom Labels](im-metrics-api.md)
+ [Miglioramento di un modello Amazon Rekognition Custom Labels](tr-improve-model.md)

# Metriche per la valutazione del modello
<a name="im-metrics-use"></a>

Dopo aver addestrato il modello, Amazon Rekognition Custom Labels restituisce metriche dei test del modello, che puoi utilizzare per valutare le prestazioni del modello. Questo argomento descrive le metriche a tua disposizione e come capire se il tuo modello addestrato ha buone prestazioni. 

La console di Amazon Rekognition Custom Labels fornisce le seguenti metriche come riepilogo dei risultati di addestramento e come metriche per ciascuna etichetta: 
+ [Precisione](#im-precision-metric)
+ [Recupero](#im-recall-metric)
+ [F1](#im-f1-metric)

Ogni metrica che forniamo è una metrica comunemente usata per valutare le prestazioni di un modello di apprendimento automatico. Amazon Rekognition Custom Labels restituisce le metriche per i risultati dei test sull'intero set di dati di test, insieme a metriche per ogni etichetta personalizzata. Puoi anche esaminare le prestazioni del tuo modello personalizzato addestrato per ogni immagine nel set di dati di test. Per ulteriori informazioni, consulta [Accesso alle metriche di valutazione (Console)](im-access-training-results.md).

## Valutazione delle prestazioni del modello
<a name="tr-evaluate-performance"></a>

Durante i test, Amazon Rekognition Custom Labels prevede se un'immagine di test contiene un'etichetta personalizzata. Il punteggio di affidabilità è un valore che quantifica la certezza della previsione del modello.

Se il punteggio di affidabilità per un'etichetta personalizzata supera il valore di soglia, l'output del modello includerà questa etichetta. Le previsioni possono essere classificate nei seguenti modi:
+ *Vero positivo* – Il modello di Amazon Rekognition Custom Labels prevede correttamente la presenza dell'etichetta personalizzata nell'immagine di test. Vale a dire che l'etichetta prevista è anche un'etichetta "dati acquisiti sul campo" per quell'immagine. Ad esempio, Amazon Rekognition Custom Labels restituisce correttamente l'etichetta di un pallone da calcio quando in un'immagine è presente un pallone da calcio. 
+ *Falso positivo* – Il modello Amazon Rekognition Custom Labels prevede erroneamente la presenza di un'etichetta personalizzata in un'immagine di test. Vale a dire che l'etichetta prevista non è un'etichetta "dati acquisiti sul campo" per l'immagine. Ad esempio, Amazon Rekognition Custom Labels restituisce l'etichetta di un pallone da calcio, ma non esiste un'etichetta di pallone da calcio nei dati acquisiti sul campo di quell'immagine.
+ *Falso negativo* – Il modello Amazon Rekognition Custom Labels non prevede la presenza di un'etichetta personalizzata nell'immagine, ma i "dati acquisiti sul campo" di quell'immagine includono questa etichetta. Ad esempio, Amazon Rekognition Custom Labels non restituisce un'etichetta personalizzata ‘pallone da calcio’ per un'immagine che contiene un pallone da calcio. 
+ *Vero negativo* – Il modello Amazon Rekognition Custom Labels prevede correttamente che un'etichetta personalizzata non sia presente nell'immagine di test. Ad esempio, Amazon Rekognition Custom Labels non restituisce un'etichetta per un pallone da calcio per un'immagine che non contiene un pallone da calcio. 

La console fornisce l'accesso a valori di vero positivo, falso positivo e falso negativo per ogni immagine nel set di dati di test. Per ulteriori informazioni, consulta [Accesso alle metriche di valutazione (Console)](im-access-training-results.md).

Questi risultati di previsione vengono utilizzati per calcolare le seguenti metriche per ogni etichetta e un aggregato per l'intero set di test. Le stesse definizioni si applicano alle previsioni fatte dal modello a livello del riquadro di delimitazione, con la differenza per cui tutte le metriche vengono calcolate su ogni riquadro di delimitazione (previsione o dati acquisiti sul campo) in ogni immagine di test.

### Intersection over Union (IoU) e rilevamento di oggetti
<a name="tr-evaluate-performance-object-detection"></a>

Intersection over Union (IoU) misura la percentuale di sovrapposizione tra due riquadri di delimitazione degli oggetti sulla loro area combinata. L'intervallo è compreso tra 0 (sovrapposizione minima) e 1 (sovrapposizione completa). Durante il test, un riquadro di delimitazione previsto è corretto quando l'IoU del riquadro di delimitazione dei dati acquisiti sul campo e del riquadro di delimitazione previsto è almeno 0,5.

## Soglia presupposta
<a name="im-assumed-threshold"></a>

Amazon Rekognition Custom Labels calcola automaticamente un valore di soglia presupposta (0-1) per ciascuna delle tue etichette personalizzate. Non puoi impostare il valore di soglia presupposta per un'etichetta personalizzata. La *soglia presupposta* per ogni etichetta è il valore al di sopra del quale una previsione viene considerata come vera o falsa positiva. È impostata in base al set di dati di test. La soglia presupposta viene calcolata in base al miglior punteggio F1 ottenuto sul set di dati di test durante l'addestramento del modello.

È possibile ottenere il valore della soglia presupposta per un'etichetta dai risultati di addestramento del modello. Per ulteriori informazioni, consulta [Accesso alle metriche di valutazione (Console)](im-access-training-results.md).

Modifiche ai valori di soglia presupposta vengono in genere utilizzate per migliorare la precisione e il recupero di un modello. Per ulteriori informazioni, consulta [Miglioramento di un modello Amazon Rekognition Custom Labels](tr-improve-model.md). Poiché non è possibile impostare la soglia presupposta di un modello per un'etichetta, è possibile ottenere gli stessi risultati analizzando un'immagine `DetectCustomLabels` e specificando il parametro di input `MinConfidence`. Per ulteriori informazioni, consulta [Analisi di un'immagine con un modello addestrato](detecting-custom-labels.md). 

## Precisione
<a name="im-precision-metric"></a>

Amazon Rekognition Custom Labels fornisce metriche di precisione per ogni etichetta e una metrica di precisione media per l'intero set di dati di test. 

La *precisione* è la frazione di previsioni corrette (veri positivi) rispetto a tutte le previsioni del modello (veri e falsi positivi) alla soglia presupposta per una singola etichetta. All'aumentare della soglia, il modello potrebbe fare meno previsioni. In generale, tuttavia, avrà un rapporto più elevato tra veri positivi e falsi positivi rispetto a una soglia inferiore. I valori di precisione possibili vanno da 0 a 1 e valori più alti indicano una precisione maggiore.

Ad esempio, quando il modello prevede la presenza di un pallone da calcio in un'immagine, con che frequenza tale previsione è corretta? Supponiamo che ci sia un'immagine con 8 palloni da calcio e 5 sassi. Se il modello prevede 9 palloni da calcio, 8 previsti correttamente e 1 falso positivo, la precisione di questo esempio è 0,89. Tuttavia, se il modello prevedeva 13 palloni da calcio nell'immagine con 8 previsioni corrette e 5 errate, la precisione risultante è inferiore.

Per ulteriori informazioni, consulta [Precisione e recupero](https://en.wikipedia.org/wiki/Precision_and_recall).

## Recupero
<a name="im-recall-metric"></a>

Amazon Rekognition Custom Labels fornisce metriche di recupero medio per ogni etichetta e una metrica di recupero medio per l'intero set di dati di test. 

Il *recupero* è la frazione delle etichette del set di test che sono state previste correttamente al di sopra della soglia presupposta. È una misura della frequenza con cui il modello è in grado di prevedere correttamente un'etichetta personalizzata quando è effettivamente presente nelle immagini del set di test. L'intervallo di recupero è da 0 a 1. Valori più alti indicano un recupero più elevato.

Ad esempio, se un'immagine contiene 8 palloni da calcio, quanti di essi vengono rilevati correttamente? In questo esempio in cui un'immagine ha 8 palloni da calcio e 5 sassi, se il modello rileva 5 palloni da calcio, il valore di recupero è 0,62. Se dopo il riaddestramento, il nuovo modello rileva 9 palloni da calcio, inclusi tutti gli 8 presenti nell'immagine, il valore di recupero è 1,0.

Per ulteriori informazioni, consulta [Precisione e recupero](https://en.wikipedia.org/wiki/Precision_and_recall).

## F1
<a name="im-f1-metric"></a>

Amazon Rekognition Custom Labels utilizza la metrica del punteggio F1 per misurare le prestazioni medie del modello di ciascuna etichetta e le prestazioni medie del modello dell'intero set di dati di test.

Le *prestazioni del modello* sono una misura aggregata che tiene conto sia della precisione sia del recupero su tutte le etichette (ad esempio, punteggio F1 o precisione media). Il punteggio delle prestazioni del modello è compreso tra 0 e 1. Quanto più alto è il valore, migliori sono le prestazioni del modello in termini di recupero e precisione. In particolare, le prestazioni del modello per attività di classificazione vengono generalmente misurate in base al punteggio F1. Tale punteggio è la media armonica dei punteggi di precisione e recupero alla soglia presupposta. Ad esempio, per un modello con una precisione di 0,9 e un recupero di 1,0, il punteggio F1 è 0,947.

Un valore elevato per il punteggio F1 indica che il modello offre buone prestazioni in termini di precisione e recupero. Se il modello non ha buone prestazioni, ad esempio, con una precisione bassa di 0,30 e un recupero elevato di 1,0, il punteggio F1 è 0,46. Analogamente, se la precisione è elevata (0,95) e il recupero è basso (0,20), il punteggio F1 è 0,33. In entrambi i casi, il punteggio F1 è basso e indica problemi con il modello. 

Per ulteriori informazioni, consulta [punteggio F1](https://en.wikipedia.org/wiki/F1_score).

## Utilizzo delle metriche
<a name="im-using-metrics"></a>

Per un determinato modello che hai addestrato e a seconda dell'applicazione, è possibile fare un compromesso tra *precisione* e *recupero* utilizzando il parametro di input `MinConfidence` a `DetectCustomLabels`. Con un valore `MinConfidence` più alto, in genere si ottiene una maggiore *precisione* (previsioni più corrette dei palloni da calcio), ma un *recupero* inferiore (più palloni da calcio effettivi non saranno rilevati). Con un valore `MinConfidence` più basso, si ottiene un maggiore *recupero* (più palloni da calcio reali previsti correttamente), ma una *precisione* inferiore (un numero maggiore di queste previsioni sarà errato). Per ulteriori informazioni, consulta [Analisi di un'immagine con un modello addestrato](detecting-custom-labels.md). 

Le metriche ti informano anche sulle misure che potresti adottare per migliorare le prestazioni del modello, se necessario. Per ulteriori informazioni, consulta [Miglioramento di un modello Amazon Rekognition Custom Labels](tr-improve-model.md). 

**Nota**  
`DetectCustomLabels` restituisce previsioni comprese tra 0 e 100, che corrispondono all'intervallo della metrica da 0 a 1.

# Accesso alle metriche di valutazione (Console)
<a name="im-access-training-results"></a>

Durante il test, le prestazioni del modello vengono valutate rispetto al set di dati di test. Le etichette nel set di dati di test sono considerate “dati acquisiti sul campo” in quanto rappresentano ciò che rappresenta l'immagine reale. Durante il test, il modello effettua previsioni utilizzando il set di dati di test. Le etichette previste vengono confrontate con le etichette di dati acquisiti sul campo e i risultati sono disponibili nella pagina di valutazione della console.

La console di Amazon Rekognition Custom Labels mostra le metriche di riepilogo per l'intero modello e le metriche per le singole etichette. Le metriche disponibili nella console sono precisione, recupero, punteggio F1, affidabilità e soglia di affidabilità. Per ulteriori informazioni, consulta [Miglioramento di un modello Amazon Rekognition Custom Labels addestrato](improving-model.md).

Puoi utilizzare la console per concentrarti sulle singole metriche. Ad esempio, per esaminare problemi di precisione relativi a un'etichetta, puoi filtrare i risultati dell’addestramento per etichetta e per risultati *falsi positivi*. Per ulteriori informazioni, consulta [Metriche per la valutazione del modello](im-metrics-use.md).

Dopo l'addestramento, il set di dati di addestramento è di sola lettura. Se decidi di migliorare il modello, puoi copiare il set di dati di addestramento in un nuovo set di dati. La copia del set di dati viene utilizzata per addestrare una nuova versione del modello. 

In questo passaggio, utilizza la console per accedere ai risultati dell'addestramento nella console. 

**Come accedere alle metriche di valutazione (console)**

1. Apri la console Amazon Rekognition all'indirizzo. [https://console.aws.amazon.com/rekognition/](https://console.aws.amazon.com/rekognition/)

1. Scegli **Usa etichette personalizzate**.

1. Scegli **Avvia**. 

1. Nel pannello di navigazione a sinistra, scegli **Progetti**.

1. Nella pagina **Progetti**, scegli il progetto che contiene il modello addestrato che desideri valutare.

1. In **Modelli**, scegli il modello che desideri valutare. 

1. Scegli la scheda **Valutazione** per vedere i risultati della valutazione. Per ulteriori informazioni sulla valutazione di un modello, consulta [Miglioramento di un modello Amazon Rekognition Custom Labels addestrato](improving-model.md).

1. Scegli **Visualizza risultati di test** per visualizzare i risultati delle singole immagini di test. Per ulteriori informazioni, consulta [Metriche per la valutazione del modello](im-metrics-use.md). La seguente schermata del riepilogo della valutazione del modello mostra il punteggio F1, la precisione media e il richiamo complessivo per 6 etichette con risultati dei test e metriche prestazionali. Vengono inoltre forniti dettagli sull'utilizzo del modello addestrato.   
![\[Riepilogo della valutazione del modello che mostra il punteggio F1, la precisione media e il richiamo complessivo.\]](http://docs.aws.amazon.com/it_it/rekognition/latest/customlabels-dg/images/get-started-training-results.jpg)

1. Dopo aver visualizzato i risultati di test, scegli il nome del progetto per tornare alla pagina del modello. La pagina dei risultati del test mostra immagini con etichette e punteggi di affidabilità previsti per un modello di apprendimento automatico addestrato sulle categorie di immagini del cortile interno e del cortile anteriore. Vengono visualizzate due immagini di esempio.   
![\[La pagina dei risultati del test mostra immagini con etichette e punteggi di confidenza previsti.\]](http://docs.aws.amazon.com/it_it/rekognition/latest/customlabels-dg/images/get-started-image-test-results.jpg)

1. Utilizza le metriche per valutare le prestazioni del modello. Per ulteriori informazioni, consulta [Miglioramento di un modello Amazon Rekognition Custom Labels](tr-improve-model.md). 

# Accesso alle metriche di valutazione (SDK) di Amazon Rekognition Custom Labels
<a name="im-metrics-api"></a>

L'[DescribeProjectVersions](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_DescribeProjectVersions)operazione fornisce l'accesso a metriche oltre a quelle fornite nella console. 

Analogamente alla console, `DescribeProjectVersions` fornisce l'accesso alle seguenti metriche come informazioni di riepilogo dei risultati di test e come risultati di test per ciascuna etichetta:
+ [Precisione](im-metrics-use.md#im-precision-metric)
+ [Recupero](im-metrics-use.md#im-recall-metric)
+ [F1](im-metrics-use.md#im-f1-metric)

Viene restituita la soglia media per tutte le etichette e la soglia per le singole etichette.

`DescribeProjectVersions` fornisce inoltre l'accesso alle seguenti metriche per la classificazione e il rilevamento delle immagini (posizione dell'oggetto sull'immagine).
+ *Matrice di confusione* per la classificazione delle immagini. Per ulteriori informazioni, consulta [Visualizzazione della matrice di confusione per un modello](im-confusion-matrix.md).
+ *Precisione meda (mAP)* per il rilevamento di immagini.
+ *Recupero medio (mAR)* per il rilevamento di immagini.

`DescribeProjectVersions` fornisce anche l'accesso a valori di vero positivo, falso positivo, falso negativo e vero negativo. Per ulteriori informazioni, consulta [Metriche per la valutazione del modello](im-metrics-use.md).

La metrica aggregata del punteggio F1 viene restituita direttamente da `DescribeProjectVersions`. Altre metriche sono accessibili dai file [Accesso al file di riepilogo del modello](im-summary-file-api.md) e [Interpretazione dell'istantanea del manifesto di valutazione](im-evaluation-manifest-snapshot-api.md) archiviati in un bucket Amazon S3. Per ulteriori informazioni, consulta [Accesso al file di riepilogo e all’istantanea del manifest di valutazione (SDK)](im-access-summary-evaluation-manifest.md).

**Topics**
+ [Accesso al file di riepilogo del modello](im-summary-file-api.md)
+ [Interpretazione dell'istantanea del manifesto di valutazione](im-evaluation-manifest-snapshot-api.md)
+ [Accesso al file di riepilogo e all’istantanea del manifest di valutazione (SDK)](im-access-summary-evaluation-manifest.md)
+ [Visualizzazione della matrice di confusione per un modello](im-confusion-matrix.md)
+ [Riferimento: file di riepilogo dei risultati di addestramento](im-summary-file.md)

# Accesso al file di riepilogo del modello
<a name="im-summary-file-api"></a>

Il file di riepilogo contiene i risultati di valutazione, le informazioni sul modello nel suo insieme e le metriche per ogni etichetta. Le metriche sono precisione, recupero, punteggio F1. Viene inoltre fornito il valore di soglia per il modello. La posizione del file di riepilogo è accessibile dall'oggetto `EvaluationResult` restituito da `DescribeProjectVersions`. Per ulteriori informazioni, consulta [Riferimento: file di riepilogo dei risultati di addestramento](im-summary-file.md).

Di seguito è riportato un esempio del file di riepilogo.

```
{
  "Version": 1,
  "AggregatedEvaluationResults": {
    "ConfusionMatrix": [
      {
        "GroundTruthLabel": "CAP",
        "PredictedLabel": "CAP",
        "Value": 0.9948717948717949
      },
      {
        "GroundTruthLabel": "CAP",
        "PredictedLabel": "WATCH",
        "Value": 0.008547008547008548
      },
      {
        "GroundTruthLabel": "WATCH",
        "PredictedLabel": "CAP",
        "Value": 0.1794871794871795
      },
      {
        "GroundTruthLabel": "WATCH",
        "PredictedLabel": "WATCH",
        "Value": 0.7008547008547008
      }
    ],
    "F1Score": 0.9726959470546408,
    "Precision": 0.9719115848331294,
    "Recall": 0.9735042735042735
  },
  "EvaluationDetails": {
    "EvaluationEndTimestamp": "2019-11-21T07:30:23.910943",
    "Labels": [
      "CAP",
      "WATCH"
    ],
    "NumberOfTestingImages": 624,
    "NumberOfTrainingImages": 5216,
    "ProjectVersionArn": "arn:aws:rekognition:us-east-1:nnnnnnnnn:project/my-project/version/v0/1574317227432"
  },
  "LabelEvaluationResults": [
    {
      "Label": "CAP",
      "Metrics": {
        "F1Score": 0.9794344473007711,
        "Precision": 0.9819587628865979,
        "Recall": 0.9769230769230769,
        "Threshold": 0.9879502058029175
      },
      "NumberOfTestingImages": 390
    },
    {
      "Label": "WATCH",
      "Metrics": {
        "F1Score": 0.9659574468085106,
        "Precision": 0.961864406779661,
        "Recall": 0.9700854700854701,
        "Threshold": 0.014450683258473873
      },
      "NumberOfTestingImages": 234
    }
  ]
}
```

# Interpretazione dell'istantanea del manifesto di valutazione
<a name="im-evaluation-manifest-snapshot-api"></a>

L'istantanea del manifest di valutazione contiene informazioni dettagliate sui risultati del test. L'istantanea include l'indice di affidabilità per ogni previsione. Include anche la classificazione della previsione rispetto alla classificazione effettiva dell'immagine (vero positivo, vero negativo, falso positivo o falso negativo). 

I file sono un'istantanea poiché sono incluse solo le immagini che possono essere utilizzate per test e addestramento. Le immagini che non possono essere verificate, ad esempio immagini nel formato sbagliato, non sono incluse nel manifest. La posizione dell'istantanea di test è accessibile dall'oggetto `TestingDataResult` restituito da `DescribeProjectVersions`. La posizione dell'istantanea di addestramento è accessibile dall'oggetto `TrainingDataResult` restituito da `DescribeProjectVersions`. 

L'istantanea è in formato di output manifest SageMaker AI Ground Truth con campi aggiunti per fornire informazioni aggiuntive, come il risultato della classificazione binaria di un rilevamento. Il seguente esempio mostra i campi aggiuntivi.

```
"rekognition-custom-labels-evaluation-details": {
    "version": 1,
    "is-true-positive": true,
    "is-true-negative": false,
    "is-false-positive": false,
    "is-false-negative": false,
    "is-present-in-ground-truth": true
    "ground-truth-labelling-jobs": ["rekognition-custom-labels-training-job"]
}
```
+ *version* — La versione del formato del campo `rekognition-custom-labels-evaluation-details` all'interno dell'istantanea del manifest.
+ *is-true-positive...* — La classificazione binaria della previsione basata sul confronto tra il punteggio di confidenza e la soglia minima per l'etichetta.
+ *is-present-in-ground-verità*: è vera se la previsione fatta dal modello è presente nelle informazioni veritiere di base utilizzate per l'allenamento, altrimenti è falsa. Questo valore non si basa sul fatto che il punteggio di affidabilità superi la soglia minima calcolata dal modello. 
+ *ground-truth-labeling-jobs*— Un elenco di campi di verità fondamentali nella riga del manifesto utilizzati per l'addestramento.

Per informazioni sul formato manifest di SageMaker AI Ground Truth, vedi [Output](https://docs.aws.amazon.com/sagemaker/latest/dg/sms-data-output.html). 

Di seguito è riportato un esempio di istantanea del manifest di test che mostra le metriche per la classificazione delle immagini e il rilevamento degli oggetti.

```
// For image classification
{
  "source-ref": "s3://amzn-s3-demo-bucket/dataset/beckham.jpeg",
  "rekognition-custom-labels-training-0": 1,
  "rekognition-custom-labels-training-0-metadata": {
    "confidence": 1.0,
    "job-name": "rekognition-custom-labels-training-job",
    "class-name": "Football",
    "human-annotated": "yes",
    "creation-date": "2019-09-06T00:07:25.488243",
    "type": "groundtruth/image-classification"
  },
  "rekognition-custom-labels-evaluation-0": 1,
  "rekognition-custom-labels-evaluation-0-metadata": {
    "confidence": 0.95,
    "job-name": "rekognition-custom-labels-evaluation-job",
    "class-name": "Football",
    "human-annotated": "no",
    "creation-date": "2019-09-06T00:07:25.488243",
    "type": "groundtruth/image-classification",
    "rekognition-custom-labels-evaluation-details": {
      "version": 1,
      "ground-truth-labelling-jobs": ["rekognition-custom-labels-training-job"],
      "is-true-positive": true,
      "is-true-negative": false,
      "is-false-positive": false,
      "is-false-negative": false,
      "is-present-in-ground-truth": true
    }
  }
}


// For object detection
{
  "source-ref": "s3://amzn-s3-demo-bucket/dataset/beckham.jpeg",
  "rekognition-custom-labels-training-0": {
    "annotations": [
      {
        "class_id": 0,
        "width": 39,
        "top": 409,
        "height": 63,
        "left": 712
      },
      ...
    ],
    "image_size": [
      {
        "width": 1024,
        "depth": 3,
        "height": 768
      }
    ]
  },
  "rekognition-custom-labels-training-0-metadata": {
    "job-name": "rekognition-custom-labels-training-job",
    "class-map": {
      "0": "Cap",
      ...
    },
    "human-annotated": "yes",
    "objects": [
      {
        "confidence": 1.0
      },
      ...
    ],
    "creation-date": "2019-10-21T22:02:18.432644",
    "type": "groundtruth/object-detection"
  },
  "rekognition-custom-labels-evaluation": {
    "annotations": [
      {
        "class_id": 0,
        "width": 39,
        "top": 409,
        "height": 63,
        "left": 712
      },
      ...
    ],
    "image_size": [
      {
        "width": 1024,
        "depth": 3,
        "height": 768
      }
    ]
  },
  "rekognition-custom-labels-evaluation-metadata": {
    "confidence": 0.95,
    "job-name": "rekognition-custom-labels-evaluation-job",
    "class-map": {
      "0": "Cap",
      ...
    },
    "human-annotated": "no",
    "objects": [
      {
        "confidence": 0.95,
        "rekognition-custom-labels-evaluation-details": {
          "version": 1,
          "ground-truth-labelling-jobs": ["rekognition-custom-labels-training-job"],
          "is-true-positive": true,
          "is-true-negative": false,
          "is-false-positive": false,
          "is-false-negative": false,
          "is-present-in-ground-truth": true
        }
      },
      ...
    ],
    "creation-date": "2019-10-21T22:02:18.432644",
    "type": "groundtruth/object-detection"
  }
}
```

# Accesso al file di riepilogo e all’istantanea del manifest di valutazione (SDK)
<a name="im-access-summary-evaluation-manifest"></a>

Per ottenere risultati di allenamento, chiami [DescribeProjectVersions](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_DescribeProjectVersions). Per il codice di esempio, consulta [Descrizione di un modello (SDK)](md-describing-model-sdk.md).

La posizione delle metriche viene restituita nella risposta `ProjectVersionDescription` da `DescribeProjectVersions`.
+ `EvaluationResult` — La posizione del file di riepilogo.
+ `TestingDataResult` — La posizione dell'istantanea del manifest di valutazione utilizzata per il test. 

Il punteggio F1 e la posizione del file di riepilogo vengono restituiti in `EvaluationResult`. Esempio:

```
"EvaluationResult": {
                "F1Score": 1.0,
                "Summary": {
                    "S3Object": {
                        "Bucket": "echo-dot-scans",
                        "Name": "test-output/EvaluationResultSummary-my-echo-dots-project-v2.json"
                    }
                }
            }
```

L'istantanea del manifest di valutazione viene archiviata nella posizione specificata nel parametro di input ` --output-config` specificato in [Addestramento di un modello (SDK)](training-model.md#tm-sdk). 

**Nota**  
In `BillableTrainingTimeInSeconds` viene restituito il tempo, espresso in secondi, a disposizione per l’addestramento. 

Per informazioni sulle metriche restituite da Amazon Rekognition Custom Labels, consulta [Accesso alle metriche di valutazione (SDK) di Amazon Rekognition Custom Labels](im-metrics-api.md).

# Visualizzazione della matrice di confusione per un modello
<a name="im-confusion-matrix"></a>

Una matrice di confusione consente di visualizzare le etichette che il modello confonde con altre etichette del modello. Utilizzando una matrice di confusione, è possibile concentrare i miglioramenti sul modello.

Durante la valutazione del modello, Amazon Rekognition Custom Labels crea una matrice di confusione utilizzando le immagini di test per identificare etichette erroneamente identificate (confuse). Amazon Rekognition Custom Labels crea solo una matrice di confusione per i modelli di classificazione. La matrice di classificazione è accessibile dal file di riepilogo creato da Amazon Rekognition Custom Labels durante l’addestramento del modello. Non puoi visualizzare la matrice di confusione nella console Amazon Rekognition Custom Labels.

**Topics**
+ [Utilizzo di una matrice di confusione](#im-using-confusion-matrix)
+ [Ottenere la matrice di confusione per un modello](#im-getting-confusion-matrix)

## Utilizzo di una matrice di confusione
<a name="im-using-confusion-matrix"></a>

La tabella seguente è la matrice di confusione per il progetto di esempio [Classificazione di immagini di stanze](getting-started.md#gs-image-classification-example). Le intestazioni delle colonne sono le etichette (etichette di dati acquisiti sul campo) assegnate alle immagini di test. Le intestazioni delle righe sono le etichette che il modello prevede per le immagini di test. Ogni cella è la percentuale di previsioni per un'etichetta (riga) che dovrebbe essere l'etichetta di dati acquisiti sul campo (colonna). Ad esempio, il 67% delle previsioni relative a bagni sono state etichettate correttamente come bagni. Il 33% percento dei bagni è stato erroneamente etichettato come cucina. Un modello ad alte prestazioni ha valori di cella elevati quando l'etichetta prevista corrisponde all'etichetta di dati acquisiti sul campo. Puoi vederli come una linea diagonale dalla prima all'ultima etichetta prevista e di dati acquisiti sul campo. Se il valore di una cella è 0, non sono state fatte previsioni per l'etichetta prevista della cella, che dovrebbe essere l'etichetta di dati acquisiti sul campo della cella.

**Nota**  
Poiché i modelli non sono deterministici, i valori delle celle della matrice di confusione ottenuti durante l'addestramento del progetto Stanze potrebbero differire dalla tabella seguente. 

La matrice di confusione identifica le aree su cui concentrarsi. Ad esempio, la matrice di confusione mostra che nel 50% dei casi il modello ha confuso armadi con camere da letto. In questa situazione, è necessario aggiungere altre immagini di armadi e camere da letto al set di dati di addestramento. Verificate inoltre che le immagini esistenti di armadi e camere da letto siano etichettate correttamente. Ciò dovrebbe aiutare il modello a distinguere meglio tra le due etichette. Per aggiungere altre immagini a un set di dati, consulta [Aggiungere altre immagini a un set di dati](md-add-images.md).

Sebbene la matrice di confusione sia utile, è importante considerare altre metriche. Ad esempio, il 100% delle previsioni ha trovato correttamente l'etichetta planimetria, che indica prestazioni eccellenti. Tuttavia, il set di dati di test ha solo 2 immagini con l'etichetta planimetria. Ha anche 11 immagini con l'etichetta soggiorno. Questo squilibrio è presente anche nel set di dati di addestramento (13 immagini soggiorno e 2 immagini armadio). Per ottenere una valutazione più accurata, bilanciate i set di dati di addestramento e di test aggiungendo altre immagini di etichette sottorappresentate (planimetrie in questo esempio). Per ottenere il numero di immagini di test per etichetta, consulta. [Accesso alle metriche di valutazione (Console)](im-access-training-results.md) 

La tabella seguente è un esempio di matrice di confusione, che confronta l'etichetta prevista (sull'asse y) con l'etichetta di verità fondamentale:


| Etichetta prevista | cortile interno | bagno | camera da letto | armadio | ingresso | planimetria | cortile | cucina | soggiorno | patio | 
| --- |--- |--- |--- |--- |--- |--- |--- |--- |--- |--- |
| cortile interno | 75% | 0% | 0% | 0% | 0% | 0% | 33% | 0% | 0% | 0% | 
| --- |--- |--- |--- |--- |--- |--- |--- |--- |--- |--- |
| bagno | 0% | 67% | 0% | 0% | 0% | 0% | 0% | 0% | 0% | 0% | 
| --- |--- |--- |--- |--- |--- |--- |--- |--- |--- |--- |
| camera da letto | 0% | 0% | 82% | 50% | 0% | 0% | 0% | 0% | 9% | 0% | 
| --- |--- |--- |--- |--- |--- |--- |--- |--- |--- |--- |
| armadio | 0% | 0% | 0% | 50% | 0% | 0% | 0% | 0% | 0% | 0% | 
| --- |--- |--- |--- |--- |--- |--- |--- |--- |--- |--- |
| ingresso | 0% | 0% | 0% | 0% | 33% | 0% | 0% | 0% | 0% | 0% | 
| --- |--- |--- |--- |--- |--- |--- |--- |--- |--- |--- |
| planimetria | 0% | 0% | 0% | 0% | 0% | 100% | 0% | 0% | 0% | 0% | 
| --- |--- |--- |--- |--- |--- |--- |--- |--- |--- |--- |
| cortile | 25% | 0% | 0% | 0% | 0% | 0% | 67% | 0% | 0% | 0% | 
| --- |--- |--- |--- |--- |--- |--- |--- |--- |--- |--- |
| cucina | 0% | 33% | 0% | 0% | 0% | 0% | 0% | 88% | 0% | 0% | 
| --- |--- |--- |--- |--- |--- |--- |--- |--- |--- |--- |
| soggiorno | 0% | 0% | 18% | 0% | 67% | 0% | 0% | 12% | 91% | 33% | 
| --- |--- |--- |--- |--- |--- |--- |--- |--- |--- |--- |
| patio | 0% | 0% | 0% | 0% | 0% | 0% | 0% | 0% | 0% | 67% | 
| --- |--- |--- |--- |--- |--- |--- |--- |--- |--- |--- |

## Ottenere la matrice di confusione per un modello
<a name="im-getting-confusion-matrix"></a>

Il codice seguente utilizza le [DescribeProjectVersions](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_DescribeProjectVersions)operazioni [DescribeProjects](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_DescribeProjects)and per ottenere il [file di riepilogo](im-summary-file-api.md) di un modello. Utilizza quindi il file di riepilogo per visualizzare la matrice di confusione per il modello. 

**Visualizzare la matrice di confusione per un modello (SDK)**

1. Se non l'hai ancora fatto, installa e configura il AWS CLI AWS SDKs. Per ulteriori informazioni, consulta [Passaggio 4: configura e AWS CLI AWS SDKs](su-awscli-sdk.md).

1. Utilizza il codice seguente per visualizzare la matrice di confusione per un modello. Fornisci i seguenti argomenti riga di comando:
   + `project_name` — il nome del progetto che desideri utilizzare. Puoi ottenere il nome del progetto dalla pagina dei progetti nella console di Amazon Rekognition Custom Labels.
   + `version_name` — la versione del modello che desideri utilizzare. Puoi ottenere il nome della versione dalla pagina dei dettagli di progetto nella console di Amazon Rekognition Custom Labels.

   ```
   # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
   # SPDX-License-Identifier: Apache-2.0
   
   """
   Purpose
   
   Shows how to display the confusion matrix for an Amazon Rekognition Custom labels image
   classification model.
   """
   
   
   import json
   import argparse
   import logging
   import boto3
   import pandas as pd
   from botocore.exceptions import ClientError
   
   
   logger = logging.getLogger(__name__)
   
   
   def get_model_summary_location(rek_client, project_name, version_name):
       """
       Get the summary file location for a model.
   
       :param rek_client: A Boto3 Rekognition client.
       :param project_arn: The Amazon Resource Name (ARN) of the project that contains the model.
       :param model_arn: The Amazon Resource Name (ARN) of the model.
       :return: The location of the model summary file.
       """
   
       try:
           logger.info(
               "Getting summary file for model %s in project %s.", version_name, project_name)
   
           summary_location = ""
   
           # Get the project ARN from the project name.
           response = rek_client.describe_projects(ProjectNames=[project_name])
   
           assert len(response['ProjectDescriptions']) > 0, \
               f"Project {project_name} not found."
   
           project_arn = response['ProjectDescriptions'][0]['ProjectArn']
   
           # Get the summary file location for the model.
           describe_response = rek_client.describe_project_versions(ProjectArn=project_arn,
                                                                    VersionNames=[version_name])
           assert len(describe_response['ProjectVersionDescriptions']) > 0, \
               f"Model {version_name} not found."
   
           model=describe_response['ProjectVersionDescriptions'][0]
   
           evaluation_results=model['EvaluationResult']
   
           summary_location=(f"s3://{evaluation_results['Summary']['S3Object']['Bucket']}"
                               f"/{evaluation_results['Summary']['S3Object']['Name']}")
   
           return summary_location
   
       except ClientError as err:
           logger.exception(
               "Couldn't get summary file location: %s", err.response['Error']['Message'])
           raise
   
   
   def show_confusion_matrix(summary):
       """
       Shows the confusion matrix for an Amazon Rekognition Custom Labels
       image classification model.
       :param summary: The summary file JSON object.
       """
       pd.options.display.float_format = '{:.0%}'.format
   
       # Load the model summary JSON into a DataFrame.
   
       summary_df = pd.DataFrame(
           summary['AggregatedEvaluationResults']['ConfusionMatrix'])
   
       # Get the confusion matrix.
       confusion_matrix = summary_df.pivot_table(index='PredictedLabel',
                                                 columns='GroundTruthLabel',
                                                 fill_value=0.0).astype(float)
   
       # Display the confusion matrix.
       print(confusion_matrix)
   
   
   def get_summary(s3_resource, summary):
       """
       Gets the summary file.
       : return: The summary file in bytes.
       """
       try:
           summary_bucket, summary_key = summary.replace(
               "s3://", "").split("/", 1)
   
           bucket = s3_resource.Bucket(summary_bucket)
           obj = bucket.Object(summary_key)
           body = obj.get()['Body'].read()
           logger.info(
               "Got summary file '%s' from bucket '%s'.",
               obj.key, obj.bucket_name)
       except ClientError:
           logger.exception(
               "Couldn't get summary file '%s' from bucket '%s'.",
               obj.key, obj.bucket_name)
           raise
       else:
           return body
   
   
   def add_arguments(parser):
       """
       Adds command line arguments to the parser.
       : param parser: The command line parser.
       """
   
       parser.add_argument(
           "project_name", help="The ARN of the project in which the model resides."
       )
       parser.add_argument(
           "version_name", help="The version of the model that you want to describe."
       )
   
   
   def main():
       """
       Entry point for script.
       """
   
       logging.basicConfig(level=logging.INFO,
                           format="%(levelname)s: %(message)s")
   
       try:
   
           # Get the command line arguments.
           parser = argparse.ArgumentParser(usage=argparse.SUPPRESS)
           add_arguments(parser)
           args = parser.parse_args()
   
           print(
               f"Showing confusion matrix for: {args.version_name} for project {args.project_name}.")
   
           session = boto3.Session(profile_name='custom-labels-access')
           rekognition_client = session.client("rekognition")
           s3_resource = session.resource('s3')
   
           # Get the summary file for the model.
           summary_location = get_model_summary_location(rekognition_client, args.project_name,
                                                         args.version_name
                                                         )
           summary = json.loads(get_summary(s3_resource, summary_location))
   
           # Check that the confusion matrix is available.
           assert 'ConfusionMatrix' in summary['AggregatedEvaluationResults'], \
               "Confusion matrix not found in summary. Is the model a classification model?"
   
           # Show the confusion matrix.
           show_confusion_matrix(summary)
           print("Done")
   
       except ClientError as err:
           logger.exception("Problem showing confusion matrix: %s", err)
           print(f"Problem describing model: {err}")
   
       except AssertionError as err:
           logger.exception(
               "Error: %s.\n", err)
           print(
               f"Error: {err}\n")
   
   
   if __name__ == "__main__":
       main()
   ```

# Riferimento: file di riepilogo dei risultati di addestramento
<a name="im-summary-file"></a>

Il riepilogo dei risultati di addestramento contiene metriche che puoi utilizzare per valutare il tuo modello. Il file di riepilogo viene utilizzato anche per visualizzare le metriche nella pagina dei risultati di addestramento della console. Il file di riepilogo viene archiviato in un bucket Amazon S3 dopo l'addestramento. Per ottenere il file di riepilogo, chiama `DescribeProjectVersion`. Per il codice di esempio, consulta [Accesso al file di riepilogo e all’istantanea del manifest di valutazione (SDK)](im-access-summary-evaluation-manifest.md). 

## File di riepilogo
<a name="im-summary-reference"></a>

Il seguente formato JSON è il formato del file di riepilogo.



**EvaluationDetails (sezione 3)**  
Riepilogo dell'attività di addestramento. Ciò include l'ARN del progetto a cui appartiene il modello (`ProjectVersionArn)`), la data e l'ora di conclusione dell’addestramento, la versione del modello che è stata valutata (`EvaluationEndTimestamp`) e un elenco di etichette rilevate durante l'addestramento (`Labels`). È incluso anche il numero di immagini utilizzate per l’addestramento (`NumberOfTrainingImages`) e la valutazione (`NumberOfTestingImages`). 

**AggregatedEvaluationResults (sezione 1)**  
È possibile utilizzare `AggregatedEvaluationResults` per valutare le prestazioni complessive del modello addestrato quando utilizzato con il set di dati di test. Metriche aggregate sono incluse per le metriche `Precision`, `Recall`, e `F1Score`. Per il rilevamento di oggetti (la posizione di oggetto su un'immagine), vengono restituite le metriche `AverageRecall` (mAR) e `AveragePrecision` (mAP). Per la classificazione (il tipo di oggetto in un'immagine), viene restituita una metrica di matrice di confusione. 

**LabelEvaluationResults (sezione 2)**  
È possibile utilizzare `labelEvaluationResults` per valutare le prestazioni di singole etichette. Le etichette sono ordinate in base al punteggio F1 di ciascuna etichetta. Le metriche incluse sono `Precision`, `Recall`, `F1Score` e `Threshold` (utilizzate per la classificazione). 

Il nome del file viene formattato come segue: `EvaluationSummary-ProjectName-VersionName.json`.

```
{
  "Version": "integer",
  // section-3
  "EvaluationDetails": {
    "ProjectVersionArn": "string",
    "EvaluationEndTimestamp": "string",
    "Labels": "[string]",
    "NumberOfTrainingImages": "int",
    "NumberOfTestingImages": "int"
  },
  // section-1
  "AggregatedEvaluationResults": {
    "Metrics": {
      "Precision": "float",
      "Recall": "float",
      "F1Score": "float",
      // The following 2 fields are only applicable to object detection
      "AveragePrecision": "float",
      "AverageRecall": "float",
      // The following field is only applicable to classification
      "ConfusionMatrix":[
        {
          "GroundTruthLabel": "string",
          "PredictedLabel": "string",
          "Value": "float"
        },
        ...
      ],
    }
  },
  // section-2
  "LabelEvaluationResults": [
    {
      "Label": "string",
      "NumberOfTestingImages", "int",
      "Metrics": {
        "Threshold": "float",
        "Precision": "float",
        "Recall": "float",
        "F1Score": "float"
      },
    },
    ...
  ]
}
```

# Miglioramento di un modello Amazon Rekognition Custom Labels
<a name="tr-improve-model"></a>

Le prestazioni dei modelli di apprendimento automatico dipendono in gran parte da fattori  quali la complessità e la variabilità delle etichette personalizzate (gli oggetti e le scene specifici che ti interessano), la qualità e la potenza di rappresentazione del set di dati di addestramento fornito, nonché i framework del modello e i metodi di apprendimento automatico utilizzati per addestrare il modello. 

Amazon Rekognition Custom Labels semplifica questo processo e non richiede competenze sull’apprendimento automatico. Tuttavia, il processo di creazione di un buon modello spesso implica iterazioni sui dati e miglioramenti del modello per ottenere le prestazioni desiderate. Di seguito sono riportate informazioni su come migliorare il modello.

## Dati
<a name="im-data"></a>

In generale, è possibile migliorare la qualità del modello con quantità maggiori di dati di migliore qualità. Utilizza immagini di addestramento che mostrino chiaramente l'oggetto o la scena e che siano prive di elementi non necessari. Per delimitare i riquadri attorno agli oggetti, utilizza immagini di addestramento che mostrino l'oggetto completamente visibile e non coperto da altri oggetti. 

Assicurati che i set di dati di addestramento e di test corrispondano al tipo di immagini su cui alla fine eseguirai l'inferenza. Per gli oggetti, come i loghi, per i quali sono disponibili solo alcuni esempi di addestramento, dovresti fornire dei riquadri di delimitazione attorno al logo nelle immagini di test. Queste immagini rappresentano o illustrano i contesti in cui desideri localizzare l'oggetto.

Per aggiungere altre immagini a un set di dati di addestramento o di test, consulta [Aggiungere altre immagini a un set di dati](md-add-images.md).

## Riduzione dei falsi positivi (maggiore precisione)
<a name="im-reduce-false-positives"></a>
+ Innanzitutto, verifica se l'aumento della soglia presupposta consente di mantenere le previsioni corrette, riducendo al contempo i falsi positivi. Superata un certo livello, ciò comporta vantaggi decrescenti a causa del compromesso tra precisione e recupero per un determinato modello. Non è possibile impostare la soglia presupposta per un'etichetta, ma è possibile ottenere lo stesso risultato specificando un valore elevato per il parametro di input `MinConfidence` per `DetectCustomLabels`. Per ulteriori informazioni, consulta [Analisi di un'immagine con un modello addestrato](detecting-custom-labels.md).
+ Potresti notare che una o più delle tue etichette personalizzate di interesse (A) vengono costantemente confuse con la stessa classe di oggetti (ma non un'etichetta che ti interessa) (B). Per aiutarti, aggiungi B come etichetta di classe di oggetti al tuo set di dati di addestramento (insieme alle immagini per cui è stato riscontrato il falso positivo). In questo modo aiuti il modello a imparare a prevedere B e non A attraverso le nuove immagini di addestramento. Per aggiungere immagini a un set di dati di addestramento, consulta [Aggiungere altre immagini a un set di dati](md-add-images.md). 
+ Potresti scoprire che il modello è confuso da due delle tue etichette personalizzate (A e B), per cui prevede che l'immagine di test con l'etichetta A abbia l'etichetta B e viceversa. In tal caso, verifica innanzitutto se sono presenti immagini con etichetta errata nei set di addestramento e di test. Utilizzate la galleria di set di dati per gestire le etichette assegnate a un set di dati. Per ulteriori informazioni, consulta [Gestione etichette](md-labels.md). Inoltre, l'aggiunta di altre immagini di addestramento relative a questo tipo di confusione aiuterà un modello riaddestrato a distinguere meglio tra A e B. Per aggiungere immagini a un set di dati di addestramento, consulta [Aggiungere altre immagini a un set di dati](md-add-images.md). 

## Riduzione dei falsi negativi (migliore recupero)
<a name="im-reduce-false-negatives"></a>
+ Usa un valore inferiore per la soglia presupposta. Non è possibile impostare la soglia presupposta per un'etichetta, ma è possibile ottenere lo stesso risultato specificando un parametro di input `MinConfidence` inferiore per `DetectCustomLabels`. Per ulteriori informazioni, consulta [Analisi di un'immagine con un modello addestrato](detecting-custom-labels.md).
+ Utilizza esempi migliori per modellare la varietà dell'oggetto e delle immagini in cui appare.
+ Dividi la tua etichetta in due classi più facili da apprendere. Ad esempio, invece di biscotti di buona qualità e biscotti di scarsa qualità, potresti indicare biscotti di buona qualità, biscotti bruciati e biscotti rotti per aiutare il modello ad apprendere meglio ogni concetto specifico. 