Hola a todos, estoy de vuelta con otro tema que es . 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. el preprocesamiento de datos ¿Qué es el preprocesamiento de datos? es una técnica de minería que consiste en transformar sin procesar en un formato comprensible. Los del mundo real a menudo son incompletos, inconsistentes y/o carecen de ciertos comportamientos o tendencias, y es probable que contengan muchos errores. es un método comprobado para resolver tales problemas. El preprocesamiento de datos de datos datos datos El preprocesamiento de datos ¿Por qué utilizar el preprocesamiento de datos? En el mundo real, los generalmente están incompletos: carecen de valores de atributos, carecen de ciertos atributos de interés o contienen solo agregados. Ruidoso: contiene errores o valores atípicos. Incoherente: que contiene discrepancias en códigos o nombres. datos datos Tomado de Google Imágenes Proceso de aprendizaje automáticoPasos en el preprocesamiento de datos Importar las bibliotecas Paso 1: Importar el conjunto de datos Paso 2: Compruebe los valores que faltan Paso 3: Ver los valores categóricos Paso 4: dividir el conjunto de datos en conjunto de entrenamiento y prueba Paso 5: Escalado de características Paso 6: 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) es el paquete fundamental para la computación científica con Python. Contiene entre otras cosas: NumPy 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 la manipulación y el análisis de datos 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 . Pandas es para . Pandas Python es un proyecto patrocinado por . Esto ayudará a garantizar el éxito del desarrollo de como un proyecto de código abierto de clase mundial y hace posible la al proyecto. 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. Pandas NumFOCUS pandas donación Matplotlib Matplotlib se puede usar en secuencias de comandos de Python, los shells de Python e , el cuaderno , servidores de aplicaciones web y cuatro kits de herramientas de interfaz gráfica de usuario. es una biblioteca de visualización de datos de Python basada en . IPython Jupyter Seaborn matplotlib Proporciona una interfaz de alto nivel para dibujar gráficos estadísticos atractivos e informativos. 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. Advertencia 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 , a veces trata con ]. CSV 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 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. administrar 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 de la característica y reemplazarla con los valores que faltan. media, la mediana o la moda 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 durante el entrenamiento. Otra forma es aproximarlo con la desviación de los valores vecinos. Esto funciona mejor si los datos son lineales. fuga de datos 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? 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. Las variables ficticias 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 , ahora te mostraré con pandas cómo usar para crear variables ficticias. OneHotEnCoder get_dummies() Uso de pandas para crear variables ficticias Concatenación Vea cómo se ve nuestro conjunto de datos A veces, usamos la 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. imputación KNN (para variables categóricas): 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 Conjunto de entrenamiento 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 es el método para limitar el rango de variables para que puedan compararse en términos comunes. escalado de características 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 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. Nota: Así que ese es nuestro final con la fase 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. de preprocesamiento de datos Compartiré más conceptos pronto en la de , así como en columna Article LinkedIn.com Medium . Mohit Sharma (los hombres que quieres ser & Co.) themenyouwantobe@gmail.com / Telegram