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

Puede crear un experimento 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.

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 de MLJob y CreateAutoDescribeAutoMLJob que 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.

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 instrucciones sobre cómo migrar un CreateAutoMLJob a CreateAutoMLJobV2, vaya a Migre un MLJob a MLJobv2 CreateAuto CreateAuto.

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

Puede configurar el FeatureSpecificatioS3Uri atributo de AutoML CandidateGenerationConfig en la API CreateAutoMLJob 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 AutoML 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.

{ "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 AutoML JobInputDataConfig) tiene unChannelType, que se puede establecer en validation valores que especifican cómo se utilizarán 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 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 obligatorio 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 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 objeto AutoMLChannel. Esto garantiza que la métrica objetivo utilice las ponderaciones para el entrenamiento, la evaluación y la selección de los modelos candidatos.

Migre un MLJob a MLJobv2 CreateAuto CreateAuto

Recomendamos a los usuarios de CreateAutoMLJob que migren a CreateAutoMLJobV2.

En esta sección se explican las diferencias en los parámetros de entrada entre CreateAutoMLJob y CreateAutoMLJobv2, destacando 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.

    El siguiente JSON ilustra cómo es AutomLJobConfig. CandidateGenerationConfigde tipo AutoML CandidateGenerationConfig se trasladó a AutoML. ProblemTypeConfig 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 AutoMLChannel) cambió a AutoML JobInputDataConfig (una matriz de AutoML) en la versión 2. JobChannel 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" } } } ] }