Creación de trabajos de regresión o clasificación para datos tabulares mediante la API de AutoML - Amazon SageMaker AI

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 trabajos de regresión o clasificación para datos tabulares mediante la API de AutoML

Puede crear un trabajo de regresión o clasificación de Piloto automático para datos tabulares mediante programación llamando a la acción de API CreateAutoMLJobV2 en cualquier idioma compatible con Piloto automático o la AWS CLI. Lo que sigue es una colección de parámetros de solicitud de entrada obligatorios y opcionales para la acción de API CreateAutoMLJobV2. Puede encontrar la información alternativa de la versión anterior de esta acción, CreateAutoMLJob. No obstante, recomendamos usar CreateAutoMLJobV2.

Para obtener información sobre cómo se traduce esta acción de API en una función en el lenguaje que usted prefiera, consulte la sección Véase también de CreateAutoMLJobV2 y seleccione un SDK. Como ejemplo, para los usuarios de Python, consulte la sintaxis de solicitud completa de create_auto_ml_job_v2 en AWS SDK for Python (Boto3).

nota

CreateAutoMLJobV2 y DescribeAutoMLJobV2 son versiones nuevas CreateAutoMLJoby DescribeAutoMLJobofrecen compatibilidad con versiones anteriores.

Recomendamos utilizar CreateAutoMLJobV2. CreateAutoMLJobV2 puede gestionar tipos de problemas tabulares idénticos a los de su versión anterior (CreateAutoMLJob), así como tipos de problemas no tabulares, como la clasificación de imágenes o textos o la previsión de series temporales.

Como mínimo, todos los experimentos con datos tabulares requieren la especificación del nombre del experimento, la ubicación de los datos de entrada y salida y la especificación de los datos de destino que se van a predecir. Si lo prefiere, también puede especificar el tipo de problema que desea resolver (regresión, clasificación, clasificación multiclase), elegir su estrategia de modelado (conjuntos apilados u optimización de hiperparámetros), seleccionar la lista de algoritmos utilizados por el trabajo de Piloto automático para entrenar los datos, etc.

Tras la ejecución del experimento, puede comparar las pruebas y ahondar en los detalles de los pasos de preprocesamiento, los algoritmos y los rangos de hiperparámetros de cada modelo. También tiene la opción de descargar sus informes de explicabilidad y rendimiento. Utilice los cuadernos proporcionados para ver los resultados de la exploración automática de datos o las definiciones de los modelos candidatos.

Para obtener instrucciones sobre cómo migrar un CreateAutoMLJob a CreateAutoMLJobV2, vaya a Migre a V2 CreateAuto MLJob CreateAuto MLJob.

Parámetros necesarios

CreateAutoMLJobV2

Al llamar a CreateAutoMLJobV2 para crear un experimento de Piloto automático para datos tabulares, debe proporcionar los siguientes valores:

  • Un AutoMLJobName para especificar el nombre del trabajo.

  • Al menos un AutoMLJobChannel en AutoMLJobInputDataConfig para especificar el origen de datos.

  • Una métrica AutoMLJobObjective y el tipo de problema de aprendizaje supervisado que haya elegido (clasificación binaria, clasificación multiclase, regresión) en AutoMLProblemTypeConfig o ninguno. En el caso de los datos tabulares, debe elegir TabularJobConfig como el tipo de AutoMLProblemTypeConfig. Defina el problema de aprendizaje supervisado en el atributo ProblemType de TabularJobConfig.

  • Una OutputDataConfig para especificar la ruta de salida de Amazon S3 a fin de almacenar los artefactos de su trabajo de AutoML.

  • Un RoleArn para especificar el ARN del rol utilizado para acceder a sus datos.

CreateAutoMLJob

Al llamar a CreateAutoMLJob para crear un experimento de AutoML, debe proporcionar los siguientes valores:

  • Un AutoMLJobName para especificar el nombre del trabajo.

  • Al menos un AutoMLChannel en InputDataConfig para especificar el origen de datos.

  • Una OutputDataConfig para especificar la ruta de salida de Amazon S3 a fin de almacenar los artefactos de su trabajo de AutoML.

  • Un RoleArn para especificar el ARN del rol utilizado para acceder a sus datos.

Todos los demás parámetros son opcionales.

Parámetros opcionales

En las siguientes secciones, se proporcionan detalles sobre algunos parámetros opcionales que puede transferir a su acción de API CreateAutoMLJobV2 cuando utilice datos tabulares. Puede encontrar la información alternativa de la versión anterior de esta acción, CreateAutoMLJob. No obstante, recomendamos usar CreateAutoMLJobV2.

En el caso de los datos tabulares, el conjunto de algoritmos que se ejecutan en sus datos para entrenar a los candidatos a modelo depende de su estrategia de modelado (ENSEMBLING o HYPERPARAMETER_TUNING). A continuación, se detalla cómo configurar este modo de entrenamiento.

Si lo deja en blanco (o null), el Mode se inferirá en función del tamaño del conjunto de datos.

Para obtener información sobre los métodos de entrenamiento para la optimización de hiperparámetros y los conjuntos apilados de Piloto automático, consulte Modos de entrenamiento y compatibilidad con algoritmos.

CreateAutoMLJobV2

En el caso de los datos tabulares, debe elegir TabularJobConfig como el tipo de AutoMLProblemTypeConfig.

Puede configurar el método de entrenamiento de un trabajo de AutoML V2 con el parámetro TabularJobConfig.Mode.

CreateAutoMLJob

Puede configurar el método de entrenamiento de un trabajo de AutoML con el parámetro AutoMLJobConfig.Mode.

Selección de características

Piloto automático proporciona pasos automáticos de preprocesamiento de datos, como la selección y extracción de características. Sin embargo, puede proporcionar manualmente las características que se utilizarán en el entrenamiento con el atributo FeatureSpecificatioS3Uri.

Las características seleccionadas deben estar incluidas en un archivo JSON con el siguiente formato:

{ "FeatureAttributeNames":["col1", "col2", ...] }

Los valores enumerados en ["col1", "col2", ...] distinguen entre mayúsculas y minúsculas. Deben ser una lista de cadenas que contengan valores únicos que sean subconjuntos de los nombres de columna de los datos de entrada.

nota

La lista de columnas proporcionada como características no puede incluir la columna de destino.

CreateAutoMLJobV2

En el caso de los datos tabulares, debe elegir TabularJobConfig como el tipo de AutoMLProblemTypeConfig.

Puede establecer la URL de las características seleccionadas con el parámetro TabularJobConfig.FeatureSpecificatioS3Uri.

CreateAutoMLJob

Puedes configurar el FeatureSpecificatioS3Uri atributo Auto MLCandidate GenerationConfig en la CreateAutoMLJobAPI con el siguiente formato:

{ "AutoMLJobConfig": { "CandidateGenerationConfig": { "FeatureSpecificationS3Uri":"string" }, } }

Selección de algoritmos

De forma predeterminada, el trabajo de Piloto automático ejecuta una lista predefinida de algoritmos en su conjunto de datos para entrenar a los candidatos a modelos. La lista de algoritmos depende del modo de entrenamiento (ENSEMBLING o HYPERPARAMETER_TUNING) utilizado por el trabajo.

Puede proporcionar un subconjunto de la selección de algoritmos predeterminada.

CreateAutoMLJobV2

En el caso de los datos tabulares, debe elegir TabularJobConfig como el tipo de AutoMLProblemTypeConfig.

Puede especificar una matriz de seleccionados AutoMLAlgorithms en el AlgorithmsConfig atributo de CandidateGenerationConfig.

Lo que sigue es un ejemplo de atributo AlgorithmsConfig que enumera exactamente tres algoritmos (“xgboost”, “fastai” y “catboost”) en su campo AutoMLAlgorithms para el modo de entrenamiento de ensamblaje.

{ "AutoMLProblemTypeConfig": { "TabularJobConfig": { "Mode": "ENSEMBLING", "CandidateGenerationConfig": { "AlgorithmsConfig":[ {"AutoMLAlgorithms":["xgboost", "fastai", "catboost"]} ] }, }, }, }
CreateAutoMLJob

Puede especificar una matriz de seleccionados AutoMLAlgorithms en el AlgorithmsConfig atributo de Auto MLCandidate GenerationConfig.

Lo que sigue es un ejemplo de atributo AlgorithmsConfig que enumera exactamente tres algoritmos (“xgboost”, “fastai” y “catboost”) en su campo AutoMLAlgorithms para el modo de entrenamiento de ensamblaje.

{ "AutoMLJobConfig": { "CandidateGenerationConfig": { "AlgorithmsConfig":[ {"AutoMLAlgorithms":["xgboost", "fastai", "catboost"]} ] }, "Mode": "ENSEMBLING" }

Para ver la lista de algoritmos disponibles por Mode de entrenamiento, consulte AutoMLAlgorithms. Para obtener información sobre cada algoritmo, consulte Modos de entrenamiento y compatibilidad con algoritmos.

Puede proporcionar su propio conjunto de datos de validación y una tasa de división de datos personalizada, o puede dejar que Piloto automático divida el conjunto de datos automáticamente.

CreateAutoMLJobV2

Cada AutoMLJobChannelobjeto (consulte el parámetro obligatorio Auto MLJob InputDataConfig) tiene unaChannelType, que se puede establecer en training validation valores que especifican cómo se utilizarán los datos al crear un modelo de aprendizaje automático. Debe proporcionar al menos un origen de datos y un máximo de dos: uno para los datos de entrenamiento y otro para los datos de validación.

La forma de dividir los datos en conjuntos de datos de entrenamiento y validación depende de si tiene uno o dos orígenes de datos.

  • Si solo tiene un origen de datos, el ChannelType se establece en training de forma predeterminada y debe tener este valor.

    • Si el valor ValidationFraction en AutoMLDataSplitConfig no está establecido, el 20 % (0,2) de los datos de este origen se utiliza para la validación de forma predeterminada.

    • Si la ValidationFraction se establece en un valor entre 0 y 1, el conjunto de datos se divide en función del valor especificado, donde el valor especifica la fracción del conjunto de datos utilizada para la validación.

  • Si tiene dos orígenes de datos, el ChannelType de uno de los objetos de AutoMLJobChannel debe establecerse en training, el valor predeterminado. El ChannelType del otro origen de datos debe estar establecido en validation. Los dos orígenes de datos deben tener el mismo formato, CSV o Parquet, y el mismo esquema. En este caso, no debe establecer el valor de ValidationFraction, ya que todos los datos de cada origen se utilizan para el entrenamiento o la validación. Si se configura este valor, se producirá un error.

CreateAutoMLJob

Cada AutoMLChannelobjeto (consulte el parámetro necesario InputDataConfig) tiene unChannelType, que se puede configurar en validation valores que especifican cómo se van a utilizar los datos al crear un modelo de aprendizaje automático. training Debe proporcionar al menos un origen de datos y un máximo de dos: uno para los datos de entrenamiento y otro para los datos de validación.

La forma de dividir los datos en conjuntos de datos de entrenamiento y validación depende de si tiene uno o dos orígenes de datos.

  • Si solo tiene un origen de datos, el ChannelType se establece en training de forma predeterminada y debe tener este valor.

    • Si el valor ValidationFraction en AutoMLDataSplitConfig no está establecido, el 20 % (0,2) de los datos de este origen se utiliza para la validación de forma predeterminada.

    • Si la ValidationFraction se establece en un valor entre 0 y 1, el conjunto de datos se divide en función del valor especificado, donde el valor especifica la fracción del conjunto de datos utilizada para la validación.

  • Si tiene dos orígenes de datos, el ChannelType de uno de los objetos de AutoMLChannel debe establecerse en training, el valor predeterminado. El ChannelType del otro origen de datos debe estar establecido en validation. Los dos orígenes de datos deben tener el mismo formato, CSV o Parquet, y el mismo esquema. En este caso, no debe establecer el valor de ValidationFraction, ya que todos los datos de cada origen se utilizan para el entrenamiento o la validación. Si se configura este valor, se producirá un error.

Para obtener información sobre la validación dividida y cruzada en Piloto automático, consulte Validación cruzada en Piloto automático.

CreateAutoMLJobV2

En el caso de los datos tabulares, debe elegir TabularJobConfig como el tipo de AutoMLProblemTypeConfig.

Puede especificar con más detalle el tipo de problema de aprendizaje supervisado (clasificación binaria, clasificación multiclase, regresión) disponible para los candidatos a modelo de su trabajo de AutoML V2 con el parámetro TabularJobConfig.ProblemType.

CreateAutoMLJob

Puede establecer el tipo de problema de un trabajo de AutoML con el parámetro CreateAutoPilot.ProblemType. Esto limita el tipo de preprocesamiento y algoritmos que Piloto automático intenta. Cuando finalice el trabajo, si había establecido el CreateAutoPilot.ProblemType, el ResolvedAttribute.ProblemType coincidirá con el ProblemType que ha establecido. Si lo deja en blanco (o null), el ProblemType se inferirá automáticamente.

nota

En algunos casos, Piloto automático no puede inferir el ProblemType con un nivel suficiente de confianza; en esos casos, debe proporcionar el valor para que el trabajo se complete correctamente.

Puede añadir una columna de ponderaciones de muestra a su conjunto de datos tabular y, a continuación, pasarla a su trabajo de AutoML para solicitar que las filas del conjunto de datos se ponderen durante el entrenamiento y la evaluación.

El soporte para ponderaciones de muestra solo está disponible en el modo de ensamblaje. Las ponderaciones deben ser numéricas y no negativas. Se excluyen los puntos de datos con un valor de ponderación no válido o nulo. Para obtener más información sobre las métricas disponibles, consulte Métricas ponderadas en Piloto automático.

CreateAutoMLJobV2

En el caso de los datos tabulares, debe elegir TabularJobConfig como el tipo de AutoMLProblemTypeConfig.

Para establecer los pesos de las muestras al crear un experimento (consulte la sección CreateAutoMLJobV2), puede introducir el nombre de la columna de pesos de las muestras en el SampleWeightAttributeName atributo del TabularJobConfig objeto. Esto garantiza que la métrica objetivo utilice las ponderaciones para el entrenamiento, la evaluación y la selección de los modelos candidatos.

CreateAutoMLJob

Para establecer los pesos de las muestras al crear un experimento (consulte CreateAutoMLJob), puede introducir el nombre de la columna de pesos de las muestras en el SampleWeightAttributeName atributo del MLChannel objeto Auto. Esto garantiza que la métrica objetivo utilice las ponderaciones para el entrenamiento, la evaluación y la selección de los modelos candidatos.

Puede configurar su trabajo de AutoML V2 para iniciar automáticamente un trabajo remoto en Amazon EMR sin servidor cuando se necesiten recursos de computación adicionales para procesar conjuntos de datos de gran tamaño. Al realizar una transición sin problemas a EMR sin servidor cuando es necesario, el trabajo de AutoML puede gestionar conjuntos de datos que, de otro modo, superarían los recursos aprovisionados inicialmente, sin ninguna intervención manual por su parte. EMR sin servidor está disponible para los tipos de problemas tabulares y de series temporales. Recomendamos configurar esta opción para conjuntos de datos tabulares de más de 5 GB.

Para permitir que el trabajo de AutoML V2 pase automáticamente a EMR sin servidor para conjuntos de datos grandes, debe proporcionar un objeto EmrServerlessComputeConfig, que incluya un campo ExecutionRoleARN, para el AutoMLComputeConfig de la solicitud de entrada del trabajo AutoML V2.

ExecutionRoleARN es el ARN del rol de IAM que otorga al trabajo de AutoML V2 los permisos necesarios para ejecutar los trabajos de EMR sin servidor.

Este rol debe tener la siguiente relación de confianza:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "emr-serverless.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

Y conceder los permisos para:

  • Crear, enumerar y actualizar aplicaciones de EMR sin servidor.

  • Iniciar, enumere, obtener o cancelar las ejecuciones de trabajos en una aplicación EMR sin servidor.

  • Etiquetar los recursos EMR sin servidor.

  • Pasar un rol de IAM al servicio de EMR sin servidor para su ejecución.

    Al conceder el permiso iam:PassRole, el trabajo de AutoML V2 puede asumir temporalmente el rol EMRServerlessRuntimeRole-* y pasarlo al servicio de EMR sin servidor. Estas son las funciones de IAM que utilizan los entornos de ejecución de trabajos sin servidor de EMR para acceder a AWS otros servicios y recursos necesarios durante el tiempo de ejecución, como Amazon S3 para el acceso a los datos, el registro CloudWatch , AWS Glue el acceso al catálogo de datos u otros servicios en función de sus requisitos de carga de trabajo.

    Consulte Roles en tiempo de ejecución de trabajo para Amazon EMR sin servidor para obtener más información sobre los permisos de este rol.

La política de IAM definida en el documento JSON proporcionado concede esos permisos:

{ "Version": "2012-10-17", "Statement": [{ + "Sid": "EMRServerlessCreateApplicationOperation", + "Effect": "Allow", + "Action": "emr-serverless:CreateApplication", + "Resource": "arn:aws:emr-serverless:*:*:/*", + "Condition": { + "StringEquals": { + "aws:RequestTag/sagemaker:is-canvas-resource": "True", + "aws:ResourceAccount": "${aws:PrincipalAccount}" + } + } + }, + { + "Sid": "EMRServerlessListApplicationOperation", + "Effect": "Allow", + "Action": "emr-serverless:ListApplications", + "Resource": "arn:aws:emr-serverless:*:*:/*", + "Condition": { + "StringEquals": { + "aws:ResourceAccount": "${aws:PrincipalAccount}" + } + } + }, + { + "Sid": "EMRServerlessApplicationOperations", + "Effect": "Allow", + "Action": [ + "emr-serverless:UpdateApplication", + "emr-serverless:GetApplication" + ], + "Resource": "arn:aws:emr-serverless:*:*:/applications/*", + "Condition": { + "StringEquals": { + "aws:ResourceTag/sagemaker:is-canvas-resource": "True", + "aws:ResourceAccount": "${aws:PrincipalAccount}" + } + } + }, + { + "Sid": "EMRServerlessStartJobRunOperation", + "Effect": "Allow", + "Action": "emr-serverless:StartJobRun", + "Resource": "arn:aws:emr-serverless:*:*:/applications/*", + "Condition": { + "StringEquals": { + "aws:RequestTag/sagemaker:is-canvas-resource": "True", + "aws:ResourceAccount": "${aws:PrincipalAccount}" + } + } + }, + { + "Sid": "EMRServerlessListJobRunOperation", + "Effect": "Allow", + "Action": "emr-serverless:ListJobRuns", + "Resource": "arn:aws:emr-serverless:*:*:/applications/*", + "Condition": { + "StringEquals": { + "aws:ResourceTag/sagemaker:is-canvas-resource": "True", + "aws:ResourceAccount": "${aws:PrincipalAccount}" + } + } + }, + { + "Sid": "EMRServerlessJobRunOperations", + "Effect": "Allow", + "Action": [ + "emr-serverless:GetJobRun", + "emr-serverless:CancelJobRun" + ], + "Resource": "arn:aws:emr-serverless:*:*:/applications/*/jobruns/*", + "Condition": { + "StringEquals": { + "aws:ResourceTag/sagemaker:is-canvas-resource": "True", + "aws:ResourceAccount": "${aws:PrincipalAccount}" + } + } + }, + { + "Sid": "EMRServerlessTagResourceOperation", + "Effect": "Allow", + "Action": "emr-serverless:TagResource", + "Resource": "arn:aws:emr-serverless:*:*:/*", + "Condition": { + "StringEquals": { + "aws:RequestTag/sagemaker:is-canvas-resource": "True", + "aws:ResourceAccount": "${aws:PrincipalAccount}" + } + } + }, + { + "Sid": "IAMPassOperationForEMRServerless", + "Effect": "Allow", + "Action": "iam:PassRole", + "Resource": "arn:aws:iam::*:role/EMRServerlessRuntimeRole-*", + "Condition": { + "StringEquals": { + "iam:PassedToService": "emr-serverless.amazonaws.com", + "aws:ResourceAccount": "${aws:PrincipalAccount}" + } + } } ] }

Migre a V2 CreateAuto MLJob CreateAuto MLJob

Recomendamos a los usuarios de CreateAutoMLJob que migren a CreateAutoMLJobV2.

En esta sección, se explican las diferencias entre los parámetros de entrada CreateAutoMLJoby la CreateAutoMLJobV2, destacando los cambios en la posición, el nombre o la estructura de los objetos y los atributos de la solicitud de entrada entre las dos versiones.

  • Atributos de solicitud que no han cambiado de una versión a otra.

    { "AutoMLJobName": "string", "AutoMLJobObjective": { "MetricName": "string" }, "ModelDeployConfig": { "AutoGenerateEndpointName": boolean, "EndpointName": "string" }, "OutputDataConfig": { "KmsKeyId": "string", "S3OutputPath": "string" }, "RoleArn": "string", "Tags": [ { "Key": "string", "Value": "string" } ] }
  • Atributos de solicitud que han cambiado de posición y estructura entre versiones.

    Los atributos DataSplitConfig, Security Config, CompletionCriteria, Mode, FeatureSpecificationS3Uri, SampleWeightAttributeName y TargetAttributeName han cambiado de posición.

    CreateAutoMLJob
    { "AutoMLJobConfig": { "Mode": "string", "CompletionCriteria": { "MaxAutoMLJobRuntimeInSeconds": number, "MaxCandidates": number, "MaxRuntimePerTrainingJobInSeconds": number }, "DataSplitConfig": { "ValidationFraction": number }, "SecurityConfig": { "EnableInterContainerTrafficEncryption": boolean, "VolumeKmsKeyId": "string", "VpcConfig": { "SecurityGroupIds": [ "string" ], "Subnets": [ "string" ] } }, "CandidateGenerationConfig": { "FeatureSpecificationS3Uri": "string" } }, "GenerateCandidateDefinitionsOnly": boolean, "ProblemType": "string" }
    CreateAutoMLJobV2
    { "AutoMLProblemTypeConfig": { "TabularJobConfig": { "Mode": "string", "ProblemType": "string", "GenerateCandidateDefinitionsOnly": boolean, "CompletionCriteria": { "MaxAutoMLJobRuntimeInSeconds": number, "MaxCandidates": number, "MaxRuntimePerTrainingJobInSeconds": number }, "FeatureSpecificationS3Uri": "string", "SampleWeightAttributeName": "string", "TargetAttributeName": "string" } }, "DataSplitConfig": { "ValidationFraction": number }, "SecurityConfig": { "EnableInterContainerTrafficEncryption": boolean, "VolumeKmsKeyId": "string", "VpcConfig": { "SecurityGroupIds": [ "string" ], "Subnets": [ "string" ] } } }
  • Los siguientes atributos han cambiado de posición y estructura entre versiones.

    El siguiente JSON ilustra cómo funciona Auto MLJob Config. CandidateGenerationConfigdel tipo Auto MLCandidate GenerationConfig se movió a Auto MLProblemTypeConfig. TabularJobConfig. CandidateGenerationConfigde tipo CandidateGenerationConfigen V2.

    CreateAutoMLJob
    { "AutoMLJobConfig": { "CandidateGenerationConfig": { "AlgorithmsConfig": [ { "AutoMLAlgorithms": [ "string" ] } ], "FeatureSpecificationS3Uri": "string" } }
    CreateAutoMLJobV2
    { "AutoMLProblemTypeConfig": { "TabularJobConfig": { "CandidateGenerationConfig": { "AlgorithmsConfig": [ { "AutoMLAlgorithms": [ "string" ] } ], }, } }, }
  • Atributos de solicitud que han cambiado de nombre y estructura.

    El siguiente JSON ilustra cómo InputDataConfig(Una matriz de Auto MLChannel) cambió a Auto MLJob InputDataConfig (Una matriz de Auto MLJob Channel) en la V2. Tenga en cuenta que los atributos SampleWeightAttributeName y TargetAttributeName han salido de InputDataConfig y han pasado a estar en AutoMLProblemTypeConfig.

    CreateAutoMLJob
    { "InputDataConfig": [ { "ChannelType": "string", "CompressionType": "string", "ContentType": "string", "DataSource": { "S3DataSource": { "S3DataType": "string", "S3Uri": "string" } }, "SampleWeightAttributeName": "string", "TargetAttributeName": "string" } ] }
    CreateAutoMLJobV2
    { "AutoMLJobInputDataConfig": [ { "ChannelType": "string", "CompressionType": "string", "ContentType": "string", "DataSource": { "S3DataSource": { "S3DataType": "string", "S3Uri": "string" } } } ] }