Limpiar datos que faltan
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.
- Consulte la información acerca de traslado de proyectos de aprendizaje automático de ML Studio (clásico) a Azure Machine Learning.
- Más información sobre Azure Machine Learning.
La documentación de ML Studio (clásico) se está retirando y es posible que no se actualice en el futuro.
Especifica la manera de controlar los valores que faltan 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 Limpiar datos que faltan en Machine Learning Studio (clásico) para quitar, reemplazar o deducir los valores que faltan.
Los científicos de datos a menudo comprueban los datos para ver si faltan valores y, a continuación, realizan varias operaciones para corregir los datos o insertar nuevos valores. El objetivo de estas operaciones de limpieza es evitar los problemas causados por falta de datos, que pueden surgir al entrenar un modelo.
Este módulo admite varios tipos de operaciones para "limpiar" los valores que faltan, entre los que se incluyen:
- Reemplazar los valores que faltan por un marcador de posición, una media u otro valor
- Eliminar completamente las filas y columnas que tienen valores que faltan
- Deducir valores en función de métodos estadísticos
Sugerencia
¿Es la primera vez que trabaja con aprendizaje automático? En este artículo se proporciona una buena explicación de por qué usaría cada uno de los distintos métodos para reemplazar los valores que faltan: Métodos para controlar los valores que faltan
El uso de este módulo no cambia el conjunto de datos de origen. En su lugar, crea un nuevo conjunto de datos en el área de trabajo que puede usar en el flujo de trabajo posterior. También puede guardar el conjunto de datos nuevo y limpio para reutilizarlo.
Este módulo también genera una definición de la transformación usada para limpiar los valores que faltan. Puede volver a usar esta transformación en otros conjuntos de datos que tengan el mismo esquema, mediante el módulo Aplicar transformación.
Procedimiento para usar Limpiar datos que faltan
Este módulo permite definir una operación de limpieza. También puede guardar la operación de limpieza para aplicarla más adelante a nuevos datos. Vea los siguientes vínculos para obtener una descripción de cómo crear y guardar un proceso de limpieza:
Importante
El método de limpieza que use para controlar los valores que faltan puede afectar drásticamente a los resultados. Se recomienda que experimente con diferentes métodos. Tenga en cuenta tanto la justificación para el uso de un método concreto como la calidad de los resultados.
Reemplazar los valores que faltan
Cada vez que se aplica el módulo Limpiar datos que faltan a un conjunto de datos, se aplica la misma operación de limpieza a todas las columnas que seleccione. Por lo tanto, si tiene que limpiar distintas columnas mediante diferentes métodos, utilice instancias independientes del módulo.
Agregue el módulo Limpiar los datos que faltan al experimento y conecte el conjunto de datos que tiene valores que faltan.
Para Columns to be cleaned (Columnas que se deben limpiar), elija las columnas que contienen los valores que faltan que desee cambiar. Puede elegir varias columnas, pero debe usar el mismo método de reemplazo en todas las columnas seleccionadas. Por lo tanto, normalmente deberá limpiar las columnas de cadena y las columnas numéricas por separado.
Por ejemplo, para comprobar si hay valores que faltan en todas las columnas numéricas:
Abra el selector de columnas y seleccione WITH RULES (CON REGLAS).
Para BEGIN WITH, seleccione NO COLUMNS (NINGUNA COLUMNA).
También puede empezar con ALL COLUMNS (TODAS LAS COLUMNAS) y, a continuación, excluir columnas. Inicialmente, las reglas no se muestran si primero hace clic en ALL COLUMNS (TODAS LAS COLUMNAS), pero puede hacer clic en NO COLUMNS (NINGUNA COLUMNA) y, a continuación, hacer clic en ALL COLUMNS (TODAS LAS COLUMNAS) de nuevo para comenzar con todas las columnas y, a continuación, filtrar (excluir) las columnas según el nombre, tipo de datos o índice de columnas.
Para Incluir, seleccione Tipo de columna en la lista desplegable y, a continuación, seleccione Numérico o un tipo numérico más específico.
Cualquier método de limpieza o de reemplazo que elija debe ser aplicable a todas las columnas de la selección. Si los datos de cualquier columna no son compatibles con la operación especificada, el módulo devuelve un error y detiene el experimento.
Para Minimum missing value ratio (Índice mínimo de valores que faltan), especifique el número mínimo de valores que faltan necesarios para que realizar la operación.
Use esta opción en combinación con Maximum missing value ratio (Índice máximo de valores que faltan) para definir las condiciones en las que se realiza una operación de limpieza en el conjunto de datos. Si hay demasiadas o insuficientes filas que tienen valores que faltan, no se puede realizar la operación.
El número que escriba representa el índice de valores que faltan para todos los valores de la columna. De forma predeterminada, la propiedad Minimum missing value ratio (Índice mínimo de valores que faltan) está establecida en 0. Esto significa que los valores que faltan se limpian incluso si hay solo un valor que falta. Para obtener un ejemplo de cómo usar esta opción, vea Establecer un umbral para las operaciones de limpieza.
Advertencia
Esta condición debe cumplirse para cada columna a fin de que se aplique la operación especificada. Por ejemplo, supongamos que ha seleccionado tres columnas y, a continuación, establece el índice mínimo de valores que faltan en ,2 (20 %), pero en realidad, solo una columna tiene el 20 % de valores que faltan. En este caso, la operación de limpieza se aplicaría solo a la columna con más del 20 % de valores que faltan. Por lo tanto, las demás columnas no cambiarían.
Si tiene alguna duda sobre si han cambiado los valores que faltan, seleccione la opción Generate missing value indicator column (Generar columna de indicador de valores que faltan). Se anexa una columna al conjunto de datos para indicar si cada la columna cumple los criterios especificados para los intervalos mínimos y máximo o no.
Para Maximum missing value ratio (Índice máximo de valores que faltan), especifique el número máximo de valores que faltan necesarios para que realizar la operación.
Por ejemplo, si desea realizar la sustitución de valores que faltan solo si el 30 % o menos de las filas contienen valores que faltan, pero dejar los valores tal cual si más del 30 % de las filas tienen valores que faltan.
El número se define como el índice de valores que faltan para todos los valores de la columna. De forma predeterminada, la propiedad Maximum missing value ratio (Índice máximo de valores que faltan) está establecida en 1. Esto significa que los valores que faltan se limpian incluso si falta el 100 % de los valores de la columna.
Nota:
Cuando se establece un umbral mediante las opciones Proporción mínima de valores que faltan o Proporción máxima de valores que faltan, no se puede realizar la operación de limpieza si incluso una de las columnas seleccionadas no cumple los criterios.
Para Cleaning Mode (Modo de limpieza), seleccione una de las siguientes opciones para reemplazar o quitar los valores que faltan:
Reemplazar mediante MOUSE: para cada valor que falta, esta opción asigna un nuevo valor, que se calcula mediante un método descrito en la documentación estadística como "Imputación multivariada mediante ecuaciones encadenadas" o "Imputación múltiple por ecuaciones encadenadas". Con un método de imputación múltiple, cada variable con datos que faltan se modela condicionalmente mediante las otras variables de los datos antes de rellenar los valores que faltan. Por el contrario, en un único método de imputación (como reemplazar un valor que falta por una media de columna), se realiza un paso único sobre los datos para determinar el valor de relleno.
Todos los métodos de imputación presentan algún error o sesgo, pero la imputación múltiple simula mejor el proceso que genera los datos y la distribución de probabilidad de los datos.
Para obtener una introducción general a los métodos para controlar los valores que faltan, consulte Missing Data: the state of the art (Datos que faltan: el estado de la técnica). TantoFer como Tantos, 2002.
Advertencia
Esta opción no se puede aplicar a columnas completamente vacías. Estas columnas deben quitarse o pasarse a la salida sin cambios.
Custom substitution value (Valor de sustitución personalizado): Utilice esta opción para especificar un valor de marcador de posición (por ejemplo, un valor 0 o NA) que se aplica a todos los valores que faltan. El valor que especifique como reemplazo debe ser compatible con el tipo de datos de la columna.
Reemplazar por la media: Calcula la media de la columna y la utiliza como valor de reemplazo para cada valor que falta en la columna.
Solo se aplica a las columnas que tienen tipos de datos entero, doble o booleano. Consulte la sección Notas técnicas para obtener más información.
Replace with median (Reemplazar por mediana): Calcula el valor de mediana de la columna y lo utiliza como valor de reemplazo para cada valor que falta en la columna.
Solo se aplica a las columnas que tienen tipos de datos entero o doble. Consulte la sección Notas técnicas para obtener más información.
Replace with mode (Reemplazar por modo): Calcula el modo de la columna y lo utiliza como valor de reemplazo para cada valor que falta en la columna.
Se aplica a las columnas que tienen tipos de datos entero, doble, booleano o categorical. Consulte la sección Notas técnicas para obtener más información.
Remove entire row (Quitar toda la fila): Quita completamente cualquier fila del conjunto de datos que tiene uno o más valores que faltan. Es útil si el valor que falta puede considerarse que falta de forma aleatoria.
Remove entire column (Quitar toda la columna): Quita completamente cualquier columna del conjunto de datos que tiene uno o más valores que faltan.
Reemplazar mediante PCA probabilístico: reemplaza los valores que faltan mediante un modelo lineal que analiza las correlaciones entre las columnas y calcula una aproximación dimensional baja de los datos, a partir de la cual se reconstruyen los datos completos. La reducción de dimensionalidad subyacente es una forma probabilística del análisis de componentes principales (PCA) e implementa una variante del modelo propuesto en la revista Journal of the Royal Statistical Society, Series B 21(3), 611–622 por Tipping y Bishop.
En comparación con otras opciones, como Imputación múltiple con ecuaciones encadenadas (MICE), esta opción tiene la ventaja de que no requiere la aplicación de predictores para cada columna. En lugar de esto, aproxima la covarianza del conjunto de datos completo. Por lo tanto, podría ofrecer un mejor rendimiento para los conjuntos de datos que tienen valores que faltan en muchas columnas.
Las limitaciones más importantes de este método son que expande las columnas de categorías en indicadores numéricos y calcula una matriz de covarianza densa de los datos resultantes. Por otra parte, no está optimizado para las representaciones dispersas. Por estos motivos, los conjuntos de datos con un gran número de columnas y/o dominios de categorías de gran tamaño (decenas de miles) no se admiten debido a un consumo de espacio prohibitivo.
Sugerencia
Recuerde que el método que elija se aplica a todas las columnas de la selección. Por lo tanto, si desea reemplazar algunos valores que faltan por ceros en algunas columnas pero insertar un marcador de posición en otras columnas, debe usar Seleccionar columnas en el conjunto de datos para separar los datos y usar diferentes instancias del módulo Limpiar datos que faltan.
La opción Replacement value está disponible si ha seleccionado la opción Custom substitution value (Valor de sustitución personalizado). Escriba un nuevo valor que se usará como el valor de reemplazo para todos los valores que faltan en la columna.
Tenga en cuenta que puede usar esta opción únicamente en las columnas que tienen los tipos datos entero, doble, booleano o fecha. Para las columnas de fecha, el valor de reemplazo también se puede introducir como el número de tics de 100 nanosegundos desde 1/1/0001 12:00 A.M.
Generate missing value indicator column (Generar columna de indicador de valores que faltan): Seleccione esta opción si desea producir alguna indicación de si los valores de la columna cumplen los criterios para la limpieza de valores que faltan. Esta opción es especialmente útil cuando va a configurar una nueva operación de limpieza y desea asegurarse de que funciona según lo diseñado.
Ejecute el experimento o seleccione el módulo Limpiar datos que faltan y haga clic en Ejecutar seleccionado.
Results
El módulo devuelve dos salidas:
Conjunto de datos limpio: Un conjunto de datos que consta de las columnas seleccionadas, cuyos valores que faltan se han tratado según lo especificado, junto con una columna de indicador, si selecciona dicha opción.
Las columnas no seleccionadas para la limpieza también se "pasan a través".
Transformación de limpieza: Una transformación de datos utilizada para la limpieza, que se puede guardar en el área de trabajo y se aplica a datos nuevos más tarde.
Aplicar una operación de limpieza guardada a datos nuevos
Si necesita repetir operaciones de limpieza a menudo, se recomienda que guarde la receta para la limpieza de datos como una transformación, para volverla a usar con el mismo conjunto de datos. Guardar una transformación de limpieza es especialmente útil si debe volver a importar con frecuencia y, a continuación, limpiar datos que tienen el mismo esquema.
Agregue el módulo Aplicar transformación al experimento.
Agregue el conjunto de datos que desea limpiar y conecte el conjunto de datos al puerto de entrada derecho.
Expanda el grupo Transformaciones en el panel izquierdo de Studio (clásico). Localice la transformación guardada y arrástrela hasta el experimento.
Conecte la transformación guardada al puerto de entrada izquierdo de Aplicar transformación.
Al aplicar una transformación guardada, no puede seleccionar las columnas a las que se aplica la transformación. Esto se debe a que la transformación ya se ha definido y se aplica automáticamente a los tipos de datos especificados en la operación original.
Sin embargo, supongamos que ha creado una transformación en un subconjunto de columnas numéricas. Puede aplicar esta transformación a un conjunto de datos de tipos de columna mixtos sin provocar un error, porque se cambian los valores que faltan solo en las columnas numéricas coincidentes.
Ejecute el experimento.
Ejemplos
Vea ejemplos de cómo se usa este módulo en el Azure AI Gallery:
Predicción del rendimiento de los alumnos: en este ejemplo, se insertan ceros para los valores que faltan.
Ejemplo de validación cruzada para clasificador binario: los ceros se usan para rellenar los valores que faltan y se crea una columna de indicador para realizar el seguimiento de los cambios. También se conservan las columnas a las que les faltan todos los valores.
Procesamiento y análisis de conjuntos de datos: en este ejemplo, las distintas ramas del experimento usan métodos diferentes para la sustitución de valores que faltan y, a continuación, los conjuntos de datos se evalúan mediante Resumir datos y Calcular correlación lineal.
Ejemplo de predicción de retraso de vuelos: las filas vacías se quitan por completo.
Notas técnicas
Esta sección contiene detalles de implementación, así como problemas conocidos y preguntas frecuentes.
Se produce un error si se usa la opción de media o mediana cuando se selecciona cualquier columna de cadena. Si tiene que procesar columnas de tipos de datos diferentes, cree dos instancias de Limpiar datos que faltan.
Al reemplazar los valores que faltan por un valor medio en columnas por los tipos de datos Boolean, Integer, DateTime o TimeSpan, la columna se convierte primero en números de punto flotante, se calcula la media y, a continuación, el resultado se redondea al valor más cercano del tipo de datos original.
Cuando se escribe un valor de reemplazo, el valor debe ser compatible con el tipo de datos de la columna seleccionada.
Los valores
NaN
de ,Inf
y se–Inf
permiten para las columnas donde el tipo de datos es Double.Cuando se usa el método MICE, el valor de reemplazo se predice con el modelo MICE entrenado.
El uso de Limpiar datos que faltan puede restablecer otros tipos de columna a características. Si los datos contienen otros tipos de columnas, como etiquetas, use Editar metadatos para corregir los tipos de columna.
Restricciones en el uso de transformaciones de limpieza
Las restricciones siguientes se aplican cuando se usa una transformación guardada (basada en Limpiar datos que faltan) en datos nuevos:
Una transformación guardada no puede generar valores de indicador, incluso si esta opción se usó en la operación de limpieza original. Considere los valores del indicador como más útiles al probar una nueva transformación.
La transformación no calcula nuevos valores en función del nuevo conjunto de datos. En otras palabras, si usó Limpiar datos que faltan en el conjunto de datos A y generó un valor medio de 0,5, ese mismo valor se aplicaría como media para reemplazar los valores que faltan en el conjunto de datos B, independientemente de los valores reales del conjunto de datos B.
El tipo de datos de las columnas del nuevo conjunto de datos debe coincidir con el tipo de datos de las columnas en las que se creó originalmente la transformación. Se produce un error si se realiza alguna operación en la columna que cambia implícitamente el tipo de datos.
Por ejemplo, suponga que crea una media para una columna de datos enteros [Col1] y guarda la transformación. Ahora quiere aplicar la transformación de limpieza a una copia de [Col1] que se ha ajustado mediante una fórmula, como ([Col1] /1.5). Para asegurarse de que el resultado es un entero, redondee el resultado, pero sigue teniendo un error al aplicar la transformación. Sin embargo, si ajusta el valor mediante una fórmula como ([Col 1] * 10), no se genera ningún error.
Para evitar estos problemas, use Editar metadatos para restablecer explícitamente el tipo de datos a entero. En general, las operaciones del módulo Aplicar operación matemática cambian implícitamente las columnas numéricas a
double
.
Establecimiento e interpretación de valores de umbral
Cuando se especifica un umbral para las operaciones de limpieza mediante las opciones Minimum missing value ratio (Proporción mínima de valores ausentes) o Maximum missing value ratio (Proporción máxima de valores que faltan), los resultados pueden ser inesperados o confusos. Para ilustrar cómo funcionan las opciones de valores máximos y mínimos que faltan, hemos proporcionado algunos ejemplos del conjunto de datos de ejemplo Automobile Prices , que tiene muchas columnas con valores que faltan.
En la tabla siguiente se muestra el recuento de valores que faltan para varias columnas de ese conjunto de datos, junto con la proporción de valores que faltan calculados en el conjunto de datos. La proporción de valores que faltan (en la columna situada más a la derecha) es el valor que se usaría para evaluar el conjunto de datos con respecto a los valores de umbral especificados.
Suponga que ha establecido la proporción mínima de valores que faltan en 0,019 y que ha establecido la relación de valores máximos ausentes en 0,020. Dada la siguiente tabla de valores, algunas columnas cumplen los criterios de umbral y otras no:
- Las columnas y
bore
cumplenstroke
los criterios de umbral. - Las columnas
normalized-losses
y nocompression-ratio
cumplen los criterios de umbral.
Nombre de la columna | Recuento de valores que faltan | Relación de valores que faltan |
---|---|---|
Pérdidas normalizadas | 41 | 0,2 |
Calibre | 4 | 0.019512195 |
Carrera | 4 | 0.019512195 |
Relación de compresión | 0 | 0 |
Dado que algunas columnas de la selección no cumplen los criterios especificados, no se realizó ninguna operación de limpieza en ninguna columna. Para ayudarle a averiguar lo que ha ocurrido, el módulo devuelve el valor FALSE en las dos columnas de indicador, bore_IsMissing
y stroke_IsMissing
.
Sin embargo, si vuelve a cambiar el umbral a los valores predeterminados de 0 para Minimum missing value ratio (Proporción mínima de valores ausentes) y 1 para Maximum missing value ratio (Proporción máxima de valores que faltan), se devuelve una columna de indicador para todas las columnas seleccionadas y se realiza la operación especificada.
Sugerencia
Si no está seguro de si la limpieza de valores que faltan funciona según lo previsto, seleccione la opción de columna Generar indicador de valor que falta .
Problemas conocidos
Si usa el método MOUSE para limpiar los datos y, a continuación, procesar un conjunto de datos que contiene valores que faltan, podría obtener el siguiente error: "Excepción de biblioteca de AFx: el modelo no está entrenado. ( Error 1000 )"
Este error solo se produce cuando se selecciona el método MOUSE y si el conjunto de datos de entrenamiento no contiene valores que faltan, pero sí el conjunto de datos de prueba.
Entradas esperadas
Nombre | Tipo | Descripción |
---|---|---|
Dataset | Tabla de datos | Conjunto de datos para limpiar |
Parámetros del módulo
Nombre | Intervalo | Tipo | Valor predeterminado | Descripción |
---|---|---|---|---|
Columnas para limpiar | Any | ColumnSelection | Todo | Seleccione las columnas para la operación de limpieza de valores que faltan. |
Relación mínima de valores que faltan | [0.0;1.0] | Float | 0,0 | Limpie solo la columna con una proporción de valores que falte por encima del valor especificado, fuera de un conjunto de todas las columnas seleccionadas. |
Relación máxima de valores que faltan | [0.0;1.0] | Float | 1,0 | Limpie solamente las columnas con una proporción de valores que faltan inferior al valor especificado, dentro del conjunto de todas las columnas seleccionadas. |
Modo de limpieza | Lista | Directiva de control | Valor de sustitución personalizado | Elija un algoritmo que quiera utilizar al limpiar los valores que faltan. |
Valor de reemplazo | Any | Cadena | "0" | Escriba un valor para que ocupe el lugar de los valores que faltan. Este valor es opcional. |
Columnas cuyos valores son todos valores que faltan | Any | ColumnsWithAllValuesMissing | Quitar | Indique si las columnas a las que les faltan todos los valores se deben conservar en la salida. |
Generar columna de indicador de valores que faltan | Any | Boolean | false | Genere una columna que indica qué filas se limpiaron. |
Número de iteraciones | [1;10] | Entero | 5 | Especifique el número de iteraciones al usar MICE. |
Número de iteraciones de predicción para PCA | [1;50] | Entero | 10 | Especifique el número de iteraciones al usar una predicción PCA. |
Salidas
Nombre | Tipo | Descripción |
---|---|---|
Conjunto de datos limpiado | Tabla de datos | Conjunto de datos limpiado |
Transformación de limpieza | Interfaz ITransform | La transformación que se debe pasar al módulo Aplicar transformación para limpiar los nuevos datos. |
Excepciones
Excepción | Descripción |
---|---|
Error 0002 | Se produce una excepción si uno o más parámetros no se pudieron analizar o convertir del tipo especificado al requerido por el método de destino. |
Error 0003 | Se produce una excepción si uno o varios de los conjuntos de datos de entrada son nulos o están vacíos. |
Error 0008 | Se produce una excepción si un parámetro no está en el intervalo. |
Error 0013 | Se produce una excepción si el limpiador que se pasa al módulo tiene un tipo no válido. |
Error 0018 | Se produce una excepción si el conjunto de datos de entrada no es válido. |
Error 0039 | Se produce una excepción si la operación genera un error. |
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.