Questa pagina descrive come utilizzare l'importanza delle caratteristiche per avere visibilità sul modo in cui il modello esegue le previsioni.
Per ulteriori informazioni su AI Explanations, consulta Introduzione ad AI Explanations per AI Platform.
Introduzione
Quando utilizzi un modello di machine learning per prendere decisioni aziendali, è importante capire in che modo i dati di addestramento hanno contribuito al modello finale e in che modo il modello ha raggiunto le singole previsioni. Questa comprensione ti aiuta a garantire che il tuo modello sia giusto e preciso.
AutoML Tables fornisce l'importanza delle caratteristiche, a volte chiamata attribuzione delle caratteristiche, che ti consente di vedere quali caratteristiche hanno contribuito maggiormente all'addestramento del modello (importanza delle caratteristiche del modello) e alle singole previsioni (importanza delle caratteristiche locali).
AutoML Tables calcola l'importanza delle caratteristiche utilizzando il metodo Shapley campionato. Per ulteriori informazioni sulla spiegabilità del modello, consulta Introduzione alle spiegazioni IA.
Importanza delle caratteristiche del modello
L'importanza delle caratteristiche del modello ti aiuta a garantire che le caratteristiche su cui si basa l'addestramento del modello siano pertinenti per i tuoi dati e i problemi aziendali. Tutte le caratteristiche con un valore elevato di importanza delle caratteristiche devono rappresentare un indicatore valido per la previsione ed essere incluse in modo coerente nelle richieste di previsione.
L'importanza delle caratteristiche del modello viene indicata in percentuale per ciascuna caratteristica: maggiore è la percentuale, più la caratteristica ha influito sull'addestramento del modello.
Ottenere l'importanza delle caratteristiche del modello
Console
Per visualizzare i valori di importanza delle caratteristiche del modello utilizzando la console Google Cloud:
Vai alla pagina AutoML Tables nella console Google Cloud.
Seleziona la scheda Modelli nel riquadro di navigazione a sinistra, poi seleziona il modello per cui vuoi visualizzare le metriche di valutazione.
Apri la scheda Valuta.
Scorri verso il basso per vedere il grafico Importanza delle caratteristiche.
REST
Per ottenere i valori di importanza delle caratteristiche per un modello, utilizza il metodo model.get.
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
-
endpoint:
automl.googleapis.com
per la località globale eeu-automl.googleapis.com
per la regione dell'UE. - project-id: il tuo ID progetto Google Cloud.
- location: la località per la risorsa:
us-central1
per Globale oeu
per l'Unione Europea. -
model-id: l'ID del modello per cui vuoi ottenere le informazioni sull'importanza delle caratteristiche.
Ad esempio,
TBL543
.
Metodo HTTP e URL:
GET https://endpoint/v1beta1/projects/project-id/locations/location/models/model-id
Per inviare la richiesta, scegli una delle seguenti opzioni:
arricciatura
Esegui questo comando:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "x-goog-user-project: project-id" \
"https://endpoint/v1beta1/projects/project-id/locations/location/models/model-id"
PowerShell
Esegui questo comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "project-id" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://endpoint/v1beta1/projects/project-id/locations/location/models/model-id" | Select-Object -Expand Content
{ "name": "projects/292381/locations/us-central1/models/TBL543", "displayName": "Quickstart_Model", ... "tablesModelMetadata": { "targetColumnSpec": { ... }, "inputFeatureColumnSpecs": [ ... ], "optimizationObjective": "MAXIMIZE_AU_ROC", "tablesModelColumnInfo": [ { "columnSpecName": "projects/292381/locations/us-central1/datasets/TBL543/tableSpecs/246/columnSpecs/331", "columnDisplayName": "Contact", "featureImportance": 0.093201876 }, { "columnSpecName": "projects/292381/locations/us-central1/datasets/TBL543/tableSpecs/246/columnSpecs/638", "columnDisplayName": "Month", "featureImportance": 0.215029223 }, ... ], "trainBudgetMilliNodeHours": "1000", "trainCostMilliNodeHours": "1000", "classificationType": "BINARY", "predictionSampleRows": [ ... ], "splitPercentageConfig": { ... } }, "creationState": "CREATED", "deployedModelSizeBytes": "1160941568" }
Java
Se le risorse si trovano nella regione dell'UE, devi impostare esplicitamente l'endpoint. Scopri di più.
Node.js
Se le risorse si trovano nella regione dell'UE, devi impostare esplicitamente l'endpoint. Scopri di più.
Python
La libreria client per AutoML Tables include metodi Python aggiuntivi che semplificano l'utilizzo dell'API AutoML Tables. Questi metodi fanno riferimento a set di dati e modelli per nome anziché per ID. I nomi dei set di dati e dei modelli devono essere univoci. Per maggiori informazioni, consulta la documentazione di riferimento per i client.
Se le risorse si trovano nella regione dell'UE, devi impostare esplicitamente l'endpoint. Scopri di più.
Importanza delle caratteristiche locali
L'importanza delle caratteristiche locali ti offre visibilità su come le singole caratteristiche in una specifica richiesta di previsione hanno influito sulla previsione risultante.
Per arrivare a ogni valore di importanza delle caratteristiche locali, viene prima calcolato il punteggio di previsione di riferimento. I valori di riferimento vengono calcolati dai dati di addestramento, utilizzando il valore mediano per le caratteristiche numeriche e la modalità per le caratteristiche categoriche. La previsione generata dai valori di riferimento è il punteggio di previsione di riferimento.
Per i modelli di classificazione, l'importanza delle caratteristiche locali indica quanto ogni caratteristica è stata aggiunta o sottratta dalla probabilità assegnata alla classe con il punteggio più alto, rispetto al punteggio di previsione di base. I valori dei punteggi sono compresi tra 0,0 e 1,0, quindi l'importanza delle caratteristiche locali per i modelli di classificazione è sempre compresa tra -1,0 e 1,0 (incluso).
Per i modelli di regressione, l'importanza delle caratteristiche locali per una previsione indica in che misura ciascuna caratteristica è stata aggiunta o sottratta dal risultato rispetto al punteggio di previsione di riferimento.
L'importanza delle caratteristiche locali è disponibile sia per le previsioni online che per quelle batch.
Ottenere l'importanza delle caratteristiche locali per le previsioni online
Console
Per ottenere i valori di importanza delle caratteristiche locali per una previsione online utilizzando la console Google Cloud, segui i passaggi descritti in Ottenere una previsione online, assicurandoti di selezionare la casella di controllo Genera importanza delle caratteristiche.
REST
Per ottenere l'importanza delle caratteristiche locali per una richiesta di previsione online, utilizza il metodo model.predict
, impostando il parametro feature_importance
su true.
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
-
endpoint:
automl.googleapis.com
per la località globale eeu-automl.googleapis.com
per la regione dell'UE. - project-id: il tuo ID progetto Google Cloud.
- location: la località per la risorsa:
us-central1
per Globale oeu
per l'Unione Europea. - model-id: l'ID del modello. Ad esempio,
TBL543
. - valueN: i valori di ogni colonna, nell'ordine corretto.
Metodo HTTP e URL:
POST https://endpoint/v1beta1/projects/project-id/locations/location/models/model-id:predict
Corpo JSON della richiesta:
{ "payload": { "row": { "values": [ value1, value2,... ] } } "params": { "feature_importance": "true" } }
Per inviare la richiesta, scegli una delle seguenti opzioni:
arricciatura
Salva il corpo della richiesta in un file denominato request.json
ed esegui questo comando:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "x-goog-user-project: project-id" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://endpoint/v1beta1/projects/project-id/locations/location/models/model-id:predict"
PowerShell
Salva il corpo della richiesta in un file denominato request.json
ed esegui questo comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "project-id" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://endpoint/v1beta1/projects/project-id/locations/location/models/model-id:predict" | Select-Object -Expand Content
"tablesModelColumnInfo": [ { "columnSpecName": "projects/2381/locations/us-central1/datasets/TBL8440/tableSpecs/766336/columnSpecs/4704", "columnDisplayName": "Promo", "featureImportance": 1626.5464 }, { "columnSpecName": "projects/2381/locations/us-central1/datasets/TBL8440/tableSpecs/766336/columnSpecs/6800", "columnDisplayName": "Open", "featureImportance": -7496.5405 }, { "columnSpecName": "projects/2381/locations/us-central1/datasets/TBL8440/tableSpecs/766336/columnSpecs/9824", "columnDisplayName": "StateHoliday" } ],
Quando il valore di importanza delle caratteristiche di una colonna è 0, questa non viene visualizzata per quella colonna.
Java
Se le risorse si trovano nella regione dell'UE, devi impostare esplicitamente l'endpoint. Scopri di più.
Node.js
Se le risorse si trovano nella regione dell'UE, devi impostare esplicitamente l'endpoint. Scopri di più.
Python
La libreria client per AutoML Tables include metodi Python aggiuntivi che semplificano l'utilizzo dell'API AutoML Tables. Questi metodi fanno riferimento a set di dati e modelli per nome anziché per ID. I nomi dei set di dati e dei modelli devono essere univoci. Per maggiori informazioni, consulta la documentazione di riferimento per i client.
Se le risorse si trovano nella regione dell'UE, devi impostare esplicitamente l'endpoint. Scopri di più.
Ottenere l'importanza delle caratteristiche locali per le previsioni batch
Console
Per ottenere i valori di importanza delle caratteristiche locali per una previsione batch utilizzando la console Google Cloud, segui i passaggi in Richiesta di una previsione batch, assicurandoti di selezionare la casella di controllo Genera importanza delle caratteristiche.
L'importanza delle caratteristiche viene restituita aggiungendo una nuova colonna per ogni elemento,
denominata feature_importance.<feature_name>
.
REST
Per ottenere l'importanza delle caratteristiche locali per una richiesta di previsione batch, utilizza il metodo model.batchPredict
, impostando il parametro feature_importance
su true.
L'esempio seguente utilizza BigQuery per i dati e i risultati delle richieste; utilizzi lo stesso parametro aggiuntivo per le richieste che utilizzano Cloud Storage.
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
-
endpoint:
automl.googleapis.com
per la località globale eeu-automl.googleapis.com
per la regione dell'UE. - project-id: il tuo ID progetto Google Cloud.
- location: la località per la risorsa:
us-central1
per Globale oeu
per l'Unione Europea. - model-id: l'ID del modello. Ad esempio,
TBL543
. - dataset-id: l'ID del set di dati BigQuery in cui si trovano i dati di previsione.
-
table-id: l'ID della tabella BigQuery in cui si trovano i dati di previsione.
AutoML Tables crea una sottocartella per i risultati della previsione denominata
prediction-<model_name>-<timestamp>
in project-id.dataset-id.table-id.
Metodo HTTP e URL:
POST https://endpoint/v1beta1/projects/project-id/locations/location/models/model-id:batchPredict
Corpo JSON della richiesta:
{ "inputConfig": { "bigquerySource": { "inputUri": "bq://project-id.dataset-id.table-id" }, }, "outputConfig": { "bigqueryDestination": { "outputUri": "bq://project-id" }, }, "params": {"feature_importance": "true"} }
Per inviare la richiesta, scegli una delle seguenti opzioni:
arricciatura
Salva il corpo della richiesta in un file denominato request.json
ed esegui questo comando:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "x-goog-user-project: project-id" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://endpoint/v1beta1/projects/project-id/locations/location/models/model-id:batchPredict"
PowerShell
Salva il corpo della richiesta in un file denominato request.json
ed esegui questo comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "project-id" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://endpoint/v1beta1/projects/project-id/locations/location/models/model-id:batchPredict" | Select-Object -Expand Content
L'importanza delle caratteristiche viene restituita aggiungendo una nuova colonna per ogni elemento,
denominata feature_importance.<feature_name>
.
Considerazioni sull'utilizzo dell'importanza delle caratteristiche locali:
I risultati sull'importanza delle caratteristiche locali sono disponibili solo per i modelli addestrati a partire dal 15 novembre 2019.
L'abilitazione dell'importanza delle caratteristiche locali in una richiesta di previsione batch con più di 1.000.000 di righe o 300 colonne non è supportata.
Ogni valore di importanza delle caratteristiche locali mostra solo l'impatto della caratteristica sulla previsione per la riga in questione. Per comprendere il comportamento complessivo del modello, utilizza l'importanza delle caratteristiche del modello.
I valori di importanza delle caratteristiche locali sono sempre relativi al valore di riferimento. Assicurati di fare riferimento al valore di riferimento quando valuti i risultati relativi all'importanza delle caratteristiche locali. Il valore di riferimento è disponibile solo nella console Google Cloud.
I valori di importanza delle caratteristiche locali dipendono interamente dal modello e dai dati utilizzati per addestrare il modello. Possono identificare solo i pattern trovati dal modello nei dati e non rilevare alcuna relazione fondamentale. Pertanto, la presenza di un'importanza elevata per una determinata caratteristica non dimostra una relazione tra quest'ultima e il target, ma indica semplicemente che il modello utilizza la caratteristica nelle sue previsioni.
Se una previsione include dati che non rientrano completamente nell'intervallo dei dati di addestramento, l'importanza delle caratteristiche locali potrebbe non fornire risultati significativi.
La generazione dell'importanza delle caratteristiche aumenta il tempo e le risorse di calcolo necessari per la previsione. La richiesta utilizza una quota diversa da quella per le richieste di previsione senza importanza delle caratteristiche. Scopri di più.
I valori di importanza delle caratteristiche da soli non indicano se il tuo modello è equo, imparziale o di qualità audio. Valuta attentamente il set di dati, la procedura e le metriche di valutazione di addestramento, oltre all'importanza delle caratteristiche.