Capítulo 5: Transformando y Escalando Características
5.3 Ejercicios Prácticos para el Capítulo 5
Ahora que has completado el Capítulo 5, es momento de aplicar lo aprendido a través de ejercicios prácticos. Estos ejercicios se enfocan en la escalación y las transformaciones no lineales, cubriendo transformaciones logarítmicas, de raíz cuadrada, de raíz cúbica y de potencia. Cada ejercicio incluye soluciones para ayudarte a solidificar tu comprensión de estos conceptos clave.
Ejercicio 1: Escalado Min-Max
Estás trabajando con un conjunto de datos que contiene las siguientes columnas: Edad e Ingresos. Tu tarea es:
Aplicar escalado Min-Max a las columnas de Edad e Ingresos, transformando los valores a un rango entre 0 y 1.
Solución:
import pandas as pd
from sklearn.preprocessing import MinMaxScaler
# Sample data
data = {'Age': [25, 40, 35, 50, 60],
'Income': [40000, 50000, 60000, 80000, 100000]}
df = pd.DataFrame(data)
# Initialize the Min-Max Scaler
scaler = MinMaxScaler()
# Apply the scaler to the dataframe
df_scaled = pd.DataFrame(scaler.fit_transform(df), columns=df.columns)
# View the scaled dataframe
print(df_scaled)
Ejercicio 2: Estandarización (Normalización de Z-Score)
Estás trabajando con el mismo conjunto de datos que en el Ejercicio 1. En esta ocasión, tu tarea es:
Aplicar Estandarización (normalización de Z-score) a las columnas de Edad e Ingresos.
Solución:
from sklearn.preprocessing import StandardScaler
# Sample data
data = {'Age': [25, 40, 35, 50, 60],
'Income': [40000, 50000, 60000, 80000, 100000]}
df = pd.DataFrame(data)
# Initialize the Standard Scaler
scaler = StandardScaler()
# Apply the scaler to the dataframe
df_standardized = pd.DataFrame(scaler.fit_transform(df), columns=df.columns)
# View the standardized dataframe
print(df_standardized)
Ejercicio 3: Transformación Logarítmica
Estás trabajando con un conjunto de datos que contiene la columna PreciosCasas, cuyos valores presentan una fuerte asimetría hacia la derecha. Tu tarea es:
Aplicar una transformación logarítmica a la columna PreciosCasas.
Solución:
import numpy as np
import pandas as pd
# Sample data with a right-skewed distribution
data = {'HousePrices': [50000, 120000, 250000, 500000, 1200000, 2500000]}
df = pd.DataFrame(data)
# Apply a logarithmic transformation
df['LogHousePrices'] = np.log(df['HousePrices'])
# View the transformed data
print(df)
Ejercicio 4: Transformación de Raíz Cuadrada
Estás trabajando con los mismos datos de PreciosCasas. Tu tarea es:
Aplicar una transformación de raíz cuadrada a la columna PreciosCasas.
Solución:
# Apply a square root transformation
df['SqrtHousePrices'] = np.sqrt(df['HousePrices'])
# View the transformed data
print(df)
Ejercicio 5: Transformación de Raíz Cúbica
Te han dado un conjunto de datos con la columna ValoresPropiedad, que contiene tanto valores positivos como negativos. Tu tarea es:
Aplicar una transformación de raíz cúbica a la columna ValoresPropiedad.
Solución:
# Sample data with both positive and negative values
data = {'PropertyValues': [-8000, -5000, 0, 5000, 10000, 20000]}
df = pd.DataFrame(data)
# Apply a cube root transformation
df['CubeRootPropertyValues'] = np.cbrt(df['PropertyValues'])
# View the transformed data
print(df)
Ejercicio 6: Transformación Box-Cox
Estás trabajando con un conjunto de datos que contiene valores de Ingresos, los cuales son positivos pero están moderadamente sesgados. Tu tarea es:
Aplicar la transformación Box-Cox a la columna Ingresos usando el PowerTransformer de Scikit-learn.
Solución:
from sklearn.preprocessing import PowerTransformer
import pandas as pd
# Sample data (positive values only for Box-Cox)
data = {'Income': [30000, 50000, 100000, 200000, 500000]}
df = pd.DataFrame(data)
# Apply the Box-Cox transformation
boxcox_transformer = PowerTransformer(method='box-cox')
df['BoxCoxIncome'] = boxcox_transformer.fit_transform(df[['Income']])
# View the transformed data
print(df)
Ejercicio 7: Transformación Yeo-Johnson
Estás trabajando con un conjunto de datos que contiene la columna Ganancia, la cual incluye tanto valores positivos como negativos. Tu tarea es:
Aplicar la transformación Yeo-Johnson a la columna Ganancia usando el PowerTransformer de Scikit-learn.
Solución:
from sklearn.preprocessing import PowerTransformer
import pandas as pd
# Sample data with positive and negative values
data = {'Profit': [-5000, -2000, 0, 3000, 15000]}
df = pd.DataFrame(data)
# Apply the Yeo-Johnson transformation
yeojohnson_transformer = PowerTransformer(method='yeo-johnson')
df['YeoJohnsonProfit'] = yeojohnson_transformer.fit_transform(df[['Profit']])
# View the transformed data
print(df)
Estas prácticas proporcionan experiencia práctica con la escalación, normalización y transformaciones no lineales, incluidas las transformaciones logarítmica, raíz cuadrada, raíz cúbica, Box-Cox y Yeo-Johnson. Al practicar estas técnicas, puedes preparar datos con confianza para modelos de machine learning, asegurándote de que las características estén bien escaladas, equilibradas y optimizadas para el rendimiento. Sigue practicando y explorando estos métodos para manejar una variedad de distribuciones de datos.
5.3 Ejercicios Prácticos para el Capítulo 5
Ahora que has completado el Capítulo 5, es momento de aplicar lo aprendido a través de ejercicios prácticos. Estos ejercicios se enfocan en la escalación y las transformaciones no lineales, cubriendo transformaciones logarítmicas, de raíz cuadrada, de raíz cúbica y de potencia. Cada ejercicio incluye soluciones para ayudarte a solidificar tu comprensión de estos conceptos clave.
Ejercicio 1: Escalado Min-Max
Estás trabajando con un conjunto de datos que contiene las siguientes columnas: Edad e Ingresos. Tu tarea es:
Aplicar escalado Min-Max a las columnas de Edad e Ingresos, transformando los valores a un rango entre 0 y 1.
Solución:
import pandas as pd
from sklearn.preprocessing import MinMaxScaler
# Sample data
data = {'Age': [25, 40, 35, 50, 60],
'Income': [40000, 50000, 60000, 80000, 100000]}
df = pd.DataFrame(data)
# Initialize the Min-Max Scaler
scaler = MinMaxScaler()
# Apply the scaler to the dataframe
df_scaled = pd.DataFrame(scaler.fit_transform(df), columns=df.columns)
# View the scaled dataframe
print(df_scaled)
Ejercicio 2: Estandarización (Normalización de Z-Score)
Estás trabajando con el mismo conjunto de datos que en el Ejercicio 1. En esta ocasión, tu tarea es:
Aplicar Estandarización (normalización de Z-score) a las columnas de Edad e Ingresos.
Solución:
from sklearn.preprocessing import StandardScaler
# Sample data
data = {'Age': [25, 40, 35, 50, 60],
'Income': [40000, 50000, 60000, 80000, 100000]}
df = pd.DataFrame(data)
# Initialize the Standard Scaler
scaler = StandardScaler()
# Apply the scaler to the dataframe
df_standardized = pd.DataFrame(scaler.fit_transform(df), columns=df.columns)
# View the standardized dataframe
print(df_standardized)
Ejercicio 3: Transformación Logarítmica
Estás trabajando con un conjunto de datos que contiene la columna PreciosCasas, cuyos valores presentan una fuerte asimetría hacia la derecha. Tu tarea es:
Aplicar una transformación logarítmica a la columna PreciosCasas.
Solución:
import numpy as np
import pandas as pd
# Sample data with a right-skewed distribution
data = {'HousePrices': [50000, 120000, 250000, 500000, 1200000, 2500000]}
df = pd.DataFrame(data)
# Apply a logarithmic transformation
df['LogHousePrices'] = np.log(df['HousePrices'])
# View the transformed data
print(df)
Ejercicio 4: Transformación de Raíz Cuadrada
Estás trabajando con los mismos datos de PreciosCasas. Tu tarea es:
Aplicar una transformación de raíz cuadrada a la columna PreciosCasas.
Solución:
# Apply a square root transformation
df['SqrtHousePrices'] = np.sqrt(df['HousePrices'])
# View the transformed data
print(df)
Ejercicio 5: Transformación de Raíz Cúbica
Te han dado un conjunto de datos con la columna ValoresPropiedad, que contiene tanto valores positivos como negativos. Tu tarea es:
Aplicar una transformación de raíz cúbica a la columna ValoresPropiedad.
Solución:
# Sample data with both positive and negative values
data = {'PropertyValues': [-8000, -5000, 0, 5000, 10000, 20000]}
df = pd.DataFrame(data)
# Apply a cube root transformation
df['CubeRootPropertyValues'] = np.cbrt(df['PropertyValues'])
# View the transformed data
print(df)
Ejercicio 6: Transformación Box-Cox
Estás trabajando con un conjunto de datos que contiene valores de Ingresos, los cuales son positivos pero están moderadamente sesgados. Tu tarea es:
Aplicar la transformación Box-Cox a la columna Ingresos usando el PowerTransformer de Scikit-learn.
Solución:
from sklearn.preprocessing import PowerTransformer
import pandas as pd
# Sample data (positive values only for Box-Cox)
data = {'Income': [30000, 50000, 100000, 200000, 500000]}
df = pd.DataFrame(data)
# Apply the Box-Cox transformation
boxcox_transformer = PowerTransformer(method='box-cox')
df['BoxCoxIncome'] = boxcox_transformer.fit_transform(df[['Income']])
# View the transformed data
print(df)
Ejercicio 7: Transformación Yeo-Johnson
Estás trabajando con un conjunto de datos que contiene la columna Ganancia, la cual incluye tanto valores positivos como negativos. Tu tarea es:
Aplicar la transformación Yeo-Johnson a la columna Ganancia usando el PowerTransformer de Scikit-learn.
Solución:
from sklearn.preprocessing import PowerTransformer
import pandas as pd
# Sample data with positive and negative values
data = {'Profit': [-5000, -2000, 0, 3000, 15000]}
df = pd.DataFrame(data)
# Apply the Yeo-Johnson transformation
yeojohnson_transformer = PowerTransformer(method='yeo-johnson')
df['YeoJohnsonProfit'] = yeojohnson_transformer.fit_transform(df[['Profit']])
# View the transformed data
print(df)
Estas prácticas proporcionan experiencia práctica con la escalación, normalización y transformaciones no lineales, incluidas las transformaciones logarítmica, raíz cuadrada, raíz cúbica, Box-Cox y Yeo-Johnson. Al practicar estas técnicas, puedes preparar datos con confianza para modelos de machine learning, asegurándote de que las características estén bien escaladas, equilibradas y optimizadas para el rendimiento. Sigue practicando y explorando estos métodos para manejar una variedad de distribuciones de datos.
5.3 Ejercicios Prácticos para el Capítulo 5
Ahora que has completado el Capítulo 5, es momento de aplicar lo aprendido a través de ejercicios prácticos. Estos ejercicios se enfocan en la escalación y las transformaciones no lineales, cubriendo transformaciones logarítmicas, de raíz cuadrada, de raíz cúbica y de potencia. Cada ejercicio incluye soluciones para ayudarte a solidificar tu comprensión de estos conceptos clave.
Ejercicio 1: Escalado Min-Max
Estás trabajando con un conjunto de datos que contiene las siguientes columnas: Edad e Ingresos. Tu tarea es:
Aplicar escalado Min-Max a las columnas de Edad e Ingresos, transformando los valores a un rango entre 0 y 1.
Solución:
import pandas as pd
from sklearn.preprocessing import MinMaxScaler
# Sample data
data = {'Age': [25, 40, 35, 50, 60],
'Income': [40000, 50000, 60000, 80000, 100000]}
df = pd.DataFrame(data)
# Initialize the Min-Max Scaler
scaler = MinMaxScaler()
# Apply the scaler to the dataframe
df_scaled = pd.DataFrame(scaler.fit_transform(df), columns=df.columns)
# View the scaled dataframe
print(df_scaled)
Ejercicio 2: Estandarización (Normalización de Z-Score)
Estás trabajando con el mismo conjunto de datos que en el Ejercicio 1. En esta ocasión, tu tarea es:
Aplicar Estandarización (normalización de Z-score) a las columnas de Edad e Ingresos.
Solución:
from sklearn.preprocessing import StandardScaler
# Sample data
data = {'Age': [25, 40, 35, 50, 60],
'Income': [40000, 50000, 60000, 80000, 100000]}
df = pd.DataFrame(data)
# Initialize the Standard Scaler
scaler = StandardScaler()
# Apply the scaler to the dataframe
df_standardized = pd.DataFrame(scaler.fit_transform(df), columns=df.columns)
# View the standardized dataframe
print(df_standardized)
Ejercicio 3: Transformación Logarítmica
Estás trabajando con un conjunto de datos que contiene la columna PreciosCasas, cuyos valores presentan una fuerte asimetría hacia la derecha. Tu tarea es:
Aplicar una transformación logarítmica a la columna PreciosCasas.
Solución:
import numpy as np
import pandas as pd
# Sample data with a right-skewed distribution
data = {'HousePrices': [50000, 120000, 250000, 500000, 1200000, 2500000]}
df = pd.DataFrame(data)
# Apply a logarithmic transformation
df['LogHousePrices'] = np.log(df['HousePrices'])
# View the transformed data
print(df)
Ejercicio 4: Transformación de Raíz Cuadrada
Estás trabajando con los mismos datos de PreciosCasas. Tu tarea es:
Aplicar una transformación de raíz cuadrada a la columna PreciosCasas.
Solución:
# Apply a square root transformation
df['SqrtHousePrices'] = np.sqrt(df['HousePrices'])
# View the transformed data
print(df)
Ejercicio 5: Transformación de Raíz Cúbica
Te han dado un conjunto de datos con la columna ValoresPropiedad, que contiene tanto valores positivos como negativos. Tu tarea es:
Aplicar una transformación de raíz cúbica a la columna ValoresPropiedad.
Solución:
# Sample data with both positive and negative values
data = {'PropertyValues': [-8000, -5000, 0, 5000, 10000, 20000]}
df = pd.DataFrame(data)
# Apply a cube root transformation
df['CubeRootPropertyValues'] = np.cbrt(df['PropertyValues'])
# View the transformed data
print(df)
Ejercicio 6: Transformación Box-Cox
Estás trabajando con un conjunto de datos que contiene valores de Ingresos, los cuales son positivos pero están moderadamente sesgados. Tu tarea es:
Aplicar la transformación Box-Cox a la columna Ingresos usando el PowerTransformer de Scikit-learn.
Solución:
from sklearn.preprocessing import PowerTransformer
import pandas as pd
# Sample data (positive values only for Box-Cox)
data = {'Income': [30000, 50000, 100000, 200000, 500000]}
df = pd.DataFrame(data)
# Apply the Box-Cox transformation
boxcox_transformer = PowerTransformer(method='box-cox')
df['BoxCoxIncome'] = boxcox_transformer.fit_transform(df[['Income']])
# View the transformed data
print(df)
Ejercicio 7: Transformación Yeo-Johnson
Estás trabajando con un conjunto de datos que contiene la columna Ganancia, la cual incluye tanto valores positivos como negativos. Tu tarea es:
Aplicar la transformación Yeo-Johnson a la columna Ganancia usando el PowerTransformer de Scikit-learn.
Solución:
from sklearn.preprocessing import PowerTransformer
import pandas as pd
# Sample data with positive and negative values
data = {'Profit': [-5000, -2000, 0, 3000, 15000]}
df = pd.DataFrame(data)
# Apply the Yeo-Johnson transformation
yeojohnson_transformer = PowerTransformer(method='yeo-johnson')
df['YeoJohnsonProfit'] = yeojohnson_transformer.fit_transform(df[['Profit']])
# View the transformed data
print(df)
Estas prácticas proporcionan experiencia práctica con la escalación, normalización y transformaciones no lineales, incluidas las transformaciones logarítmica, raíz cuadrada, raíz cúbica, Box-Cox y Yeo-Johnson. Al practicar estas técnicas, puedes preparar datos con confianza para modelos de machine learning, asegurándote de que las características estén bien escaladas, equilibradas y optimizadas para el rendimiento. Sigue practicando y explorando estos métodos para manejar una variedad de distribuciones de datos.
5.3 Ejercicios Prácticos para el Capítulo 5
Ahora que has completado el Capítulo 5, es momento de aplicar lo aprendido a través de ejercicios prácticos. Estos ejercicios se enfocan en la escalación y las transformaciones no lineales, cubriendo transformaciones logarítmicas, de raíz cuadrada, de raíz cúbica y de potencia. Cada ejercicio incluye soluciones para ayudarte a solidificar tu comprensión de estos conceptos clave.
Ejercicio 1: Escalado Min-Max
Estás trabajando con un conjunto de datos que contiene las siguientes columnas: Edad e Ingresos. Tu tarea es:
Aplicar escalado Min-Max a las columnas de Edad e Ingresos, transformando los valores a un rango entre 0 y 1.
Solución:
import pandas as pd
from sklearn.preprocessing import MinMaxScaler
# Sample data
data = {'Age': [25, 40, 35, 50, 60],
'Income': [40000, 50000, 60000, 80000, 100000]}
df = pd.DataFrame(data)
# Initialize the Min-Max Scaler
scaler = MinMaxScaler()
# Apply the scaler to the dataframe
df_scaled = pd.DataFrame(scaler.fit_transform(df), columns=df.columns)
# View the scaled dataframe
print(df_scaled)
Ejercicio 2: Estandarización (Normalización de Z-Score)
Estás trabajando con el mismo conjunto de datos que en el Ejercicio 1. En esta ocasión, tu tarea es:
Aplicar Estandarización (normalización de Z-score) a las columnas de Edad e Ingresos.
Solución:
from sklearn.preprocessing import StandardScaler
# Sample data
data = {'Age': [25, 40, 35, 50, 60],
'Income': [40000, 50000, 60000, 80000, 100000]}
df = pd.DataFrame(data)
# Initialize the Standard Scaler
scaler = StandardScaler()
# Apply the scaler to the dataframe
df_standardized = pd.DataFrame(scaler.fit_transform(df), columns=df.columns)
# View the standardized dataframe
print(df_standardized)
Ejercicio 3: Transformación Logarítmica
Estás trabajando con un conjunto de datos que contiene la columna PreciosCasas, cuyos valores presentan una fuerte asimetría hacia la derecha. Tu tarea es:
Aplicar una transformación logarítmica a la columna PreciosCasas.
Solución:
import numpy as np
import pandas as pd
# Sample data with a right-skewed distribution
data = {'HousePrices': [50000, 120000, 250000, 500000, 1200000, 2500000]}
df = pd.DataFrame(data)
# Apply a logarithmic transformation
df['LogHousePrices'] = np.log(df['HousePrices'])
# View the transformed data
print(df)
Ejercicio 4: Transformación de Raíz Cuadrada
Estás trabajando con los mismos datos de PreciosCasas. Tu tarea es:
Aplicar una transformación de raíz cuadrada a la columna PreciosCasas.
Solución:
# Apply a square root transformation
df['SqrtHousePrices'] = np.sqrt(df['HousePrices'])
# View the transformed data
print(df)
Ejercicio 5: Transformación de Raíz Cúbica
Te han dado un conjunto de datos con la columna ValoresPropiedad, que contiene tanto valores positivos como negativos. Tu tarea es:
Aplicar una transformación de raíz cúbica a la columna ValoresPropiedad.
Solución:
# Sample data with both positive and negative values
data = {'PropertyValues': [-8000, -5000, 0, 5000, 10000, 20000]}
df = pd.DataFrame(data)
# Apply a cube root transformation
df['CubeRootPropertyValues'] = np.cbrt(df['PropertyValues'])
# View the transformed data
print(df)
Ejercicio 6: Transformación Box-Cox
Estás trabajando con un conjunto de datos que contiene valores de Ingresos, los cuales son positivos pero están moderadamente sesgados. Tu tarea es:
Aplicar la transformación Box-Cox a la columna Ingresos usando el PowerTransformer de Scikit-learn.
Solución:
from sklearn.preprocessing import PowerTransformer
import pandas as pd
# Sample data (positive values only for Box-Cox)
data = {'Income': [30000, 50000, 100000, 200000, 500000]}
df = pd.DataFrame(data)
# Apply the Box-Cox transformation
boxcox_transformer = PowerTransformer(method='box-cox')
df['BoxCoxIncome'] = boxcox_transformer.fit_transform(df[['Income']])
# View the transformed data
print(df)
Ejercicio 7: Transformación Yeo-Johnson
Estás trabajando con un conjunto de datos que contiene la columna Ganancia, la cual incluye tanto valores positivos como negativos. Tu tarea es:
Aplicar la transformación Yeo-Johnson a la columna Ganancia usando el PowerTransformer de Scikit-learn.
Solución:
from sklearn.preprocessing import PowerTransformer
import pandas as pd
# Sample data with positive and negative values
data = {'Profit': [-5000, -2000, 0, 3000, 15000]}
df = pd.DataFrame(data)
# Apply the Yeo-Johnson transformation
yeojohnson_transformer = PowerTransformer(method='yeo-johnson')
df['YeoJohnsonProfit'] = yeojohnson_transformer.fit_transform(df[['Profit']])
# View the transformed data
print(df)
Estas prácticas proporcionan experiencia práctica con la escalación, normalización y transformaciones no lineales, incluidas las transformaciones logarítmica, raíz cuadrada, raíz cúbica, Box-Cox y Yeo-Johnson. Al practicar estas técnicas, puedes preparar datos con confianza para modelos de machine learning, asegurándote de que las características estén bien escaladas, equilibradas y optimizadas para el rendimiento. Sigue practicando y explorando estos métodos para manejar una variedad de distribuciones de datos.