Transformación y Extracción de Características
Muchos conjuntos de datos del mundo real contienen características con distribuciones sesgadas, lo que puede reducir la efectividad de los modelos de aprendizaje automático. Se pueden aplicar transformaciones matemáticas para reducir la asimetría y mejorar la calidad de los datos. Dos métodos comunes son:
- Transformación logarítmica: reduce una fuerte asimetría positiva aplicando
log(x); - Transformación de raíz cuadrada: modera grados menores de asimetría utilizando
sqrt(x).
Estos métodos ayudan a que las distribuciones de las características sean más similares a una distribución normal y mejoran el rendimiento del modelo.
123456789101112131415161718192021222324252627282930import pandas as pd import numpy as np import matplotlib.pyplot as plt import seaborn as sns # Load the Titanic dataset df = sns.load_dataset('titanic') fare = df['fare'] # Apply log transformation (add 1 to handle zeros) fare_log = np.log(fare + 1) # Create side-by-side histogram comparison fig, axes = plt.subplots(1, 2, figsize=(14, 5)) # Original fare axes[0].hist(fare, bins=50, color='skyblue', edgecolor='black', alpha=0.7) axes[0].set_xlabel('Fare ($)', fontsize=12) axes[0].set_ylabel('Frequency', fontsize=12) axes[0].set_title('Original Fare Distribution', fontsize=14, fontweight='bold') axes[0].grid(True, alpha=0.3) # Log-transformed fare axes[1].hist(fare_log, bins=50, color='lightcoral', edgecolor='black', alpha=0.7) axes[1].set_xlabel('Log(Fare + 1)', fontsize=12) axes[1].set_ylabel('Frequency', fontsize=12) axes[1].set_title('Log-Transformed Fare Distribution', fontsize=14, fontweight='bold') axes[1].grid(True, alpha=0.3) plt.tight_layout()
Extracción de características es el proceso de crear nuevas características a partir de datos sin procesar para mejorar el rendimiento de los modelos de aprendizaje automático.
Ayuda haciendo que la información importante sea más explícita, reduciendo el ruido y, en ocasiones, disminuyendo la dimensionalidad de los datos. Una extracción de características eficaz puede conducir a mejores predicciones y modelos más interpretables.
1234567891011import seaborn as sns import pandas as pd # Load the Titanic dataset df = sns.load_dataset('titanic') # Create a new feature: family_size = sibsp + parch + 1 df['family_size'] = df['sibsp'] + df['parch'] + 1 # Show the first few rows with the new feature print(df[['sibsp', 'parch', 'family_size']].head())
¡Gracias por tus comentarios!
Pregunte a AI
Pregunte a AI
Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla
Awesome!
Completion rate improved to 8.33
Transformación y Extracción de Características
Desliza para mostrar el menú
Muchos conjuntos de datos del mundo real contienen características con distribuciones sesgadas, lo que puede reducir la efectividad de los modelos de aprendizaje automático. Se pueden aplicar transformaciones matemáticas para reducir la asimetría y mejorar la calidad de los datos. Dos métodos comunes son:
- Transformación logarítmica: reduce una fuerte asimetría positiva aplicando
log(x); - Transformación de raíz cuadrada: modera grados menores de asimetría utilizando
sqrt(x).
Estos métodos ayudan a que las distribuciones de las características sean más similares a una distribución normal y mejoran el rendimiento del modelo.
123456789101112131415161718192021222324252627282930import pandas as pd import numpy as np import matplotlib.pyplot as plt import seaborn as sns # Load the Titanic dataset df = sns.load_dataset('titanic') fare = df['fare'] # Apply log transformation (add 1 to handle zeros) fare_log = np.log(fare + 1) # Create side-by-side histogram comparison fig, axes = plt.subplots(1, 2, figsize=(14, 5)) # Original fare axes[0].hist(fare, bins=50, color='skyblue', edgecolor='black', alpha=0.7) axes[0].set_xlabel('Fare ($)', fontsize=12) axes[0].set_ylabel('Frequency', fontsize=12) axes[0].set_title('Original Fare Distribution', fontsize=14, fontweight='bold') axes[0].grid(True, alpha=0.3) # Log-transformed fare axes[1].hist(fare_log, bins=50, color='lightcoral', edgecolor='black', alpha=0.7) axes[1].set_xlabel('Log(Fare + 1)', fontsize=12) axes[1].set_ylabel('Frequency', fontsize=12) axes[1].set_title('Log-Transformed Fare Distribution', fontsize=14, fontweight='bold') axes[1].grid(True, alpha=0.3) plt.tight_layout()
Extracción de características es el proceso de crear nuevas características a partir de datos sin procesar para mejorar el rendimiento de los modelos de aprendizaje automático.
Ayuda haciendo que la información importante sea más explícita, reduciendo el ruido y, en ocasiones, disminuyendo la dimensionalidad de los datos. Una extracción de características eficaz puede conducir a mejores predicciones y modelos más interpretables.
1234567891011import seaborn as sns import pandas as pd # Load the Titanic dataset df = sns.load_dataset('titanic') # Create a new feature: family_size = sibsp + parch + 1 df['family_size'] = df['sibsp'] + df['parch'] + 1 # Show the first few rows with the new feature print(df[['sibsp', 'parch', 'family_size']].head())
¡Gracias por tus comentarios!