

Ya no actualizamos el servicio Amazon Machine Learning ni aceptamos nuevos usuarios para él. Esta documentación está disponible para los usuarios actuales, pero ya no la actualizamos. Para obtener más información, consulte [Qué es Amazon Machine Learning](https://docs.aws.amazon.com/machine-learning/latest/dg/what-is-amazon-machine-learning.html).

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Creación de un esquema de datos para Amazon ML
<a name="creating-a-data-schema-for-amazon-ml"></a>

 Un *esquema* se compone de todos los atributos de los datos de entrada y sus tipos de datos correspondientes. Permite que Amazon ML entienda los datos de la fuente de datos. Amazon ML utiliza la información del esquema para leer e interpretar los datos de entrada, calcular estadísticas, aplicar las transformaciones de atributo correctas y ajustar los algoritmos de aprendizaje. Si no proporciona ningún esquema, Amazon ML infiere uno a partir de los datos. 

## Esquema de ejemplo
<a name="schema-example"></a>

Para que Amazon ML lea los datos de entrada correctamente y genere predicciones precisas, cada atributo debe estar asignado al tipo de datos correcto. Veamos un ejemplo para ver cómo se asignan los tipos de datos a atributos y cómo los atributos y los tipos de datos se incluyen en un esquema. Denominaremos a nuestro ejemplo "Customer Campaign" porque queremos predecir qué clientes responderán a nuestra campaña de correo electrónico. Nuestro archivo de entrada es un archivo.csv con nueve columnas:

```
1,3,web developer,basic.4y,no,no,1,261,0

2,1,car repair,high.school,no,no,22,149,0

3,1,car mechanic,high.school,yes,no,65,226,1

4,2,software developer,basic.6y,no,no,1,151,0
```

Este es el esquema de estos datos:

```
{
    "version": "1.0",
    "rowId": "customerId",
    "targetAttributeName": "willRespondToCampaign",
    "dataFormat": "CSV",
    "dataFileContainsHeader": false,
    "attributes": [
        {
            "attributeName": "customerId",
            "attributeType": "CATEGORICAL"
        },
        {
            "attributeName": "jobId",
            "attributeType": "CATEGORICAL"
        },
        {
            "attributeName": "jobDescription",
            "attributeType": "TEXT"
        },
        {
            "attributeName": "education",
            "attributeType": "CATEGORICAL"
        },
        {
            "attributeName": "housing",
            "attributeType": "CATEGORICAL"

        },
        {
            "attributeName": "loan",
            "attributeType": "CATEGORICAL"

        },
        {
            "attributeName": "campaign",
            "attributeType": "NUMERIC"
        },
        {
            "attributeName": "duration",
            "attributeType": "NUMERIC"
        },

        {
            "attributeName": "willRespondToCampaign",
            "attributeType": "BINARY"
        }
        
    ]
}
```

En el archivo de esquema de este ejemplo, el valor del `rowId` es `customerId`:

```
"rowId": "customerId",
```

El atributo `willRespondToCampaign` se define como el atributo de destino: 

```
"targetAttributeName": "willRespondToCampaign ",
```

 El atributo `customerId` y el tipo de datos `CATEGORICAL` están asociados a la primera columna, el atributo `jobId` y el tipo de datos `CATEGORICAL` están asociados a la segunda columna, el atributo `jobDescription` y el tipo de datos `TEXT` están asociados a la tercera columna, el atributo `education` y el tipo de datos `CATEGORICAL` están asociados a la cuarta columna y así sucesivamente. La novena columna está asociada al atributo `willRespondToCampaign` con un tipo de datos `BINARY`, y este atributo también está definido como atributo de destino. 

## Uso del targetAttributeName campo
<a name="using-the-targetattributename-field"></a>

El valor `targetAttributeName` es el nombre del atributo que desea predecir. Debe asignar un valor `targetAttributeName` al crear o evaluar un modelo.

Durante la formación o evaluación de un modelo de ML, el `targetAttributeName` identifica el nombre del atributo de los datos de entrada que contiene las respuestas "correctas" para el atributo de destino. Amazon ML utiliza el destino, el cual incluye las respuestas correctas, para detectar patrones y generar un modelo de ML.

Cuando evalúa el modelo, Amazon ML utiliza el destino para comprobar la exactitud de las predicciones. Una vez que haya creado y evaluado el modelo de ML, puede utilizar los datos con un `targetAttributeName` que no esté asignado para generar predicciones con el modelo de ML.

Puede definir el atributo de destino en la consola Amazon ML al crear una fuente de datos o en un archivo de esquema. Si crea su propio archivo de esquemas, utilice la siguiente sintaxis para definir el atributo de destino: 

```
"targetAttributeName": "exampleAttributeTarget",
```

 En este ejemplo, `exampleAttributeTarget` es el nombre del atributo del archivo de origen que es el atributo de destino.

## Funcionamiento del campo rowID
<a name="using-the-rowid-field"></a>

 El `row ID` es un marcador opcional asociado a un atributo de los datos de entrada. Si se especifica, el atributo marcado como `row ID` se incluye en la predicción de salida. Este atributo facilita determinar qué predicción se corresponde con cada observación. Un ejemplo de un buen `row ID` es un ID de cliente o un atributo exclusivo similar. 

**nota**  
El ID de fila solo es para fines de referencia. Amazon ML no la utiliza al entrenar un modelo de ML. Seleccionar un atributo como ID de fila lo excluye de que se utilice para el entrenamiento de un modelo de ML.

Puede definir el `row ID` en la consola Amazon ML al crear una fuente de datos o en un archivo de esquema. Si crea su propio archivo de esquema, utilice la siguiente sintaxis para definir el `row ID`: 

```
"rowId": "exampleRow",
```

 En el anterior ejemplo, `exampleRow` es el nombre del atributo del archivo de origen que se define como el ID de fila. 

Al generar predicciones por lotes, es posible que aparezca el siguiente resultado: 

```
tag,bestAnswer,score
55,0,0.46317
102,1,0.89625
```

 En este ejemplo, `RowID` representa al atributo `customerId`. Por ejemplo, un customerId de `55` significa que responde a nuestra campaña de correo electrónico con una confianza baja (0,46317), mientras un `customerId` de `102` significa que responde a nuestras campañas de correo electrónico con una confianza alta (0,89625).

## Uso del AttributeType campo
<a name="assigning-data-types"></a>

En Amazon ML existen cuatro tipos de datos de atributos:

**Binario**  
Seleccione `BINARY` para un atributo que solo tiene dos estados posibles, como por ejemplo `yes` o `no`.  
Por ejemplo, el atributo `isNew`, para controlar si una persona es un nuevo cliente, tendría que tener un valor `true` para indicar que la persona es un nuevo cliente, y un valor `false` para indicar que no es un nuevo cliente.  
Los valores negativos válidos son `0`, `n`, `no`, `f` y `false`.  
Los valores positivos válidos son `1`, `y`, `yes`, `t` y `true`.  
Amazon ML ignora el caso de entradas binarias y elimina el espacio blanco de alrededor. Por ejemplo, `" FaLSe "` es un valor binario válido. Puede combinar los valores binarios que utiliza en la misma fuente de datos, como `true`, `no`y `1`. Amazon ML solo genera `0` y `1` para atributos binarios.

**Categórico**  
Seleccione `CATEGORICAL` para un atributo que admite un número limitado de valores de cadena únicos. Por ejemplo, un ID de usuario, el mes y un código postal son valores categóricos. Los atributos categóricos se tratan como una cadena única y no se tokenizan más.  


**Numérico**  
Seleccione `NUMERIC` para un atributo que admite una cantidad como un valor.   
Por ejemplo, la temperatura, el peso y la el número de clics son valores numéricos.  
No todos los atributos que contienen números son numéricos. Los atributos categóricos, como los días del mes y IDs, suelen representarse como números. Para que se consideren numéricos, un número debe ser comparable a otro número. Por ejemplo, el ID de cliente `664727` no le indica nada sobre el ID de cliente `124552`, pero un peso de `10` le indica que ese atributo es más pesado que un atributo con un peso de `5`. Los días del mes no son numéricos, porque el primero de un mes podría ocurrir antes o después del segundo de otro mes.  
Al utilizar Amazon ML para crear su esquema, se asignará el tipo de datos `Numeric` para todos los atributos que utilizan los números. Si Amazon ML crea su esquema, compruebe la existencia de asignaciones incorrectas y definir los atributos `CATEGORICAL`. 

**Text**  
Elija `TEXT` para un atributo que es una cadena de palabras. Al leer en los atributos de texto, Amazon ML convierte en tokens, delimitado por los espacios en blanco.   
Por ejemplo, `email subject` vuelve a estar en buen estado `email` y `subject`y `email-subject here` se convierte en `email-subject` y `here`. 

Si el tipo de datos de una variable en el esquema de formación no coincide con el tipo de datos de esa variable en el esquema de evaluación, Amazon ML cambia el tipo de datos de evaluación para que coincida con el tipo de datos de formación. Por ejemplo, si el esquema de datos de formación asigna un tipo de datos de `TEXT` a la variable `age`, pero el esquema de evaluación asigna un tipo de datos de `NUMERIC` a `age`, Amazon ML considera que la envejecen en la evaluación de los datos como variables `TEXT` en vez de `NUMERIC`.

Para obtener información sobre las estadísticas asociadas a cada tipo de datos, consulte [Estadísticas descriptivas](data-insights.md#descriptive-statistics).

## Proporcionar un esquema a Amazon ML
<a name="methods-for-creating-a-data-schema"></a>

Cada fuente de datos necesita un esquema. Puede elegir entre dos formas para proporcionar un esquema a Amazon ML: 
+  Permitir que Amazon ML infiera los tipos de datos de cada atributo en el archivo de datos de entrada y que cree un esquema automáticamente.
+  Proporcione un archivo de esquema cuando cargue sus datos de Amazon Simple Storage Service (Amazon S3).

### Permitir que Amazon ML cree un esquema
<a name="allowing-amazon-create-your-schema"></a>

Al utilizar la consola de Amazon ML para crear un origen de datos, Amazon ML utiliza reglas sencillas basadas en los valores de las variables para crear un esquema. Le recomendamos que revise el esquema creado por Amazon ML y que corrija los tipos de datos que no sean precisos. 

### Proporcionar un esquema
<a name="providing-schema-to-amazon-ml"></a>

 Después de crear su archivo de esquema, debe volver a Amazon ML. Tiene dos opciones: 

1.  Proporcione el esquema utilizando la consola de Amazon ML.

    Utilice la consola para crear la fuente de datos e incluya el archivo de esquema añadiendo la extensión .schema al nombre del archivo de los datos de entrada. Por ejemplo, si el URI de Amazon Simple Storage Service (Amazon S3) de los datos de entrada es s3:my-bucket-name///data/input.csv, the URI to your schema will be s3://my-bucket-name/data/input.csv.schema. Amazon ML localiza automáticamente el archivo de esquema que proporcione en lugar de intentar inferir el esquema de los datos. 

    Para utilizar un directorio de archivos como datos de entrada a Amazon ML, añada la extensión .schema, a la ruta del directorio. Por ejemplo, si sus archivos de datos residen en la ubicación s3:///.schema. examplebucket/path/to/data/, the URI to your schema will be s3://examplebucket/path/to/data 

1.  Proporcione el esquema utilizando la API de Amazon ML.

    Si pretende llamar a la API de Amazon ML para crear un origen de datos, puede cargar el archivo de esquema a Amazon S3 y, a continuación, proporcionar la URI a dicho archivo del atributo `DataSchemaLocationS3` de la API `CreateDataSourceFromS3`. [Para obtener más información, consulte S3. CreateDataSourceFrom](https://docs.aws.amazon.com/machine-learning/latest/APIReference/API_CreateDataSourceFromS3.html) 

    Puede proporcionar el esquema directamente en la carga de `CreateDataSource`\* `APIs` en lugar de guardarlo primero en Amazon S3. Para ello, coloque la cadena de esquema completa en el `DataSchema` atributo `CreateDataSourceFromS3``CreateDataSourceFromRDS`, o `CreateDataSourceFromRedshift` APIs. Para obtener más información, consulte [Referencia de la API de Amazon Machine Learning](https://docs.aws.amazon.com/machine-learning/latest/APIReference/). 