

 Amazon Redshift dejará de admitir la creación de nuevas UDF de Python a partir del parche 198. Las UDF de Python existentes seguirán funcionando hasta el 30 de junio de 2026. Para obtener más información, consulte la [publicación del blog](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

# Funciones de machine learning.
<a name="ml-function"></a>

A través del uso de machine learning (ML) de Amazon Redshift ML, puede formar modelos de ML con instrucciones SQL e invocarlos en consultas SQL para generar predicciones. Con la explicabilidad del modelo de Amazon Redshift incorpora valores de importancia de características para ayudar a comprender cómo contribuye cada atributo de los datos de formación al resultado previsto.

A continuación, encontrará la descripción de las funciones de machine learning para SQL que son compatibles con Amazon Redshift.

**Topics**
+ [Función EXPLAIN\$1MODEL](r_explain_model_function.md)

# Función EXPLAIN\$1MODEL
<a name="r_explain_model_function"></a>

La función EXPLAIN\$1MODEL devuelve un tipo de datos SUPER que contiene un informe de explicabilidad del modelo en formato JSON. El informe de explicabilidad contiene información sobre el valor de Shapley para todas las características del modelo.

Actualmente, la función EXPLAIN\$1MODEL solo es compatible con los modelos XGBoost AUTO ON o AUTO OFF.

Cuando el informe de explicabilidad no está disponible, la función devuelve estados que muestran el progreso del modelo. Entre ellos se encuentran `Waiting for training job to complete`, `Waiting for processing job to complete` y `Processing job failed`. 

Cuando se ejecuta la instrucción CREATE MODEL, el estado de la explicación pasa a ser `Waiting for training job to complete`. Cuando se ha formado el modelo y se envía una solicitud de explicación, el estado de esta pasa a ser `Waiting for processing job to complete`. Cuando la explicación del modelo se completa correctamente, queda a disposición el informe de explicabilidad completo. De lo contrario, el estado pasa a ser `Processing job failed`.

Cuando ejecute la instrucción CREATE MODEL, puede utilizar el parámetro `MAX_RUNTIME` opcional para especificar la cantidad máxima de tiempo que debe durar el entrenamiento. Una vez que la creación del modelo alcanza esa duración, Amazon Redshift deja de crear el modelo. Si alcanza ese límite de tiempo mientras crea un modelo de piloto automático, Amazon Redshift le devolverá el mejor modelo hasta el momento. La explicabilidad del modelo está disponible una vez que finaliza el entrenamiento del modelo, por lo que si `MAX_RUNTIME` se establece a una duración baja, es posible que el informe de explicabilidad no esté disponible. El tiempo de entrenamiento varía y depende de la complejidad del modelo, el tamaño de los datos y otros factores.

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

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

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

 *schema\$1name*   
El nombre del esquema. Si no se especifica schema\$1name, se selecciona el esquema actual.

 *model\$1name*   
El nombre del modelo. El nombre del modelo en un esquema debe ser único.

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

La función EXPLAIN\$1MODEL devuelve un tipo de datos SUPER, tal y como se muestra a continuación.

```
{"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}}}}
```

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

El siguiente ejemplo devuelve el estado de la explicación `waiting for training job to complete`.

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

Cuando la explicación del modelo se completa correctamente, queda a disposición el informe de explicabilidad completo de la siguiente manera.

```
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)
```

Dado que la función EXPLAIN\$1MODEL devuelve el tipo de datos SUPER, es posible consultar el informe de explicabilidad. De este modo, se pueden extraer valores de Shapley de `global_shap_values`, `expected_value` o de características específicas.

En el siguiente ejemplo, se extrae `global_shap_values` para el modelo.

```
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)
```

En el siguiente ejemplo, se extrae `global_shap_values` para la característica 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)
```

Si el modelo se crea en un esquema específico y se tiene acceso al modelo creado, entonces es posible realizar una consulta sobre la explicación del modelo, tal y como se muestra a continuación.

```
-- 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)
```