Compartir a través de


Edición de metadatos

Importante

El soporte técnico de Machine Learning Studio (clásico) finalizará el 31 de agosto de 2024. Se recomienda realizar la transición a Azure Machine Learning antes de esa fecha.

A partir del 1 de diciembre de 2021 no se podrán crear recursos de Machine Learning Studio (clásico). Hasta el 31 de agosto de 2024, puede seguir usando los recursos de Machine Learning Studio (clásico) existentes.

La documentación de ML Studio (clásico) se está retirando y es posible que no se actualice en el futuro.

Edita los metadatos asociados a las columnas de un conjunto de datos

Categoría: Transformación y manipulación de datos

Nota:

Solo se aplica a: Machine Learning Studio (clásico)

Hay módulos para arrastrar y colocar similares en el diseñador de Azure Machine Learning.

Información general sobre el módulo

En este artículo se describe cómo usar el módulo Editar metadatos de Machine Learning Studio (clásico) para cambiar los metadatos asociados a las columnas de un conjunto de datos. Los valores y los tipos de datos del conjunto de datos no se modifican realmente; lo que cambia son los metadatos Machine Learning que indica a los componentes de nivel inferior cómo usar la columna.

Entre los cambios de metadatos habituales se pueden incluir:

  • Tratar columnas booleanas o numéricas como valores de categoría

  • Indicar qué columna contiene la etiqueta de clase o los valores que desea clasificar o predecir

  • Marcar columnas como características

  • Cambio de valores de fecha y hora a un valor numérico, o viceversa

  • Cambiar el nombre de las columnas

Use Editar metadatos cada vez que necesite modificar la definición de una columna, normalmente para cumplir los requisitos de un módulo de bajada. Por ejemplo, algunos módulos solo pueden funcionar con tipos de datos específicos o requerir marcas en las columnas, como IsFeature o IsCategorical.

Después de realizar la operación requerida, puede restablecer los metadatos a su estado original.

Cómo configurar Editar metadatos

  1. En Machine Learning Studio (clásico), agregue el módulo Editar metadatos al experimento y conecte el conjunto de datos que desea actualizar. Puede encontrarlo en Transformación de datos, en la categoría Manipular .

  2. Haga clic en Iniciar el selector de columnas y elija la columna o el conjunto de columnas con los que trabajar. Puede elegir columnas individualmente, por nombre o índice, o bien puede elegir un grupo de columnas por tipo.

    Sugerencia

    ¿Necesita ayuda para usar índices de columna? Consulte la sección Notas técnicas .

  3. Seleccione la opción Tipo de datos si tiene que asignar un tipo de datos diferente a las columnas seleccionadas. Es posible que sea necesario cambiar el tipo de datos para determinadas operaciones: por ejemplo, si el conjunto de datos de origen tiene números que se controlan como texto, debe cambiarlos a un tipo de datos numérico antes de usar operaciones matemáticas.

    • Los tipos de datos admitidos Stringson , Integer, Floating point, BooleanDateTime, y TimeSpan.

    • Si se seleccionan varias columnas, debe aplicar los cambios de metadatos a todas las columnas seleccionadas. Por ejemplo, supongamos que elige entre 2 y 3 columnas numéricas. Puede cambiarlos todos a un tipo de datos de cadena y cambiarles el nombre en una operación. Sin embargo, no se puede cambiar una columna a un tipo de datos de cadena y otra columna de float a entero.

    • Si no especifica un nuevo tipo de datos, los metadatos de columna no se modifican.

    • Los cambios de tipo de datos solo afectan a los metadatos asociados al conjunto de datos y a cómo se controlan los datos en las operaciones de bajada. Los valores de columna reales no se modifican, a menos que se realice una operación distinta (como redondeo) en la columna. Puede recuperar el tipo de datos original en cualquier momento mediante Editar metadatos para restablecer el tipo de datos de columna.

    Nota:

    Si cambia cualquier tipo de número al tipo DateTime, deje el campo Formato de fecha y hora en blanco. Actualmente, no es posible especificar el formato de datos de destino.

Machine Learning convertir fechas en números o números en fechas, si los números son compatibles con uno de los objetos DateTime de .NET admitidos. Para más información, consulte la sección Notas técnicas .

  1. Seleccione la opción Categórico para especificar que los valores de las columnas seleccionadas deben tratarse como categorías.

    Por ejemplo, puede tener una columna que contenga los números 0,1 y 2, pero sabe que los números realmente significan "Smoker", "Non smoker" y "Unknown". En ese caso, si marca la columna como categórica, puede asegurarse de que los valores no se usan en cálculos numéricos, solo para agrupar datos.

  2. Use la opción Campos si desea cambiar la forma en que Machine Learning usa los datos de un modelo.

    • Característica: use esta opción para marcar una columna como una característica, para su uso con módulos que solo funcionan en columnas de características. De forma predeterminada, todas las columnas se tratan inicialmente como características.

    • Etiqueta: use esta opción para marcar la etiqueta (también conocida como atributo de predicción o variable de destino). Muchos módulos requieren que al menos una columna de etiqueta (y solo una) esté presente en el conjunto de datos.

      En muchos casos, Machine Learning puede deducir que una columna contiene una etiqueta de clase, pero estableciendo estos metadatos puede asegurarse de que la columna se identifica correctamente. Establecer esta opción no cambia los valores de datos, solo la forma en que algunos algoritmos de aprendizaje automático controlan los datos.

    • Peso: use esta opción con datos numéricos para indicar que los valores de columna representan pesos para su uso en operaciones de puntuación o entrenamiento de aprendizaje automático. Solo puede haber una columna de peso en un conjunto de datos y la columna debe ser numérica. Esta opción solo funciona en estos modelos: regresión Two-Class logística, Two-Class máquina de vectores de soporte técnico y Two-Class red neuronal.

    Sugerencia

    ¿Tiene datos que no caben en estas categorías? Por ejemplo, el conjunto de datos puede contener valores como identificadores únicos que no son útiles como variables. A veces, los ID pueden causar problemas cuando se usan en un modelo.

    Afortunadamente, "en Machine Learning" conserva todos los datos, por lo que no tiene que eliminar esas columnas del conjunto de datos. Cuando necesite realizar operaciones en un conjunto especial de columnas, simplemente quite temporalmente todas las demás columnas mediante el módulo Seleccionar columnas de conjunto de datos. Más adelante puede combinar las columnas de nuevo en el conjunto de datos mediante el módulo Agregar columnas.

  3. Utilice las siguientes opciones para borrar las selecciones anteriores y restaurar los metadatos a los valores predeterminados.

    • Borrar característica: Utilice esta opción para quitar la marca de características.

      Dado que todas las columnas se tratan inicialmente como características, para los módulos que realizan operaciones matemáticas, es posible que tenga que usar esta opción para evitar que las columnas numéricas se traten como variables.

    • Borrar etiqueta: Use esta opción para quitar los metadatos de etiqueta de la columna especificada.

    • Borrar puntuación: Use esta opción para quitar los metadatos de puntuación de la columna especificada.

      Actualmente, la capacidad de marcar explícitamente una columna como puntuación no está disponible en Machine Learning. Sin embargo, algunas operaciones darán como resultado que una columna se etiquete internamente como puntuación. Además, un módulo R personalizado puede generar valores de puntuación.

    • Borrar peso: use esta opción para quitar los metadatos de peso de la columna especificada.

  4. En Nuevos nombres de columna, escriba el nuevo nombre de la columna o columnas seleccionadas.

    • Los nombres de columna solo pueden usar caracteres admitidos por la codificación UTF-8. No se permiten cadenas vacías, valores NULL o nombres que constan completamente de espacios.

    • Para cambiar el nombre de varias columnas, escriba los nombres como una lista separada por comas por orden de los índices de columna.

    • Se debe cambiar el nombre de todas las columnas seleccionadas. No se pueden omitir ni omitir columnas.

    Sugerencia

    Si necesita cambiar el nombre de varias columnas, puede pegar una cadena delimitada por comas preparada de antemano. O bien, use los módulos Execute R Script (Ejecutar script R) o Apply SQL Transformation (Aplicar SQL transformación). Consulte la sección Notas técnicas para obtener código y ejemplos.

  5. Ejecute el experimento.

Ejemplos

Para obtener ejemplos de cómo se usa Editar metadatos en la preparación de datos y la creación de modelos, consulte el Azure AI Gallery:

  • Detección de cáncer de cuello: los nombres de columna se cambian después de unirse a los conjuntos de datos. La columna Id. de paciente también se marca como categórica para asegurarse de que no se usa en un cálculo, sino como un valor de cadena.

  • Análisis de opiniones de Twitter: muestra cómo usar Editar metadatos para asegurarse de que las columnas se tratan como características. Más adelante en el experimento, se borran los metadatos de la característica.

  • Procesamiento y análisis de datos: en este ejemplo, editar metadatos se usa para definir nuevos nombres de columna para los datos cargados desde una página web.

Notas técnicas

Esta sección contiene problemas conocidos, preguntas más frecuentes y algunos ejemplos de soluciones alternativas comunes.

Problemas conocidos

  • No se admiten metadatos personalizados. No es posible usar metadatos personalizados en Machine Learning o editar metadatos de columna fuera de Editar metadatos. Por ejemplo, no puede agregar metadatos que indiquen que una columna es un identificador único ni agregar otros atributos descriptivos . Machine Learning solo admite los atributos de metadatos que se usan en R para trabajar con factores, características, pesos y etiquetas.

  • Tipos de datos no admitidos. No se admiten los siguientes tipos de datos numéricos: Double (decimal) y TimeStamp.

  • Identificar columnas de puntuación. Actualmente no hay ninguna opción en Editar metadatos para marcar una columna como que contiene puntuaciones. Sin embargo, puede usar el módulo Ejecutar script R con un script similar al siguiente para indicar que una columna contiene puntuaciones:

    dataset <- maml.mapInputPort(1)   
    attr(dataset$x, "label.type")= "True Labels"  
    attr(dataset$y, "feature.channel")= "Multiclass Classification Scores"  
    attr(dataset$y, "score.type")= "Assigned Labels"  
    maml.mapOutputPort("dataset");
    
  • Problemas con los formatos datetime. El tipo de datetime datos subyacente utilizado por Machine Learning es POSIXct.

    Si el analizador predeterminado puede analizar todas las fechas de una columna, la columna se importa y se trata como datos de cadena.

    Si intenta convertir una columna en DateTime mediante el módulo Editar metadatos y obtiene un error, significa que la fecha no está en un formato que .Net acepta de forma predeterminada. En este caso, se recomienda usar el módulo Execute R Script (Ejecutar script R) o el módulo Apply SQL Transformation (Aplicar transformación de SQL) para transformar la columna a un formato aceptado por el analizador predeterminado.

    Método DateTime.Parse

    Cadenas con formato de fecha y hora estándar

Selección de columnas mediante índices de columna

En conjuntos de datos muy grandes, no es factible escribir o seleccionar manualmente todos los nombres de columna. El uso del índice de columna es un acceso directo que se puede usar para especificar muchas columnas. En esta sección se proporcionan algunas sugerencias sobre el uso de índices de columna.

Por ejemplo, abra el selector de columnas, haga clic en WITH RULES (CON REGLAS), seleccione Include and column indices (Incluir y los índices de columna) y, a continuación, escriba un intervalo o una serie de números como se muestra a continuación:

  • Escriba 1-20 para seleccionar las primeras 20 columnas.
  • Escriba 5-20 para seleccionar un intervalo de columnas que empieza en 5 e incluye la columna 20.
  • Tipo para 1,5,10,15 seleccionar columnas discontinuas
  • Escriba 1-2, 5 para seleccionar las columnas 1, 2 y 5, omitiendo las columnas 3 y 4.
  • No se puede escribir un valor de índice mayor que el número de columnas disponibles en el conjunto de datos.

Los experimentos siguientes proporcionan algunos ejemplos de otros métodos para seleccionar y modificar varias columnas:

  • Clasificación binaria: detección de cáncer de cuello: los datos originales contenían muchas columnas en blanco generadas durante la importación desde una hoja de cálculo. Las columnas adicionales se quitaron especificando las columnas 1 a 11 en el módulo Split Data (Dividir datos).

  • Descargar conjunto de datos de UCI: muestra cómo puede proporcionar nombres de columna como una lista mediante el módulo Escribir datos manualmente y, a continuación, insertar la lista en el conjunto de datos como encabezados, mediante el módulo Ejecutar script R .

  • Seleccionar columnas de expresiones regulares: este experimento proporciona un módulo personalizado que le permite aplicar una expresión regular a los nombres de columna. Puede usar este módulo como entrada para editar metadatos.

Métodos alternativos para modificar nombres de columna

Si tiene muchas columnas para cambiar el nombre, puede usar el módulo Ejecutar script R o aplicar SQL transformación.

Uso de scripts de R

Los conjuntos de datos usados por Machine Learning se pasan a este módulo como data.frame, lo que significa que puede usar la función de R colnames() y otras funciones de R relacionadas para enumerar o cambiar los nombres de columna.

Por ejemplo, el código siguiente crea una lista de nuevos nombres de columna y, a continuación, aplica esa lista al conjunto de datos de entrada para generar nuevos encabezados de columna.

irisdata <- maml.mapInputPort(1);    
newnames <- c("CLASS", "SEPAL  LENGTH", "SEPAL WIDTH", "PETAL LENGTH", "PETAL WIDTH");
colnames(irisdata) = newnames
maml.mapOutputPort("irisdata");

En el ejemplo siguiente se usa una expresión regular en R para reemplazar globalmente todas las instancias de la cadena especificada en los nombres de columna para irisdata:

# Map input dataset to variable
newirisdata <- maml.mapInputPort(1) # class: data.frame
names(newirisdata) <- gsub("col", "iris", names(newirisdata))
maml.mapOutputPort("newirisdata");

Uso de SQL

En el ejemplo siguiente se toma un conjunto de datos como entrada y, a continuación, se cambian los nombres de columna mediante la palabra clave AS .

SELECT col1 as [C1], 
  col2 as [C2], 
  col3 as [C3], 
  col4 as [C4],
  col5 as [C5] 
FROM t1;

Entrada prevista

Nombre Tipo Descripción
Dataset Tabla de datos Conjunto de datos de entrada

Parámetros del módulo

Nombre Intervalo Tipo Valor predeterminado Descripción
Columna Any ColumnSelection Elija las columnas a las que se deben aplicar los cambios.
Tipo de datos Lista Tipo de datos del editor de metadatos Sin cambios Especifique el nuevo tipo de datos de la columna.
Categorías Lista Categorías del editor de metadatos Sin cambios Indique si la columna debe estar marcada como de categoría.
Fields Lista Marca del editor de metadatos Sin cambios Especifique si los algoritmos de aprendizaje deben considerar la columna como una característica o una etiqueta.
Nuevos nombres de columna cualquiera String Escriba los nuevos nombres de las columnas.

Output

Nombre Tipo Descripción
Conjunto de datos de resultados Tabla de datos Conjunto de datos con metadatos modificados

Excepciones

Excepción Descripción
Error 0003 Se produce una excepción si uno o varios conjuntos de datos de entrada son null o están vacíos.
Error 0017 Se produce una excepción si una o varias columnas especificadas tienen un tipo no compatible con el módulo actual.
Error 0020 Se produce una excepción si el número de columnas de algunos de los conjuntos de datos que se pasan al módulo es demasiado pequeño.
Error 0031 Se produce una excepción si el número de columnas del conjunto de columnas es menor que el necesario.
Error 0027 Se produce una excepción cuando dos objetos tienen que ser del mismo tamaño pero no lo son.
Error 0028 Se produce una excepción cuando el conjunto de columnas contiene nombres de columna duplicados y no está permitido.
Error 0037 Se produce una excepción si se especifican varias columnas de etiqueta y solo se permite una.

Para obtener una lista de errores específicos de los módulos de Studio (clásico), consulte Machine Learning códigos de error.

Para obtener una lista de excepciones de API, consulte Machine Learning códigos de error de la API REST.

Consulte también

Manipulación
Transformación de datos
Lista de módulos A-Z