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.
Creación de un esquema de datos para Amazon ML
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
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.
Funcionamiento del campo targetAttributeName
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
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).
Funcionamiento del campo AttributeType
En Amazon ML existen cuatro tipos de datos de atributos:
- Binario
-
Seleccione
BINARY
para un atributo que solo tiene dos estados posibles, como por ejemployes
ono
.Por ejemplo, el atributo
isNew
, para controlar si una persona es un nuevo cliente, tendría que tener un valortrue
para indicar que la persona es un nuevo cliente, y un valorfalse
para indicar que no es un nuevo cliente.Los valores negativos válidos son
0
,n
,no
,f
yfalse
.Los valores positivos válidos son
1
,y
,yes
,t
ytrue
.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, comotrue
,no
y1
. Amazon ML solo genera0
y1
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 de días del mes e IDs, a menudo se representan 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 cliente124552
, pero un peso de10
le indica que ese atributo es más pesado que un atributo con un peso de5
. 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.nota
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 atributosCATEGORICAL
. - 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 estadoemail
ysubject
yemail-subject here
se convierte enemail-subject
yhere
.
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.
Proporcionar un esquema a Amazon ML
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
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
Después de crear su archivo de esquema, debe volver a Amazon ML. Dispone de dos opciones para hacerlo:
-
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) para sus datos de entrada es s3://my-bucket-name/data/input.csv, la URI del esquema será 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 los archivos de datos se encuentran en la ubicación s3://examplebucket/path/to/data/, la URI al esquema será s3://examplebucket/path/to/data/.schema.
-
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 APICreateDataSourceFromS3
. Para obtener más información, consulte CreateDataSourceFromS3.Puede proporcionar el esquema directamente en la carga de
CreateDataSource
*APIs
en lugar de guardarlo primero en Amazon S3. Para ello, coloque toda la cadena del esquema en el atributoDataSchema
de las APICreateDataSourceFromS3
,CreateDataSourceFromRDS
oCreateDataSourceFromRedshift
. Para obtener más información, consulte Referencia de la API de Amazon Machine Learning.