Fai una previsione

Ora puoi utilizzare i dati di test in df_for_prediction per effettuare una richiesta di previsione. La richiesta di previsione invoca il tuo modello per prevedere la specie di pinguino rappresentata dalle caratteristiche del pinguino in ogni riga di df_for_prediction.

Preparare i dati del test di previsione

Prima di poter utilizzare i dati di test per creare previsioni, devi rimuovere la colonna species. Poiché la specie di pinguino è ciò che intendi prevedere, non inclusi nei dati di test utilizzati per creare una previsione. Dopo aver rimosso la colonna species, converti i dati in un elenco Python perché è ciò che il metodo predict riceve come input. Esegui il seguente codice per convertire i dati in un elenco Python:

# Remove the species column
df_for_prediction.pop(LABEL_COLUMN)

# Convert data to a Python list
test_data_list = df_for_prediction.values.tolist()

(Facoltativo) Visualizza i dati di test

Per aiutarti a comprendere i dati di test, puoi eseguire la seguente riga di codice: Visualizzalo:

test_data_list

In ogni riga, i rispettivi valori in ciascuna delle sei colonne si riferiscono alle seguenti caratteristiche di un pinguino:

Colonna Caratteristica del pinguino
0 island: l'isola in cui si trova una specie di pinguino. La mappatura dei valori dell'isola è 0 per Dream, 1 per Biscoe e 2 per Torgersen.
1 culmen_length_mm: la lunghezza del rilievo lungo la parte superiore del becco di un pinguino.
2 culmen_depth_mm: l'altezza del becco di un pinguino.
3 flipper_length_mm: la lunghezza dell'ala a forma di pinna di un pinguino.
4 body_mass_g: la massa del corpo di una penna.
5 sex: il sesso del pinguino. 0 è FEMALE e 1 è MALE.

Invia la richiesta di previsione

Per creare una richiesta di previsione, passa l'elenco Python dei dati di test che hai creato al metodo predict di endpoint.

Il metodo predict valuta le caratteristiche in ogni riga e le utilizza per a prevedere che tipo di pinguino rappresentano. Esegui questo codice per creare le tue previsioni. Le previsioni restituite contengono un elenco di righe, in cui ogni riga ha tre colonne (Pinguino adelie (Pygoscelis adeliae) (colonna 1), Pinguino antartico (Pygoscelis antarctica) (colonna 2) o Pinguino papua (Pygoscelis papua) (colonna 3)).

# Get your predictions.
predictions = endpoint.predict(instances=test_data_list)

# View the predictions
predictions.predictions

Ogni colonna di una riga contiene un valore e più elevato è il valore, maggiore è la sicurezza che la specie di pinguino rappresentata da quella colonna sia una previsione corretta. Ad esempio, nella seguente riga di output della previsione di esempio, il modello utilizza le caratteristiche della riga di dati di esempio del pinguino per prevedere che il pinguino appartiene con maggiore probabilità alla specie pinguino adelie (Pygoscelis adeliae). Questo perché il valore più alto, 0.732703805, si trova nella prima colonna.

[0.732703805, 0.233752429, 0.0335437432]

Nel codice seguente, il metodo NumPy argmax restituisce la colonna per ogni riga che contiene il valore più alto. Il valore più alto corrisponde alla previsione probabilmente è la risposta corretta. La seconda riga mostra l'array delle previsioni.

# Get the prediction for each set of input data.
species_predictions = np.argmax(predictions.predictions, axis=1)

# View the best prediction for the penguin characteristics in each row.
species_predictions

Ogni risultato nell'array species_predictions prevede a quale specie di pinguino corrispondono i valori nella riga corrispondente dei dati di test. Ad esempio: il primo valore è 0, mappato al Pinguino di Adelia (Pygoscelis adeliae) specie. Ciò significa che il modello prevede che la specie di un pinguino con la caratteristica nella prima riga dei dati di test è Adelie Penguin (Pygoscelis adeliae).

Esegui la pulizia delle risorse

Ora che hai finito, puoi continuare a utilizzare il tuo blocco note per esplorare e apprendere di più sulle risorse che hai creato e sul loro funzionamento.

Eliminare le risorse

Quando è tutto pronto, ti consigliamo di eliminare le risorse Google Cloud create durante questo tutorial, in modo da non incorrere in addebiti inutili. Esistono due modi per eliminare le risorse:

  • Eliminare il progetto, il che comporta anche l'eliminazione di tutte le risorse associate. Per ulteriori informazioni, consulta la sezione Arresto (eliminazione) per i progetti.

  • Esegui il codice che elimina il job di addestramento (un oggetto CustomTrainingJob), il modello (un oggetto Model), l'endpoint (un oggetto Endpoint) e il bucket Cloud Storage. Questa opzione conserva il progetto e le altre risorse che potresti aver creato e che non elimini esplicitamente con il codice.

    Prima di poter eliminare il modello, devi annullare il deployment passando force=True alle endpoint.delete .

    Per conservare il progetto ed eliminare solo le risorse che hai creato durante questo tutorial, esegui il seguente codice nel tuo notebook:

import os

# Delete the training job
job.delete()

# Delete the endpoint and undeploy the model from it
endpoint.delete(force=True)

# Delete the model
model.delete()

# Delete the storage bucket and its contents
bucket.delete(force=True)

Elimina l'istanza di Vertex AI Workbench

Puoi conservare l'istanza di Vertex AI Workbench per utilizzarla per i lavori futuri. Se lo mantieni, assicurati di conoscerne i costi. Per ulteriori informazioni, consulta i prezzi di Vertex AI Workbench.

Per eliminare l'istanza di Vertex AI Workbench, procedi nel seguente modo:

  1. Nella console Google Cloud, vai alla pagina Istanze di Vertex AI Workbench.

    Vai a Istanze

  2. Seleziona l'istanza di Vertex AI Workbench.

  3. Nel menu in alto, fai clic su  Elimina.

  4. Nella finestra di dialogo di conferma Elimina istanza, fai clic su Conferma. Il completamento dell'eliminazione richiede alcuni minuti.