paint-brush
Preprocesamiento de datos: 6 pasos necesarios para los científicos de datospor@thems18
133,781 lecturas
133,781 lecturas

Preprocesamiento de datos: 6 pasos necesarios para los científicos de datos

por Mohit Sharma7m2020/10/27
Read on Terminal Reader
Read this story w/o Javascript

Demasiado Largo; Para Leer

Preprocesamiento de datos: 6 pasos necesarios para los científicos de datos. Esta es una técnica de minería de datos que consiste en transformar datos sin procesar en un formato comprensible. Los datos del mundo real a menudo son incompletos, inconsistentes y/o carecen de ciertos comportamientos o tendencias, y es probable que contengan muchos errores. Los científicos de datos dedican la mayor parte de su tiempo al análisis de datos y al proceso de aprendizaje automático. Los pasos en los preprocesamientos de datos son las bibliotecas más populares que cualquier científico de datos debería usar. Usamos Pandas para importar nuestro conjunto de datos y el archivo que usé aquí es el archivo .csv.

People Mentioned

Mention Thumbnail

Company Mentioned

Mention Thumbnail
featured image - Preprocesamiento de datos: 6 pasos necesarios para los científicos de datos
Mohit Sharma HackerNoon profile picture

Hola a todos, estoy de vuelta con otro tema que es el preprocesamiento de datos . Esta es una parte del proceso de análisis de datos y aprendizaje automático en el que los científicos de datos pasan la mayor parte de su tiempo. En este artículo, profundizaré en el tema, por qué lo usamos y los pasos necesarios.

¿Qué es el preprocesamiento de datos?

El preprocesamiento de datos es una técnica de minería de datos que consiste en transformar datos sin procesar en un formato comprensible. Los datos del mundo real a menudo son incompletos, inconsistentes y/o carecen de ciertos comportamientos o tendencias, y es probable que contengan muchos errores. El preprocesamiento de datos es un método comprobado para resolver tales problemas.

¿Por qué utilizar el preprocesamiento de datos?

En el mundo real, los datos generalmente están incompletos: carecen de valores de atributos, carecen de ciertos atributos de interés o contienen solo datos agregados. Ruidoso: contiene errores o valores atípicos. Incoherente: que contiene discrepancias en códigos o nombres.

Tomado de Google Imágenes

Proceso de aprendizaje automáticoPasos en el preprocesamiento de datos

  • Paso 1: Importar las bibliotecas
  • Paso 2: Importar el conjunto de datos
  • Paso 3: Compruebe los valores que faltan
  • Paso 4: Ver los valores categóricos
  • Paso 5: dividir el conjunto de datos en conjunto de entrenamiento y prueba
  • Paso 6: Escalado de características

Entonces, sin perder más tiempo, ¡comencemos!

“ Los nuevos comienzos a menudo comienzan con finales dolorosos. Agradece esas puertas cerradas y esos desvíos, te están guiando a un lugar mejor”

Paso 1: Importar las bibliotecas

Así es como importamos bibliotecas en Python usando la palabra clave de importación y estas son las bibliotecas más populares que usó cualquier científico de datos. (Usé- Jupyter Notebook)

NumPy es el paquete fundamental para la computación científica con Python. Contiene entre otras cosas:

1. Un poderoso objeto de matriz N-dimensional

2. Funciones sofisticadas (de radiodifusión)

3. Herramientas para integrar código C/C++ y FORTRAN

4. Capacidades útiles de álgebra lineal, transformada de Fourier y números aleatorios

Pandas es para la manipulación y el análisis de datos . Pandas es una biblioteca de código abierto con licencia BSD que proporciona estructuras de datos y herramientas de análisis de datos fáciles de usar y de alto rendimiento para el lenguaje de programación Python .

Pandas es un proyecto patrocinado por NumFOCUS . Esto ayudará a garantizar el éxito del desarrollo de pandas como un proyecto de código abierto de clase mundial y hace posible la donación al proyecto. Matplotlib es una biblioteca de trazado 2D de Python que produce cifras de calidad de publicación en una variedad de formatos de copia impresa y entornos interactivos en todas las plataformas.

Matplotlib se puede usar en secuencias de comandos de Python, los shells de Python e IPython , el cuaderno Jupyter , servidores de aplicaciones web y cuatro kits de herramientas de interfaz gráfica de usuario. Seaborn es una biblioteca de visualización de datos de Python basada en matplotlib .

Proporciona una interfaz de alto nivel para dibujar gráficos estadísticos atractivos e informativos.

Advertencia Los mensajes normalmente se emiten en situaciones en las que es útil alertar al usuario de alguna condición en un programa, donde esa condición (normalmente) no garantiza generar una excepción y finalizar el programa. Por ejemplo, uno podría querer emitir una advertencia cuando un programa usa un módulo obsoleto.

Paso 2: Importar el conjunto de datos

Importar el conjunto de datos

Información del conjunto de datos

Al usar Pandas, importamos nuestro conjunto de datos y el archivo que usé aquí es un archivo .csv [Nota: no es necesariamente cada vez que trata con un archivo CSV , a veces trata con Html o Xlsx (archivo de Excel) ].

Sin embargo, para acceder y utilizar rápidamente utilizamos archivos CSV debido a su peso ligero. Después de importar el conjunto de datos, puede ver que usamos la función de cabeza (Esta función devuelve las primeras n filas del objeto en función de la posición. Es útil para probar rápidamente si su objeto tiene el tipo correcto de datos. Por defecto, devuelve 5 filas.)

Paso 3: Compruebe los valores que faltan

Es importante comprender el concepto de valores perdidos para administrar los datos con éxito. Si el investigador no maneja adecuadamente los valores faltantes, entonces puede terminar sacando una inferencia inexacta sobre los datos. Debido a un manejo inadecuado, el resultado obtenido por el investigador diferirá de aquellos en los que están presentes los valores perdidos.

Valores faltantes

Sí, lo ha visto, escriba este número 3720 que son sus valores faltantes en cada columna.

Puede ser o no haber leído en alguna parte, ver 7 técnicas para lidiar con los valores perdidos o 5 formas de lidiar con los valores perdidos. Pero, discutiré con usted solo esas dos formas que son las más prominentes.

Dos formas de manejar los valores perdidos en el preprocesamiento de datos

Este método de preprocesamiento de datos se usa comúnmente para manejar los valores nulos. Aquí, eliminamos una fila en particular si tiene un valor nulo para una función en particular y una columna en particular si tiene más del 75% de valores faltantes.

Este método se recomienda solo cuando hay suficientes muestras en el conjunto de datos. Uno tiene que asegurarse de que después de que hayamos eliminado los datos, no se agregue ningún sesgo. Eliminar los datos conducirá a la pérdida de información que no dará los resultados esperados al predecir la salida.

Suelta los valores que faltan

Esta estrategia se puede aplicar en una característica que tiene datos numéricos como la columna del año o la columna de la meta del equipo local. Podemos calcular la media, la mediana o la moda de la característica y reemplazarla con los valores que faltan.

Esta es una aproximación que puede agregar varianza al conjunto de datos. Pero la pérdida de datos puede anularse con este método, que produce mejores resultados en comparación con la eliminación de filas y columnas. Reemplazar con las tres aproximaciones anteriores es un enfoque estadístico para manejar los valores faltantes. Este método también se conoce como fuga de datos durante el entrenamiento. Otra forma es aproximarlo con la desviación de los valores vecinos. Esto funciona mejor si los datos son lineales.

Reemplazar el valor faltante

La estrategia anterior es buena para datos numéricos. Pero, ¿qué sucede cuando a los datos categóricos les faltan valores?

Paso 4: Ver los valores categóricos

Veamos ahora cómo lidiar con los datos categóricos. . . !

Ver los Datos Categóricos en País

Dado que los modelos de aprendizaje automático se basan en ecuaciones matemáticas, puede comprender intuitivamente que causaría algún problema si podemos mantener los datos categóricos en las ecuaciones porque solo querríamos números en las ecuaciones.

Entonces, necesitamos codificar la variable categórica…..

Al igual que en nuestro conjunto de datos, la columna País causará problemas, por lo que se convertirá en valores numéricos. Para convertir variables categóricas en datos numéricos, podemos usar la clase LabelEncoder() de la biblioteca de preprocesamiento.

Ver los datos categóricos

Use la clase LabelEncoder para convertir datos categóricos en numéricos

label_encoder es un objeto que uso y nos ayuda a transferir datos categóricos a datos numéricos. A continuación, ajusté este objeto label_encoder a la primera columna de nuestra matriz X y todo esto devolvió el país de la primera columna de la matriz X codificada.

Pero hay un problema, el problema sigue siendo el mismo, los modelos de aprendizaje automático se basan en ecuaciones y es bueno que hayamos reemplazado el texto por números para poder incluir los números en las ecuaciones.

Sin embargo, dado que 1>0 y 2>1 (consulte el conjunto de datos anterior), las ecuaciones en el modelo pensarán que España tiene un valor más alto que Alemania y Francia, y Alemania tiene un valor más alto que Francia.

En realidad, este no es el caso, estas son en realidad tres Categorías y no hay un orden relacional entre las tres. Entonces, tenemos que evitar esto, vamos a usar lo que son variables ficticias.

¿Qué son las variables ficticias en el preprocesamiento de datos?

Las variables ficticias son aquellas que toman el valor 0 o 1 para indicar la ausencia o presencia de algún efecto categórico que se puede esperar que cambie el resultado.

En lugar de tener una columna aquí arriba, vamos a tener tres columnas.

Número de columnas = Número de categorías

En nuestro caso vamos a tener 3 columnas.

// Para crear una variable ficticia, usaremos la clase OneHotEncoder de sklearn.preprocessing o puede usar el método pandas get dummies.

En el código anterior, ya explico cómo usar la clase OneHotEnCoder , ahora te mostraré con pandas cómo usar get_dummies() para crear variables ficticias.

Uso de pandas para crear variables ficticias

Concatenación

Vea cómo se ve nuestro conjunto de datos

A veces, usamos la imputación KNN (para variables categóricas): en este método de imputación, los valores faltantes de un atributo se imputan utilizando el número dado de atributos que son más similares al atributo cuyos valores faltan. La similitud de dos atributos se determina mediante una función de distancia.

Paso 5: dividir el conjunto de datos en conjunto de entrenamiento y prueba

En cualquier modelo de Machine Learning es que vamos a dividir el conjunto de datos en dos conjuntos separados

  1. Conjunto de entrenamiento
  2. Equipo de prueba

¿Por qué necesitamos dividir?

Bueno, aquí está su modelo de algoritmo que va a aprender de sus datos para hacer predicciones. Por lo general, dividimos el conjunto de datos en una proporción de 70:30 o 80:20, lo que significa, 70 por ciento de datos tomados en tren y 30 por ciento de datos tomados en prueba. Sin embargo, esta división puede variar según la forma y el tamaño del conjunto de datos.

Dividir el conjunto de datos en dos conjuntos: conjunto de entrenamiento y prueba

X_train es la parte de entrenamiento de la matriz de características.
X_test es la parte de prueba de la matriz de características.
y_train es la parte de entrenamiento de la variable dependiente que está asociada a X_train aquí.
y_test es la parte de prueba de la variable dependiente que está asociada a X_train aquí.
Paso 6: Escalado de características

¿Qué es el escalado de funciones?

El escalado de características es el método para limitar el rango de variables para que puedan compararse en términos comunes.

Supongamos que tenemos este conjunto de datos

Consulte la columna Edad y salario. Puede notar fácilmente que las variables Salario y Edad no tienen la misma escala y esto causará algún problema en su modelo de aprendizaje automático.

Porque la mayoría de los modelos de aprendizaje automático se basan en la distancia euclidiana .

fórmula euclidiana

Digamos que tomamos dos valores de la columna Edad y Salario

Edad- 40 y 27

Salario- 72000 y 48000

Uno puede calcular fácilmente y ver que la columna Salario estará dominada en la Distancia euclidiana. Y no queremos esta cosa.

Por lo tanto, hay varias formas de escalar sus datos. Referencia

Imagen tomada de Wikipedia

Escalado de características

Después de Feature Scaling, todos los valores entran en la misma escala

Nota: A veces, los modelos de máquinas no se basan en distancias euclidianas, aún necesitaremos escalar características porque el algoritmo convergerá mucho más rápido. Ese será el caso de Decision Tree, que no se basa en ED pero, si no escalamos las características, se ejecutarán durante mucho tiempo.

Así que ese es nuestro final con la fase de preprocesamiento de datos y espero que les guste este artículo. . . !! Tenga en cuenta que no he incluido el tema de los valores atípicos y he tomado un conjunto de datos muy simple para que lo entienda todo. Por favor, siéntase libre de comentar y dar algunos aplausos. Si tiene algún problema o consulta sobre cualquier tema relacionado con la ciencia de datos, hágamelo saber en la sección de comentarios.

Compartiré más conceptos pronto en la columna Article de LinkedIn.com , así como en Medium .

Mohit Sharma (los hombres que quieres ser & Co.)
[email protected] / Telegram