Python | Imputación utilizando KNNimputer()

KNNimputer es una clase de scikit-learn que se usa para completar o predecir los valores que faltan en un conjunto de datos. Es un método más útil que funciona con el enfoque básico del algoritmo KNN en lugar del enfoque ingenuo de llenar todos los valores con la media o la mediana. En este enfoque, especificamos una distancia desde los valores faltantes que también se conoce como el parámetro K. El valor faltante se predecirá con referencia a la media de los vecinos.

Se implementa mediante el método KNNimputer() que contiene los siguientes argumentos:

n_vecinos: número de puntos de datos para incluir más cerca del valor faltante.
métrica: la métrica de distancia que se utilizará para la búsqueda.
valores – {nan_euclidean. invocable} por defecto – pesos nan_euclidianos
: para determinar sobre qué base deben ser tratados los valores vecinos
valores -{uniforme, distancia, invocable} por defecto- uniforme.

Código: código de Python para ilustrar la clase KNNimputor

# import necessary libraries
import numpy as np
import pandas as pd
  
# import the KNNimputer class
from sklearn.impute import KNNImputer
  
  
# create dataset for marks of a student
dict = {'Maths':[80, 90, np.nan, 95], 
        'Chemistry': [60, 65, 56, np.nan], 
        'Physics':[np.nan, 57, 80, 78],
       'Biology' : [78,83,67,np.nan]}
  
# creating a data frame from the list 
Before_imputation = pd.DataFrame(dict)
#print dataset before imputaion
print("Data Before performing imputation\n",Before_imputation)
  
# create an object for KNNImputer
imputer = KNNImputer(n_neighbors=2)
After_imputation = imputer.fit_transform(Before_imputation)
# print dataset after performing the operation
print("\n\nAfter performing imputation\n",After_imputation)

Producción:

Data Before performing imputation
    Maths  Chemistry  Physics  Biology
0   80.0       60.0      NaN     78.0
1   90.0       65.0     57.0     83.0
2    NaN       56.0     80.0     67.0
3   95.0        NaN     78.0      NaN


After performing imputation
 [[80.  60.  68.5 78. ]
 [90.  65.  57.  83. ]
 [87.5 56.  80.  67. ]
 [95.  58.  78.  72.5]]

Nota: Después de transformar los datos, se convierte en una array numpy.

Publicación traducida automáticamente

Artículo escrito por KaranGupta5 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 *