ML | Manejo de valores faltantes

Con este artículo, prepárate para ensuciarte las manos con algoritmos, conceptos, matemáticas y codificación de ML.

Para trabajar con código ML, las bibliotecas juegan un papel muy importante en Python, que estudiaremos en detalle, pero veamos una breve descripción de las más importantes:

  • NumPy (Numerical Python): es una de las mejores bibliotecas de computación científica y matemática para Python. Plataformas como Keras, Tensorflow han incorporado operaciones Numpy en Tensors. La función que nos preocupa es su potencia y facilidad de manejo y operación en Array.
  • Pandas : este paquete es muy útil cuando se trata de manejar datos. Esto hace que sea mucho más fácil manipular, agregar y visualizar datos.
  • MatplotLib : Esta librería facilita la tarea de visualizaciones potentes y muy sencillas.

Hay muchas más bibliotecas, pero no tienen ningún uso en este momento. Vamos a empezar.

Descargue el conjunto de datos:
vaya al enlace y descargue Data_for_Missing_Values.csv .

Anaconda:
Les sugiero que instalen Anaconda en sus sistemas. Inicie Spyder nuestro Jupyter en su sistema. La razón detrás de la sugerencia es que Anaconda tiene todas las bibliotecas básicas de Python preinstaladas.
 

A continuación se muestra el código de Python:

# Python code explaining How to
# Handle Missing Value in Dataset
  
""" PART 1
    Importing Libraries """
  
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
  
  
""" PART 2
    Importing Data """
  
data_sets = pd.read_csv('C:\\Users\\Admin\\Desktop\\Data_for_Missing_Values.csv')
  
print ("Data Head : \n", data_sets.head())
  
print ("\n\nData Describe : \n", data_sets.describe())
  
""" PART 3
    Input and Output Data """
  
# All rows but all columns except last
X = data_sets.iloc[:, :-1].values
  
# TES
# All rows but only last column 
Y = data_sets.iloc[:, 3].values
                  
print("\n\nInput : \n", X)
print("\n\nOutput: \n", Y)
  
  
""" PART 4
    Handling the missing values """
  
# We will use sklearn library >> preprocessing package
# Imputer class of that package
from sklearn.preprocessing import Imputer
  
# Using Imputer function to replace NaN
# values with mean of that parameter value
imputer = Imputer(missing_values = "NaN",
                  strategy = "mean", axis = 0)
                    
# Fitting the data, function learns the stats
imputer = imputer.fit(X[:, 1:3])
  
# fit_transform() will execute those
# stats on the input ie. X[:, 1:3]
X[:, 1:3] = imputer.fit_transform(X[:, 1:3])
  
# filling the missing value with mean
print("\n\nNew Input with Mean Value for NaN : \n", X)

Producción :

Data Head : 
    Country   Age   Salary Purchased
0   France  44.0  72000.0        No
1    Spain  27.0  48000.0       Yes
2  Germany  30.0  54000.0        No
3    Spain  38.0  61000.0        No
4  Germany  40.0      NaN       Yes


Data Describe : 
              Age        Salary
count   9.000000      9.000000
mean   38.777778  63777.777778
std     7.693793  12265.579662
min    27.000000  48000.000000
25%    35.000000  54000.000000
50%    38.000000  61000.000000
75%    44.000000  72000.000000
max    50.000000  83000.000000


Input : 
 [['France' 44.0 72000.0]
 ['Spain' 27.0 48000.0]
 ['Germany' 30.0 54000.0]
 ['Spain' 38.0 61000.0]
 ['Germany' 40.0 nan]
 ['France' 35.0 58000.0]
 ['Spain' nan 52000.0]
 ['France' 48.0 79000.0]
 ['Germany' 50.0 83000.0]
 ['France' 37.0 67000.0]]


Output: 
 ['No' 'Yes' 'No' 'No' 'Yes' 'Yes' 'No' 'Yes' 'No' 'Yes']


New Input with Mean Value for NaN : 
 [['France' 44.0 72000.0]
 ['Spain' 27.0 48000.0]
 ['Germany' 30.0 54000.0]
 ['Spain' 38.0 61000.0]
 ['Germany' 40.0 63777.77777777778]
 ['France' 35.0 58000.0]
 ['Spain' 38.77777777777778 52000.0]
 ['France' 48.0 79000.0]
 ['Germany' 50.0 83000.0]
 ['France' 37.0 67000.0]]

 
EXPLICACIÓN DEL CÓDIGO:

  • Parte 1: Importación de bibliotecas: en el código anterior, importó numpy, pandas y matplotlib, pero solo hemos usado pandas.
  • PARTE 2 – Importación de datos:
    • Importe Data_for_Missing_Values.csvdando la ruta a la función pandas read_csv. Ahora «data_sets» es un DataFrame (estructura de datos tabular bidimensional con filas y columnas etiquetadas).
    • Luego imprima las primeras 5 entradas de datos del marco de datos usando la función head() . El número de entradas se puede cambiar, por ejemplo, para los primeros 3 valores podemos usar dataframe.head(3). De manera similar, los últimos valores también se pueden obtener usando la función tail() .
    • Luego usé la función describe() . Brinda un resumen estadístico de los datos que incluye mínimo, máximo, percentil (.25, .5, .75), media y desviación estándar para cada valor de parámetro.
  • PARTE 3 – Datos de entrada y salida: Dividimos nuestro marco de datos para entrada y salida.
  • PARTE 4: manejo de los valores faltantes: uso de la función Imputer() del paquete sklearn.preprocessing.
  •  
    IMPUTER:
    Imputer(missing_values=’NaN’, strategy=’mean’, axis=0, verbose=0, copy=True) es una función de la clase Imputer del paquete sklearn.preprocessing. Su función es transformar el valor del parámetro a partir de valores faltantes (NaN) para establecer un valor estratégico.

    Syntax : sklearn.preprocessing.Imputer()
    
    Parameters : 
    
    -> missing_values  : integer or “NaN”
    -> strategy        : What to impute - mean, median or most_frequent along axis
    -> axis(default=0) : 0 means along column and 1 means along row
    

    Publicación traducida automáticamente

    Artículo escrito por Mohit Gupta_OMG 🙂 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 *