Imputación de datos faltantes con fancyimpute

En un conjunto de datos del mundo real, siempre faltarán algunos datos. Esto se asocia principalmente con la forma en que se recopilaron los datos. Los datos faltantes juegan un papel importante en la creación de un modelo predictivo, porque hay algoritmos que no funcionan muy bien con conjuntos de datos faltantes.

Fancyimput

fancyimpute es una biblioteca para algoritmos de imputación de datos faltantes. Fancyimpute utiliza un algoritmo de aprendizaje automático para imputar valores faltantes. Fancyimpute usa toda la columna para imputar los valores faltantes. Hay dos formas en que se pueden imputar los datos faltantes usando Fancyimpute

  1. KNN o K-vecino más cercano
  2. MICE o imputación múltiple por ecuación enstringda

K-vecino más cercano

Para completar los valores que faltan, KNN encuentra los puntos de datos similares entre todas las características. Luego tomó el promedio de todos los puntos para completar los valores faltantes.

Python3

import pandas as pd
import numpy as np
# importing the KNN from fancyimpute library
from fancyimpute import KNN
  
df = pd.DataFrame([[np.nan, 2, np.nan, 0],
                   [3, 4, np.nan, 1],
                   [np.nan, np.nan, np.nan, 5],
                   [np.nan, 3, np.nan, 4],
                   [5,      7,  8,     2],
                   [2,      5,  7,     9]],
                  columns = list('ABCD'))
  
# printing the dataframe
print(df)
  
# calling the KNN class
knn_imputer = KNN()
# imputing the missing value with knn imputer
df = knn_imputer.fit_transform(df)
  
# printing dataframe
print(df)

Producción:

    A    B    C  D
0  NaN  2.0  NaN  0
1  3.0  4.0  NaN  1
2  NaN  NaN  NaN  5
3  NaN  3.0  NaN  4
4  5.0  7.0  8.0  2
5  2.0  5.0  7.0  9
Imputing row 1/6 with 2 missing, elapsed time: 0.001
[[3.23556938 2.         7.75630267 0.]
 [3.         4.         7.825      1.]
 [3.67647071 3.46386587 7.64000033 5.]
 [3.35514006 3.         7.59183674 4.]
 [5.         7.         8.         2.]
 [2.         5.         7.         9.]]

Imputación múltiple por ecuación enstringda:

MICE utiliza imputación múltiple en lugar de imputación única, lo que genera incertidumbre estadística. MICE realiza una regresión múltiple sobre los datos de muestra y toma promedios de ellos

Python3

import pandas as pd
import numpy as np
# importing the MICE from fancyimpute library
from fancyimpute import IterativeImputer
  
df = pd.DataFrame([[np.nan, 2, np.nan, 0],
                   [3, 4, np.nan, 1],
                   [np.nan, np.nan, np.nan, 5],
                   [np.nan, 3, np.nan, 4],
                   [5,      7,  8,     2],
                   [2,      5,  7,     9]],
                  columns = list('ABCD'))
  
# printing the dataframe
print(df)
  
# calling the  MICE class
mice_imputer = IterativeImputer()
# imputing the missing value with mice imputer
df = mice_imputer.fit_transform(df)
  
# printing dataframe
print(df)

Producción

    A    B    C   D
0  NaN  2.0  NaN  0
1  3.0  4.0  NaN  1
2  NaN  NaN  NaN  5
3  NaN  3.0  NaN  4
4  5.0  7.0  8.0  2
5  2.0  5.0  7.0  9
[[3.27262261 2.         7.9809332  0 ]
 [3.         4.         7.9193547  1.]
 [2.91717117 4.35730239 7.47523962 5.]
 [2.77722048 3.         7.53760743 4.]
 [5.         7.         8.         2.]
 [2.         5.         7.         9.]]

Publicación traducida automáticamente

Artículo escrito por iuemon96 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *