Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
学ぶ 特徴選択の基本 | 機械学習のための特徴量エンジニアリング
Pythonによるデータ前処理と特徴量エンジニアリング

book特徴選択の基本

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

特徴選択は、最も関連性の高い特徴のみを保持することでモデルのパフォーマンスを向上させ、複雑さを軽減し、無関係または冗長なデータによる過学習を防止するのに役立ちます。

Note
定義

特徴選択は、予測モデリングの課題に最も関連するデータの入力変数(features)のサブセットを選択するプロセスです。

特徴選択手法には、手動によるレビューや自動化された技術が含まれます。分類タスクでは、統計的検定を用いて特徴をスコア付けし、ターゲット変数と最も強く関連するものを選択します。

最も一般的な特徴選択手法は、次の3つのカテゴリに分類されます。

  • フィルタ法: 相関係数や単変量検定などの統計的指標に基づいて特徴を選択し、機械学習モデルとは独立して実施されます。
  • ラッパー法: 予測モデルを用いて特徴のさまざまな組み合わせを評価し、リカーシブ特徴除去(RFE)などで最も良いモデル性能をもたらすサブセットを選択します。
  • 組み込み法: Lasso正則化のように、モデルの学習プロセスの一部として特徴選択を行い、重要度の低い特徴の係数をゼロに縮小することで自動的に除外します。

各手法は、計算コスト、解釈性、予測力のトレードオフをバランスよく考慮します。

1234567891011121314151617181920212223242526
import pandas as pd import seaborn as sns from sklearn.feature_selection import SelectKBest, f_classif from sklearn.preprocessing import LabelEncoder # Load Titanic dataset train = sns.load_dataset('titanic') # Select numeric and categorical columns (excluding target) features = ['pclass', 'sex', 'age', 'sibsp', 'parch', 'fare', 'embarked'] X = train[features].copy() y = train['survived'] # Encode categorical features X['sex'] = LabelEncoder().fit_transform(X['sex'].astype(str)) X['embarked'] = LabelEncoder().fit_transform(X['embarked'].astype(str)) # Handle missing values by filling with median (for simplicity) X = X.fillna(X.median(numeric_only=True)) # Select top 5 features based on ANOVA F-value selector = SelectKBest(score_func=f_classif, k=5) X_new = selector.fit_transform(X, y) selected_features = X.columns[selector.get_support()] print("Selected features:", list(selected_features))
copy

この例では、Titanicデータセットから SelectKBestscikit-learn)と f_classif スコア関数を使用して、pclasssexparchfareembarked の5つの最も関連性の高い特徴量を選択します。この手法は、各特徴量をANOVA F値で個別に評価し、スコアが最も高いものを選択します。分類タスクにおいて、ターゲットクラスを最もよく分離する特徴量に注目するため、効果的です。

Note
注意

関連性の低い特徴量を含めて多くの特徴量を選択しすぎると、過学習が発生しやすくなり、モデルは訓練データには高い精度を示しますが、新しい未知のデータにはうまく対応できなくなります。慎重な特徴量選択は、このリスクを低減し、より堅牢なモデルにつながります。

特徴選択は精度の向上だけでなく、モデルを高速化し、解釈しやすくする役割も持つ。最も重要な特徴のみに注目することで、モデルが単純化され、データからノイズを学習するリスクが低減される。

question mark

特徴選択に関する次の記述のうち、正しいものはどれか?

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

すべて明確でしたか?

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

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

セクション 3.  1

AIに質問する

expand

AIに質問する

ChatGPT

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

セクション 3.  1
some-alt