Creazione automatica di modelli di machine learning

GUIDA ALLE OPERAZIONI DI BASE

Panoramica

In questo tutorial scoprirai come utilizzare il pilota automatico Amazon SageMaker per creare automaticamente, addestrare e ottimizzare un modello di machine learning (ML) e implementare tale modello per effettuare delle previsioni.
 

Il pilota automatico Amazon SageMaker elimina il pesante fardello della creazione di modelli di ML aiutando a costruire automaticamente, addestrare e ottimizzare il miglior modello di ML in base ai propri dati. Con il pilota automatico SageMaker fornisci semplicemente un set di dati tabulare e selezioni la colonna di destinazione su cui fare previsioni. Il pilota automatico SageMaker esplora i tuoi dati, seleziona gli algoritmi rilevanti al tuo tipo di problema, prepara i dati per l'addestramento del modello, testa una varietà di modelli e seleziona quello con prestazioni migliori. Puoi quindi implementare uno dei modelli candidati o eseguire ulteriori iterazioni su di essi per migliorare la qualità della previsione.

Argomenti affrontati

Con questa guida, imparerai a:

  • Creare un esperimento di addestramento con il pilota automatico Amazon SageMaker
  • Esplorare le diverse fasi dell'esperimento di formazione
  • Identificare e distribuire il modello con le migliori prestazioni dell'esperimento di formazione
  • Ottenere previsioni con il tuo modello distribuito

Prerequisiti

Prima di iniziare questa guida, avrai bisogno di:

 Esperienza AWS

Principiante

 Tempo per il completamento

45 minuti

 Costo richiesto per il completamento

Per una stima dei costi di questo tutorial, consulta Prezzi di SageMaker.

 Requisiti

Devi aver effettuato l'accesso con un account AWS.

 Servizi utilizzati

Pilota automatico Amazon SageMaker

 Ultimo aggiornamento

12 luglio 2022

Caso d'uso

Per questo flusso di lavoro utilizzerai un set di dati sui sinistri di un'assicurazione auto generato artificialmente. Gli input non elaborati sono due tabelle di dati assicurativi: una tabella dei sinistri e una tabella dei clienti. La tabella dei sinistri contiene una colonna denominata fraud (frode) che indica se un incidente è fraudolento o meno. Ai fini di questo tutorial, abbiamo selezionato una piccola porzione di set di dati. Tuttavia, puoi seguire gli stessi passaggi in questo tutorial per elaborare set di dati di dimensioni maggiori.

 

Fase 1: Configurazione del dominio di Amazon SageMaker Studio

Un account AWS può avere solo un dominio SageMaker Studio per regione AWS. Se hai già un dominio SageMaker Studio nella regione Stati Uniti orientali (Virginia settentrionale), consulta la Guida alla configurazione di SageMaker Studio per collegare le policy AWS IAM richieste all'account SageMaker Studio, quindi salta la fase 1 e passa direttamente alla fase 2. 

Se invece non disponi di un dominio SageMaker Studio, continua con la fase 1 per eseguire un modello AWS CloudFormation che crea un dominio SageMaker Studio e aggiunge le autorizzazioni necessarie per il resto di questo tutorial.

Scegli il link dello stack AWS CloudFormation. Questo link apre la console AWS CloudFormation e crea il dominio SageMaker e un utente denominato studio-user. Inoltre aggiunge le autorizzazioni richieste al tuo account SageMaker Studio. Nella console CloudFormation, conferma che Stati Uniti orientali (Virginia settentrionale) sia la regione visualizzata nell'angolo in alto a destra. Il nome dello stack deve essere CFN-SM-IM-Lambda-catalog e non può essere modificato. Questo stack richiede circa 10 minuti per creare tutte le risorse.

Assume inoltre che sia presente un VPC pubblico configurato nell'account. Se non hai un VPC pubblico, consulta VPC con una singola sottorete pubblica per scoprire come creare un VPC pubblico.

Seleziona I acknowledge that AWS CloudFormation might create IAM resources (Sono consapevole che AWS CloudFormation può creare le risorse IAM), quindi scegli Create stack (Crea stack).

Nel riquadro CloudFormation, scegli Stacks (Stack). Una volta creato lo stack, il suo stato passerà da CREATE_IN_PROGRESS a CREATE_COMPLETE.

Digita SageMaker Studio nella barra di ricerca della console, quindi scegli SageMaker Studio.

Scegli US East (N. Virginia) Stati Uniti orientali [Virginia settentrionale]) dall'elenco a discesa Region (Regione) nell'angolo in alto a destra della console SageMaker. In Launch app (Avvia app), seleziona Studio per aprire SageMaker Studio utilizzando il profilo studio-user.
 

Fase 2: Creazione di un esperimento del pilota automatico SageMaker

Lo sviluppo e il test di un gran numero di modelli candidati è fondamentale per i progetti di machine learning (ML). Il pilota automatico Amazon SageMaker aiuta fornendo diversi modelli candidati e sceglie automaticamente il modello migliore in base ai tuoi dati. In questa fase, configurerai un esperimento del pilota automatico SageMaker per prevedere il successo di una campagna di marketing dei servizi finanziari. Questo set di dati rappresenta una campagna di marketing condotta da un importante istituto di servizi finanziari per promuovere la registrazione del certificato di deposito.

Per avviare un nuovo esperimento del pilota automatico SageMaker, fai clic sull'icona + per accedere a una nuova finestra di avvio. Nella finestra di avvio, scorri verso il basso fino a ML tasks and components (Attività e componenti di ML). Fai clic sull'icona + per New Autopilot experiment (Nuovo esperimento pilota automatico).

Quindi, assegna un nome all'esperimento. Fai clic nella casella Experiment name (Nome esperimento) e digita autopilot-experiment per il nome.

 

Quindi, connetterai l'esperimento ai dati che sono organizzati in S3. Fai clic sulla casella Enter S3 bucket location (Immetti la posizione del bucket S3). Nella casella S3 bucket address (Indirizzo bucket S3), incolla il seguente percorso S3: s3://sagemaker-sample-files/datasets/tabular/uci_bank_marketing/bank-additional-full.csv

Lascia l'opzione del file manifesto impostata su Off. Nell'elenco a discesa Target (Destinazione), seleziona y come funzionalità target che il nostro modello tenterà di prevedere.

Nella tabella Output data location (S3 bucket) (Posizione dati di output [bucket S3]), scegli il tuo bucket S3. Nel campo Dataset directory name (Nome directory di database), digita sagemaker/tutorial-autopilot/output. Qui è dove i dati di output verranno salvati una volta completato l'esperimento.

Lascia attiva l'opzione Auto deploy (Implementa automaticamente) e il campo Auto deploy endpoint (Implementa automaticamente endpoint) vuoto. Ciò implementerà automaticamente il nostro modello come endpoint API e assegnerà un nome.

Successivamente, esistono una serie di impostazioni avanzate facoltative che controllano i dettagli del tipo di problema, l'esperimento completo, i dettagli del tempo di esecuzione, l'accesso IAM, la sicurezza e la crittografia e altro. Fai clic sul pulsante di runtime per visualizzare le impostazioni facoltative.

Per questo tutorial, diminuisci il valore di Max candidates (Numero massimo di candidati) da 250 a 5. In questo modo verrà eseguito un minor numero di modelli più rapidamente. Un esperimento completo è l'approccio migliore per ottimizzare veramente il tuo modello, ma il suo completamento può richiedere ore. Per questo tutorial, lasceremo le impostazioni opzionali così come sono.

Fai clic sul pulsante Create Experiment (Crea esperimento) per avviare la prima fase dell'esperimento del pilota automatico SageMaker. Il pilota automatico SageMaker Autopilot comincerà a scorrere le fasi di un esperimento. Nella finestra dell'esperimento, puoi tenere traccia dell'avanzamento attraverso le fasi di pre-elaborazione, definizioni dei candidati, ingegneria delle funzionalità, ottimizzazione del modello, spiegabilità e informazioni dettagliate.

Fai clic sul pulsante Create Experiment (Crea esperimento) per avviare la prima fase dell'esperimento del pilota automatico SageMaker. Il pilota automatico SageMaker Autopilot comincerà a scorrere le fasi di un esperimento. Nella finestra dell'esperimento, puoi tenere traccia dell'avanzamento attraverso le fasi di pre-elaborazione, definizioni dei candidati, ingegneria delle funzionalità, ottimizzazione del modello, spiegabilità e informazioni dettagliate. Se viene visualizzata una notifica a comparsa che chiede se si desidera realmente implementare il modello migliore, fai clic su yes (sì).

Una volta completato il processo del pilota automatico di SageMaker, potrai accedere a un report che mostra i modelli candidati, lo stato del modello candidato, il valore dell'obiettivo, il punteggio F1 e la precisione. Il pilota automatico SageMaker implementerà automaticamente l'endpoint.

Fase 3: Interpretazione delle prestazioni del modello

Ora che l'esperimento è completo e hai un modello, il passaggio successivo consiste nell'interpretarne le prestazioni. Imparerai ora come utilizzare il pilota automatico SageMaker per analizzare le prestazioni del modello.

Ora che l'esperimento del pilota automatico SageMaker è completo, puoi aprire il modello più in alto per ottenere maggiori dettagli sulle prestazioni e sui metadati del modello. Dall'elenco di modelli, seleziona il primo e fai clic con il pulsante destro del mouse per visualizzare le relative opzioni. Fai clic su Open in model details (Apri nei dettagli del modello) per rivedere le statistiche delle prestazioni del modello.

Nella nuova finestra, fai clic su Explainability (Spiegabilità). La prima vista visualizzata è detta Importanza delle funzionalità e rappresenta il valore SHAP aggregato per ogni funzionalità su ciascuna istanza nel set di dati. Il punteggio dell'importanza della funzionalità è una parte fondamentale della spiegabilità del modello in quanto mostra quali funzionalità tendono a influenzare di più le previsioni nel set di dati. In questo caso d'uso, la durata o il mandato del cliente e il tasso di variazione dell'occupazione sono i primi due campi per guidare il risultato del modello.

A questo punto, seleziona la scheda Performance (Prestazioni). Troverai informazioni dettagliate sulle prestazioni del modello, inclusi accuratezza, precisione e richiamo. Puoi anche interpretare le prestazioni del modello e decidere se è necessaria un'ulteriore ottimizzazione.

Quindi, vengono fornite delle visualizzazioni per illustrare ulteriormente le prestazioni del modello. Per prima cosa, guarda la matrice di confusione. La matrice di confusione è comunemente usata per capire come le etichette del modello si dividono tra le classi previste e vere. In questo caso, gli elementi della diagonale mostrano il numero di etichette previste correttamente e gli elementi fuori dalla diagonale mostrano i record classificati in modo errato. Una matrice di confusione è utile per analizzare le classificazioni errate dovute a falsi positivi e falsi negativi.

Quindi, guarda la precisione rispetto alla curva di richiamo. Questa curva interpreta l'etichetta come una soglia di probabilità e mostra il compromesso che si verifica come varie soglie di probabilità per la precisione e il richiamo del modello. Il pilota automatico SageMaker ottimizza questi due parametri per fornire il modello migliore.

Quindi, guarda la curva etichettata Receiver Operating Characteristic (ROC). Questa curva mostra la relazione tra il tasso di veri positivi e il tasso di falsi positivi su una varietà di potenziali soglie di probabilità. Una linea diagonale rappresenta un modello ipotetico basato su supposizioni casuali. Più questa curva si sposta in alto a sinistra del grafico, migliori saranno le prestazioni del modello.

La linea tratteggiata rappresenta un modello con valore predittivo 0, spesso chiamato modello nullo. Il modello nullo assegnerebbe casualmente un'etichetta 0/1 e la sua area sotto la curva ROC sarebbe 0,5, il che significa che sarebbe accurato il 50% delle volte.

Quindi, seleziona la scheda Artifacts (Artefatti). Qui puoi trovare le risorse di supporto dell'esperimento del pilota automatico SageMaker, incluso il codice di ingegneria delle funzionalità, le posizioni dei dati di input e gli artefatti di spiegabilità.

Infine, seleziona la scheda Network (Rete). Troverai informazioni sull'isolamento di rete e sulla crittografia del traffico del container.

Fase 4: Test dell'endpoint del modello SageMaker

Ora che hai esaminato i dettagli del modello, testa l'endpoint.

Fai clic sull'icona + per visualizzare un nuovo notebook Python. Seleziona Python3 come kernel. Nella prima cella, copia e incolla il codice seguente. Questo codice creerà un payload, invierà una richiesta all'endpoint del modello e analizzerà la risposta.

Per sapere dove inviare la richiesta, cerca il nome dell'endpoint del modello. Nel riquadro di sinistra, fai clic sull'icona SageMaker Resources (Risorse SageMaker). Nel riquadro delle risorse di SageMaker, seleziona Endpoints (Endpoint). Fai clic sull'endpoint associato al nome dell'esperimento creato all'inizio di questo tutorial. Verrà visualizzata la finestra Endpoint Details (Dettagli dell'endpoint). Registra il nome dell'endpoint e torna al 3 notebook Python.

Copia e incolla il seguente frammento di codice in una cella nel notebook, quindi premi Maius+Invio per eseguire la cella corrente. Questo codice imposta la variabile d'ambiente ENDPOINT_NAME ed esegue l'inferenza. Al completamento del codice, vedrai un risultato costituito dall'etichetta del modello e dal punteggio di probabilità associato.
import os
import io
import boto3
import json
import csv

#: Define the endpoint's name.
ENDPOINT_NAME = 'autopilot-experiment-6d00f17b55464fc49c45d74362f284ce'
runtime = boto3.client('runtime.sagemaker')

#: Define a test payload to send to your endpoint.
payload = {
    "data":{
        "features": {
            "values": [45,"blue-collar","married","basic.9y",'unknown',"yes","no","telephone","may","mon",461,1,999,0,"nonexistent",1.1,93.994,-36.4,4.857,5191.0]
        }
    }
}

#: Submit an API request and capture the response object.
response = runtime.invoke_endpoint(
    EndpointName=ENDPOINT_NAME,
    ContentType='text/csv',
    Body=str(payload)
)

#: Print the model endpoint's output.
print(response['Body'].read().decode())

Complimenti! Hai imparato come utilizzare il pilota automatico SageMaker per addestrare e implementare automaticamente un modello di machine learning.

Fase 5: Eliminazione delle risorse AWS

Per evitare di ricevere addebiti non desiderati, una best practice consigliata consiste nell'eliminare le risorse non più utilizzate.

Se hai eseguito il modello CloudFormation nella fase 1 per creare un nuovo dominio SageMaker Studio, continua con le fasi seguenti per eliminare il dominio, l'utente e le risorse create dal modello CloudFormation.

Per aprire la console CloudFormation, immetti CloudFormation nella barra di ricerca della console AWS, quindi scegli CloudFormation dai risultati della ricerca.

Nel riquadro CloudFormation, scegli Stacks (Stack). Dall'elenco a discesa degli stati, seleziona Active (Attivo). In Stack name (Nome stack), scegli CFN-SM-IM-Lambda-Catalog per aprire la pagina dei dettagli dello stack.

Nella pagina dei dettagli dello stack CFN-SM-IM-Lambda-Catalog, scegli Delete (Elimina) per eliminare lo stack insieme alle risorse create nella fase 1.

Conclusioni

Congratulazioni! Hai appena completato il tutorial Creazione automatica di un modello di machine learning.

Hai utilizzato con successo il pilota automatico SageMaker per creare, addestrare e ottimizzare automaticamente i modelli, quindi distribuire il miglior modello candidato per fare previsioni.

Questa pagina è stata utile?

Fasi successive

Ulteriori informazioni sul pilota automatico Amazon SageMaker

Visita la pagina Web
Ulteriori informazioni »

Esplora la documentazione del pilota automatico SageMaker

Scopri come iniziare a usare il pilota automatico Amazon SageMaker
Scopri di più »
Trova altri tutorial pratici
Trova altri tutorial pratici per imparare a utilizzare il ML
Inizia »