このレッスンで学ぶこと
このレッスンを完了すると、特徴量エンジニアリングの基本概念、特徴量の選択・作成・変換の手法、そして医療データ特有の前処理について理解できるようになります。
セクション1: 特徴量とは
特徴量の定義
特徴量(Feature)は、機械学習モデルに入力するデータの各変数のことです。モデルはこの特徴量を手がかりにして予測を行います。
医療データにおける特徴量の例:
- 数値データ:年齢、血圧、HbA1c、体重、BMI
- カテゴリデータ:性別、血液型、診断名、投薬歴
- 時系列データ:バイタルサインの経時変化、検査値の推移
- テキストデータ:カルテの記述、病歴要約
- 画像データ:X線、CT、MRIから抽出した特徴
なぜ特徴量エンジニアリングが重要か
「データは新しい石油、特徴量は精製された燃料」
同じデータセットでも、特徴量の作り方次第でモデルの性能は劇的に変わります。複雑なモデルを使うよりも、適切な特徴量を設計する方が性能向上に効果的なケースは少なくありません。医療分野では、臨床知識に基づいた特徴量設計が特に重要です。
セクション2: 特徴量の前処理
欠損値の処理
医療データでは欠損値が非常に多く発生します。検査が実施されなかった、記録が漏れた、など理由は様々です。
主な処理方法:
- 削除:欠損が少ない場合に欠損行/列を削除
- 平均値/中央値補完:数値データを代表値で補完
- 最頻値補完:カテゴリデータを最も頻度の高い値で補完
- 多重代入法:統計モデルを使って複数の補完値を生成
医療データの欠損は「情報」でもある
検査が実施されなかった理由自体が重要な情報を持つ場合があります。例えば、緊急度の高い患者には特定の検査がスキップされることがあり、「欠損していること」自体が患者の重症度を示唆している可能性があります。単純に補完するだけでなく、欠損パターンの分析も検討しましょう。
スケーリング
異なるスケールの特徴量を揃える処理です。
- 標準化(Standardization):平均0、標準偏差1に変換。外れ値に比較的頑健
- 正規化(Min-Max Normalization):0〜1の範囲に変換。範囲が明確な場合に有用
カテゴリ変数のエンコーディング
機械学習モデルは数値データを扱うため、カテゴリデータを数値に変換する必要があります。
- ラベルエンコーディング:カテゴリを整数に変換(0, 1, 2, ...)
- ワンホットエンコーディング:各カテゴリを0/1のバイナリ列に変換
- ターゲットエンコーディング:カテゴリを目的変数の平均値で置換
セクション3: 特徴量の選択
なぜ特徴量を選択するのか
すべての特徴量を使えば良いわけではありません。不要な特徴量は:
- モデルの過学習を招く
- 計算コストを増加させる
- ノイズを増やして予測精度を下げる
特徴量選択の手法
フィルター法: 統計的な指標で特徴量を評価し、閾値以下のものを除外する。計算が高速。
- 相関係数、カイ二乗検定、分散による選択
ラッパー法: モデルの性能を基準に、特徴量の組み合わせを探索する。精度は高いが計算コストも高い。
- 前向き選択法、後ろ向き除去法
埋め込み法: モデルの学習過程で特徴量の重要度を評価する。精度とコストのバランスが良い。
- LASSO回帰(L1正則化)、ランダムフォレストの特徴量重要度
セクション4: 特徴量の作成
ドメイン知識に基づく特徴量作成
医療分野では、臨床知識を活かした特徴量の作成が大きな効果を発揮します。
臨床スコアという「手作り特徴量」
医療で広く使われている臨床スコア(APACHEスコア、Childスコア、CHA₂DS₂-VAScスコアなど)は、医学知識に基づいて人間が設計した「特徴量」と言えます。これらを機械学習モデルの入力特徴量として組み込むことで、既存の医学知識をモデルに反映できます。
特徴量作成の例:
- 比率の計算:好中球/リンパ球比(NLR)、BUN/クレアチニン比
- 変化量の計算:検査値の前回からの変化量、変化率
- 時間特徴量:入院からの経過日数、最終投薬からの時間
- 集約特徴量:過去7日間の最大血圧、検査値の移動平均
相互作用特徴量
複数の特徴量の組み合わせから新しい特徴量を作成します。
- 積:年齢 × 血圧(高齢高血圧リスク)
- 差:収縮期血圧 - 拡張期血圧 = 脈圧
- 条件付き:特定の年齢層かつ特定の検査値異常
重要な洞察:特徴量エンジニアリングの実践
「ゴミを入れればゴミが出る」
機械学習では「Garbage In, Garbage Out」(GIGO)という原則があります。どれほど高度なアルゴリズムを使っても、入力する特徴量の質が低ければ有用な予測はできません。特徴量エンジニアリングは、モデルの性能を決定づける最も重要なステップの一つです。
実践的なアドバイス:
- ドメイン知識を活用する:臨床医の知識は最も価値のある特徴量設計のヒント
- 探索的データ分析(EDA)を先に行う:データの分布や相関を可視化してから特徴量を設計する
- 反復的に改善する:一度で完璧な特徴量を作る必要はない。モデルの性能を見ながら繰り返し改善する
まとめ
このレッスンでは、特徴量エンジニアリングの基本を学びました。
重要なポイント:
- 特徴量の重要性:モデルの性能は特徴量の質に大きく依存する
- 前処理:欠損値処理、スケーリング、エンコーディングが基本
- 特徴量選択:不要な特徴量を除外して過学習を防ぐ
- 特徴量作成:ドメイン知識を活かした特徴量の設計が医療AIの鍵
明日のアクション
血液検査データ(白血球数、赤血球数、ヘモグロビン、血小板数、CRP、アルブミンなど)を使って敗血症を予測するモデルを構築するとします。臨床知識に基づいて、元のデータからどのような新しい特徴量を作成できるか、最低5つ考えてみましょう。