Menu iconMenu icon
Fundamentos de Ingeniería de Datos

Capítulo 6: Codificación de Variables Categóricas

6.3 Ejercicios prácticos para el Capítulo 6

En esta sección práctica, reforzaremos lo que has aprendido en el Capítulo 6 implementando varias técnicas de codificación, incluyendo Codificación por Objetivo, Codificación por Frecuencia y Codificación Ordinal. Estos ejercicios te ayudarán a obtener experiencia práctica y aplicar los conceptos a escenarios del mundo real.

Ejercicio 1: Codificación por Objetivo

Estás trabajando con un conjunto de datos que contiene una columna de Vecindario y la variable objetivo son Precios de Vivienda. Tu tarea es:

Aplicar Codificación por Objetivo a la columna Vecindario calculando la media de Precios de Vivienda para cada vecindario.

Solución:

import pandas as pd

# Sample data
data = {'Neighborhood': ['A', 'B', 'A', 'C', 'B'],
        'SalePrice': [300000, 450000, 350000, 500000, 470000]}

df = pd.DataFrame(data)

# Calculate the mean SalePrice for each neighborhood
neighborhood_mean = df.groupby('Neighborhood')['SalePrice'].mean()

# Apply Target Encoding by mapping the mean SalePrice to the Neighborhood column
df['NeighborhoodEncoded'] = df['Neighborhood'].map(neighborhood_mean)

# View the encoded dataframe
print(df[['Neighborhood', 'SalePrice', 'NeighborhoodEncoded']])

Ejercicio 2: Codificación por Objetivo con Suavizado

Estás trabajando con el mismo conjunto de datos del Ejercicio 1, pero quieres aplicar Codificación por Objetivo con Suavizado para reducir el riesgo de sobreajuste. Usa los siguientes parámetros para el suavizado: alpha = 5.

Solución:

# Smoothing parameter
alpha = 5

# Global mean SalePrice
global_mean = df['SalePrice'].mean()

# Calculate smoothed mean SalePrice for each neighborhood
df['NeighborhoodEncoded'] = df['Neighborhood'].map(lambda x:
    (neighborhood_mean[x] * df['Neighborhood'].value_counts()[x] + global_mean * alpha) /
    (df['Neighborhood'].value_counts()[x] + alpha))

# View the smoothed encoded dataframe
print(df[['Neighborhood', 'NeighborhoodEncoded']])

Ejercicio 3: Codificación por Frecuencia

Estás trabajando con un conjunto de datos que incluye la columna Ciudad. Tu tarea es:

Aplicar Codificación por Frecuencia a la columna Ciudad reemplazando cada ciudad con su frecuencia en el conjunto de datos.

Solución:

# Sample data
data = {'City': ['New York', 'Los Angeles', 'Chicago', 'New York', 'Houston', 'Los Angeles']}

df = pd.DataFrame(data)

# Perform frequency encoding
df['City_Frequency'] = df.groupby('City')['City'].transform('count')

# View the encoded dataframe
print(df)

Ejercicio 4: Codificación Ordinal

Estás trabajando con un conjunto de datos que contiene una columna NivelEducativo, con categorías como SecundariaLicenciaturaMaestría y Doctorado. Tu tarea es:

Aplicar Codificación Ordinal a la columna NivelEducativo, asignando niveles educativos a enteros según su orden de importancia.

Solución:

# Sample data
data = {'EducationLevel': ['High School', 'Bachelor', 'Master', 'PhD', 'Bachelor']}

df = pd.DataFrame(data)

# Define the ordinal mapping
education_order = {'High School': 1, 'Bachelor': 2, 'Master': 3, 'PhD': 4}

# Apply Ordinal Encoding
df['EducationLevelEncoded'] = df['EducationLevel'].map(education_order)

# View the encoded dataframe
print(df)

Ejercicio 5: Manejo de Alta Cardinalidad con Codificación por Frecuencia

Estás trabajando con un conjunto de datos que incluye una columna Categoría de Producto, con cientos de categorías de productos únicas. Tu tarea es:

Aplicar Codificación por Frecuencia a la columna Categoría de Producto para manejar la alta cardinalidad y simplificar el conjunto de datos.

Solución:

# Sample data with high cardinality
data = {'ProductCategory': ['Electronics', 'Furniture', 'Electronics', 'Clothing', 'Furniture', 'Clothing', 'Electronics']}

df = pd.DataFrame(data)

# Perform frequency encoding
df['ProductCategory_Frequency'] = df.groupby('ProductCategory')['ProductCategory'].transform('count')

# View the encoded dataframe
print(df)

Estos ejercicios prácticos te brindan experiencia práctica con varias técnicas de codificación, incluyendo la codificación objetivo, la codificación de frecuencia y la codificación ordinal. Al practicar estos métodos, estarás bien preparado para manejar variables categóricas en modelos de Machine Learning de manera eficiente, especialmente al tratar con características de alta cardinalidad o cuando existen relaciones significativas entre las variables categóricas y la variable objetivo. ¡Sigue practicando y experimentando con diferentes conjuntos de datos para fortalecer tu comprensión de estas técnicas!

6.3 Ejercicios prácticos para el Capítulo 6

En esta sección práctica, reforzaremos lo que has aprendido en el Capítulo 6 implementando varias técnicas de codificación, incluyendo Codificación por Objetivo, Codificación por Frecuencia y Codificación Ordinal. Estos ejercicios te ayudarán a obtener experiencia práctica y aplicar los conceptos a escenarios del mundo real.

Ejercicio 1: Codificación por Objetivo

Estás trabajando con un conjunto de datos que contiene una columna de Vecindario y la variable objetivo son Precios de Vivienda. Tu tarea es:

Aplicar Codificación por Objetivo a la columna Vecindario calculando la media de Precios de Vivienda para cada vecindario.

Solución:

import pandas as pd

# Sample data
data = {'Neighborhood': ['A', 'B', 'A', 'C', 'B'],
        'SalePrice': [300000, 450000, 350000, 500000, 470000]}

df = pd.DataFrame(data)

# Calculate the mean SalePrice for each neighborhood
neighborhood_mean = df.groupby('Neighborhood')['SalePrice'].mean()

# Apply Target Encoding by mapping the mean SalePrice to the Neighborhood column
df['NeighborhoodEncoded'] = df['Neighborhood'].map(neighborhood_mean)

# View the encoded dataframe
print(df[['Neighborhood', 'SalePrice', 'NeighborhoodEncoded']])

Ejercicio 2: Codificación por Objetivo con Suavizado

Estás trabajando con el mismo conjunto de datos del Ejercicio 1, pero quieres aplicar Codificación por Objetivo con Suavizado para reducir el riesgo de sobreajuste. Usa los siguientes parámetros para el suavizado: alpha = 5.

Solución:

# Smoothing parameter
alpha = 5

# Global mean SalePrice
global_mean = df['SalePrice'].mean()

# Calculate smoothed mean SalePrice for each neighborhood
df['NeighborhoodEncoded'] = df['Neighborhood'].map(lambda x:
    (neighborhood_mean[x] * df['Neighborhood'].value_counts()[x] + global_mean * alpha) /
    (df['Neighborhood'].value_counts()[x] + alpha))

# View the smoothed encoded dataframe
print(df[['Neighborhood', 'NeighborhoodEncoded']])

Ejercicio 3: Codificación por Frecuencia

Estás trabajando con un conjunto de datos que incluye la columna Ciudad. Tu tarea es:

Aplicar Codificación por Frecuencia a la columna Ciudad reemplazando cada ciudad con su frecuencia en el conjunto de datos.

Solución:

# Sample data
data = {'City': ['New York', 'Los Angeles', 'Chicago', 'New York', 'Houston', 'Los Angeles']}

df = pd.DataFrame(data)

# Perform frequency encoding
df['City_Frequency'] = df.groupby('City')['City'].transform('count')

# View the encoded dataframe
print(df)

Ejercicio 4: Codificación Ordinal

Estás trabajando con un conjunto de datos que contiene una columna NivelEducativo, con categorías como SecundariaLicenciaturaMaestría y Doctorado. Tu tarea es:

Aplicar Codificación Ordinal a la columna NivelEducativo, asignando niveles educativos a enteros según su orden de importancia.

Solución:

# Sample data
data = {'EducationLevel': ['High School', 'Bachelor', 'Master', 'PhD', 'Bachelor']}

df = pd.DataFrame(data)

# Define the ordinal mapping
education_order = {'High School': 1, 'Bachelor': 2, 'Master': 3, 'PhD': 4}

# Apply Ordinal Encoding
df['EducationLevelEncoded'] = df['EducationLevel'].map(education_order)

# View the encoded dataframe
print(df)

Ejercicio 5: Manejo de Alta Cardinalidad con Codificación por Frecuencia

Estás trabajando con un conjunto de datos que incluye una columna Categoría de Producto, con cientos de categorías de productos únicas. Tu tarea es:

Aplicar Codificación por Frecuencia a la columna Categoría de Producto para manejar la alta cardinalidad y simplificar el conjunto de datos.

Solución:

# Sample data with high cardinality
data = {'ProductCategory': ['Electronics', 'Furniture', 'Electronics', 'Clothing', 'Furniture', 'Clothing', 'Electronics']}

df = pd.DataFrame(data)

# Perform frequency encoding
df['ProductCategory_Frequency'] = df.groupby('ProductCategory')['ProductCategory'].transform('count')

# View the encoded dataframe
print(df)

Estos ejercicios prácticos te brindan experiencia práctica con varias técnicas de codificación, incluyendo la codificación objetivo, la codificación de frecuencia y la codificación ordinal. Al practicar estos métodos, estarás bien preparado para manejar variables categóricas en modelos de Machine Learning de manera eficiente, especialmente al tratar con características de alta cardinalidad o cuando existen relaciones significativas entre las variables categóricas y la variable objetivo. ¡Sigue practicando y experimentando con diferentes conjuntos de datos para fortalecer tu comprensión de estas técnicas!

6.3 Ejercicios prácticos para el Capítulo 6

En esta sección práctica, reforzaremos lo que has aprendido en el Capítulo 6 implementando varias técnicas de codificación, incluyendo Codificación por Objetivo, Codificación por Frecuencia y Codificación Ordinal. Estos ejercicios te ayudarán a obtener experiencia práctica y aplicar los conceptos a escenarios del mundo real.

Ejercicio 1: Codificación por Objetivo

Estás trabajando con un conjunto de datos que contiene una columna de Vecindario y la variable objetivo son Precios de Vivienda. Tu tarea es:

Aplicar Codificación por Objetivo a la columna Vecindario calculando la media de Precios de Vivienda para cada vecindario.

Solución:

import pandas as pd

# Sample data
data = {'Neighborhood': ['A', 'B', 'A', 'C', 'B'],
        'SalePrice': [300000, 450000, 350000, 500000, 470000]}

df = pd.DataFrame(data)

# Calculate the mean SalePrice for each neighborhood
neighborhood_mean = df.groupby('Neighborhood')['SalePrice'].mean()

# Apply Target Encoding by mapping the mean SalePrice to the Neighborhood column
df['NeighborhoodEncoded'] = df['Neighborhood'].map(neighborhood_mean)

# View the encoded dataframe
print(df[['Neighborhood', 'SalePrice', 'NeighborhoodEncoded']])

Ejercicio 2: Codificación por Objetivo con Suavizado

Estás trabajando con el mismo conjunto de datos del Ejercicio 1, pero quieres aplicar Codificación por Objetivo con Suavizado para reducir el riesgo de sobreajuste. Usa los siguientes parámetros para el suavizado: alpha = 5.

Solución:

# Smoothing parameter
alpha = 5

# Global mean SalePrice
global_mean = df['SalePrice'].mean()

# Calculate smoothed mean SalePrice for each neighborhood
df['NeighborhoodEncoded'] = df['Neighborhood'].map(lambda x:
    (neighborhood_mean[x] * df['Neighborhood'].value_counts()[x] + global_mean * alpha) /
    (df['Neighborhood'].value_counts()[x] + alpha))

# View the smoothed encoded dataframe
print(df[['Neighborhood', 'NeighborhoodEncoded']])

Ejercicio 3: Codificación por Frecuencia

Estás trabajando con un conjunto de datos que incluye la columna Ciudad. Tu tarea es:

Aplicar Codificación por Frecuencia a la columna Ciudad reemplazando cada ciudad con su frecuencia en el conjunto de datos.

Solución:

# Sample data
data = {'City': ['New York', 'Los Angeles', 'Chicago', 'New York', 'Houston', 'Los Angeles']}

df = pd.DataFrame(data)

# Perform frequency encoding
df['City_Frequency'] = df.groupby('City')['City'].transform('count')

# View the encoded dataframe
print(df)

Ejercicio 4: Codificación Ordinal

Estás trabajando con un conjunto de datos que contiene una columna NivelEducativo, con categorías como SecundariaLicenciaturaMaestría y Doctorado. Tu tarea es:

Aplicar Codificación Ordinal a la columna NivelEducativo, asignando niveles educativos a enteros según su orden de importancia.

Solución:

# Sample data
data = {'EducationLevel': ['High School', 'Bachelor', 'Master', 'PhD', 'Bachelor']}

df = pd.DataFrame(data)

# Define the ordinal mapping
education_order = {'High School': 1, 'Bachelor': 2, 'Master': 3, 'PhD': 4}

# Apply Ordinal Encoding
df['EducationLevelEncoded'] = df['EducationLevel'].map(education_order)

# View the encoded dataframe
print(df)

Ejercicio 5: Manejo de Alta Cardinalidad con Codificación por Frecuencia

Estás trabajando con un conjunto de datos que incluye una columna Categoría de Producto, con cientos de categorías de productos únicas. Tu tarea es:

Aplicar Codificación por Frecuencia a la columna Categoría de Producto para manejar la alta cardinalidad y simplificar el conjunto de datos.

Solución:

# Sample data with high cardinality
data = {'ProductCategory': ['Electronics', 'Furniture', 'Electronics', 'Clothing', 'Furniture', 'Clothing', 'Electronics']}

df = pd.DataFrame(data)

# Perform frequency encoding
df['ProductCategory_Frequency'] = df.groupby('ProductCategory')['ProductCategory'].transform('count')

# View the encoded dataframe
print(df)

Estos ejercicios prácticos te brindan experiencia práctica con varias técnicas de codificación, incluyendo la codificación objetivo, la codificación de frecuencia y la codificación ordinal. Al practicar estos métodos, estarás bien preparado para manejar variables categóricas en modelos de Machine Learning de manera eficiente, especialmente al tratar con características de alta cardinalidad o cuando existen relaciones significativas entre las variables categóricas y la variable objetivo. ¡Sigue practicando y experimentando con diferentes conjuntos de datos para fortalecer tu comprensión de estas técnicas!

6.3 Ejercicios prácticos para el Capítulo 6

En esta sección práctica, reforzaremos lo que has aprendido en el Capítulo 6 implementando varias técnicas de codificación, incluyendo Codificación por Objetivo, Codificación por Frecuencia y Codificación Ordinal. Estos ejercicios te ayudarán a obtener experiencia práctica y aplicar los conceptos a escenarios del mundo real.

Ejercicio 1: Codificación por Objetivo

Estás trabajando con un conjunto de datos que contiene una columna de Vecindario y la variable objetivo son Precios de Vivienda. Tu tarea es:

Aplicar Codificación por Objetivo a la columna Vecindario calculando la media de Precios de Vivienda para cada vecindario.

Solución:

import pandas as pd

# Sample data
data = {'Neighborhood': ['A', 'B', 'A', 'C', 'B'],
        'SalePrice': [300000, 450000, 350000, 500000, 470000]}

df = pd.DataFrame(data)

# Calculate the mean SalePrice for each neighborhood
neighborhood_mean = df.groupby('Neighborhood')['SalePrice'].mean()

# Apply Target Encoding by mapping the mean SalePrice to the Neighborhood column
df['NeighborhoodEncoded'] = df['Neighborhood'].map(neighborhood_mean)

# View the encoded dataframe
print(df[['Neighborhood', 'SalePrice', 'NeighborhoodEncoded']])

Ejercicio 2: Codificación por Objetivo con Suavizado

Estás trabajando con el mismo conjunto de datos del Ejercicio 1, pero quieres aplicar Codificación por Objetivo con Suavizado para reducir el riesgo de sobreajuste. Usa los siguientes parámetros para el suavizado: alpha = 5.

Solución:

# Smoothing parameter
alpha = 5

# Global mean SalePrice
global_mean = df['SalePrice'].mean()

# Calculate smoothed mean SalePrice for each neighborhood
df['NeighborhoodEncoded'] = df['Neighborhood'].map(lambda x:
    (neighborhood_mean[x] * df['Neighborhood'].value_counts()[x] + global_mean * alpha) /
    (df['Neighborhood'].value_counts()[x] + alpha))

# View the smoothed encoded dataframe
print(df[['Neighborhood', 'NeighborhoodEncoded']])

Ejercicio 3: Codificación por Frecuencia

Estás trabajando con un conjunto de datos que incluye la columna Ciudad. Tu tarea es:

Aplicar Codificación por Frecuencia a la columna Ciudad reemplazando cada ciudad con su frecuencia en el conjunto de datos.

Solución:

# Sample data
data = {'City': ['New York', 'Los Angeles', 'Chicago', 'New York', 'Houston', 'Los Angeles']}

df = pd.DataFrame(data)

# Perform frequency encoding
df['City_Frequency'] = df.groupby('City')['City'].transform('count')

# View the encoded dataframe
print(df)

Ejercicio 4: Codificación Ordinal

Estás trabajando con un conjunto de datos que contiene una columna NivelEducativo, con categorías como SecundariaLicenciaturaMaestría y Doctorado. Tu tarea es:

Aplicar Codificación Ordinal a la columna NivelEducativo, asignando niveles educativos a enteros según su orden de importancia.

Solución:

# Sample data
data = {'EducationLevel': ['High School', 'Bachelor', 'Master', 'PhD', 'Bachelor']}

df = pd.DataFrame(data)

# Define the ordinal mapping
education_order = {'High School': 1, 'Bachelor': 2, 'Master': 3, 'PhD': 4}

# Apply Ordinal Encoding
df['EducationLevelEncoded'] = df['EducationLevel'].map(education_order)

# View the encoded dataframe
print(df)

Ejercicio 5: Manejo de Alta Cardinalidad con Codificación por Frecuencia

Estás trabajando con un conjunto de datos que incluye una columna Categoría de Producto, con cientos de categorías de productos únicas. Tu tarea es:

Aplicar Codificación por Frecuencia a la columna Categoría de Producto para manejar la alta cardinalidad y simplificar el conjunto de datos.

Solución:

# Sample data with high cardinality
data = {'ProductCategory': ['Electronics', 'Furniture', 'Electronics', 'Clothing', 'Furniture', 'Clothing', 'Electronics']}

df = pd.DataFrame(data)

# Perform frequency encoding
df['ProductCategory_Frequency'] = df.groupby('ProductCategory')['ProductCategory'].transform('count')

# View the encoded dataframe
print(df)

Estos ejercicios prácticos te brindan experiencia práctica con varias técnicas de codificación, incluyendo la codificación objetivo, la codificación de frecuencia y la codificación ordinal. Al practicar estos métodos, estarás bien preparado para manejar variables categóricas en modelos de Machine Learning de manera eficiente, especialmente al tratar con características de alta cardinalidad o cuando existen relaciones significativas entre las variables categóricas y la variable objetivo. ¡Sigue practicando y experimentando con diferentes conjuntos de datos para fortalecer tu comprensión de estas técnicas!