Capítulo 4: Técnicas para Manejar Datos Faltantes
4.3 Ejercicios Prácticos para el Capítulo 4
Ahora que has completado el Capítulo 4, es momento de aplicar lo aprendido mediante ejercicios prácticos. Estos ejercicios se centran en el manejo de datos faltantes en diferentes contextos, utilizando tanto técnicas simples como avanzadas. Los ejercicios te ayudarán a reforzar los conceptos de imputación KNN, MICE, manejo de datos faltantes en grandes conjuntos de datos y técnicas de imputación distribuida.
Ejercicio 1: Imputación KNN
Tienes un conjunto de datos que contiene información sobre empleados, incluyendo su Edad, Salario y Experiencia. El conjunto de datos tiene algunos valores faltantes. Tu tarea es:
Usar imputación KNN para completar los valores faltantes en el conjunto de datos.
Solución:
import numpy as np
import pandas as pd
from sklearn.impute import KNNImputer
# Sample data with missing values
data = {'Age': [25, np.nan, 22, 35, np.nan],
'Salary': [50000, 60000, 52000, np.nan, 58000],
'Experience': [2, 4, 1, np.nan, 3]}
df = pd.DataFrame(data)
# Initialize the KNN Imputer with k=2
knn_imputer = KNNImputer(n_neighbors=2)
# Apply KNN imputation
df_imputed = pd.DataFrame(knn_imputer.fit_transform(df), columns=df.columns)
# View the imputed dataframe
print(df_imputed)
Ejercicio 2: Imputación MICE
Estás trabajando con un conjunto de datos que contiene valores faltantes en múltiples columnas. El conjunto de datos incluye Edad, Salario y Experiencia. Tu tarea es:
Usar MICE (Imputación Multivariante mediante Ecuaciones Encadenadas) para imputar los valores faltantes.
Solución:
from sklearn.experimental import enable_iterative_imputer # To enable IterativeImputer
from sklearn.impute import IterativeImputer
import pandas as pd
# Sample data with missing values
data = {'Age': [25, np.nan, 22, 35, np.nan],
'Salary': [50000, 60000, 52000, np.nan, 58000],
'Experience': [2, 4, 1, np.nan, 3]}
df = pd.DataFrame(data)
# Initialize the MICE imputer
mice_imputer = IterativeImputer()
# Apply MICE imputation
df_mice_imputed = pd.DataFrame(mice_imputer.fit_transform(df), columns=df.columns)
# View the imputed dataframe
print(df_mice_imputed)
Ejercicio 3: Eliminar Columnas con Alta Ausencia de Datos
Estás trabajando con un conjunto de datos grande que contiene varias columnas con diferentes niveles de valores faltantes. Tu tarea es:
Eliminar cualquier columna donde más del 50% de los valores estén ausentes.
Solución:
import pandas as pd
import numpy as np
# Sample large dataset with missing values
data = {'Age': [25, np.nan, 22, 35, np.nan],
'Salary': [50000, np.nan, 52000, np.nan, 58000],
'Experience': [2, 4, 1, np.nan, 3],
'JobTitle': [np.nan, np.nan, 'Engineer', 'Analyst', 'Manager']}
df = pd.DataFrame(data)
# Calculate the proportion of missing values in each column
missing_proportion = df.isnull().mean()
# Drop columns with more than 50% missing values
df_cleaned = df.drop(columns=missing_proportion[missing_proportion > 0.5].index)
# View the cleaned dataframe
print(df_cleaned)
Ejercicio 4: Imputación Simple para Conjuntos de Datos Grandes
Se te proporciona un conjunto de datos grande con características numéricas, incluyendo Edad, Salario y Experiencia. El conjunto de datos contiene algunos valores faltantes, pero deseas utilizar una imputación simple para llenar los valores faltantes de manera eficiente. Tu tarea es:
Aplicar SimpleImputer para llenar los valores faltantes con la media de cada columna.
Solución:
import pandas as pd
from sklearn.impute import SimpleImputer
# Sample large dataset with missing values
data = {'Age': [25, None, 22, 35, None] * 200000,
'Salary': [50000, 60000, None, 80000, 58000] * 200000,
'Experience': [2, 4, 1, None, 3] * 200000}
df_large = pd.DataFrame(data)
# Use SimpleImputer to impute missing values for numeric columns
simple_imputer = SimpleImputer(strategy='mean')
df_large_imputed = pd.DataFrame(simple_imputer.fit_transform(df_large), columns=df_large.columns)
# View the first few rows of the imputed dataframe
print(df_large_imputed.head())
Ejercicio 5: Imputación Distribuida con Dask
Estás trabajando con un conjunto de datos extremadamente grande que contiene valores faltantes en varias columnas. Para manejar los datos faltantes de manera eficiente, decides utilizar Dask para distribuir la computación. Tu tarea es:
Convertir el conjunto de datos en un dataframe de Dask y utilizar SimpleImputer para imputar los valores faltantes.
Solución:
import dask.dataframe as dd
from sklearn.impute import SimpleImputer
import pandas as pd
# Sample large dataset with missing values
data = {'Age': [25, None, 22, 35, None] * 200000,
'Salary': [50000, 60000, None, 80000, 58000] * 200000,
'Experience': [2, 4, 1, None, 3] * 200000}
df_large = pd.DataFrame(data)
# Convert the Pandas dataframe to a Dask dataframe
df_dask = dd.from_pandas(df_large, npartitions=10)
# Define a SimpleImputer
simple_imputer = SimpleImputer(strategy='mean')
# Apply the imputer on the Dask dataframe
df_dask_imputed = df_dask.map_partitions(lambda df: pd.DataFrame(simple_imputer.fit_transform(df), columns=df.columns))
# Compute the result
df_dask_imputed = df_dask_imputed.compute()
# View the first few rows of the imputed dataframe
print(df_dask_imputed.head())
Estos ejercicios prácticos te brindan experiencia práctica con diversas técnicas para manejar datos faltantes, desde métodos básicos de imputación hasta técnicas avanzadas de computación distribuida. Practicar estos métodos te permitirá gestionar datos faltantes de manera efectiva en conjuntos de datos pequeños y grandes, asegurando que tus modelos se mantengan precisos y robustos. ¡Sigue practicando y explorando estos métodos a medida que trabajes con diferentes conjuntos de datos!
4.3 Ejercicios Prácticos para el Capítulo 4
Ahora que has completado el Capítulo 4, es momento de aplicar lo aprendido mediante ejercicios prácticos. Estos ejercicios se centran en el manejo de datos faltantes en diferentes contextos, utilizando tanto técnicas simples como avanzadas. Los ejercicios te ayudarán a reforzar los conceptos de imputación KNN, MICE, manejo de datos faltantes en grandes conjuntos de datos y técnicas de imputación distribuida.
Ejercicio 1: Imputación KNN
Tienes un conjunto de datos que contiene información sobre empleados, incluyendo su Edad, Salario y Experiencia. El conjunto de datos tiene algunos valores faltantes. Tu tarea es:
Usar imputación KNN para completar los valores faltantes en el conjunto de datos.
Solución:
import numpy as np
import pandas as pd
from sklearn.impute import KNNImputer
# Sample data with missing values
data = {'Age': [25, np.nan, 22, 35, np.nan],
'Salary': [50000, 60000, 52000, np.nan, 58000],
'Experience': [2, 4, 1, np.nan, 3]}
df = pd.DataFrame(data)
# Initialize the KNN Imputer with k=2
knn_imputer = KNNImputer(n_neighbors=2)
# Apply KNN imputation
df_imputed = pd.DataFrame(knn_imputer.fit_transform(df), columns=df.columns)
# View the imputed dataframe
print(df_imputed)
Ejercicio 2: Imputación MICE
Estás trabajando con un conjunto de datos que contiene valores faltantes en múltiples columnas. El conjunto de datos incluye Edad, Salario y Experiencia. Tu tarea es:
Usar MICE (Imputación Multivariante mediante Ecuaciones Encadenadas) para imputar los valores faltantes.
Solución:
from sklearn.experimental import enable_iterative_imputer # To enable IterativeImputer
from sklearn.impute import IterativeImputer
import pandas as pd
# Sample data with missing values
data = {'Age': [25, np.nan, 22, 35, np.nan],
'Salary': [50000, 60000, 52000, np.nan, 58000],
'Experience': [2, 4, 1, np.nan, 3]}
df = pd.DataFrame(data)
# Initialize the MICE imputer
mice_imputer = IterativeImputer()
# Apply MICE imputation
df_mice_imputed = pd.DataFrame(mice_imputer.fit_transform(df), columns=df.columns)
# View the imputed dataframe
print(df_mice_imputed)
Ejercicio 3: Eliminar Columnas con Alta Ausencia de Datos
Estás trabajando con un conjunto de datos grande que contiene varias columnas con diferentes niveles de valores faltantes. Tu tarea es:
Eliminar cualquier columna donde más del 50% de los valores estén ausentes.
Solución:
import pandas as pd
import numpy as np
# Sample large dataset with missing values
data = {'Age': [25, np.nan, 22, 35, np.nan],
'Salary': [50000, np.nan, 52000, np.nan, 58000],
'Experience': [2, 4, 1, np.nan, 3],
'JobTitle': [np.nan, np.nan, 'Engineer', 'Analyst', 'Manager']}
df = pd.DataFrame(data)
# Calculate the proportion of missing values in each column
missing_proportion = df.isnull().mean()
# Drop columns with more than 50% missing values
df_cleaned = df.drop(columns=missing_proportion[missing_proportion > 0.5].index)
# View the cleaned dataframe
print(df_cleaned)
Ejercicio 4: Imputación Simple para Conjuntos de Datos Grandes
Se te proporciona un conjunto de datos grande con características numéricas, incluyendo Edad, Salario y Experiencia. El conjunto de datos contiene algunos valores faltantes, pero deseas utilizar una imputación simple para llenar los valores faltantes de manera eficiente. Tu tarea es:
Aplicar SimpleImputer para llenar los valores faltantes con la media de cada columna.
Solución:
import pandas as pd
from sklearn.impute import SimpleImputer
# Sample large dataset with missing values
data = {'Age': [25, None, 22, 35, None] * 200000,
'Salary': [50000, 60000, None, 80000, 58000] * 200000,
'Experience': [2, 4, 1, None, 3] * 200000}
df_large = pd.DataFrame(data)
# Use SimpleImputer to impute missing values for numeric columns
simple_imputer = SimpleImputer(strategy='mean')
df_large_imputed = pd.DataFrame(simple_imputer.fit_transform(df_large), columns=df_large.columns)
# View the first few rows of the imputed dataframe
print(df_large_imputed.head())
Ejercicio 5: Imputación Distribuida con Dask
Estás trabajando con un conjunto de datos extremadamente grande que contiene valores faltantes en varias columnas. Para manejar los datos faltantes de manera eficiente, decides utilizar Dask para distribuir la computación. Tu tarea es:
Convertir el conjunto de datos en un dataframe de Dask y utilizar SimpleImputer para imputar los valores faltantes.
Solución:
import dask.dataframe as dd
from sklearn.impute import SimpleImputer
import pandas as pd
# Sample large dataset with missing values
data = {'Age': [25, None, 22, 35, None] * 200000,
'Salary': [50000, 60000, None, 80000, 58000] * 200000,
'Experience': [2, 4, 1, None, 3] * 200000}
df_large = pd.DataFrame(data)
# Convert the Pandas dataframe to a Dask dataframe
df_dask = dd.from_pandas(df_large, npartitions=10)
# Define a SimpleImputer
simple_imputer = SimpleImputer(strategy='mean')
# Apply the imputer on the Dask dataframe
df_dask_imputed = df_dask.map_partitions(lambda df: pd.DataFrame(simple_imputer.fit_transform(df), columns=df.columns))
# Compute the result
df_dask_imputed = df_dask_imputed.compute()
# View the first few rows of the imputed dataframe
print(df_dask_imputed.head())
Estos ejercicios prácticos te brindan experiencia práctica con diversas técnicas para manejar datos faltantes, desde métodos básicos de imputación hasta técnicas avanzadas de computación distribuida. Practicar estos métodos te permitirá gestionar datos faltantes de manera efectiva en conjuntos de datos pequeños y grandes, asegurando que tus modelos se mantengan precisos y robustos. ¡Sigue practicando y explorando estos métodos a medida que trabajes con diferentes conjuntos de datos!
4.3 Ejercicios Prácticos para el Capítulo 4
Ahora que has completado el Capítulo 4, es momento de aplicar lo aprendido mediante ejercicios prácticos. Estos ejercicios se centran en el manejo de datos faltantes en diferentes contextos, utilizando tanto técnicas simples como avanzadas. Los ejercicios te ayudarán a reforzar los conceptos de imputación KNN, MICE, manejo de datos faltantes en grandes conjuntos de datos y técnicas de imputación distribuida.
Ejercicio 1: Imputación KNN
Tienes un conjunto de datos que contiene información sobre empleados, incluyendo su Edad, Salario y Experiencia. El conjunto de datos tiene algunos valores faltantes. Tu tarea es:
Usar imputación KNN para completar los valores faltantes en el conjunto de datos.
Solución:
import numpy as np
import pandas as pd
from sklearn.impute import KNNImputer
# Sample data with missing values
data = {'Age': [25, np.nan, 22, 35, np.nan],
'Salary': [50000, 60000, 52000, np.nan, 58000],
'Experience': [2, 4, 1, np.nan, 3]}
df = pd.DataFrame(data)
# Initialize the KNN Imputer with k=2
knn_imputer = KNNImputer(n_neighbors=2)
# Apply KNN imputation
df_imputed = pd.DataFrame(knn_imputer.fit_transform(df), columns=df.columns)
# View the imputed dataframe
print(df_imputed)
Ejercicio 2: Imputación MICE
Estás trabajando con un conjunto de datos que contiene valores faltantes en múltiples columnas. El conjunto de datos incluye Edad, Salario y Experiencia. Tu tarea es:
Usar MICE (Imputación Multivariante mediante Ecuaciones Encadenadas) para imputar los valores faltantes.
Solución:
from sklearn.experimental import enable_iterative_imputer # To enable IterativeImputer
from sklearn.impute import IterativeImputer
import pandas as pd
# Sample data with missing values
data = {'Age': [25, np.nan, 22, 35, np.nan],
'Salary': [50000, 60000, 52000, np.nan, 58000],
'Experience': [2, 4, 1, np.nan, 3]}
df = pd.DataFrame(data)
# Initialize the MICE imputer
mice_imputer = IterativeImputer()
# Apply MICE imputation
df_mice_imputed = pd.DataFrame(mice_imputer.fit_transform(df), columns=df.columns)
# View the imputed dataframe
print(df_mice_imputed)
Ejercicio 3: Eliminar Columnas con Alta Ausencia de Datos
Estás trabajando con un conjunto de datos grande que contiene varias columnas con diferentes niveles de valores faltantes. Tu tarea es:
Eliminar cualquier columna donde más del 50% de los valores estén ausentes.
Solución:
import pandas as pd
import numpy as np
# Sample large dataset with missing values
data = {'Age': [25, np.nan, 22, 35, np.nan],
'Salary': [50000, np.nan, 52000, np.nan, 58000],
'Experience': [2, 4, 1, np.nan, 3],
'JobTitle': [np.nan, np.nan, 'Engineer', 'Analyst', 'Manager']}
df = pd.DataFrame(data)
# Calculate the proportion of missing values in each column
missing_proportion = df.isnull().mean()
# Drop columns with more than 50% missing values
df_cleaned = df.drop(columns=missing_proportion[missing_proportion > 0.5].index)
# View the cleaned dataframe
print(df_cleaned)
Ejercicio 4: Imputación Simple para Conjuntos de Datos Grandes
Se te proporciona un conjunto de datos grande con características numéricas, incluyendo Edad, Salario y Experiencia. El conjunto de datos contiene algunos valores faltantes, pero deseas utilizar una imputación simple para llenar los valores faltantes de manera eficiente. Tu tarea es:
Aplicar SimpleImputer para llenar los valores faltantes con la media de cada columna.
Solución:
import pandas as pd
from sklearn.impute import SimpleImputer
# Sample large dataset with missing values
data = {'Age': [25, None, 22, 35, None] * 200000,
'Salary': [50000, 60000, None, 80000, 58000] * 200000,
'Experience': [2, 4, 1, None, 3] * 200000}
df_large = pd.DataFrame(data)
# Use SimpleImputer to impute missing values for numeric columns
simple_imputer = SimpleImputer(strategy='mean')
df_large_imputed = pd.DataFrame(simple_imputer.fit_transform(df_large), columns=df_large.columns)
# View the first few rows of the imputed dataframe
print(df_large_imputed.head())
Ejercicio 5: Imputación Distribuida con Dask
Estás trabajando con un conjunto de datos extremadamente grande que contiene valores faltantes en varias columnas. Para manejar los datos faltantes de manera eficiente, decides utilizar Dask para distribuir la computación. Tu tarea es:
Convertir el conjunto de datos en un dataframe de Dask y utilizar SimpleImputer para imputar los valores faltantes.
Solución:
import dask.dataframe as dd
from sklearn.impute import SimpleImputer
import pandas as pd
# Sample large dataset with missing values
data = {'Age': [25, None, 22, 35, None] * 200000,
'Salary': [50000, 60000, None, 80000, 58000] * 200000,
'Experience': [2, 4, 1, None, 3] * 200000}
df_large = pd.DataFrame(data)
# Convert the Pandas dataframe to a Dask dataframe
df_dask = dd.from_pandas(df_large, npartitions=10)
# Define a SimpleImputer
simple_imputer = SimpleImputer(strategy='mean')
# Apply the imputer on the Dask dataframe
df_dask_imputed = df_dask.map_partitions(lambda df: pd.DataFrame(simple_imputer.fit_transform(df), columns=df.columns))
# Compute the result
df_dask_imputed = df_dask_imputed.compute()
# View the first few rows of the imputed dataframe
print(df_dask_imputed.head())
Estos ejercicios prácticos te brindan experiencia práctica con diversas técnicas para manejar datos faltantes, desde métodos básicos de imputación hasta técnicas avanzadas de computación distribuida. Practicar estos métodos te permitirá gestionar datos faltantes de manera efectiva en conjuntos de datos pequeños y grandes, asegurando que tus modelos se mantengan precisos y robustos. ¡Sigue practicando y explorando estos métodos a medida que trabajes con diferentes conjuntos de datos!
4.3 Ejercicios Prácticos para el Capítulo 4
Ahora que has completado el Capítulo 4, es momento de aplicar lo aprendido mediante ejercicios prácticos. Estos ejercicios se centran en el manejo de datos faltantes en diferentes contextos, utilizando tanto técnicas simples como avanzadas. Los ejercicios te ayudarán a reforzar los conceptos de imputación KNN, MICE, manejo de datos faltantes en grandes conjuntos de datos y técnicas de imputación distribuida.
Ejercicio 1: Imputación KNN
Tienes un conjunto de datos que contiene información sobre empleados, incluyendo su Edad, Salario y Experiencia. El conjunto de datos tiene algunos valores faltantes. Tu tarea es:
Usar imputación KNN para completar los valores faltantes en el conjunto de datos.
Solución:
import numpy as np
import pandas as pd
from sklearn.impute import KNNImputer
# Sample data with missing values
data = {'Age': [25, np.nan, 22, 35, np.nan],
'Salary': [50000, 60000, 52000, np.nan, 58000],
'Experience': [2, 4, 1, np.nan, 3]}
df = pd.DataFrame(data)
# Initialize the KNN Imputer with k=2
knn_imputer = KNNImputer(n_neighbors=2)
# Apply KNN imputation
df_imputed = pd.DataFrame(knn_imputer.fit_transform(df), columns=df.columns)
# View the imputed dataframe
print(df_imputed)
Ejercicio 2: Imputación MICE
Estás trabajando con un conjunto de datos que contiene valores faltantes en múltiples columnas. El conjunto de datos incluye Edad, Salario y Experiencia. Tu tarea es:
Usar MICE (Imputación Multivariante mediante Ecuaciones Encadenadas) para imputar los valores faltantes.
Solución:
from sklearn.experimental import enable_iterative_imputer # To enable IterativeImputer
from sklearn.impute import IterativeImputer
import pandas as pd
# Sample data with missing values
data = {'Age': [25, np.nan, 22, 35, np.nan],
'Salary': [50000, 60000, 52000, np.nan, 58000],
'Experience': [2, 4, 1, np.nan, 3]}
df = pd.DataFrame(data)
# Initialize the MICE imputer
mice_imputer = IterativeImputer()
# Apply MICE imputation
df_mice_imputed = pd.DataFrame(mice_imputer.fit_transform(df), columns=df.columns)
# View the imputed dataframe
print(df_mice_imputed)
Ejercicio 3: Eliminar Columnas con Alta Ausencia de Datos
Estás trabajando con un conjunto de datos grande que contiene varias columnas con diferentes niveles de valores faltantes. Tu tarea es:
Eliminar cualquier columna donde más del 50% de los valores estén ausentes.
Solución:
import pandas as pd
import numpy as np
# Sample large dataset with missing values
data = {'Age': [25, np.nan, 22, 35, np.nan],
'Salary': [50000, np.nan, 52000, np.nan, 58000],
'Experience': [2, 4, 1, np.nan, 3],
'JobTitle': [np.nan, np.nan, 'Engineer', 'Analyst', 'Manager']}
df = pd.DataFrame(data)
# Calculate the proportion of missing values in each column
missing_proportion = df.isnull().mean()
# Drop columns with more than 50% missing values
df_cleaned = df.drop(columns=missing_proportion[missing_proportion > 0.5].index)
# View the cleaned dataframe
print(df_cleaned)
Ejercicio 4: Imputación Simple para Conjuntos de Datos Grandes
Se te proporciona un conjunto de datos grande con características numéricas, incluyendo Edad, Salario y Experiencia. El conjunto de datos contiene algunos valores faltantes, pero deseas utilizar una imputación simple para llenar los valores faltantes de manera eficiente. Tu tarea es:
Aplicar SimpleImputer para llenar los valores faltantes con la media de cada columna.
Solución:
import pandas as pd
from sklearn.impute import SimpleImputer
# Sample large dataset with missing values
data = {'Age': [25, None, 22, 35, None] * 200000,
'Salary': [50000, 60000, None, 80000, 58000] * 200000,
'Experience': [2, 4, 1, None, 3] * 200000}
df_large = pd.DataFrame(data)
# Use SimpleImputer to impute missing values for numeric columns
simple_imputer = SimpleImputer(strategy='mean')
df_large_imputed = pd.DataFrame(simple_imputer.fit_transform(df_large), columns=df_large.columns)
# View the first few rows of the imputed dataframe
print(df_large_imputed.head())
Ejercicio 5: Imputación Distribuida con Dask
Estás trabajando con un conjunto de datos extremadamente grande que contiene valores faltantes en varias columnas. Para manejar los datos faltantes de manera eficiente, decides utilizar Dask para distribuir la computación. Tu tarea es:
Convertir el conjunto de datos en un dataframe de Dask y utilizar SimpleImputer para imputar los valores faltantes.
Solución:
import dask.dataframe as dd
from sklearn.impute import SimpleImputer
import pandas as pd
# Sample large dataset with missing values
data = {'Age': [25, None, 22, 35, None] * 200000,
'Salary': [50000, 60000, None, 80000, 58000] * 200000,
'Experience': [2, 4, 1, None, 3] * 200000}
df_large = pd.DataFrame(data)
# Convert the Pandas dataframe to a Dask dataframe
df_dask = dd.from_pandas(df_large, npartitions=10)
# Define a SimpleImputer
simple_imputer = SimpleImputer(strategy='mean')
# Apply the imputer on the Dask dataframe
df_dask_imputed = df_dask.map_partitions(lambda df: pd.DataFrame(simple_imputer.fit_transform(df), columns=df.columns))
# Compute the result
df_dask_imputed = df_dask_imputed.compute()
# View the first few rows of the imputed dataframe
print(df_dask_imputed.head())
Estos ejercicios prácticos te brindan experiencia práctica con diversas técnicas para manejar datos faltantes, desde métodos básicos de imputación hasta técnicas avanzadas de computación distribuida. Practicar estos métodos te permitirá gestionar datos faltantes de manera efectiva en conjuntos de datos pequeños y grandes, asegurando que tus modelos se mantengan precisos y robustos. ¡Sigue practicando y explorando estos métodos a medida que trabajes con diferentes conjuntos de datos!