Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
学ぶ 特徴変換と抽出 | セクション
データ前処理と特徴量エンジニアリング

book特徴変換と抽出

メニューを表示するにはスワイプしてください

多くの実世界のデータセットには、分布が歪んだ特徴量が含まれており、これが機械学習モデルの効果を低減させることがあります。数学的変換を適用することで、歪度を軽減し、データ品質を向上させることができます。一般的な方法として、以下の2つがあります。

  • 対数変換log(x) を適用することで強い正の歪度を軽減。
  • 平方根変換sqrt(x) を用いて小さな歪度を緩和。

これらの方法により、特徴量の分布がより正規分布に近づき、モデルの性能が向上します。

123456789101112131415161718192021222324252627282930
import 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()
copy
Note
定義

特徴量抽出は、生データから新しい特徴量を作成し、機械学習モデルの性能を向上させるプロセス。

重要な情報をより明確にし、ノイズを減らし、場合によってはデータの次元数を削減。効果的な特徴抽出は、より良い予測や解釈しやすいモデルにつながる。

1234567891011
import 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())
copy
question mark

強い正の歪みがあり、かつ値がすべて正の変数に最も適した変換方法はどれか?

正しい答えを選んでください

すべて明確でしたか?

どのように改善できますか?

フィードバックありがとうございます!

セクション 1.  7

AIに質問する

expand

AIに質問する

ChatGPT

何でも質問するか、提案された質問の1つを試してチャットを始めてください

セクション 1.  7
some-alt