Cree trabajos de regresión o clasificación para datos tabulares mediante el AutoML API - Amazon SageMaker

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.

Cree trabajos de regresión o clasificación para datos tabulares mediante el AutoML API

Puede crear un trabajo de regresión o clasificación con piloto automático para datos tabulares mediante programación llamando a la CreateAutoMLJobV2APIacción en cualquier idioma compatible con Autopilot o el. AWS CLI La siguiente es una colección de parámetros de solicitud de entrada obligatorios y opcionales para la acción. CreateAutoMLJobV2 API 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 esta API acción se traduce en una función en el idioma que prefiera, consulte la sección Vea también de CreateAutoMLJobV2 y elija unaSDK. 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

CreateAutoMLJobV2y DescribeAutoMLJobV2son versiones nuevas de CreateAutoMLJoby DescribeAutoMLJobque ofrecen 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 objetivo que se van a predecir. Opcionalmente, 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 y más.

Una vez realizado el experimento, puede comparar los ensayos y ahondar en los detalles de los pasos previos al procesamiento, 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 un CreateAuto MLJob a CreateAuto MLJobV2.

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.

  • A RoleArn para especificar la ARN función que se utiliza 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.

  • A RoleArn para especificar ARN el 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 de algunos parámetros opcionales que puede transferir a su CreateAutoMLJobV2 API acción 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 funciones seleccionadas deben estar incluidas en un JSON archivo 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 configurar URL las funciones seleccionadas con el TabularJobConfig.FeatureSpecificatioS3Uri parámetro.

CreateAutoMLJob

Puede establecer el FeatureSpecificatioS3Uri atributo de A utoMLCandidate GenerationConfig en CreateAutoMLJobAPIel formato siguiente:

{ "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 elementos 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 utoMLCandidate GenerationConfig A.

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 A utoMLJob 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. Las dos fuentes de datos deben tener el mismo formato (Parquet 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 obligatorio InputDataConfig) tiene unChannelType, que se puede establecer en uno training o en validation valores que especifican cómo se van a utilizar 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 AutoMLChannel debe establecerse en training, el valor predeterminado. El ChannelType del otro origen de datos debe estar establecido en validation. Las dos fuentes de datos deben tener el mismo formato (Parquet 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 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 utoMLChannel objeto A. 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 Serverless cuando se necesiten recursos informáticos adicionales para procesar conjuntos de datos de gran tamaño. Al realizar una transición sin problemas a EMR Serverless 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. EMRServerless 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 su trabajo de AutoML V2 pase automáticamente a EMR Serverless para un conjunto de datos grande, debe proporcionar un EmrServerlessComputeConfig objeto, que incluya un ExecutionRoleARN campo, a AutoMLComputeConfig la solicitud de entrada de AutoML job V2.

ExecutionRoleARNEs ARN la IAM función que otorga a AutoML job V2 los permisos necesarios para ejecutar trabajos sin EMR 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 concede los permisos a:

  • Cree, enumere y actualice aplicaciones EMR sin servidor.

  • Inicie, enumere, obtenga o cancele las ejecuciones de tareas en una aplicación EMR sin servidor.

  • Etiquete los EMR recursos sin servidor.

  • Transfiera una IAM función al servicio EMR Serverless para su ejecución.

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

    Consulte Funciones de tiempo de ejecución de tareas para Amazon EMR Serverless para obtener más información sobre los permisos de esta función.

La IAM política definida en el JSON documento proporcionado otorga 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 un CreateAuto MLJob a CreateAuto MLJobV2

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 CreateAutoMLJobV2se destacan los cambios en la posición, el nombre o la estructura de los objetos y 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.

    A continuación se JSON ilustra cómo funciona A utoMLJob Config. CandidateGenerationConfigde tipo A utoMLCandidate GenerationConfig se trasladó a utoMLProblem TypeConfig A. 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.

    A continuación se JSON ilustra cómo InputDataConfig(una matriz de AutoMLChannel) cambió a A utoMLJob InputDataConfig (una matriz de un utoMLJob canal) 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" } } } ] }