Preprocesamiento en sklearn

Preprocesamiento en sklearn
El preprocesamiento de datos, una fase crucial en la minería de datos, puede definirse como alterar o eliminar datos antes del uso para garantizar o aumentar el rendimiento. La preparación de datos implica varios procedimientos, como el análisis de datos exploratorios, eliminar la información innecesaria y agregar información necesaria. Hablaremos sobre el preprocesamiento de datos y cómo se usa en Sklearn en este artículo.

¿Qué es el procesamiento de datos??

El preprocesamiento de datos es una etapa crítica en el aprendizaje automático que mejora la calidad de los datos para fomentar la extracción de información valiosa de los datos. La preparación de datos en el aprendizaje automático es el proceso de preparar los datos sin procesar (limpiarlos y organizarlos) para crear y entrenar modelos de aprendizaje automático. El preprocesamiento de datos en el aprendizaje automático es, en pocas palabras, un enfoque de minería de datos que convierta los datos sin procesar en un formato que sea legible e inteligible.

¿Por qué necesitamos preprocesamiento de datos??

Los datos del mundo real frecuentemente carecen de valores o tendencias de atributos particulares y son frecuentemente inconsistentes, erróneos (contiene errores o valores atípicos) e incompletos. La preparación de datos entra en juego en esta situación porque ayuda a limpiar, formatear y organizar los datos sin procesar, lo que lo prepara para su uso mediante modelos de aprendizaje automático.

El preprocesamiento de datos trata de lo siguiente:

  • Datos faltantes: eliminar, corregir e imputar
  • Características de ingeniería: extrapolar nuevas características de los datos sin procesar.
  • Formato de datos: los datos podrían no estar disponibles en el formato deseado. Por ejemplo, es un archivo de texto simple que necesitamos convertir en un marcado de datos.
  • Normalización de datos: no todos los datos pueden estar en forma normalizada. Por lo tanto, lo escala al rango dado para fines de eficiencia
  • Descomposición: eliminar datos redundantes para mejorar el rendimiento

Normas para la API Scikit-Learn

Hay varias especificaciones para el tipo de datos que el Sklearn procesará.

  • Valores constantes (sin variables categóricas).
  • No faltan valores.
  • Cada columna debe contener una variable predictor diferente.
  • Cada fila debe contener una observación de características.
  • Debe haber tantas etiquetas para cada característica como observaciones de ella.

Implementación del preprocesamiento Sklearn

Importación de las bibliotecas y datos

# Importar las bibliotecas y clases
de Sklearn Import SVM, conjuntos de datos
importar pandas como PD
de Sklearn.Imputar importación simple
de Sklearn.preprocesamiento de estándares de importación
de Sklearn.preprocesamiento de importación onehotencoder
# Cargando el conjunto de datos de Iris
datos = conjuntos de datos.load_iris ()
DF = PD.DataFrame (datos = datos.datos, columnas = datos.características_names)

Cargando las primeras 5 filas de los datos

df.cabeza()

Producción

longitud sepal (cm) Ancho sepal (CM) Longitud del pétalo (CM) Ancho de pétalos (CM)
0 5.1 3.5 1.4 0.2
1 4.9 3.0 1.4 0.2
2 4.7 3.2 1.3 0.2
3 4.6 3.1 1.5 0.2
4 5.0 3.6 1.4 0.2

Obtener información sobre tipos y valores nulos

df.info ()

Producción

RangeIndex: 150 entradas, 0 a 149
Columnas de datos (total 4 columnas):
# Columna no nulo cuenta dtype
--- ------ -------------- -----
0 longitud de sepal (cm) 150 flotante no nulo 64
1 ancho de sepal (cm) 150 float no nulo 64
2 Longitud del pétalo (cm) 150 Float no nulo 64
3 ancho pétal (cm) 150 float no nulo 64
Dtypes: Float64 (4)

Llenar los valores faltantes del marco de datos usando sklearn:

Imputer = SimpleImputer (estrategia = 'media')
df ['ancho sepal (cm)'] = impute.Fit_Transform (DF [['Sepal Width (CM)']])

Podemos iterar todas las columnas para realizar esta tarea en todas las columnas.

Escalar los datos utilizando escalador estándar

Scaler = estándaressCaler ()
escalador.Fit (DF)
# Transformar los datos
escalador.transformar (df) [: 10]

Producción

Array ([[-0.90068117, 1.01900435, -1.34022653, -1.3154443],
[-1.14301691, -0.13197948, -1.34022653, -1.3154443],
[-1.38535265, 0.32841405, -1.39706395, -1.3154443],
[-1.50652052, 0.09821729, -1.2833891, -1.3154443],
[-1.02184904, 1.24920112, -1.34022653, -1.3154443],
[-0.53717756, 1.93979142, -1.16971425, -1.05217993],
[-1.50652052, 0.78880759, -1.34022653, -1.18381211],
[-1.02184904, 0.78880759, -1.2833891, -1.3154443],
[-1.74885626, -0.36217625, -1.34022653, -1.3154443],
[-1.14301691, 0.09821729, -1.2833891, -1.44707648]])

Una codificación caliente

Encoder = OneHotencoder (Handle_Unknown = 'Ignore')
X = [['A', 1], ['B', 3], ['B', 2]]
codificador.Fit (x)
imprimir (codificador.categorías_)
codificador.transformar (x).ToArray ()

Producción

[array (['a', 'b'], dtype = objeto), array ([1, 2, 3], dtype = objeto)]
matriz ([[1., 0., 1., 0., 0.],
[0., 1., 0., 0., 1.],
[0., 1., 0., 1., 0.]])

Conclusión

Discutimos el preprocesamiento y su implementación en la Biblioteca Sklearn Python en este artículo. Para facilitar la extracción de ideas útiles de los datos, el preprocesamiento de datos es un paso crucial en el aprendizaje automático. Plantea la calidad de los datos. Luego, discutimos la implementación en Sklearn. Primero recuperamos información sobre los datos, incluidos los valores y los tipos de datos faltantes, y luego completamos los valores faltantes. También trabajamos en escalar los datos y una codificación en caliente.