

 Amazon Redshift non supporterà più la creazione di nuovi Python UDFs a partire dalla Patch 198. Python esistente UDFs continuerà a funzionare fino al 30 giugno 2026. Per ulteriori informazioni, consulta il [post del blog](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

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

# Funzioni di machine learning
<a name="ml-function"></a>

Grazie ad Amazon Redshift machine learning (ML), è possibile addestrare modelli di ML utilizzando istruzioni SQL e richiamarli nelle query SQL per la previsione. La spiegabilità del modello Amazon Redshift include valori di importanza per le funzionalità per aiutarti a capire in che modo ogni attributo nei tuoi dati di formazione contribuisce al risultato previsto.

Di seguito vengono fornite le descrizioni delle funzioni machine learning per SQL supportate da Amazon Redshift.

**Topics**
+ [funzione EXPLAIN\$1MODEL](r_explain_model_function.md)

# funzione EXPLAIN\$1MODEL
<a name="r_explain_model_function"></a>

La funzione EXPLAIN\$1MODEL restituisce un tipo di dati SUPER che contiene un report di spiegabilità del modello in formato JSON. Il report di spiegabilità contiene informazioni sul valore Shapley per tutte le caratteristiche del modello.

La funzione EXPLAIN\$1MODEL attualmente supporta solo i modelli AUTO ON o AUTO OFF. XGBoost

Quando il report di spiegabilità non è disponibile, la funzione restituisce gli stati visualizzati sullo stato di avanzamento del modello. Tra queste vi sono `Waiting for training job to complete`, `Waiting for processing job to complete` e `Processing job failed`. 

Quando si esegue l'istruzione CREATE MODEL, lo stato di spiegazione diventa `Waiting for training job to complete`. Quando il modello è stato addestrato e viene inviata una richiesta di spiegazione, lo stato di spiegazione diventa `Waiting for processing job to complete`. Quando la spiegazione del modello viene completata correttamente, è disponibile il report completo di spiegabilità. In caso contrario, lo stato diventa `Processing job failed`.

Quando si esegue l'istruzione CREATE MODEL, è possibile utilizzare il parametro opzionale `MAX_RUNTIME` per specificare la quantità massima di tempo che l'addestramento deve richiedere. Quando la creazione del modello raggiunge tale periodo di tempo, Amazon Redshift interrompe la creazione del modello. Se raggiungi tale limite di tempo durante la creazione di un modello di autopilota, Amazon Redshift restituirà il modello migliore finora. La spiegabilità del modello diventa disponibile una volta terminato l'addestramento sul modello, quindi se `MAX_RUNTIME` è impostato su un periodo di tempo basso, il rapporto di spiegabilità potrebbe non essere disponibile. Il tempo di addestramento varia e dipende dalla complessità del modello, dalla dimensione dei dati e da altri fattori.

## Sintassi
<a name="r_explain_model_function-synopsis"></a>

```
EXPLAIN_MODEL ('schema_name.model_name')
```

## Argomento
<a name="r_explain_model_function-argument"></a>

 *schema\$1name*   
Il nome dello schema. Se non viene specificato alcun nome\$1schema, viene selezionato lo schema corrente.

 *model\$1name*   
Il nome del modello. Il nome del modello in uno schema deve essere unico.

## Tipo restituito
<a name="r_explain_model_function-return-type"></a>

La funzione EXPLAIN\$1MODEL restituisce un tipo di dati SUPER, come illustrato di seguito.

```
{"version":"1.0","explanations":{"kernel_shap":{"label0":{"global_shap_values":{"x0":0.05,"x1":0.10,"x2":0.30,"x3":0.15},"expected_value":0.50}}}}
```

## Esempi
<a name="r_explain_model_function-examples"></a>

L'esempio seguente restituisce lo stato di spiegazione `waiting for training job to complete`.

```
select explain_model('customer_churn_auto_model');
                 explain_model
--------------------------------------------------------
{"explanations":"waiting for training job to complete"}
(1 row)
```

Quando la spiegazione del modello viene completata correttamente, il report completo di spiegabilità è disponibile come segue.

```
select explain_model('customer_churn_auto_model');
                                       explain_model
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
{"version":"1.0","explanations":{"kernel_shap":{"label0":{"global_shap_values":{"x0":0.05386043365892927,"x1":0.10801289723274592,"x2":0.23227865827017378,"x3":0.0676685133940455,"x4":0.0897097667672375,"x5":0.08502141653270926,"x6":0.07581993936077065,"x7":0.16462880604578135},"expected_value":0.8492974042892456}}}}
(1 row)
```

Poiché la funzione EXPLAIN\$1MODEL restituisce il tipo di dati SUPER, è possibile eseguire una query sul rapporto di spiegabilità. Facendo questo, è possibile estrarre `global_shap_values`, `expected_value` o valori Shapley specifici della funzione.

Il seguente esempio estrae `global_shap_values` per il modello.

```
select json_table.report.explanations.kernel_shap.label0.global_shap_values from (select explain_model('customer_churn_auto_model') as report) as json_table;
                                                       global_shap_values
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
{"state":0.10983770427197151,"account_length":0.1772441398408543,"area_code":0.08626823968639591,"phone":0.0736669595282712,"intl_plan":3.344907436910987,"vmail_plan":0.09646600597854467,"vmail_message":0.2064922655089351,"day_mins":2.015038015251777,"day_calls":0.13179511076780168,"day_charge":0.4941091720480879,"eve_mins":0.46081379198626105,"eve_calls":0.16913440417758477,"eve_charge":0.09651014369401761,"night_mins":0.44218153640050845,"night_calls":0.15311640089218997,"night_charge":0.13850366104495426,"intl_mins":0.7583662464883899,"intl_calls":0.47144468610485685,"intl_charge":0.10945894673611875,"cust_serv_calls":0.31822051038387733}
(1 row)
```

Il seguente esempio estrae `global_shap_values` per la funzione x0.

```
select json_table.report.explanations.kernel_shap.label0.global_shap_values.x0 from (select explain_model('customer_churn_auto_model') as report) as json_table;
          x0
------------------------
  0.05386043365892927
(1 row)
```

Se il modello viene creato in uno schema specifico e si ha accesso al modello creato, è possibile eseguire una query sulla spiegazione del modello come illustrato di seguito.

```
-- Check the current schema
SHOW search_path;
   search_path
------------------
  $user, public
(1 row)         
-- If you have the privilege to access the model explanation
-- in `test_schema`
SELECT explain_model('test_schema.test_model_name');
                       explain_model
---------------------------------------------------------
{"explanations":"waiting for training job to complete"}
(1 row)
```