Transformação e Extração de Características
Muitos conjuntos de dados do mundo real contêm variáveis com distribuições assimétricas, o que pode reduzir a eficácia dos modelos de aprendizado de máquina. É possível aplicar transformações matemáticas para reduzir a assimetria e melhorar a qualidade dos dados. Dois métodos comuns são:
- Transformação logarítmica: reduz forte assimetria positiva aplicando
log(x); - Transformação de raiz quadrada: modera graus menores de assimetria utilizando
sqrt(x).
Esses métodos ajudam a tornar as distribuições das variáveis mais próximas da normalidade e melhoram o desempenho do 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()
Extração de características é o processo de criar novas variáveis a partir de dados brutos para melhorar o desempenho dos modelos de aprendizado de máquina.
Ajuda tornando informações importantes mais explícitas, reduzindo o ruído e, às vezes, diminuindo a dimensionalidade dos dados. Uma extração de características eficaz pode levar a melhores previsões e modelos mais interpretáveis.
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())
Obrigado pelo seu feedback!
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo
Can you explain why adding 1 to the log transformation is necessary?
What are some other common feature engineering techniques?
How does creating a new feature like family_size help improve model performance?
Awesome!
Completion rate improved to 8.33
Transformação e Extração de Características
Deslize para mostrar o menu
Muitos conjuntos de dados do mundo real contêm variáveis com distribuições assimétricas, o que pode reduzir a eficácia dos modelos de aprendizado de máquina. É possível aplicar transformações matemáticas para reduzir a assimetria e melhorar a qualidade dos dados. Dois métodos comuns são:
- Transformação logarítmica: reduz forte assimetria positiva aplicando
log(x); - Transformação de raiz quadrada: modera graus menores de assimetria utilizando
sqrt(x).
Esses métodos ajudam a tornar as distribuições das variáveis mais próximas da normalidade e melhoram o desempenho do 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()
Extração de características é o processo de criar novas variáveis a partir de dados brutos para melhorar o desempenho dos modelos de aprendizado de máquina.
Ajuda tornando informações importantes mais explícitas, reduzindo o ruído e, às vezes, diminuindo a dimensionalidade dos dados. Uma extração de características eficaz pode levar a melhores previsões e modelos mais interpretáveis.
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())
Obrigado pelo seu feedback!