

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

# Record di abbinamento con AWS Lake Formation FindMatches
<a name="machine-learning"></a>

**Nota**  
La corrispondenza dei record non è attualmente disponibile nelle seguenti regioni della AWS Glue console: Medio Oriente (Emirati Arabi Uniti), Europa (Spagna), Asia Pacifico (Giacarta) ed Europa (Zurigo).

AWS Lake Formation offre funzionalità di apprendimento automatico per creare trasformazioni personalizzate per ripulire i dati. Attualmente è disponibile una trasformazione denominata. FindMatches La FindMatches trasformazione consente di identificare i record duplicati o corrispondenti nel set di dati, anche quando i record non hanno un identificatore univoco comune e nessun campo corrisponde esattamente. Ciò non richiederà la scrittura di alcun codice o la conoscenza di come funziona l'apprendimento automatico. FindMatches può essere utile in molti problemi diversi, come ad esempio: 
+ **Matching Customers (Corrispondenza di clienti)**: collegamento di record dei clienti tra diversi database, anche quando molti campi non corrispondono esattamente tra i database (ad es. diversa ortografia dei nomi, differenze di indirizzo, dati mancanti o imprecisi e così via).
+ **Matching Products (Corrispondenza di prodotti)**: abbinamento dei prodotti nel catalogo rispetto ad altre origini, ad esempio catalogo di prodotti rispetto al catalogo di un concorrente, in cui le voci sono strutturate in modo diverso.
+ **Improving Fraud Detection (Miglioramento del rilevamento delle frodi)**: identificazione di account dei clienti duplicati, determinazione di quando un nuovo account creato è (o potrebbe essere) una corrispondenza per un utente fraudolento noto.
+ **Other Matching Problems (Altri problemi di corrispondenza)**: abbinare indirizzi, film, elenchi di parti e così via. In generale, se un essere umano potesse esaminare le righe del database e determinare che coincidono, ci sono ottime probabilità che la FindMatches trasformazione possa aiutarvi.

 È possibile creare queste trasformazioni al momento della creazione di un processo. La trasformazione creata si basa su uno schema del datastore di origine e su dati di esempio del set di dati di origine etichettato (questo processo viene denominato "insegnamento" di una trasformazione). I record etichettati devono essere presenti nel set di dati di origine. In questo processo viene generato un file etichettato e quindi ricaricato nel modo appreso dalla trasformazione. Dopo aver insegnato la trasformazione, puoi richiamarla dal tuo AWS Glue job basato su Spark (PySpark o Scala Spark) e usarla in altri script con un data store di origine compatibile. 

 Dopo la creazione della trasformazione, questa viene memorizzata all'interno di AWS Glue. Nella console di AWS Glue è possibile gestire le trasformazioni create. Nel riquadro di navigazione in **Integrazione dei dati ed ETL**, **Strumenti di classificazione dei dati > Corrispondenza dei record**, puoi modificare e continuare a istruire la trasformazione del machine learning. Per ulteriori informazioni sulla gestione delle trasformazioni nella console, consultare [Operare con le trasformazioni basate su machine learning](console-machine-learning-transforms.md). 

**Nota**  
AWS Gluei FindMatches lavori della versione 2.0 utilizzano il bucket Amazon S3 `aws-glue-temp-<accountID>-<region>` per archiviare file temporanei mentre la trasformazione elabora i dati. Puoi eliminare questi dati dopo aver completato l'esecuzione, manualmente o impostando una regola del ciclo di vita di Amazon S3.

## Tipi di trasformazioni basate su machine learning
<a name="machine-learning-transforms"></a>

È possibile creare trasformazioni di machine learning per pulire i dati. Puoi chiamare queste trasformazioni dallo script ETL. I tuoi dati passano da una trasformazione all'altra in una struttura di dati chiamata a *DynamicFrame*, che è un'estensione di Apache Spark SQL. `DataFrame` `DynamicFrame` contiene i tuoi dati e il suo schema di riferimento per elaborare i dati.

Sono disponibili i seguenti tipi di trasformazioni basate su machine learning:

*Rilevamento delle corrispondenze*  
Individua i record duplicati nei dati di origine. È possibile addestrare questa trasformazione basata su machine learning etichettando dei set di dati di esempio e indicando tra quali righe sono presenti delle corrispondenze. La trasformazione basata su machine learning apprende quali righe debbano essere abbinate man mano che vengono offerti dati di esempio etichettati. A seconda della configurazione della trasformazione, l'output è uno dei seguenti:  
+ Una copia della tabella di input con una colonna `match_id` aggiuntiva compilata con i valori che indicano insiemi di record corrispondenti. La colonna `match_id` è un identificatore arbitrario. Tutti i record con lo stesso `match_id` sono stati identificati come tra loro corrispondenti. I record con `match_id` diversi non corrispondono.
+ Una copia della tabella di input con le righe duplicate rimosse. Se vengono rilevati molteplici duplicati, viene mantenuto il record con la chiave primaria minore.

*Trova corrispondenze incrementali*  
La trasformazione Find matches può anche essere configurata per trovare le corrispondenze tra i frame esistenti e incrementali e restituire come output una colonna contenente un ID univoco per gruppo di corrispondenza.   
Per ulteriori informazioni, consulta: [Trovare corrispondenze incrementali](machine-learning-incremental-matches.md)

### Utilizzo della FindMatches trasformazione
<a name="machine-learning-find-matches"></a>

È possibile utilizzare la trasformazione `FindMatches` per individuare i record duplicati nei dati di origine. Viene generato o fornito un file di etichettatura che possa aiutare nell'addestramento della trasformazione.

**Nota**  
Attualmente, le trasformazioni `FindMatches` che usano una chiave di crittografia personalizzata non sono supportate nelle seguenti Regioni:  
Asia Pacifico (Osaka): `ap-northeast-3`

 Per iniziare con la FindMatches trasformazione, puoi seguire i passaggi seguenti. Per un esempio più avanzato e dettagliato, consulta il **blog AWS Big Data**: [Harmonize data using AWS Glue and AWS Lake Formation FindMatches ML to build a customer 360](https://aws.amazon.com/blogs/big-data/harmonize-data-using-aws-glue-and-aws-lake-formation-findmatches-ml-to-build-a-customer-360-view/). 

#### Nozioni di base sull'utilizzo della trasformazione con rilevamento delle corrispondenze
<a name="machine-learning-find-mathes-workflow"></a>

Seguire questi passaggi per iniziare a usare la trasformazione `FindMatches`:

1. Crea una tabella AWS Glue Data Catalog per i dati di origine da pulire. Per informazioni su come creare un crawler, consultare [Uso di crawler nella console AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/console-crawlers.html).

   Se i dati di origine sono contenuti in un file di testo, ad esempio un file di valori separati da virgola (CSV), tenere conto delle seguenti considerazioni: 
   + Mantenere il file CSV contenente i record di input e i file di etichettatura in cartelle separate. In caso contrario, il crawler di AWS Glue potrebbe considerarli come più componenti della stessa tabella e creare tabelle nel catalogo dati in modo non corretto. 
   + A meno che il file CSV includa solo caratteri ASCII, assicurarsi che per la codifica dei file CSV venga utilizzato UTF-8 senza BOM (Byte Order Mark). Microsoft Excel spesso aggiunge un BOM all'inizio dei file CSV UTF-8. Per rimuoverlo, aprire il file CSV con un editor di testo e salvare nuovamente il file in formato **UTF-8 senza BOM**. 

1. Nella console di AWS Glue, creare un processo e scegliere il tipo di trasformazione **Find matches (Rilevamento delle corrispondenze)**
**Importante**  
La tabella dell'origine dati selezionata per il processo può contenere fino a un massimo di 100 colonne.

1. Indica a AWS Glue di generare un file di etichettatura scegliendo **Generate labeling file (Genera file di etichettatura)**. AWS Glue utilizza il primo passaggio per raggruppare record simili per ciascun `labeling_set_id` in modo da poter rivedere tali raggruppamenti. Etichetta corrispondenze nella colonna `label`.
   + Se già disponi di un file di etichettatura, ossia di un esempio di record che indicano righe corrispondenti, carica il file su Amazon Simple Storage Service (Amazon S3). Per informazioni sul formato del file di etichettatura, consultare [Formato del file di etichettatura](#machine-learning-labeling-file). Continuare con la fase 4.

1. Scaricare il file di etichettatura ed etichettare il file come descritto nella sezione [Etichettatura](#machine-learning-labeling).

1. Caricare il file di etichettatura corretto. AWS Glue esegue delle attività per addestrare la trasformazione al riconoscimento delle corrispondenze.

   Nella pagina di elenco delle **Machine learning transforms (Trasformazioni basate su machine learning)**, scegliere la scheda **History (Cronologia)**. Questa pagina indica quando AWS Glue esegue le seguenti attività:
   + **Import labels (Importa le etichette)**
   + **Export labels (Esporta le etichette)**
   + **Generate labels (Genera le etichette)**
   + **Estimate quality (Valuta la qualità)**

1. Per creare una migliore trasformazione, è possibile scaricare, etichettare e caricare il file etichettato in modo iterativo. Nell'esecuzione iniziale, molti record potrebbero essere rilevati come non corrispondenti. Ma man mano che prosegue l'addestramento tramite la verifica del file di etichettatura, AWS Glue avanza nell'apprendimento.

1. Valutare e ottimizzare la trasformazione tramite la valutazione delle prestazioni e dei risultati della ricerca delle corrispondenze. Per ulteriori informazioni, consulta [Ottimizzazione delle trasformazioni basate su machine learning in AWS Glue](add-job-machine-learning-transform-tuning.md).

#### Etichettatura
<a name="machine-learning-labeling"></a>

Quando `FindMatches` genera un file di etichettatura, i record vengono selezionati dalla tabella di origine. Sulla base del training precedente, `FindMatches` identifica i record più importanti da cui apprendere.

L'atto di *etichettatura* consiste nella modifica di un file di etichettatura (ad esempio, un foglio di calcolo come Microsoft Excel) e l'aggiunta di identificatori, o etichette, nella colonna `label` che identifica i record con o senza corrispondenze. È importante avere una chiara e coerente definizione di corrispondenza nei dati di origine. `FindMatches` apprende sulla base dei record designati come corrispondenti (o meno) e utilizza le decisioni dell'utente per ricavare le informazioni necessarie all'individuazione dei record duplicati.

Quando il file di etichettatura viene generato da `FindMatches`, vengono generati circa 100 record. Questi 100 record sono in genere suddivisi in 10 *set di etichettatura*, dove ogni set di etichettatura è identificato da un unico `labeling_set_id` generato da `FindMatches`. Ogni set di etichettatura deve essere considerato come un'attività di etichettatura separata indipendente dagli altri set di etichettatura. Il tuo compito consiste nell'identificare i record corrispondenti e non corrispondenti all'interno di ciascun set di etichette.

##### Suggerimenti per la modifica dei file di etichettatura in un foglio di calcolo.
<a name="machine-learning-labeling-tips"></a>

Quando si modifica il file di etichettatura in un foglio di calcolo, considerare i seguenti aspetti:
+ Il file potrebbe non aprirsi con le colonne dei campi completamente espanse. Per visualizzare i contenuti di tali celle, potrebbe essere necessario espandere le colonne `labeling_set_id` e `label`.
+ Se la colonna chiave primaria è un numero, ad esempio un tipo di dato `long`, il foglio di calcolo potrebbe interpretarlo come un numero e modificarne il valore. Questo valore chiave deve essere trattato come un testo. Per risolvere il problema, formattare tutte le celle nella colonna chiave primaria come **Text data (Formato testo)**.

#### Formato del file di etichettatura
<a name="machine-learning-labeling-file"></a>

Il file di etichettatura generato da AWS Glue per insegnare la trasformazione `FindMatches` utilizza il seguente formato. Se si genera il proprio file per AWS Glue, anch'esso deve seguire questo formato:
+ Si tratta di un file di valori separati da virgola (CSV). 
+ Deve essere codificato in `UTF-8`. Se il file è stato modificato con Microsoft Windows, potrebbe essere codificato con `cp1252`.
+ Affinché possa essere passato a AWS Glue è necessario che si trovi su Amazon S3.
+ Utilizza un numero modesto di righe per ogni attività di etichettatura. Sono consigliate 10-20 righe per attività, anche se 2-30 righe per attività sono accettabili. Le attività superiori a 50 righe non sono consigliate e potrebbero causare risultati scadenti o errori di sistema.
+ Se si dispone di dati già etichettati costituiti da coppie di record etichettati come "corrispondenza" o "nessuna corrispondenza", questo va bene. Queste coppie etichettate possono essere rappresentate come set di etichettatura di dimensione 2. In questo caso etichettare entrambi i record con, ad esempio, una lettera "A" se corrispondono, ma etichettare uno come "A" e uno come "B" se non corrispondono.
**Nota**  
 Poiché possiede delle colonne aggiuntive, il file di etichettatura presenta uno schema diverso da quello di un file che contiene i dati di origine. Posizionare il file di etichettatura in una cartella diversa da quella di qualsiasi altro file CSV di input della trasformazione in modo che il crawler di AWS Glue non lo prenda in considerazione al momento della creazione delle tabelle nel catalogo dati. In caso contrario, le tabelle create dal crawler di AWS Glue potrebbero non rappresentare correttamente i dati. 
+ Le prime due colonne (`labeling_set_id`, `label`) sono richieste obbligatoriamente da AWS Glue. Le colonne rimanenti devono corrispondere allo schema dei dati che devono essere elaborati.
+ Per ogni `labeling_set_id`, è necessario identificare tutti i record corrispondenti utilizzando la stessa etichetta. Un'etichetta è una stringa univoca posizionata nella colonna `label`. Consigliamo di usare etichette contenenti caratteri semplici, ad esempio A, B, C e così via. Le etichette considerano in modo differente le maiuscole dalle minuscole e vengono inserite nella colonna `label`.
+ Le righe che contengono lo stesso `labeling_set_id` e la stessa etichetta si intendono etichettate come corrispondenza.
+ Le righe che contengono lo stesso `labeling_set_id` e un'etichetta diversa si intendono etichettate come *non* una corrispondenza
+ Le righe che contengono un `labeling_set_id` diverso non trasmettono alcuna informazione a favore o contro la corrispondenza.

  Di seguito è riportato un esempio di etichettatura dei dati:    
<a name="table-labeling-data"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/glue/latest/dg/machine-learning.html)
+ Nell'esempio precedente identifichiamo John/Johnny/Jon Doe as being a match and we teach the system that these records do not match Jane Smith. Separately, we teach the system that Richard and Rich Jones are the same person, but that these records are not a match to Sarah Jones/Jones -Walker e Richie Jones Jr.
+ Come si può vedere, l'ambito delle etichette è limitato al `labeling_set_id`. Quindi le etichette non attraversano i limiti imposti dal `labeling_set_id`. Ad esempio, un'etichetta "A" nel `labeling_set_id` 1 non ha alcuna relazione con l'etichetta "A" nel `labeling_set_id` 2.
+ Se un record non ha alcuna corrispondenza all'interno di un set di etichette, assegnargli un'etichetta univoca. Ad esempio, Jane Smith non corrisponde a nessun record nel set di etichette ABC123, quindi è l'unico disco di quel set di etichette con l'etichetta B.
+ Il set di etichette "GHI678" mostra che un set di etichette può essere composto da soli due record a cui viene assegnata la stessa etichetta per dimostrare che corrispondono. Allo stesso modo, "XYZABC" mostra due record con etichette diverse per mostrare che non corrispondono.
+ Si noti che a volte un set di etichette non può contenere corrispondenze (ovvero, si attribuisce a ogni record nel set di etichette un'etichetta diversa) o un set di etichette potrebbe essere "uguale" (ad essi è stata assegnata la stessa etichetta). Questo va bene fintanto che i set di etichettatura contengono collettivamente esempi di record "uguali" o "non uguali" secondo i propri criteri.

**Importante**  
Confermare che il ruolo IAM passato a AWS Glue abbia accesso al bucket Amazon S3 che contiene il file di etichettatura. Per convenzione, le policy di AWS Glue concedono le autorizzazioni sui bucket o sulle cartelle di Amazon S3 i cui nomi contengono il prefisso **aws-glue-**. Se i file di etichettatura si trovano in percorsi diversi, aggiungere al ruolo IAM l'autorizzazione di accesso a tale posizione.

# Ottimizzazione delle trasformazioni basate su machine learning in AWS Glue
<a name="add-job-machine-learning-transform-tuning"></a>

È possibile ottimizzare le trasformazioni basate su machine learning in AWS Glue al fine di migliorare i risultati delle operazioni di pulizia dei dati affinché soddisfino gli obiettivi desiderati. Per migliorare la trasformazione, è possibile addestrarla generando un set di dati da etichettare, aggiungendo le etichette e quindi ripetendo questi passaggi diverse volte fino a ottenere i risultati desiderati. È inoltre possibile applicare l'ottimizzazione modificando alcuni parametri del sistema di machine learning. 

Per ulteriori informazioni sulle trasformazioni basate su machine learning, consultare [Record di abbinamento con AWS Lake Formation FindMatches](machine-learning.md).

**Topics**
+ [Misurazioni del machine learning](machine-learning-terminology.md)
+ [Scelta tra precisione e recupero](machine-learning-precision-recall-tradeoff.md)
+ [Scelta tra accuratezza e costo](machine-learning-accuracy-cost-tradeoff.md)
+ [Stima della qualità delle corrispondenze utilizzando i punteggi di confidenza delle corrispondenze](match-scoring.md)
+ [Addestramento della trasformazione di rilevamento delle corrispondenze](machine-learning-teaching.md)

# Misurazioni del machine learning
<a name="machine-learning-terminology"></a>

Per comprendere le misurazioni che vengono utilizzate per ottimizzare una trasformazione basata su machine learning, è necessario avere familiarità con la seguente terminologia:

**Vero positivo (True positive, TP)**  
Una corrispondenza nei dati correttamente individuata dalla trasformazione, denominata anche *colpo a segno*.

**Vero negativo (True negative , TN)**  
Una mancata corrispondenza nei dati correttamente esclusa dalla trasformazione.

**Falso positivo (False positive, FP)**  
Una mancata corrispondenza nei dati che la trasformazione ha erroneamente classificato come una corrispondenza, denominata anche *falso allarme*.

**Falso negativo (False negative, FN)**  
Una corrispondenza nei dati non rilevata dalla trasformazione, denominata anche *colpo mancato*.

Per ulteriori informazioni sulla terminologia utilizzata nel campo del machine learning, consultare la voce [Matrice di confusione](https://en.wikipedia.org/wiki/Confusion_matrix) su Wikipedia.

Per ottimizzare le trasformazioni basate su machine learning, è possibile modificare il valore delle seguenti misurazioni nella sezione **Advanced properties (Proprietà avanzate)** della trasformazione.
+ **Precision (Precisione)** misura la capacità della trasformazione di individuare veri positivi sul numero totale di record che identifica come positivi (veri positivi e falsi positivi). Per ulteriori informazioni, consulta la voce [Precisione e recupero](https://en.wikipedia.org/wiki/Precision_and_recall) su Wikipedia.
+ **Recall (Recupero)** misura la capacità della trasformazione di individuare i veri positivi rispetto al totale dei record che compongono i dati di origine. Per ulteriori informazioni, consulta la voce [Precisione e recupero](https://en.wikipedia.org/wiki/Precision_and_recall) su Wikipedia.
+ **Accuracy (Accuratezza)** misura la capacità della trasformazione di individuare i veri positivi e i veri negativi. L'incremento dell'accuratezza implica maggiori risorse di elaborazione e costi superiori. Tuttavia permette di raggiungere anche un livello maggiore di recupero. Per ulteriori informazioni, consultare la voce [Accuratezza e precisione](https://en.wikipedia.org/wiki/Accuracy_and_precision#In_information_systems) su Wikipedia.
+ **Cost (Costo)** misura la quantità di risorse di elaborazione (e quindi di denaro) consumate per l'esecuzione della trasformazione.

# Scelta tra precisione e recupero
<a name="machine-learning-precision-recall-tradeoff"></a>

Ogni trasformazione `FindMatches` contiene un parametro `precision-recall`. È possibile utilizzare questo parametro per specificare uno dei seguenti requisiti:
+ Se la preoccupazione maggiore riguarda la possibilità che la trasformazione indichi la corrispondenza tra due record quando in effetti tale corrispondenza non esiste, allora è opportuno enfatizzare l'aspetto della *precisione*. 
+ Se la preoccupazione maggiore riguarda la mancata rilevazione di record tra i quali esiste in effetti una corrispondenza, allora è opportuno enfatizzare l'aspetto del *recupero*.

È possibile regolare questo compromesso all'interno della console di AWS Glue o utilizzando le operazioni API di machine learning di AWS Glue.

**Quando favorire la precisione**  
È opportuno favorire la precisione se la preoccupazione maggiore riguarda il rischio che `FindMatches` stabilisca una relazione tra due record quando in effetti tale corrispondenza non esiste. Per favorire la precisione, scegliere un valore *più alto* per il compromesso tra precisione e recupero. Con un valore più alto, la trasformazione `FindMatches` richiede un numero maggiore di elementi a sostegno per stabilire se una coppia di record deve essere è legata da una corrispondenza. Si incrementa la predisposizione della trasformazione a supporre che tra i record non esista una corrispondenza.

Ad esempio, si supponga di utilizzare `FindMatches` per rilevare gli elementi duplicati in un catalogo di video e di assegnare al parametro precisione-recupero della trasformazione un valore elevato. Se la trasformazione rileva erroneamente che *Star Wars: Una nuova speranza* è la stessa cosa di *Star Wars: L'impero colpisce ancora*, a un cliente che desidera *Una nuova speranza* potrebbe essere mostrato *L'impero colpisce ancora*. Si tratterebbe di un'esperienza utente scadente. 

Tuttavia, se la trasformazione non riesce a rilevare che *Star Wars: Una nuova speranza* e *Star Wars: Episodio IV - Una nuova speranza* sono lo stesso elemento, il cliente potrebbe essere confuso all'inizio ma potrebbe alla fine riconoscere i due elementi come lo stesso film. Sarebbe un errore, ma non così grave come nel caso precedente.

**Quando favorire il recupero**  
È opportuno favorire il recupero se la preoccupazione maggiore riguarda il rischio che i risultati della trasformazione `FindMatches` possano non riuscire a rilevare una coppia di record tra i quali esiste un effetti una corrispondenza. Per favorire il recupero, scegliere un valore *più basso* per il compromesso tra precisione e recupero. Con un valore più basso, la trasformazione `FindMatches` richiede un numero minore di elementi a sostegno per decidere che una coppia di record è legata da una corrispondenza. Si incrementa la predisposizione della trasformazione a supporre che tra i record esista una corrispondenza.

Ad esempio, questa potrebbe essere una priorità per un'azienda che si occupa di sicurezza. Si supponga di confrontare l'elenco dei clienti con uno di noti frodatori e che sia importante determinare se un cliente è un frodatore. Si sta utilizzando `FindMatches` per trovare le corrispondenze tra l'elenco dei frodatori e quello dei clienti. Ogni volta che `FindMatches` rileva una corrispondenza tra i due elenchi, a un revisore umano viene assegnato il compito di verificare che la persona sia, in effetti, un frodatore. L'azienda potrebbe scegliere di favorire il recupero rispetto alla precisione. In altre parole, è preferibile che i verificatori debbano esaminare manualmente e rigettare alcuni casi in cui il cliente non è un frodatore piuttosto che fallire nell'identificazione di un cliente che si trova, in effetti, nell'elenco dei frodatori.

**Come favorire sia la precisione che il recupero**  
Il modo migliore per migliorare la precisione e il recupero è etichettare una maggiore quantità di dati. Etichettando una maggiore quantità di dati, migliora la precisione globale della trasformazione `FindMatches`, con conseguenti miglioramenti sia della precisione che del recupero. Tuttavia, anche nel caso della trasformazione più accurata possibile, esiste sempre un'area grigia dove è necessario sperimentare se favorire precisione o recupero oppure scegliere un valore intermedio. 

# Scelta tra accuratezza e costo
<a name="machine-learning-accuracy-cost-tradeoff"></a>

Ogni trasformazione `FindMatches` contiene un parametro `accuracy-cost`. È possibile utilizzare questo parametro per specificare uno dei seguenti requisiti:
+ Se la preoccupazione maggiore riguarda la possibilità che la trasformazione riveli con precisione la corrispondenza tra due record, allora è opportuno enfatizzare l'aspetto dell'*accuratezza*.
+ Se la preoccupazione maggiore riguarda il costo o la velocità di esecuzione della trasformazione, allora è opportuno enfatizzare l'aspetto della *riduzione del costo*.

È possibile regolare questo compromesso all'interno della console di AWS Glue o utilizzando le operazioni API di machine learning di AWS Glue.

**Quando favorire l'accuratezza**  
È opportuno favorire l'accuratezza se la preoccupazione maggiore riguarda il rischio che i risultati della trasformazione `find matches` non includano le corrispondenze. Per favorire l'accuratezza, scegliere un valore *più alto* per il compromesso tra accuratezza e costo. Con un valore più elevato, la trasformazione `FindMatches` richiede più tempo per approfondire la ricerca sui record tra i quali esiste una corrispondenza. Si noti che questo parametro non rende meno probabile la possibilità di indicare erroneamente corrispondenti due record tra i quali non esiste nessuna corrispondenza. Si incrementa la predisposizione della trasformazione a dedicare un tempo maggiore alla ricerca delle corrispondenze.

**Quando favorire il costo**  
È opportuno favorire il costo se la preoccupazione maggiore riguarda il costo di esecuzione della trasformazione `find matches` rispetto al numero di corrispondenze rilevate. Per favorire il costo, scegliere un valore *più basso* per il compromesso tra accuratezza e costo. Con un valore più basso, la trasformazione `FindMatches` richiede una minore quantità di risorse per l'esecuzione. Si incrementa la predisposizione della trasformazione alla ricerca di un numero minore di corrispondenze. Utilizzare questa impostazione se, pur favorendo la ricerca di costi inferiori, i risultati sono comunque accettabili.

**Come favorire sia l'accuratezza che il costo**  
Per esaminare un numero maggiore di coppie di record al fine di determinare la presenza di eventuali corrispondenze, serve un tempo di elaborazione maggiore. Se si desidera ridurre i costi senza ridurre la qualità, è possibile seguire la procedura illustrata qui di seguito: 
+ Eliminare i record dell'origine dati per i quali la presenza di una corrispondenza non è di interesse.
+ Eliminare le colonne dell'origine dati che si è certi non siano utili ai fini della determinazione della presenza o meno di una corrispondenza. Un buon metodo per stabilirle quali siano è eliminare le colonne che non sembrano influenzare la propria valutazione sul fatto che un insieme di record rappresentino "la stessa cosa".

# Stima della qualità delle corrispondenze utilizzando i punteggi di confidenza delle corrispondenze
<a name="match-scoring"></a>

I punteggi di confidenza delle partite forniscono una stima della qualità delle corrispondenze rilevate FindMatches per distinguere tra record corrispondenti in cui il modello di apprendimento automatico è altamente sicuro, incerto o improbabile. Un punteggio di confidenza delle corrispondenze sarà compreso tra 0 e 1, dove il punteggio più alto significa una somiglianza più elevata. L'esame dei punteggi di confidenza delle corrispondenze consente di distinguere tra cluster di corrispondenze in cui il sistema è altamente sicuro (che potresti decidere di unire), cluster su cui il sistema è incerto (che potresti decidere di far esaminare da un essere umano) e cluster che il sistema ritiene improbabile (che potresti decidere di rifiutare).

Potresti dover modificare i tuoi dati di formazione in situazioni in cui vedi un punteggio di confidenza elevato, ma determinare che non ci sono corrispondenze, o dove vedi un punteggio basso determinare che ci sono, di fatto, corrispondenze.

I punteggi di fiducia sono particolarmente utili quando esistono set di dati industriali di grandi dimensioni, in cui è impossibile rivedere ogni decisione. FindMatches 

I punteggi di confidenza delle corrispondenze sono disponibili in AWS Glue versione 2.0 o successive.

## Generazione di punteggi di confidenza delle corrispondenze
<a name="specifying-match-scoring"></a>

È possibile generare punteggi di confidenza delle corrispondenze impostando il valore booleano di `computeMatchConfidenceScores` su Vero quando si chiama `FindMatches` o lAPI `FindIncrementalMatches`.

AWS Glue aggiunge una nuova `column match_confidence_score` all'output.

## Esempi di punteggio di corrispondenza
<a name="match-scoring-examples"></a>

Considera, ad esempio, le corrispondenze di registri seguenti:

**Punteggio >= 0,9**  
Riepilogo dei registri corrispondenti:

```
  primary_id  |   match_id  | match_confidence_score

3281355037663    85899345947   0.9823658302132061
1546188247619    85899345947   0.9823658302132061
```

Informazioni:

![\[Esempio di tabella di routing con un gateway Internet.\]](http://docs.aws.amazon.com/it_it/glue/latest/dg/images/match_score1.png)


Da questo esempio, possiamo vedere che due registri sono molto simili e condividono `display_position`, `primary_name` e`street name`. 

**Punteggio >= 0,8 e punteggio < 0,9**  
Riepilogo dei registri corrispondenti:

```
  primary_id  |   match_id  | match_confidence_score

309237680432     85899345928   0.8309852373674638
3590592666790    85899345928   0.8309852373674638
343597390617     85899345928   0.8309852373674638
249108124906     85899345928   0.8309852373674638
463856477937     85899345928   0.8309852373674638
```

Informazioni:

![\[Esempio di tabella di routing con un gateway Internet.\]](http://docs.aws.amazon.com/it_it/glue/latest/dg/images/match_score2.png)


Da questo esempio, possiamo vedere che questi registri condividono gli stessi `primary_name` e`country`.

**Punteggio >= 0,6 e punteggio < 0,7**  
Riepilogo dei registri corrispondenti:

```
  primary_id  |   match_id  | match_confidence_score

2164663519676    85899345930   0.6971099896480333
 317827595278    85899345930   0.6971099896480333
 472446424341    85899345930   0.6971099896480333
3118146262932    85899345930   0.6971099896480333
 214748380804    85899345930   0.6971099896480333
```

Informazioni:

![\[Esempio di tabella di routing con un gateway Internet.\]](http://docs.aws.amazon.com/it_it/glue/latest/dg/images/match_score3.png)


Da questo esempio, possiamo vedere che questi registri condividono solo lo stesso `primary_name`.

Per ulteriori informazioni, consulta:
+ [Fase 5: aggiunta ed esecuzione di un processo con la trasformazione basata su machine learning](machine-learning-transform-tutorial.md#ml-transform-tutorial-add-job)
+ PySpark: [FindMatches classe](aws-glue-api-crawler-pyspark-transforms-findmatches.md)
+ PySpark: [FindIncrementalMatches classe](aws-glue-api-crawler-pyspark-transforms-findincrementalmatches.md)
+ Scala: [FindMatches classe](glue-etl-scala-apis-glue-ml-findmatches.md)
+ Scala: [FindIncrementalMatches classe](glue-etl-scala-apis-glue-ml-findincrementalmatches.md)

# Addestramento della trasformazione di rilevamento delle corrispondenze
<a name="machine-learning-teaching"></a>

Ogni trasformazione `FindMatches` deve essere addestrata rispetto a ciò che deve essere considerato una corrispondenza e ciò che non deve essere considerato tale. Una trasformazione viene addestrata aggiungendo delle etichette a un file e caricando tali scelte su AWS Glue. 

È possibile orchestrare questa operazione di etichettatura all'interno della console di AWS Glue o utilizzando le operazioni API di machine learning di AWS Glue.

**Quante volte è necessario eseguire l'operazione di etichettatura? Quante etichette sono necessarie?**  
Le risposte a queste domande dipendono generalmente dall'utilizzatore. È necessario valutare se `FindMatches` offre il livello di accuratezza di cui si necessita e se si ritiene che un'etichettatura aggiuntiva possa valere la pena. Il modo migliore per deciderlo è analizzare i parametri "Precision", "Recall" e "Area sotto la curva di precisione e recall" che è possibile generare selezionando **Estimate quality (Valuta la qualità)** all'interno della console di AWS Glue. Dopo aver etichettato ulteriori insiemi di attività, ricalcolare questi parametri e verificare il loro eventuale miglioramento. Se, dopo l'etichettatura di alcuni insiemi di attività, non si percepisce un miglioramento del parametro di interesse, la qualità della trasformazione potrebbe aver raggiunto uno stato stazionario.

**Perché servono le etichette sia per gli eventi veri positivi che per quelli veri negativi?**  
La trasformazione `FindMatches` ha bisogno di esempi sia positivi che negativi per comprendere cosa intende l'utente per corrispondenza. Se si stanno etichettando dei dati di addestramento generati da `FindMatches` (ad esempio, utilizzando l'opzione **I do not have labels (Non dispongo di etichette)**), `FindMatches` prova a generare un set di "id di insiemi di etichette". All'interno di ciascuna attività, si assegna la stessa "etichetta" ad alcuni record e diverse "etichette" ad altri record. In altre parole, le attività generalmente non prevedono solo la presenza di elementi tutti uguali o tutti diversi (anche se è normale che una specifica attività comprenda elementi "tutti uguali" o "tutti diversi").

Se si sta addestrando la trasformazione `FindMatches` utilizzando l'opzione **Upload labels from S3 (Caricamento delle etichette da S3)**, provare a includere sia esempi di record corrispondenti e che di record non corrispondenti. È accettabile averne di un solo tipo. Queste etichette consentono di creare una trasformazione `FindMatches` più accurata, ma è comunque necessario etichettare alcuni record generati utilizzando l'opzione **Generate labeling file (Genera file di etichettatura)**.

**Come posso fare in modo che la trasformazione rilevi le corrispondenze esattamente come è stata addestrata a fare?**  
La trasformazione `FindMatches` esegue un processo di apprendimento a partire dalle etichette fornite, perciò potrebbe generare coppie di record che non rispettano tali etichette. Per far sì che la `FindMatches` trasformazione rispetti le tue etichette, seleziona **EnforceProvidedLabels**in. **FindMatchesParameter**

**Quali tecniche è possibile utilizzare quando una trasformazione basata su ML identifica come corrispondenti degli elementi che non lo sono?**  
È possibile utilizzare le seguenti tecniche:
+ Incrementare il valore di `precisionRecallTradeoff`. Questa operazione porterà all'individuazione di un numero minore di corrispondenze ma, al raggiungimento di un valore sufficientemente elevato, dovrebbe anche suddividere un cluster di grandi dimensioni in componenti più piccole. 
+ Selezionare le righe di output corrispondenti ai risultati errati e riformattarle sotto forma di insieme di dati per l'etichettatura (rimuovendo la colonna `match_id` e aggiungendo le colonne `labeling_set_id` e `label`). Se necessario, spezzettarle (suddividerle) in più insiemi di dati per l'etichettatura al fine di assicurare che l'addetto all'etichettatura possa concentrarsi su ogni set di dati durante il processo di etichettatura. Quindi, etichettare correttamente i set corrispondenti e caricare il file di etichettatura accodandolo alle etichette esistenti. Queste informazioni potrebbero addestrare la trasformazione a sufficienza su cosa cercare per comprendere lo schema. 
+ (Avanzato) Infine, controllare i dati per verificare la presenza di uno schema che il sistema non sta rilevando. Pre-elaborare tali dati utilizzando le funzioni standard di AWS Glue per *normalizzarli*. Evidenziare gli elementi dai quali si desidera che l'algoritmo tragga insegnamenti separando i dati che l'utente ritiene importanti per la loro diversità nelle rispettive colonne. Oppure creare colonne combinate a partire dalle colonne i cui dati sono da ritenersi correlati. 

# Operare con le trasformazioni basate su machine learning
<a name="console-machine-learning-transforms"></a>

Puoi utilizzarle AWS Glue per creare trasformazioni di machine learning personalizzate che possono essere utilizzate per pulire i dati. È possibile creare queste trasformazioni al momento della creazione di un processo nella console di AWS Glue . 

Per informazioni su come creare una trasformazione basata su machine learning, consultare [Record di abbinamento con AWS Lake Formation FindMatches](machine-learning.md).

**Topics**
+ [Proprietà della trasformazione](#console-machine-learning-properties)
+ [Aggiunta e modifica della trasformazione basata su machine learning](#console-machine-learning-transforms-actions)
+ [Visualizzazione dei dettagli della trasformazione](#console-machine-learning-transforms-details)
+ [Insegnamento delle trasformazioni utilizzando le etichette](#console-machine-learning-transforms-teaching-transforms)

## Proprietà della trasformazione
<a name="console-machine-learning-properties"></a>

Per visualizzare una trasformazione di machine learning esistente, accedi a e apri la Console di gestione AWSAWS Glue console all'indirizzo. [https://console.aws.amazon.com/glue/](https://console.aws.amazon.com/glue/) Nel pannello di navigazione sotto **Integrazione dati ed ETL**, scegli **Strumenti di classificazione dei dati > Corrispondenza dei record**.

Le proprietà di ogni trasformazione:

**Nome trasformazione**  
Il nome univoco che assegnato alla trasformazione al momento della creazione.

**ID**  
Un identificatore unico della trasformazione. 

**Numero delle etichette**  
Il numero di etichette nel file di etichettatura fornito per l'addestramento della trasformazione. 

**Status**  
Indica se la trasformazione è **Ready (Pronta)** o **Needs training (Ha bisogno di addestramento)**. Per eseguire correttamente una trasformazione basata su machine learning in un processo, questa deve trovarsi nello stato **Ready (Pronta)**. 

**Creato**  
La data di creazione della trasformazione.

**Modificato**  
La data dell'ultimo aggiornamento della trasformazione.

**Description**  
La descrizione fornita per la trasformazione, se ne è stata fornita una.

**Versione AWS Glue**  
La versione di AWS Glue utilizzata.

**ID esecuzione**  
Il nome univoco che assegnato alla trasformazione al momento della creazione.

**Tipo di attività**  
Il tipo di trasformazione basata su machine learning; ad esempio, **Find matching records (Rilevamento record corrispondenti)**.

**Status**  
Indica lo stato dell'esecuzione dell'attività. Gli stati possibili comprendono:  
+ Avvio in corso
+ In esecuzione
+ In arresto
+ Arrestato
+ Riuscito
+ Non riuscito
+ Timeout

**Errore**  
Se lo stato è Non riuscito, viene visualizzato un messaggio di errore che descrive il motivo dell'errore.

## Aggiunta e modifica della trasformazione basata su machine learning
<a name="console-machine-learning-transforms-actions"></a>

 Nella console AWS Glue è possibile visualizzare, eliminare, impostare e addestrare o ottimizzare una trasformazione. Selezionare la casella di controllo accanto alla trasformazione nell'elenco, scegliere **Action (Operazione)** e quindi scegliere l'operazione che si desidera eseguire. 

### Creazione di una nuova trasformazione ML
<a name="w2aac37c11c24c23c11b5"></a>

 Per aggiungere una nuova trasformazione di machine learning, scegli **Crea trasformazione**. Segui le istruzioni nella procedura guidata **Aggiungi crawler**. Per ulteriori informazioni, consulta [Record di abbinamento con AWS Lake Formation FindMatches](machine-learning.md). 

#### Passaggio 1. Imposta le proprietà della trasformazione.
<a name="w2aac37c11c24c23c11b5b7"></a>

1. Inserisci il nome e la descrizione (facoltativo).

1. Facoltativamente, imposta la configurazione di sicurezza. Per informazioni, consulta [Utilizzo della crittografia dati con le trasformazioni basate su machine learning](#ml_transform_sec_config). 

1. Facoltativamente, configura le impostazioni di esecuzione delle attività. Le impostazioni di esecuzione delle attività consentono di personalizzare la modalità di esecuzione dell'attività. Seleziona il tipo di e il numero di worker, il timeout dell'attività (in minuti), il numero di nuovi tentativi e la versione di AWS Glue.

1. Facoltativamente, imposta i tag. I tag sono etichette che puoi assegnare a una AWS risorsa. Ciascun tag è formato da una chiave e da un valore facoltativo. I tag possono essere utilizzati per cercare e filtrare la risorsa o tenere traccia AWS dei costi.

#### Passaggio 2. Scegli la tabella e la chiave primaria.
<a name="w2aac37c11c24c23c11b5b9"></a>

1. Scegli il database e la tabella di Catalogo AWS Glue.

1. Scegli una chiave primaria dalla tabella selezionata. La colonna della chiave primaria contiene in genere un identificatore univoco per ogni record nell'origine dati. 

#### Fase 3. Seleziona le opzioni di ottimizzazione.
<a name="w2aac37c11c24c23c11b5c11"></a>

1.  Per **Richiamo o precisione**, scegli il valore di regolazione per ottimizzare la trasformazione in modo da favorire il richiamo o la precisione. Per impostazione predefinita, è selezionata l'opzione **Bilanciato**, ma puoi scegliere di favorire il richiamo o la precisione; puoi anche scegliere l'opzione **Personalizzato** e inserire un valore compreso tra 0,0 e 1,0 (inclusi). 

1.  Per **Costo o precisione inferiore**, scegli il valore di regolazione per favorire un costo o una precisione inferiori oppure scegli **Personalizzato** e inserisci un valore compreso tra 0,0 e 1,0 (inclusi). 

1.  Per **Forza corrispondenza**, scegli **Forza l'output a corrispondere alle etichette** se desideri addestrare la trasformazione ML forzando l'output a corrispondere alle etichette utilizzate. 

#### Passaggio 4. Revisione e creazione.
<a name="w2aac37c11c24c23c11b5c13"></a>

1.  Esamina le opzioni per i passaggi da 1 a 3. 

1.  Scegli **Modifica** per qualsiasi passaggio che desideri modificare. Scegli **Crea trasformazione** per completare la procedura guidata di creazione della trasformazione. 

### Utilizzo della crittografia dati con le trasformazioni basate su machine learning
<a name="ml_transform_sec_config"></a>

Quando si aggiunge una trasformazione basata su machine learning a AWS Glue, è possibile specificare facoltativamente una configurazione di sicurezza associata all'origine dati o alla destinazione dati. Se il bucket Amazon S3 utilizzato per memorizzare i dati è crittografato con una configurazione di sicurezza, specifica la stessa configurazione di sicurezza durante la creazione della trasformazione.

Puoi anche scegliere di utilizzare la crittografia lato server con AWS KMS (SSE-KMS) per crittografare il modello e le etichette per impedire l'ispezione da parte di persone non autorizzate. Se scegli questa opzione, ti viene richiesto di scegliere il nome AWS KMS key per nome oppure puoi scegliere **Inserisci una chiave ARN.** Se si sceglie di inserire l'ARN per la chiave KMS, viene visualizzato un secondo campo in cui è possibile inserire l'ARN della chiave KMS.

**Nota**  
Attualmente, le trasformazioni ML che usano una chiave di crittografia personalizzata non sono supportate nelle seguenti Regioni:  
Asia Pacifico (Osaka): `ap-northeast-3`

## Visualizzazione dei dettagli della trasformazione
<a name="console-machine-learning-transforms-details"></a>

### Visualizzazione delle proprietà della trasformazione
<a name="console-machine-learning-transforms-details"></a>

La pagina **Proprietà della trasformazione** include gli attributi della trasformazione. Mostra i dettagli relativi alla definizione della trasformazione, tra cui i seguenti:
+ **Transform name (Nome della trasformazione)** mostra il nome della trasformazione.
+ **Tipo** elenca il tipo della trasformazione.
+ **Stato** indica se la trasformazione è pronta per essere utilizzata in uno script o un processo.
+ **Force output to match labels (Forza l'output affinché corrisponda alle etichette)** mostra se la trasformazione esegue una forzatura affinché l'output corrisponda alle etichette indicate dall'utente.
+ **Versione Spark** è correlato alla versione di AWS Glue che hai scelto nelle **Proprietà esecuzione processo** all'aggiunta della trasformazione. AWS Glue 1.0 e Spark 2.4 sono consigliati per la maggior parte dei clienti. Per ulteriori informazioni, consulta [Versioni di AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/release-notes.html#release-notes-versions).

### Schede Cronologia, Stima qualità e Tag
<a name="w2aac37c11c24c23c13b5"></a>

 I dettagli includono le informazioni definite al momento della creazione della trasformazione. Per visualizzare i dettagli di una trasformazione, selezionare la trasformazione nell'elenco delle **Machine learning transforms (Trasformazioni basate su machine learning)** e rivedere le informazioni contenute nelle seguenti schede: 
+ Cronologia
+ Stima della qualità
+ Tag

#### Cronologia
<a name="console-machine-learning-transforms-history"></a>

La scheda **History (Cronologia)** mostra la cronologia delle esecuzioni della trasformazione. Per addestrare una trasformazione, vengono eseguiti diversi tipi di attività. Per ogni attività, i parametri di esecuzione includono:
+ **Run ID (ID esecuzione)** è un identificatore creato da AWS Glue per ogni esecuzione di questo processo.
+ **Task type (Tipo di attività)** mostra il tipo di attività eseguita.
+ **Status (Stato)** mostra la corretta conclusione di ogni esecuzione posizionando quella più recente in cima all'elenco.
+ **Errore** mostra i dettagli di un messaggio di errore se l'esecuzione non riesce.
+ **Start time (Orario inizio)** mostra la data e l'ora (ora locale) in cui è stato avviato il processo.
+ **Orario fine** mostra la data e l'ora (ora locale) in cui il processo è finito.
+ **Log** collega ai log scritti in `stdout` per questa esecuzione di processo.

  Il link **Logs** ti porta ad Amazon CloudWatch Logs. Qui puoi visualizzare i dettagli sulle tabelle create in AWS Glue Data Catalog e gli eventuali errori riscontrati. È possibile gestire il periodo di conservazione dei registri sulla CloudWatch console. Il periodo di conservazione log predefinito è `Never Expire`. Per ulteriori informazioni su come modificare il periodo di conservazione, consulta [Change Log Data Retention in CloudWatch Logs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Working-with-log-groups-and-streams.html#SettingLogRetention) nella *Amazon CloudWatch Logs User* Guide.
+ **File di etichettatura** mostra un link ad Amazon S3 che permette di raggiungere un file di etichettatura generato.

#### Stima della qualità
<a name="console-machine-learning-transforms-metrics"></a>

 La scheda **Estimate quality (Stima qualità)** mostra i parametri utilizzati per misurare la qualità della trasformazione. Le stime vengono calcolate confrontando le previsioni di conversione utilizzando un sottoinsieme dei dati etichettati con le etichette fornite. Queste stime sono approssimative. Da questa scheda è possibile richiamare l'esecuzione dell'attività **Estimate quality (Stima qualità)**.

La scheda **Estimate quality (Stima qualità)** mostra i parametri dell'ultima esecuzione **Estimate quality (Stima qualità)**, incluse le seguenti proprietà:
+ **Area under the Precision-Recall curve (Area sotto la curva precisione-recupero)** è un singolo numero che stima il limite superiore della qualità complessiva della trasformazione. È indipendente dalla scelta del parametro precisione-recupero. Valori più elevati indicano che si dispone di un compromesso precisione-recupero migliore. 
+ **Precision (Precisione)** stima la frequenza di correttezza della trasformazione quando prevede una corrispondenza.
+ **Recall upper limit (Limite superiore recupero)** stima quanto spesso la trasformazione prevede una corrispondenza in caso di effettiva presenza.
+ **F1** stima l'accuratezza della trasformazione con un valore tra 0 e 1, dove 1 è la migliore precisione. Per ulteriori informazioni, consulta la voce [F1 score](https://en.wikipedia.org/wiki/F1_score) su Wikipedia.
+ La tabella **Column importance (Importanza colonna)** mostra i nomi delle colonne e il punteggio di importanza per ogni colonna. L'importanza delle colonne consente di comprendere il modo in cui queste contribuiscono al modello, identificando quali colonne nei record vengono maggiormente utilizzate per la corrispondenza. Questi dati possono richiedere di aggiungere o modificare il set di etichette per aumentare o diminuire l'importanza delle colonne.

  La colonna Importance (Importanza) fornisce un punteggio numerico per ogni colonna, come decimale non maggiore di 1,0.

Per ulteriori informazioni su come comprendere le stime della qualità rispetto alla vera qualità, consultare [Stime sulla qualità rispetto alla qualità ( end-to-endvera)](#console-machine-learning-quality-estimates-true-quality).

Per ulteriori informazioni sull'ottimizzazione della trasformazione, consultare [Ottimizzazione delle trasformazioni basate su machine learning in AWS Glue](add-job-machine-learning-transform-tuning.md).

#### Stime sulla qualità rispetto alla qualità ( end-to-endvera)
<a name="console-machine-learning-quality-estimates-true-quality"></a>

AWS Glue stima la qualità della trasformazione passando al modello addestrato tramite machine learning interno un certo numero di coppie di record per i quali sono state fornite delle etichette corrispondenti ma che il modello non ha mai visto in precedenza. Queste stime di qualità sono una funzione della qualità del modello addestrato tramite machine learning (che dipende dal numero di record etichettati per "addestrare" la trasformazione). Il richiamo end-to-end, o *vero*, (che non viene calcolato automaticamente da`ML transform`) è influenzato anche dal meccanismo di `ML transform` filtraggio che propone un'ampia varietà di possibili corrispondenze al modello di apprendimento automatico. 

È possibile ottimizzare tale metodo di filtraggio principalmente utilizzando il cursore **Costo o accuratezza inferiore**. Spostando il cursore verso **Accuratezza** per favorire questo aspetto, il sistema esegue una ricerca più vasta e approfondita delle coppie di record che potrebbero rappresentare delle corrispondenze. Più coppie di record vengono inserite nel modello di apprendimento automatico e il tuo richiamo effettivo si avvicina alla metrica `ML transform` di end-to-end richiamo stimata. Di conseguenza, le variazioni nella end-to-end qualità delle partite dovute a variazioni del rapporto costo/precisione delle partite in genere non si riflettono nella stima della qualità.

#### Tag
<a name="w2aac37c11c24c23c13b5c13"></a>

 I tag sono etichette che puoi assegnare a una risorsa. AWS Ciascun tag è formato da una chiave e da un valore facoltativo. I tag possono essere utilizzati per cercare e filtrare la risorsa o tenere traccia AWS dei costi. 

## Insegnamento delle trasformazioni utilizzando le etichette
<a name="console-machine-learning-transforms-teaching-transforms"></a>

 È possibile insegnare la trasformazione ML tramite le etichette (esempi) scegliendo **Insegna la trasformazione** dalla pagina dei dettagli della trasformazione ML. Quando addestri l'algoritmo di machine learning fornendo esempi (chiamati etichette), puoi scegliere etichette esistenti da utilizzare o creare un file di etichettatura. 

![\[La schermata mostra una schermata della procedura guidata per Insegnare la trasformazione utilizzando le etichette.\]](http://docs.aws.amazon.com/it_it/glue/latest/dg/images/machine-learning-teach-transform.png)

+  **Etichettatura**: se hai delle etichette, scegli **Ho delle etichette**. Se non disponi di etichette, puoi comunque proseguire con il passaggio successivo per generare un file di etichettatura. 
+  **Genera un file di etichettatura**: AWS Glue estrae i record dai dati di origine e suggerisce potenziali record corrispondenti. Scegli il bucket Amazon S3 per archiviare il file di etichette generato. Scegli **Genera file di etichettatura** per avviare il processo. Al termine, scegli **Scarica il file di etichettatura**. Il file scaricato avrà una colonna per le etichette in cui potrai inserire le etichette. 
+  **Carica etichette da Amazon S3**: scegli il file di etichettatura completo dal bucket Amazon S3 in cui è archiviato il file di etichette. Quindi, scegli se aggiungere le etichette alle etichette esistenti o sovrascriverle. Scegli **Carica file di etichettatura da Amazon S3**. 

# Tutorial: creazione di una trasformazione dell'apprendimento automatico con AWS Glue
<a name="machine-learning-transform-tutorial"></a>

Questa esercitazione guida l'utente nelle operazioni necessarie per creare e gestire una trasformazione basata su machine learning (ML) utilizzando AWS Glue. Prima di seguire questa esercitazione, è necessario sapere come utilizzare la console di AWS Glue per aggiungere crawler e processi e modificare script. È inoltre necessario avere familiarità con la ricerca e il download di file tramite la console Amazon Simple Storage Service (Amazon S3).

In questo esempio, viene creata una trasformazione `FindMatches` per identificare i record corrispondenti, insegnando ad essa come identificare i record con corrispondenze e quelli senza, e la si utilizza in un processo AWS Glue. Il processo AWS Glue genera un nuovo file Amazon S3 con una colonna aggiuntiva denominata `match_id`. 

I dati di origine utilizzati da questa esercitazione cono contenuti in un file denominato `dblp_acm_records.csv`. Questo file è una versione modificata derivante da pubblicazioni accademiche (DBLP e ACM) disponibili presso la fonte originale [set di dati DBLP ACM ](https://doi.org/10.3886/E100843V2). Il file `dblp_acm_records.csv` è un file di valori separati da virgole (CSV) in formato UTF-8 senza BOM (Byte Order Mark). 

Un secondo file, `dblp_acm_labels.csv`, è un esempio di file di etichettatura che contiene sia i record con corrispondenze che quelli senza utilizzato per addestrare la trasformazione come parte dell'esercitazione. 

**Topics**
+ [Fase 1: crawling dei dati di origine](#ml-transform-tutorial-crawler)
+ [Fase 2: aggiunta di una trasformazione basata su machine learning](#ml-transform-tutorial-create)
+ [Fase 3: addestramento della trasformazione basata su machine learning](#ml-transform-tutorial-teach)
+ [Fase 4: stima della qualità della trasformazione basata su machine learning](#ml-transform-tutorial-estimate-quality)
+ [Fase 5: aggiunta ed esecuzione di un processo con la trasformazione basata su machine learning](#ml-transform-tutorial-add-job)
+ [Fase 6: verifica dei dati di output da Amazon S3](#ml-transform-tutorial-data-output)

## Fase 1: crawling dei dati di origine
<a name="ml-transform-tutorial-crawler"></a>

In primo luogo, esegui il crawling del file CSV di origine su Amazon S3 per creare una tabella di metadati corrispondente nel catalogo dati.

**Importante**  
Per ottenere dal crawler la creazione di una tabella per il solo file CSV, archivia il file CSV dei dati di origine in una cartella Amazon S3 diversa da quella degli altri file.

1. Accedi a Console di gestione AWS e apri la AWS Glue console all'indirizzo [https://console.aws.amazon.com/glue/](https://console.aws.amazon.com/glue/).

1. Nel riquadro di navigazione, selezionare **Crawlers (Crawler)**, **Add crawler (Aggiungi Crawler)**. 

1. Seguire la procedura guidata per creare ed eseguire un crawler denominato `demo-crawl-dblp-acm` con output indirizzato verso il database `demo-db-dblp-acm`. Se questo non esiste già, durante l'esecuzione della procedura guidata è necessario creare il database `demo-db-dblp-acm`. Scegli un percorso di inclusione di Amazon S3 per i dati di esempio nella regione corrente AWS . Ad esempio, per `us-east-1`, il percorso di inclusione per i dati di origine su Amazon S3 è `s3://ml-transforms-public-datasets-us-east-1/dblp-acm/records/dblp_acm_records.csv`. 

   Se conclude l'attività con successo, il crawler crea la tabella `dblp_acm_records_csv` con le seguenti colonne: id, title, authors, venue, year e source.

## Fase 2: aggiunta di una trasformazione basata su machine learning
<a name="ml-transform-tutorial-create"></a>

A questo punto, aggiungere una trasformazione basata su machine learning basata sullo schema dei dati della tabella di origine creata dal crawler e denominata `demo-crawl-dblp-acm`.

1. Nella console AWS Glue, nel riquadro di navigazione in **Integrazione dati e ETL**, scegli **Strumenti di classificazione dei dati > Corrispondenza dei record**, quindi **Aggiungi trasformazione**. Quindi segui la procedura guidata per creare una trasformazione `Find matches` con le seguenti proprietà. 

   1. Alla voce **Transform name (Nome trasformazione)**, immettere **demo-xform-dblp-acm**. Questo è il nome della trasformazione che viene utilizzato per trovare le corrispondenze nei dati di origine.

   1. Alla voce **IAM role (Ruolo IAM)**, scegli un ruolo IAM che disponga delle autorizzazioni per accedere ai dati di origine su Amazon S3, ai file di etichettatura e alle operazioni API di AWS Glue. Per ulteriori informazioni, consulta [Creazione di un ruolo IAM per AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/create-an-iam-role.html) nella *Guida per sviluppatori di AWS Glue *.

   1. Per l'**origine dei dati**, scegli la tabella denominata **dblp\$1acm\$1records\$1csv** nel database. **demo-db-dblp-acm**

   1. Alla voce **Primary key (Chiave primaria)**, scegliere la colonna chiave primaria della tabella, **id**.

1. Nella procedura guidata, scegliere **Finish (Fine)** e tornare all'elenco delle **ML transforms (Trasformazioni basate su ML)**.

## Fase 3: addestramento della trasformazione basata su machine learning
<a name="ml-transform-tutorial-teach"></a>

A questo punto è necessario addestrare la trasformazione basata su machine learning utilizzando il file di etichettatura di esempio del tutorial.

Non è possibile utilizzare una trasformazione basata su machine learning in un processo di estrazione, trasformazione e caricamento (ETL) finché il suo stato non è **Ready for use (Pronta per l'uso)**. Affinché la trasformazione sia pronta, è necessario addestrarla a identificare i record con corrispondenze e quelli senza fornendo esempi di record con corrispondenza e di record senza corrispondenza. Per addestrare la trasformazione, è possibile scegliere **Generate a label file (Genera un file di etichettatura)**, aggiungere le etichette e quindi selezionare **Upload label file (Carica un file di etichettatura)**. In questa esercitazione è possibile utilizzare il file di etichettatura di esempio denominato `dblp_acm_labels.csv`. Per ulteriori informazioni sul processo di etichettatura, consultare [Etichettatura](machine-learning.md#machine-learning-labeling).

1. Nella console AWS Glue, seleziona **Corrispondenza dei record** nel riquadro di navigazione.

1. Scegliere la trasformazione `demo-xform-dblp-acm` e quindi scegliere **Action (Operazione)**, **Teach (Addestra)**. Seguire la procedura guidata per addestrare la trasformazione `Find matches`. 

1. Nella pagina delle proprietà della trasformazione, scegliere **I have labels (Dispongo delle etichette)**. Scegli un percorso Amazon S3 per il file di etichettatura di esempio nella regione corrente. AWS Ad esempio, nel caso di `us-east-1`, caricare il file di etichettatura fornito dal percorso su Amazon S3 `s3://ml-transforms-public-datasets-us-east-1/dblp-acm/labels/dblp_acm_labels.csv` con l'opzione di **overwrite (sovrascrivere)** le etichette esistenti. Il file di etichettatura deve essere situato su Amazon S3 nella stessa regione in cui si trova la console di AWS Glue.

   Quando si carica un file di etichettatura, AWS Glue avvia un'attività per aggiungere o sovrascrivere le etichette utilizzate per addestrare la trasformazione sull'elaborazione dell'origine dati.

1. Nella pagina finale della procedura guidata scegliere **Finish (Fine)** e tornare all'elenco delle **ML transforms (Trasformazioni basate su ML)**.

## Fase 4: stima della qualità della trasformazione basata su machine learning
<a name="ml-transform-tutorial-estimate-quality"></a>

Successivamente, è possibile stimare la qualità della propria trasformazione basata su machine learning. La qualità varia in base al numero di etichettature eseguite. Per ulteriori informazioni sulla stima della qualità, consultare [Stima della qualità](console-machine-learning-transforms.md#console-machine-learning-transforms-metrics).

1. Nella console AWS Glue, nel riquadro di navigazione in **Integrazione dati e ETL**, scegli **Strumenti di classificazione dei dati > Corrispondenza dei record**. 

1. Scegliere la trasformazione `demo-xform-dblp-acm` e scegliere la scheda **Estimate quality (Stima della qualità)**. Questa scheda visualizza l'attuale stima di della qualità, se disponibile, per la trasformazione. 

1. Scegliere **Estimate quality (Stima della qualità)** per avviare un'attività di stima della qualità della trasformazione. La precisione della stima della qualità si poggia sull'etichettatura dei dati di origine.

1. Passare alla scheda **History (Cronologia)**. In questo riquadro sono elencate le esecuzioni di attività per ogni trasformazione, inclusa l'attività di **Estimate quality (Stima della qualità)**. Per ulteriori informazioni sull'esecuzione, scegliere **Logs (Log)**. Verificare che, al termine dell'operazione, lo stato di esecuzione sia **Succeeded (Completata correttamente)**.

## Fase 5: aggiunta ed esecuzione di un processo con la trasformazione basata su machine learning
<a name="ml-transform-tutorial-add-job"></a>

In questo passaggio si utilizza la trasformazione basata su machine learning per aggiungere ed eseguire un processo in AWS Glue. Quando la trasformazione `demo-xform-dblp-acm` è **Ready for use (Pronta per l'uso)** è possibile utilizzarla in un processo ETL.

1. Nel riquadro di navigazione della console di AWS Glue, scegliere **Jobs (Processi)**.

1. Scegliere **Add job (Aggiungi processo)** e seguire la procedura guidata per creare un processo ETL Spark con uno script generato. Per le proprietà della trasformazione scegliere i seguenti valori:

   1. Per **Nome**, scegli il lavoro di esempio in questo tutorial,. **demo-etl-dblp-acm**

   1. Alla voce **IAM role (Ruolo IAM)**, scegli un ruolo IAM che disponga delle autorizzazioni per accedere ai dati di origine su Amazon S3, ai file di etichettatura dei dati e alle operazioni API di AWS Glue. Per ulteriori informazioni, consulta [Creazione di un ruolo IAM per AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/create-an-iam-role.html) nella *Guida per sviluppatori di AWS Glue *.

   1. Alla voce **ETL language** (Linguaggio ETL) scegli **Scala**. Questo è il linguaggio di programmazione dello script ETL.

   1. Per il **nome del file di script**, scegliete **demo-etl-dblp-acm**. Questo è il nome del file dello script Scala (uguale al nome del processo).

   1. Come **Data source (Origine dati)**, scegliere **dblp\$1acm\$1records\$1csv**. L'origine dati scelta deve corrispondere allo schema dell'origine dati della trasformazione basata su machine learning.

   1. Alla voce **Transform type (Tipo di trasformazione)**, scegliere **Find matching records (Individuazione record corrispondenti)** per creare un processo che utilizza una trasformazione basata su machine learning.

   1. Annullare la selezione di **Remove duplicate records (Rimuovi record duplicati)**. Si sceglie di non rimuovere i record duplicati perché i record di output dispongono di un campo aggiuntivo `match_id` accodato. 

   1. Per **Transform **demo-xform-dblp-acm****, scegli la trasformazione di machine learning utilizzata dal job.

   1. Alla voce **Create tables in your data target (Crea tabelle nella destinazioni dati)**, scegliere di creare tabelle con le seguenti proprietà:
      + **Tipo di memorizzazione dei dati**: **Amazon S3**
      + **Formato**: **CSV**
      + **Tipo di compressione**: **None**
      + **Percorso di destinazione**: il percorso Amazon S3 in cui viene scritto l'output del processo (nell'attuale regione della console AWS )

1. Scegliere **Save job and edit script (Salva processo e modifica script)** per visualizzare la pagina dell'editor dello script.

1. Modificare lo script per aggiungere un'istruzione che faccia sì che l'output del processo sia scritto sul **Target path (Percorso di destinazione)** in un file a singola partizione. Aggiungere questa istruzione immediatamente dopo l'istruzione che esegue la trasformazione `FindMatches`. Le istruzioni sono simili alle seguenti.

   ```
   val single_partition = findmatches1.repartition(1) 
   ```

   È necessario modificare l'istruzione `.writeDynamicFrame(findmatches1)` per scrivere l'output come `.writeDynamicFrame(single_partion)`. 

1. Dopo aver modificato lo script, scegliere **Save (Salva)**. Lo script modificato è simile al codice riportato qui di seguito, ma personalizzato in base al proprio tuo ambiente.

   ```
   import com.amazonaws.services.glue.GlueContext
   import com.amazonaws.services.glue.errors.CallSite
   import com.amazonaws.services.glue.ml.FindMatches
   import com.amazonaws.services.glue.util.GlueArgParser
   import com.amazonaws.services.glue.util.Job
   import com.amazonaws.services.glue.util.JsonOptions
   import org.apache.spark.SparkContext
   import scala.collection.JavaConverters._
   
   object GlueApp {
     def main(sysArgs: Array[String]) {
       val spark: SparkContext = new SparkContext()
       val glueContext: GlueContext = new GlueContext(spark)
       // @params: [JOB_NAME]
       val args = GlueArgParser.getResolvedOptions(sysArgs, Seq("JOB_NAME").toArray)
       Job.init(args("JOB_NAME"), glueContext, args.asJava)
       // @type: DataSource
       // @args: [database = "demo-db-dblp-acm", table_name = "dblp_acm_records_csv", transformation_ctx = "datasource0"]
       // @return: datasource0
       // @inputs: []
       val datasource0 = glueContext.getCatalogSource(database = "demo-db-dblp-acm", tableName = "dblp_acm_records_csv", redshiftTmpDir = "", transformationContext = "datasource0").getDynamicFrame()
       // @type: FindMatches
       // @args: [transformId = "tfm-123456789012", emitFusion = false, survivorComparisonField = "<primary_id>", transformation_ctx = "findmatches1"]
       // @return: findmatches1
       // @inputs: [frame = datasource0]
       val findmatches1 = FindMatches.apply(frame = datasource0, transformId = "tfm-123456789012", transformationContext = "findmatches1", computeMatchConfidenceScores = true)
     
     
       // Repartition the previous DynamicFrame into a single partition. 
       val single_partition = findmatches1.repartition(1)    
    
       
       // @type: DataSink
       // @args: [connection_type = "s3", connection_options = {"path": "s3://aws-glue-ml-transforms-data/sal"}, format = "csv", transformation_ctx = "datasink2"]
       // @return: datasink2
       // @inputs: [frame = findmatches1]
       val datasink2 = glueContext.getSinkWithFormat(connectionType = "s3", options = JsonOptions("""{"path": "s3://aws-glue-ml-transforms-data/sal"}"""), transformationContext = "datasink2", format = "csv").writeDynamicFrame(single_partition)
       Job.commit()
     }
   }
   ```

1. Scegliere **Run job (Esegui processo)** per avviare l'esecuzione del processo. Controllare lo stato del processo nell'elenco dei processi. Al termine del processo, nella finestra **ML transform (Trasformazione ML)**, **History (Cronologia)**, è disponibile una nuova riga **Run ID (ID esecuzione)** aggiunta di tipo ** ETL job (Processo ETL)**.

1. Passare alla scheda **Jobs (Processi)**, **History (Cronologia)**. In questo riquadro vengono elencate le esecuzioni dei processi. Per ulteriori informazioni sull'esecuzione, scegliere **Logs (Log)**. Verificare che, al termine dell'operazione, lo stato di esecuzione sia **Succeeded (Completata correttamente)**.

## Fase 6: verifica dei dati di output da Amazon S3
<a name="ml-transform-tutorial-data-output"></a>

In questa fase si verifica l'output dell'esecuzione del processo nel bucket Amazon S3 scelto al momento dell'aggiunta del processo. È possibile scaricare il file di output sulla propria macchina locale e verificare che i record corrispondenti siano stati identificati.

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

1. Scaricare il file di output di destinazione del processo `demo-etl-dblp-acm`. Aprire il file in un foglio di calcolo (per aprire il file correttamente, potrebbe essere necessario aggiungere al file l'estensione `.csv`).

   L'immagine seguente mostra un estratto dell'output in Microsoft Excel.  
![\[Foglio di calcolo Excel che mostra l'output della trasformazione.\]](http://docs.aws.amazon.com/it_it/glue/latest/dg/images/demo_output_dblp_acm.png)

   L'origine e la destinazione dei dati contano entrambe 4.911 record. Tuttavia, la trasformazione `Find matches` aggiunge un'altra colonna denominata `match_id` per identificare i record corrispondenti nell'output. Le righe con gli stessi `match_id` sono considerate record corrispondenti. La `match_confidence_score` è un numero compreso tra 0 e 1 che fornisce una stima della qualità delle corrispondenze trovate da `Find matches`.

1. Ordinare il file di output per `match_id` al fine di visualizzare facilmente i record corrispondenti. Confrontare i valori nelle altre colonne per confermare i risultati della trasformazione `Find matches`. Se i risultati non sono soddisfacenti, è possibile continuare ad addestrare la trasformazione aggiungendo ulteriori etichette. 

   È anche possibile ordinare i file per un altro campo, ad esempio `title`, per vedere se record con titoli simili presentano lo stesso `match_id`. 

# Trovare corrispondenze incrementali
<a name="machine-learning-incremental-matches"></a>

La caratteristica FindMatches permette di identificare registri duplicati o corrispondenti nel set di dati, anche quando i registri non dispongono di un identificatore univoco comune e nessun campo corrisponde esattamente. La versione iniziale di Trova corrispondenze trasforma i registri corrispondenti identificati all'interno di un singolo set di dati. Quando si aggiungono nuovi dati al set, avrai già dovuto unirli con il set di dati pulito esistente e rieseguire la corrispondenza con il set di dati unito completo.

La funzione di corrispondenza incrementale semplifica la corrispondenza con i registri incrementali rispetto ai set di dati corrispondenti esistenti. Supponiamo che desideri abbinare i dati dei potenziali clienti con i set di dati esistenti dei clienti. La funzionalità di corrispondenza incrementale offre la flessibilità necessaria per abbinare centinaia di migliaia di nuovi prospect con un database esistente di prospect e potenziali clienti combinando i risultati in un unico database o tabella. Corrispondendo solo tra i set di dati nuovi ed esistenti, l'ottimizzazione delle corrispondenze incrementali di ricerca riduce i tempi di calcolo, riducendo anche i costi.

L'uso della corrispondenza incrementale è simile a Trova corrispondenze come descritto in [Tutorial: creazione di una trasformazione dell'apprendimento automatico con AWS Glue](machine-learning-transform-tutorial.md). Questo argomento identifica solo le differenze con la corrispondenza incrementale.

Per ulteriori informazioni, leggi il post del blog su [Corrispondenza incrementale dei dati](https://aws.amazon.com/blogs/big-data/incremental-data-matching-using-aws-lake-formation/).

## Esecuzione di un processo di corrispondenza incrementale
<a name="machine-learning-incremental-matches-add"></a>

Per la seguente procedura, supponiamo quanto segue: 
+ Hai eseguito il crawling del set di dati esistente nella tabella *first\$1records*. Il set di dati *first\$1records* deve essere un set di dati corrispondente o l'output del processo corrispondente.
+ Hai creato e addestrato una trasformazione Find matches (Trova corrispondenze) con AWS Glue Glue versione 2.0. Questa è l'unica versione di AWS Glue che supporti le corrispondenze incrementali.
+ Il linguaggio ETL è Scala. Si noti che anche Python è supportato.
+ Il modello già generato viene chiamato `demo-xform`.

1. Esegui la scansione del set di dati incrementale nella tabella *second\$1records*.

1. Nel riquadro di navigazione della console di AWS Glue, scegliere **Jobs (Processi)**.

1. Scegliere **Add job (Aggiungi processo)** e seguire la procedura guidata per creare un processo ETL Spark con uno script generato. Per le proprietà della trasformazione scegliere i seguenti valori:

   1. Per **Name** (Nome), scegli **demo-etl**.

   1. Alla voce **IAM role (Ruolo IAM)**, scegli un ruolo IAM che disponga delle autorizzazioni per accedere ai dati di origine su Amazon S3, ai file di etichettatura dei dati e alle [operazioni API di AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/create-an-iam-role.html).

   1. Alla voce **ETL language** (Linguaggio ETL) scegli **Scala**.

   1. Come **Script file name (Nome del file di script)**, scegli **demo-etl**. Questo è il nome del file dello script Scala.

   1. Per **Data source (Origine dati)**, scegli **first\$1records**. L'origine dati scelta deve corrispondere allo schema dell'origine dati della trasformazione basata su machine learning.

   1. Alla voce **Transform type (Tipo di trasformazione)**, scegliere **Find matching records (Individuazione record corrispondenti)** per creare un processo che utilizza una trasformazione basata su machine learning.

   1. Seleziona l'opzione di corrispondenza incrementale e per **Data source** (Origine dati) seleziona la tabella denominata **second\$1records**.

   1. Alla voce **Transform (Trasformazione)**, scegli **demo-xform**, la trasformazione basata su machine learning utilizzata del processo.

   1. Scegli **Create tables in your data target** (Crea tabelle nella tua destinazione di dati) o **Use tables in the catalogo dati and update your data target** (Usa tabelle nel catalogo dati e aggiorna la destinazione dati).

1. Scegliere **Save job and edit script (Salva processo e modifica script)** per visualizzare la pagina dell'editor dello script.

1. Scegliere **Run job (Esegui processo)** per avviare l'esecuzione del processo.

# Utilizzo FindMatches in un lavoro visivo
<a name="find-matches-visual-job"></a>

 Per utilizzare la **FindMatches**trasformazione inAWS Glue Studio, puoi utilizzare il nodo **Custom Transform** che richiama l' FindMatches API. Per ulteriori informazioni su come utilizzare una trasformazione personalizzata, consulta la pagina [Creating a custom transformation](https://docs.aws.amazon.com/glue/latest/ug/transforms-custom.html) 

**Nota**  
 Attualmente, l' FindMatches API funziona solo con. `Glue 2.0` Per eseguire un lavoro con la trasformazione personalizzata che richiama l' FindMatches API, assicurati che la AWS Glue versione sia `Glue 2.0` nella **scheda Dettagli del lavoro**. Se la versione di non lo AWS Glue è`Glue 2.0`, il processo fallirà in fase di esecuzione con il seguente messaggio di errore: «impossibile importare il nome '' da FindMatches 'awsglueml.transforms'». 

## Prerequisiti
<a name="adding-find-matches-to-a-visual-job-prerequisites"></a>
+  Per utilizzare la trasformazione **Trova corrispondenze**, apri la console AWS Glue Studio all'indirizzo [https://console.aws.amazon.com/gluestudio/](https://console.aws.amazon.com/gluestudio/). 
+  Crea una trasformazione basata su machine learning. Una volta creata, viene generato un transformId. Avrai bisogno di questo ID per i passaggi successivi. Per ulteriori informazioni su come creare una trasformazione basata su machine learning, consulta la pagina [Adding and editing machine learning transforms](https://docs.aws.amazon.com/glue/latest/dg/console-machine-learning-transforms.html#console-machine-learning-transforms-actions). 

## Aggiungere una trasformazione FindMatches
<a name="adding-find-matches-to-a-visual-job"></a>

**Per aggiungere una FindMatches trasformazione:**

1.  Nell'editor dei processi AWS Glue Studio, apri il pannello Risorse facendo clic sul simbolo della croce nell'angolo in alto a sinistra del grafico visivo del processo e scegli un'origine dati selezionando la **scheda Dati**. Questa è l'origine dati nella quale verificare la presenza di corrispondenze.   
![\[La schermata mostra un simbolo a croce all'interno di un cerchio. Facendo clic su questo pulsante nell'editor visivo dei processi, si apre il pannello delle risorse.\]](http://docs.aws.amazon.com/it_it/glue/latest/dg/images/resource-panel-blank-canvas.png)

1.  Scegli il nodo dell'origine dati, quindi apri il pannello Risorse facendo clic sul simbolo della croce nell'angolo in alto a sinistra del grafico visivo del processo e cerca "trasformazione personalizzata". Scegli il nodo **Trasformazione personalizzata** per aggiungerlo al grafico. La **Trasformazione personalizzata** è collegata al nodo dell'origine dati. In caso contrario, puoi fare clic sul nodo **Trasformazione personalizzata** e scegliere la scheda **Proprietà del nodo**, quindi, in **Padri del nodo**, scegli l'origine dati. 

1.  Fai clic sul nodo **Trasformazione personalizzata** nel grafico visivo, quindi scegli la scheda **Proprietà del nodo** e assegna un nome alla trasformazione personalizzata. Ti consigliamo di rinominare la trasformazione assegnandole un nome facilmente identificabile nel grafico visivo. 

1.  Scegli la scheda **Trasforma**, dove puoi modificare il blocco di codice. Qui è possibile aggiungere il codice per richiamare l' FindMatches API.   
![\[La schermata mostra il blocco di codice nella scheda Trasforma quando è selezionato il nodo Trasformazione personalizzata.\]](http://docs.aws.amazon.com/it_it/glue/latest/dg/images/custom-transform-code-block.png)

    Il blocco di codice contiene codice precompilato per aiutarti a iniziare. Sovrascrivi il codice precompilato con il modello seguente. Il modello ha un segnaposto per **transformId**, che puoi sostituire con il tuo valore. 

   ```
   def MyTransform (glueContext, dfc) -> DynamicFrameCollection:
       dynf = dfc.select(list(dfc.keys())[0])
       from awsglueml.transforms import FindMatches
       findmatches = FindMatches.apply(frame = dynf, transformId = "<your id>")
       return(DynamicFrameCollection({"FindMatches": findmatches}, glueContext))
   ```

1.  Fai clic sul nodo **Trasformazione personalizzata** nel grafico visivo, quindi apri il pannello Risorse facendo clic sul simbolo della croce nell'angolo in alto a sinistra del grafico visivo del processo e cerca "Seleziona dalla raccolta". Non è necessario modificare la selezione predefinita poiché ce n'è solo una DynamicFrame nella raccolta. 

1.  È possibile continuare ad aggiungere trasformazioni o archiviare il risultato, che ora è arricchito con le colonne aggiuntive delle corrispondenze trovate. Se vuoi fare riferimento a quelle nuove colonne nelle trasformazioni a valle, devi aggiungerle allo schema di output della trasformazione. Il modo più semplice per farlo è scegliere la scheda **Anteprima dati** e quindi, nella scheda Schema, scegliere "Utilizza schema di anteprima dati". 

1.  Per personalizzare FindMatches, puoi aggiungere parametri aggiuntivi da passare al metodo 'applica'. Vedi [FindMatches classe](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-crawler-pyspark-transforms-findmatches.html). 

## Aggiungere una trasformazione FindMatches incrementale
<a name="find-matches-incrementally-visual-job"></a>

 Nel caso di corrispondenze incrementali, il processo è lo stesso dell'**aggiunta di una FindMatches trasformazione** con le seguenti differenze: 
+  Per la trasformazione personalizzata sono necessari due nodi padri anziché un solo nodo. 
+  Il primo nodo padre dovrebbe essere il set di dati. 
+  Il secondo nodo padre dovrebbe essere il set di dati incrementale. 

   Sostituisci il valore `transformId` con il tuo `transformId` nel blocco di codice del modello: 

  ```
  def MyTransform (glueContext, dfc) -> DynamicFrameCollection:
      dfs = list(dfc.values())
      dynf = dfs[0]
      inc_dynf = dfs[1]
      from awsglueml.transforms import FindIncrementalMatches
      findmatches = FindIncrementalMatches.apply(existingFrame = dynf, incrementalFrame = inc_dynf,
                                      transformId = "<your id>")
      return(DynamicFrameCollection({"FindMatches": findmatches}, glueContext))
  ```
+  Per i parametri opzionali, vedete [FindIncrementalMatches class](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-crawler-pyspark-transforms-findincrementalmatches.html). 