¿Qué es la calidad de datos en el aprendizaje automático?

¿Qué es la calidad de datos en el aprendizaje automático?

Nodo de origen: 1913587

f Modelos ML. También profundizará en las técnicas de tubería ETL utilizadas para la limpieza de datos, el preprocesamiento y la ingeniería de características. Al final de este artículo, tendrá una comprensión sólida de la importancia de la calidad de los datos en ML y las técnicas utilizadas para garantizar datos de alta calidad. Esto ayudará a implementar estas técnicas en proyectos del mundo real y mejorar el rendimiento de sus modelos ML.

OBJETIVOS DE APRENDIZAJE

  1. Comprender los conceptos básicos del aprendizaje automático y sus diversas aplicaciones.
  2. Reconocer la importancia de la calidad de los datos en el éxito de los modelos de aprendizaje automático.
  3. Familiarizarse con la canalización de ETL y su función para garantizar la calidad de los datos.
  4. Aprender múltiples técnicas para la limpieza de datos, incluido el manejo de datos faltantes y duplicados, valores atípicos y ruido, y variables categóricas.
  5. Comprender la importancia del preprocesamiento de datos y la ingeniería de características para mejorar la calidad de los datos utilizados en los modelos de ML.
  6. Experiencia práctica en la implementación de una canalización ETL completa mediante código, incluida la extracción, transformación y carga de datos.
  7. Familiarizarse con la inyección de datos y cómo puede afectar el rendimiento de los modelos de ML.
  8. Comprender el concepto y la importancia de la ingeniería de funciones en el aprendizaje automático.

Este artículo fue publicado como parte del Blogatón de ciencia de datos.

Índice del contenido

  1. Introducción
  2. ¿Qué es el Aprendizaje Automático?
  3. ¿Por qué los datos son críticos en el aprendizaje automático?
  4. ¿Recopilación de datos a través de ETL Pipeline?
  5. ¿Qué es la inyección de datos?
  6. La importancia de la limpieza de datos
  7. ¿Qué es el preprocesamiento de datos?
  8. Una inmersión en la ingeniería de características
  9. Código completo para ETL-Pipeline
  10. Conclusión

¿Qué es el Aprendizaje Automático?

El aprendizaje automático es una forma de inteligencia artificial que permite que las computadoras aprendan y mejoren en función de la experiencia sin programación explícita. Desempeña un papel crucial en la realización de predicciones, la identificación de patrones en los datos y la toma de decisiones sin intervención humana. Esto da como resultado un sistema más preciso y eficiente.

calidad de los datos

El aprendizaje automático es una parte esencial de nuestras vidas y se usa en aplicaciones que van desde asistentes virtuales hasta automóviles autónomos, atención médica, finanzas, transporte y comercio electrónico.

Los datos, especialmente el aprendizaje automático, son uno de los componentes críticos de cualquier modelo. Siempre depende de la calidad de los datos que alimentas a tu modelo. Examinemos por qué los datos son tan esenciales para el aprendizaje automático.

¿Por qué los datos son críticos en el aprendizaje automático?

Estamos rodeados de mucha información todos los días. Los gigantes tecnológicos como Amazon, Facebook y Google recopilan grandes cantidades de datos diariamente. Pero, ¿por qué recopilan datos? Tiene razón si ha visto que Amazon y Google respaldan los productos que está buscando.

Finalmente, los datos de las técnicas de aprendizaje automático juegan un papel esencial en la implementación de este modelo. En resumen, los datos son el combustible que impulsa el aprendizaje automático y la disponibilidad de datos de alta calidad es fundamental para crear modelos precisos y confiables. Muchos tipos de datos se utilizan en el aprendizaje automático, incluidos los datos categóricos, numéricos, de series temporales y de texto. Los datos se recopilan a través de una canalización ETL. ¿Qué es una tubería ETL?

Recopilación de datos a través de ETL Pipeline

La preparación de datos para el aprendizaje automático a menudo se denomina canalización ETL para extracción, transformación y carga.

  • Extracción: El primer paso en la canalización de ETL es extraer datos de varias fuentes. Puede incluir la extracción de datos de bases de datos, API o archivos simples como CSV o Excel. Los datos pueden ser estructurados o no estructurados.

Aquí hay un ejemplo de cómo extraemos datos de un archivo CSV.

Código Python:

import pandas as pd
#read csv file
df = pd.read_csv("data.csv")
#extract specific data
name = df["name"]
age = df["age"]
address = df["address"]
#print extracted data
print("Name:", name)
print("Age:", age)
print("Address:", address)
  • : Es el proceso de transformar los datos para que sean aptos para su uso en modelos de aprendizaje automático. Esto puede incluir limpiar los datos para eliminar errores o inconsistencias, estandarizar los datos y convertir los datos a un formato que el modelo pueda usar. Este paso también incluye la ingeniería de características, donde los datos sin procesar se transforman en un conjunto de características que se utilizarán como entrada para el modelo.
  • Este es un código simple para convertir datos de json a DataFrame.
import json
import pandas as pd
#load json file
with open("data.json", "r") as json_file:
data = json.load(json_file)
#convert json data to a DataFrame
df = pd.DataFrame(data)
#write to csv
df.to_csv("data.csv", index=False)
  • Carga: El paso final es cargar o cargar los datos convertidos en el destino. Puede ser una base de datos, un almacén de datos o un sistema de archivos. Los datos resultantes están listos para su uso posterior, como el entrenamiento o la prueba de modelos de aprendizaje automático.

Aquí hay un código simple que muestra cómo cargamos datos usando los pandas:

import pandas as pd
df = pd.read_csv('data.csv')

Después de recopilar los datos, generalmente usamos la inyección de datos si encontramos valores faltantes.

¿Qué es la inyección de datos?

Se pueden agregar datos nuevos a un servidor de datos existente por varias razones para actualizar la base de datos con datos nuevos y agregar datos más diversos para mejorar el rendimiento de los modelos de aprendizaje automático. O la corrección de errores del conjunto de datos original generalmente se realiza mediante la automatización con algunas herramientas útiles.

limpieza de datos

Hay tres tipos.

  • Inserción por lotes: Los datos se insertan de forma masiva, suele ser a una hora fija
  • Inyección en tiempo real: Los datos se inyectan inmediatamente cuando se generan.
  • Inyección de flujo: Los datos se inyectan en un flujo continuo. A menudo se utiliza en tiempo real.

Aquí hay un ejemplo de código de cómo inyectamos datos usando la función de agregar usando la biblioteca pandas.

La siguiente etapa de la canalización de datos es la limpieza de datos.

import pandas as pd # Create an empty DataFrame
df = pd.DataFrame() # Add some data to the DataFrame
df = df.append({'Name': 'John', 'Age': 30, 'Country': 'US'}, ignore_index=True)
df = df.append({'Name': 'Jane', 'Age': 25, 'Country': 'UK'}, ignore_index=True) # Print the DataFrame
print(df)

La importancia de la limpieza de datos

Limpieza de datos es la eliminación o corrección de errores en los datos. Esto puede incluir la eliminación de valores faltantes y duplicados y la gestión de valores atípicos. La limpieza de datos es un proceso iterativo, y los nuevos conocimientos pueden requerir que regrese y realice cambios. En Python, la biblioteca pandas se usa a menudo para limpiar datos.

Hay razones importantes para limpiar los datos.

  • Calidad de datos: La calidad de los datos es crucial para un análisis preciso y fiable. Una información más precisa y consistente puede conducir a resultados reales y una mejor toma de decisiones.
  • Rendimiento del aprendizaje automático: Los datos sucios pueden afectar negativamente el rendimiento de los modelos de aprendizaje automático. Limpiar sus datos mejora la precisión y confiabilidad de su modelo.
  • Almacenamiento y recuperación de datos: Los datos limpios son más fáciles de almacenar y recuperar y reducen el riesgo de errores e inconsistencias en el almacenamiento y la recuperación de datos.
  • Gobierno de datos: La limpieza de datos es crucial para garantizar la integridad de los datos y el cumplimiento de las políticas y regulaciones regulatorias de datos.
  • Almacenamiento de datos: Borrar datos ayuda a guardar datos para uso y análisis a largo plazo.

Aquí hay un código que muestra cómo descartar valores faltantes y eliminar duplicados usando la biblioteca pandas:

df = df.dropna()
df = df.drop_duplicates() # Fill missing values
df = df.fillna(value=-1)

Aquí hay otro ejemplo de cómo limpiamos los datos usando varias técnicas.

import pandas as pd # Create a sample DataFrame
data = {'Name': ['John', 'Jane', 'Mike', 'Sarah', 'NaN'], 'Age': [30, 25, 35, 32, None], 'Country': ['US', 'UK', 'Canada', 'Australia', 'NaN']}
df = pd.DataFrame(data) # Drop missing values
df = df.dropna() # Remove duplicates
df = df.drop_duplicates() # Handle outliers
df = df[df['Age'] < 40] # Print the cleaned DataFrame
print(df)

La tercera etapa de la canalización de datos es el preprocesamiento de datos,

También es bueno comprender claramente los datos y las funciones antes de aplicar cualquier método de limpieza y probar el rendimiento del modelo después de limpiar los datos.

¿Qué es el preprocesamiento de datos?

El procesamiento de datos está preparando datos para su uso en modelos de aprendizaje automático. Este es un paso esencial en el aprendizaje automático porque garantiza que los datos estén en un formato que el modelo pueda usar y que se resuelvan los errores o inconsistencias.

integración de r tableau y excel

El procesamiento de datos generalmente implica una combinación de limpieza de datos, transformación de datos y estandarización de datos. Los pasos específicos en el procesamiento de datos dependen del tipo de datos y del modelo de aprendizaje automático que esté utilizando. Sin embargo, aquí hay algunos pasos generales:

  • Limpieza de datos: elimine errores, incoherencias y valores atípicos de la base de datos.
  • Transformación de datos: Transformación de datos en una forma que pueda ser utilizada por modelos de aprendizaje automático, como cambiar variables categóricas a variables numéricas.
  • Datos Normalización: escala los datos en un rango específico entre 0 y 1, lo que ayuda a mejorar el rendimiento de algunos modelos de aprendizaje automático.
  • Agregar datos: agregue cambios o manipulaciones a los puntos de datos existentes para crear otros nuevos.
  • Selección o extracción de características: identifique y seleccione las características esenciales de sus datos para usarlas como entrada para su modelo de aprendizaje automático.
  • Detección de valores atípicos: identifique y elimine puntos de datos que se desvíen significativamente de grandes cantidades de datos. Los valores atípicos pueden alterar los resultados analíticos y afectar negativamente el rendimiento de los modelos de aprendizaje automático.
  • Detectar duplicados: identifique y elimine puntos de datos duplicados. Los datos duplicados pueden dar lugar a resultados inexactos o poco fiables y aumentar el tamaño de su conjunto de datos, lo que dificulta su procesamiento y análisis.
  • Identificar tendencias: Encuentre patrones y tendencias en sus datos que puede usar para informar predicciones futuras o comprender mejor la naturaleza de sus datos.

El procesamiento de datos es esencial en el aprendizaje automático porque garantiza que los datos estén en una forma que el modelo pueda usar y que se eliminen los errores o las incoherencias. Esto mejora el rendimiento del modelo y la precisión de la predicción.

Aquí hay un código simple que muestra cómo usar la clase LabelEncoder para escalar variables categóricas a valores numéricos y la clase MinMaxScaler para escalar variables numéricas.

import pandas as pd
from sklearn.preprocessing import MinMaxScaler, StandardScaler, OneHotEncoder, LabelEncoder # Create a sample DataFrame
data = {'Name': ['John', 'Jane', 'Mike', 'Sarah'], 'Age': [30, 25, 35, 32], 'Country': ['US', 'UK', 'Canada', 'Australia'], 'Gender':['M','F','M','F']}
df = pd.DataFrame(data) # Convert categorical variables to numerical
encoder = LabelEncoder()
df["Gender"] = encoder.fit_transform(df["Gender"]) # One hot encoding
onehot_encoder = OneHotEncoder()
country_encoded = onehot_encoder.fit_transform(df[['Country']])
df = pd.concat([df, pd.DataFrame(country_encoded.toarray())], axis=1)
df = df.drop(['Country'], axis=1) # Scale numerical variables
scaler = MinMaxScaler()
df[['Age']] = scaler.fit_transform(df[['Age']]) # Print the preprocessed DataFrame
print(df)

La etapa final de la canalización de datos es la ingeniería de características,

Una inmersión en la ingeniería de características

Ingeniería de características transforma los datos sin procesar en características que se pueden usar como entrada para modelos de aprendizaje automático. Esto implica identificar y extraer los datos más críticos de la materia prima y convertirlos a un formato que el modelo pueda usar. La ingeniería de características es esencial en el aprendizaje automático porque puede afectar significativamente el rendimiento del modelo.

Las diferentes técnicas que se pueden utilizar para la ingeniería de características son:

  • Feature Extracción: Extraiga información relevante de los datos sin procesar. Por ejemplo, identifique las funciones más importantes o combine funciones existentes para crear nuevas funciones.
  • Modificación de atributos: Cambie el tipo de atributo, como cambiar una variable categórica a una variable numérica o ampliar los datos para que se ajusten a un rango específico.
  • Selección de características: Determine las características esenciales de sus datos para usar como entrada en su modelo de aprendizaje automático.
  • Reducción de dimensión: Reduzca la cantidad de funciones en la base de datos eliminando funciones redundantes o irrelevantes.
  • Agregar datos: agregue cambios o manipulaciones a los puntos de datos existentes para crear otros nuevos.

La ingeniería de características requiere una buena comprensión de sus datos, el problema a resolver y los algoritmos de aprendizaje automático a utilizar. Este proceso es iterativo y experimental y puede requerir varias iteraciones para encontrar el conjunto de características óptimo que mejore el rendimiento de nuestro modelo.

Código completo para toda la canalización de ETL

Aquí hay un ejemplo de una tubería ETL completa que usa las bibliotecas pandas y scikit-learn:

import pandas as pd
from sklearn.preprocessing import MinMaxScaler, StandardScaler, OneHotEncoder, LabelEncoder # Extract data from CSV file
df = pd.read_csv('data.csv') # Data cleaning
df = df.dropna()
df = df.drop_duplicates() # Data transformation
encoder = LabelEncoder()
df["Gender"] = encoder.fit_transform(df["Gender"]) onehot_encoder = OneHotEncoder()
country_encoded = onehot_encoder.fit_transform(df[['Country']])
df = pd.concat([df, pd.DataFrame(country_encoded.toarray())], axis=1)
df = df.drop(['Country'], axis=1) scaler = MinMaxScaler()
df[['Age']] = scaler.fit_transform(df[['Age']]) # Load data into a new CSV file
df.to_csv('cleaned_data.csv', index=False)

Los datos se recuperan primero de un archivo CSV utilizando la función pandas read_csv() de este ejemplo. Luego, la limpieza de datos se realiza eliminando los valores faltantes y los duplicados. Esto se hace usando LabelEncoder para cambiar variables categóricas a numéricas, OneHotEncoder para escalar variables categóricas a números y MinMaxScaler para escalar variables numéricas. Finalmente, los datos eliminados se leen en un nuevo archivo CSV utilizando la función pandas to_csv().

Tenga en cuenta que este ejemplo es una versión muy simplificada de la canalización ETL. En un escenario real, la tubería puede ser más compleja e involucrar más procesamiento y subcontratación, costeo, etc. Puede incluir métodos como. Además, la trazabilidad de los datos también es fundamental. Es decir, rastrea el origen de los datos, sus cambios y dónde están, no solo lo ayuda a comprender la calidad de sus datos, sino que también lo ayuda a depurar y revisar su canalización. Además, es esencial comprender claramente los datos y las características antes de aplicar métodos de procesamiento posterior y verificar el rendimiento del modelo después del procesamiento previo. Información.

Conclusión

La calidad de los datos es fundamental para el éxito de los modelos de aprendizaje automático. Cuidando cada paso del proceso, desde la recopilación de datos hasta la limpieza, el procesamiento y la validación, puede asegurarse de que sus datos sean de la más alta calidad. Esto permitirá que su modelo haga predicciones más precisas, lo que generará mejores resultados y proyectos exitosos de aprendizaje automático.

Ahora sabrás la importancia de la calidad de los datos en el aprendizaje automático. Estas son algunas de las conclusiones clave de mi artículo:

Puntos clave

  • Comprender el impacto de la mala calidad de los datos en los modelos de aprendizaje automático y los resultados resultantes.
  • Reconocer la importancia de la calidad de los datos en el éxito de los modelos de aprendizaje automático.
  • Familiarizarme con la canalización de ETL y su función para garantizar la calidad de los datos.
  • Adquirir habilidades para la limpieza de datos, el preprocesamiento y las técnicas de ingeniería de características para mejorar la calidad de los datos utilizados en los modelos de ML.
  • Comprender el concepto y la importancia de la ingeniería de funciones en el aprendizaje automático.
  • Técnicas de aprendizaje para seleccionar, crear y transformar funciones para mejorar el rendimiento de los modelos de ML.

¡Gracias por leer! ¿Quieres compartir algo no mencionado anteriormente? ¿Pensamientos? Siéntete libre de comentar abajo.

Los medios que se muestran en este artículo no son propiedad de Analytics Vidhya y se utilizan a discreción del autor.

Sello de tiempo:

Mas de Analítica Vidhya