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

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 スコア関数を使用して、最も関連性の高い5つの特徴量(pclasssexparchfareembarked)を選択します。この手法は、各特徴量をANOVA F値で個別に評価し、スコアが最も高いものを選びます。分類タスクにおいて、ターゲットクラスを最もよく分離する特徴量に注目するため、効果的です。

Note
注意

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

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

question mark

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

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

すべて明確でしたか?

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

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

セクション 1.  9

AIに質問する

expand

AIに質問する

ChatGPT

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

セクション 1.  9
some-alt