Capítulo 7: Creación de Características y Términos de Interacción
7.3 Ejercicios Prácticos para el Capítulo 7
Ahora que hemos explorado los conceptos de creación de características y términos de interacción, es momento de aplicar estas técnicas con algunos ejercicios prácticos. Cada ejercicio está diseñado para ayudarte a practicar la creación de nuevas características, la generación de características polinomiales y la construcción de características cruzadas y términos de interacción. Donde sea necesario, se proporcionan soluciones con código.
Ejercicio 1: Creación de una Característica Logarítmica
Tienes un conjunto de datos con la característica Income, que tiene una distribución sesgada. Tu tarea es:
Crear una nueva característica, LogIncome, aplicando una transformación logarítmica a la característica Income.
Solución:
import numpy as np
import pandas as pd
# Sample data
data = {'Income': [30000, 50000, 75000, 120000, 250000]}
df = pd.DataFrame(data)
# Apply a logarithmic transformation to create the LogIncome feature
df['LogIncome'] = np.log(df['Income'])
# View the original and new features
print(df)
Ejercicio 2: Extracción de Características de Fecha
Estás trabajando con un conjunto de datos que contiene una columna SaleDate, la cual registra la fecha de venta de casas. Tu tarea es:
Extraer tres nuevas características de la columna SaleDate: YearSold, MonthSold y DayOfWeekSold.
Solución:
# Sample data with a date column
data = {'SaleDate': ['2022-01-05', '2021-06-15', '2020-09-22', '2019-11-30']}
df = pd.DataFrame(data)
# Convert SaleDate to a datetime object
df['SaleDate'] = pd.to_datetime(df['SaleDate'])
# Extract new features: Year, Month, Day of the week
df['YearSold'] = df['SaleDate'].dt.year
df['MonthSold'] = df['SaleDate'].dt.month
df['DayOfWeekSold'] = df['SaleDate'].dt.dayofweek
# View the new features
print(df)
Ejercicio 3: Creación de una Característica Cruzada
Estás trabajando con un conjunto de datos que contiene las características HouseSize (en pies cuadrados) y NumBedrooms. Tu tarea es:
Crear una nueva característica, PricePerBedroom, dividiendo HouseSize entre NumBedrooms para normalizar el tamaño de la casa según el número de dormitorios.
Solución:
# Sample data
data = {'HouseSize': [2000, 2500, 3000, 3500, 4000],
'NumBedrooms': [3, 4, 4, 5, 6]}
df = pd.DataFrame(data)
# Create a new feature by dividing HouseSize by NumBedrooms
df['PricePerBedroom'] = df['HouseSize'] / df['NumBedrooms']
# View the new feature
print(df)
Ejercicio 4: Generación de Características Polinomiales
Tienes un conjunto de datos con una única característica Age. Tu tarea es:
Crear características polinomiales de grado 2 (términos al cuadrado) y grado 3 (términos al cubo) para la característica Age.
Solución:
from sklearn.preprocessing import PolynomialFeatures
# Sample data
data = {'Age': [25, 30, 35, 40, 45]}
df = pd.DataFrame(data)
# Initialize PolynomialFeatures object for degrees 2 and 3
poly = PolynomialFeatures(degree=3, include_bias=False)
# Generate polynomial features
polynomial_features = poly.fit_transform(df[['Age']])
# Create a DataFrame for the polynomial features
df_poly = pd.DataFrame(polynomial_features, columns=['Age', 'Age^2', 'Age^3'])
# View the polynomial features
print(df_poly)
Ejercicio 5: Creación de Términos de Interacción
Estás trabajando con un conjunto de datos que contiene las características HousePrice, HouseSize y YearBuilt. Tu tarea es:
Crear tres términos de interacción: Price_Size_Interaction (HousePrice * HouseSize), Price_Year_Interaction (HousePrice * YearBuilt) y Size_Year_Interaction (HouseSize * YearBuilt).
Solución:
# Sample data
data = {'HousePrice': [300000, 500000, 700000],
'HouseSize': [1500, 2000, 2500],
'YearBuilt': [1990, 2000, 2010]}
df = pd.DataFrame(data)
# Create interaction terms
df['Price_Size_Interaction'] = df['HousePrice'] * df['HouseSize']
df['Price_Year_Interaction'] = df['HousePrice'] * df['YearBuilt']
df['Size_Year_Interaction'] = df['HouseSize'] * df['YearBuilt']
# View the interaction terms
print(df)
Ejercicio 6: Combinación de Características Polinomiales e Interacción
Estás trabajando con el mismo conjunto de datos del Ejercicio 5, y ahora tu tarea es:
Crear una característica de interacción polinomial elevando al cuadrado el término Price_Size_Interaction para capturar efectos de orden superior.
Solución:
# Create a polynomial interaction feature by squaring the Price_Size_Interaction term
df['Price_Size_Interaction_Squared'] = df['Price_Size_Interaction'] ** 2
# View the polynomial interaction feature
print(df)
Estos ejercicios te brindan práctica práctica con la creación de características y términos de interacción, ayudándote a comprender cómo generar nuevas características y descubrir relaciones ocultas en los datos. Al dominar estas técnicas, puedes mejorar el rendimiento de tus modelos de machine learning y captar mejor la complejidad de las relaciones en tus conjuntos de datos. ¡Sigue experimentando con diferentes características e interacciones para ver cómo impactan en tu modelo!
7.3 Ejercicios Prácticos para el Capítulo 7
Ahora que hemos explorado los conceptos de creación de características y términos de interacción, es momento de aplicar estas técnicas con algunos ejercicios prácticos. Cada ejercicio está diseñado para ayudarte a practicar la creación de nuevas características, la generación de características polinomiales y la construcción de características cruzadas y términos de interacción. Donde sea necesario, se proporcionan soluciones con código.
Ejercicio 1: Creación de una Característica Logarítmica
Tienes un conjunto de datos con la característica Income, que tiene una distribución sesgada. Tu tarea es:
Crear una nueva característica, LogIncome, aplicando una transformación logarítmica a la característica Income.
Solución:
import numpy as np
import pandas as pd
# Sample data
data = {'Income': [30000, 50000, 75000, 120000, 250000]}
df = pd.DataFrame(data)
# Apply a logarithmic transformation to create the LogIncome feature
df['LogIncome'] = np.log(df['Income'])
# View the original and new features
print(df)
Ejercicio 2: Extracción de Características de Fecha
Estás trabajando con un conjunto de datos que contiene una columna SaleDate, la cual registra la fecha de venta de casas. Tu tarea es:
Extraer tres nuevas características de la columna SaleDate: YearSold, MonthSold y DayOfWeekSold.
Solución:
# Sample data with a date column
data = {'SaleDate': ['2022-01-05', '2021-06-15', '2020-09-22', '2019-11-30']}
df = pd.DataFrame(data)
# Convert SaleDate to a datetime object
df['SaleDate'] = pd.to_datetime(df['SaleDate'])
# Extract new features: Year, Month, Day of the week
df['YearSold'] = df['SaleDate'].dt.year
df['MonthSold'] = df['SaleDate'].dt.month
df['DayOfWeekSold'] = df['SaleDate'].dt.dayofweek
# View the new features
print(df)
Ejercicio 3: Creación de una Característica Cruzada
Estás trabajando con un conjunto de datos que contiene las características HouseSize (en pies cuadrados) y NumBedrooms. Tu tarea es:
Crear una nueva característica, PricePerBedroom, dividiendo HouseSize entre NumBedrooms para normalizar el tamaño de la casa según el número de dormitorios.
Solución:
# Sample data
data = {'HouseSize': [2000, 2500, 3000, 3500, 4000],
'NumBedrooms': [3, 4, 4, 5, 6]}
df = pd.DataFrame(data)
# Create a new feature by dividing HouseSize by NumBedrooms
df['PricePerBedroom'] = df['HouseSize'] / df['NumBedrooms']
# View the new feature
print(df)
Ejercicio 4: Generación de Características Polinomiales
Tienes un conjunto de datos con una única característica Age. Tu tarea es:
Crear características polinomiales de grado 2 (términos al cuadrado) y grado 3 (términos al cubo) para la característica Age.
Solución:
from sklearn.preprocessing import PolynomialFeatures
# Sample data
data = {'Age': [25, 30, 35, 40, 45]}
df = pd.DataFrame(data)
# Initialize PolynomialFeatures object for degrees 2 and 3
poly = PolynomialFeatures(degree=3, include_bias=False)
# Generate polynomial features
polynomial_features = poly.fit_transform(df[['Age']])
# Create a DataFrame for the polynomial features
df_poly = pd.DataFrame(polynomial_features, columns=['Age', 'Age^2', 'Age^3'])
# View the polynomial features
print(df_poly)
Ejercicio 5: Creación de Términos de Interacción
Estás trabajando con un conjunto de datos que contiene las características HousePrice, HouseSize y YearBuilt. Tu tarea es:
Crear tres términos de interacción: Price_Size_Interaction (HousePrice * HouseSize), Price_Year_Interaction (HousePrice * YearBuilt) y Size_Year_Interaction (HouseSize * YearBuilt).
Solución:
# Sample data
data = {'HousePrice': [300000, 500000, 700000],
'HouseSize': [1500, 2000, 2500],
'YearBuilt': [1990, 2000, 2010]}
df = pd.DataFrame(data)
# Create interaction terms
df['Price_Size_Interaction'] = df['HousePrice'] * df['HouseSize']
df['Price_Year_Interaction'] = df['HousePrice'] * df['YearBuilt']
df['Size_Year_Interaction'] = df['HouseSize'] * df['YearBuilt']
# View the interaction terms
print(df)
Ejercicio 6: Combinación de Características Polinomiales e Interacción
Estás trabajando con el mismo conjunto de datos del Ejercicio 5, y ahora tu tarea es:
Crear una característica de interacción polinomial elevando al cuadrado el término Price_Size_Interaction para capturar efectos de orden superior.
Solución:
# Create a polynomial interaction feature by squaring the Price_Size_Interaction term
df['Price_Size_Interaction_Squared'] = df['Price_Size_Interaction'] ** 2
# View the polynomial interaction feature
print(df)
Estos ejercicios te brindan práctica práctica con la creación de características y términos de interacción, ayudándote a comprender cómo generar nuevas características y descubrir relaciones ocultas en los datos. Al dominar estas técnicas, puedes mejorar el rendimiento de tus modelos de machine learning y captar mejor la complejidad de las relaciones en tus conjuntos de datos. ¡Sigue experimentando con diferentes características e interacciones para ver cómo impactan en tu modelo!
7.3 Ejercicios Prácticos para el Capítulo 7
Ahora que hemos explorado los conceptos de creación de características y términos de interacción, es momento de aplicar estas técnicas con algunos ejercicios prácticos. Cada ejercicio está diseñado para ayudarte a practicar la creación de nuevas características, la generación de características polinomiales y la construcción de características cruzadas y términos de interacción. Donde sea necesario, se proporcionan soluciones con código.
Ejercicio 1: Creación de una Característica Logarítmica
Tienes un conjunto de datos con la característica Income, que tiene una distribución sesgada. Tu tarea es:
Crear una nueva característica, LogIncome, aplicando una transformación logarítmica a la característica Income.
Solución:
import numpy as np
import pandas as pd
# Sample data
data = {'Income': [30000, 50000, 75000, 120000, 250000]}
df = pd.DataFrame(data)
# Apply a logarithmic transformation to create the LogIncome feature
df['LogIncome'] = np.log(df['Income'])
# View the original and new features
print(df)
Ejercicio 2: Extracción de Características de Fecha
Estás trabajando con un conjunto de datos que contiene una columna SaleDate, la cual registra la fecha de venta de casas. Tu tarea es:
Extraer tres nuevas características de la columna SaleDate: YearSold, MonthSold y DayOfWeekSold.
Solución:
# Sample data with a date column
data = {'SaleDate': ['2022-01-05', '2021-06-15', '2020-09-22', '2019-11-30']}
df = pd.DataFrame(data)
# Convert SaleDate to a datetime object
df['SaleDate'] = pd.to_datetime(df['SaleDate'])
# Extract new features: Year, Month, Day of the week
df['YearSold'] = df['SaleDate'].dt.year
df['MonthSold'] = df['SaleDate'].dt.month
df['DayOfWeekSold'] = df['SaleDate'].dt.dayofweek
# View the new features
print(df)
Ejercicio 3: Creación de una Característica Cruzada
Estás trabajando con un conjunto de datos que contiene las características HouseSize (en pies cuadrados) y NumBedrooms. Tu tarea es:
Crear una nueva característica, PricePerBedroom, dividiendo HouseSize entre NumBedrooms para normalizar el tamaño de la casa según el número de dormitorios.
Solución:
# Sample data
data = {'HouseSize': [2000, 2500, 3000, 3500, 4000],
'NumBedrooms': [3, 4, 4, 5, 6]}
df = pd.DataFrame(data)
# Create a new feature by dividing HouseSize by NumBedrooms
df['PricePerBedroom'] = df['HouseSize'] / df['NumBedrooms']
# View the new feature
print(df)
Ejercicio 4: Generación de Características Polinomiales
Tienes un conjunto de datos con una única característica Age. Tu tarea es:
Crear características polinomiales de grado 2 (términos al cuadrado) y grado 3 (términos al cubo) para la característica Age.
Solución:
from sklearn.preprocessing import PolynomialFeatures
# Sample data
data = {'Age': [25, 30, 35, 40, 45]}
df = pd.DataFrame(data)
# Initialize PolynomialFeatures object for degrees 2 and 3
poly = PolynomialFeatures(degree=3, include_bias=False)
# Generate polynomial features
polynomial_features = poly.fit_transform(df[['Age']])
# Create a DataFrame for the polynomial features
df_poly = pd.DataFrame(polynomial_features, columns=['Age', 'Age^2', 'Age^3'])
# View the polynomial features
print(df_poly)
Ejercicio 5: Creación de Términos de Interacción
Estás trabajando con un conjunto de datos que contiene las características HousePrice, HouseSize y YearBuilt. Tu tarea es:
Crear tres términos de interacción: Price_Size_Interaction (HousePrice * HouseSize), Price_Year_Interaction (HousePrice * YearBuilt) y Size_Year_Interaction (HouseSize * YearBuilt).
Solución:
# Sample data
data = {'HousePrice': [300000, 500000, 700000],
'HouseSize': [1500, 2000, 2500],
'YearBuilt': [1990, 2000, 2010]}
df = pd.DataFrame(data)
# Create interaction terms
df['Price_Size_Interaction'] = df['HousePrice'] * df['HouseSize']
df['Price_Year_Interaction'] = df['HousePrice'] * df['YearBuilt']
df['Size_Year_Interaction'] = df['HouseSize'] * df['YearBuilt']
# View the interaction terms
print(df)
Ejercicio 6: Combinación de Características Polinomiales e Interacción
Estás trabajando con el mismo conjunto de datos del Ejercicio 5, y ahora tu tarea es:
Crear una característica de interacción polinomial elevando al cuadrado el término Price_Size_Interaction para capturar efectos de orden superior.
Solución:
# Create a polynomial interaction feature by squaring the Price_Size_Interaction term
df['Price_Size_Interaction_Squared'] = df['Price_Size_Interaction'] ** 2
# View the polynomial interaction feature
print(df)
Estos ejercicios te brindan práctica práctica con la creación de características y términos de interacción, ayudándote a comprender cómo generar nuevas características y descubrir relaciones ocultas en los datos. Al dominar estas técnicas, puedes mejorar el rendimiento de tus modelos de machine learning y captar mejor la complejidad de las relaciones en tus conjuntos de datos. ¡Sigue experimentando con diferentes características e interacciones para ver cómo impactan en tu modelo!
7.3 Ejercicios Prácticos para el Capítulo 7
Ahora que hemos explorado los conceptos de creación de características y términos de interacción, es momento de aplicar estas técnicas con algunos ejercicios prácticos. Cada ejercicio está diseñado para ayudarte a practicar la creación de nuevas características, la generación de características polinomiales y la construcción de características cruzadas y términos de interacción. Donde sea necesario, se proporcionan soluciones con código.
Ejercicio 1: Creación de una Característica Logarítmica
Tienes un conjunto de datos con la característica Income, que tiene una distribución sesgada. Tu tarea es:
Crear una nueva característica, LogIncome, aplicando una transformación logarítmica a la característica Income.
Solución:
import numpy as np
import pandas as pd
# Sample data
data = {'Income': [30000, 50000, 75000, 120000, 250000]}
df = pd.DataFrame(data)
# Apply a logarithmic transformation to create the LogIncome feature
df['LogIncome'] = np.log(df['Income'])
# View the original and new features
print(df)
Ejercicio 2: Extracción de Características de Fecha
Estás trabajando con un conjunto de datos que contiene una columna SaleDate, la cual registra la fecha de venta de casas. Tu tarea es:
Extraer tres nuevas características de la columna SaleDate: YearSold, MonthSold y DayOfWeekSold.
Solución:
# Sample data with a date column
data = {'SaleDate': ['2022-01-05', '2021-06-15', '2020-09-22', '2019-11-30']}
df = pd.DataFrame(data)
# Convert SaleDate to a datetime object
df['SaleDate'] = pd.to_datetime(df['SaleDate'])
# Extract new features: Year, Month, Day of the week
df['YearSold'] = df['SaleDate'].dt.year
df['MonthSold'] = df['SaleDate'].dt.month
df['DayOfWeekSold'] = df['SaleDate'].dt.dayofweek
# View the new features
print(df)
Ejercicio 3: Creación de una Característica Cruzada
Estás trabajando con un conjunto de datos que contiene las características HouseSize (en pies cuadrados) y NumBedrooms. Tu tarea es:
Crear una nueva característica, PricePerBedroom, dividiendo HouseSize entre NumBedrooms para normalizar el tamaño de la casa según el número de dormitorios.
Solución:
# Sample data
data = {'HouseSize': [2000, 2500, 3000, 3500, 4000],
'NumBedrooms': [3, 4, 4, 5, 6]}
df = pd.DataFrame(data)
# Create a new feature by dividing HouseSize by NumBedrooms
df['PricePerBedroom'] = df['HouseSize'] / df['NumBedrooms']
# View the new feature
print(df)
Ejercicio 4: Generación de Características Polinomiales
Tienes un conjunto de datos con una única característica Age. Tu tarea es:
Crear características polinomiales de grado 2 (términos al cuadrado) y grado 3 (términos al cubo) para la característica Age.
Solución:
from sklearn.preprocessing import PolynomialFeatures
# Sample data
data = {'Age': [25, 30, 35, 40, 45]}
df = pd.DataFrame(data)
# Initialize PolynomialFeatures object for degrees 2 and 3
poly = PolynomialFeatures(degree=3, include_bias=False)
# Generate polynomial features
polynomial_features = poly.fit_transform(df[['Age']])
# Create a DataFrame for the polynomial features
df_poly = pd.DataFrame(polynomial_features, columns=['Age', 'Age^2', 'Age^3'])
# View the polynomial features
print(df_poly)
Ejercicio 5: Creación de Términos de Interacción
Estás trabajando con un conjunto de datos que contiene las características HousePrice, HouseSize y YearBuilt. Tu tarea es:
Crear tres términos de interacción: Price_Size_Interaction (HousePrice * HouseSize), Price_Year_Interaction (HousePrice * YearBuilt) y Size_Year_Interaction (HouseSize * YearBuilt).
Solución:
# Sample data
data = {'HousePrice': [300000, 500000, 700000],
'HouseSize': [1500, 2000, 2500],
'YearBuilt': [1990, 2000, 2010]}
df = pd.DataFrame(data)
# Create interaction terms
df['Price_Size_Interaction'] = df['HousePrice'] * df['HouseSize']
df['Price_Year_Interaction'] = df['HousePrice'] * df['YearBuilt']
df['Size_Year_Interaction'] = df['HouseSize'] * df['YearBuilt']
# View the interaction terms
print(df)
Ejercicio 6: Combinación de Características Polinomiales e Interacción
Estás trabajando con el mismo conjunto de datos del Ejercicio 5, y ahora tu tarea es:
Crear una característica de interacción polinomial elevando al cuadrado el término Price_Size_Interaction para capturar efectos de orden superior.
Solución:
# Create a polynomial interaction feature by squaring the Price_Size_Interaction term
df['Price_Size_Interaction_Squared'] = df['Price_Size_Interaction'] ** 2
# View the polynomial interaction feature
print(df)
Estos ejercicios te brindan práctica práctica con la creación de características y términos de interacción, ayudándote a comprender cómo generar nuevas características y descubrir relaciones ocultas en los datos. Al dominar estas técnicas, puedes mejorar el rendimiento de tus modelos de machine learning y captar mejor la complejidad de las relaciones en tus conjuntos de datos. ¡Sigue experimentando con diferentes características e interacciones para ver cómo impactan en tu modelo!