特徴量エンジニアリングの世界へようこそ!
皆さん、こんにちは!Exam PAの試験対策の中でも、特にクリエイティブな分野へようこそ。この章では、既存のデータから特徴量を作成する方法について見ていきます。データサイエンスを料理に例えるなら、生のデータは基本的な食材(小麦粉や卵など)であり、特徴量エンジニアリングはその食材を泡立てたり、こねたり、味付けをして最高の料理に仕上げるプロセスのようなものです。
ここでの目的はシンプルです。生の変数を、予測モデルがパターンをより明確に「理解」できるような形式に変換することです。今はまだ少し抽象的で難しく感じるかもしれませんが、大丈夫です。一つずつ丁寧に分解して解説していきます!
1. 特徴量エンジニアリングとは?
特徴量エンジニアリングとは、ドメイン知識(専門知識)を活用して、既存の変数から新しい変数(特徴量)を作り出すプロセスのことです。たとえ強力な機械学習アルゴリズムであっても、データの提示の仕方が適切でなければ、パターンを見つけるのに苦労することがあります。
例え: 暗い部屋で本を読もうとしているところを想像してください。形は見えますが、文字まではよく分かりませんよね。特徴量エンジニアリングは、ランプをつけて部屋を明るくするようなものです。情報をはっきりと照らし出すことで、モデルが簡単に内容を読み取れるようにします。
クイックレビュー: 特徴量を作成する主な目的は以下の通りです。
• 非線形な関係を捉えるため。
• 複雑なデータを単純化するため。
• ステークホルダーにとってモデルの解釈性を高めるため。
2. 指標変数(ダミー変数)の作成
線形回帰やGLM(一般化線形モデル)といった多くのモデルは、直接「文字」を扱うことができません。これらは数値が必要なのです。指標変数(一般的に「ダミー変数」と呼ばれます)は、カテゴリデータを0と1に変換します。
仕組み:
「色」という変数に赤、青、緑という3つのレベルがある場合、それらに対して新しい列を作ります。色が赤なら「赤」の列に1を、それ以外には0を割り当てます。
「参照レベル」の罠:
重要ポイント: n個のカテゴリがある場合、通常はn - 1個のダミー変数を作成するだけで十分です。残りの1つは参照レベル(Reference Level)となります。
例: 車の色が「赤ではない」かつ「青ではない」ことが分かれば、それは「緑」に決まっています。そのため、「緑」の列を作る必要はありません。不要な列を含めると多重共線性(multicollinearity)を引き起こし、モデルが正しく機能しなくなる可能性があります!
避けるべきよくあるミス: どのレベルを参照レベルとして選択したかを忘れないでください!モデルの係数はすべて、その基準に対して解釈されることになります。
3. ビニング(離散化)
ビニングは、「年齢」のような連続的な数値を、「若年層」「中年層」「高齢層」のようにカテゴリへ変換するプロセスです。
なぜ行うのか?
変数とターゲットの間の関係が、なめらかな直線にならない場合があります。例えば、医療保険の請求額は、乳幼児には高く、10代には低く、高齢者には再び高くなるという傾向があるかもしれません。単純な線形モデルではこの「U字型」のパターンを見逃してしまいます。年齢をグループにビニングすることで、モデルは各グループに個別の重みを割り当てることができるようになります。
豆知識: ビニングは管理者への説明を容易にしますが、一方で細かい情報を失うことにもなります。「所得」をビニングすると、同じ「中所得」グループに含まれる限り、50,001ドル稼ぐ人と99,999ドル稼ぐ人をモデルは同じものとして扱ってしまいます。
4. 交互作用項
これはExam PAにおいて非常に重要です!交互作用(Interaction)とは、ある変数の効果が別の変数のレベルによって変化する場合に生じます。
数式: \( Y = \beta_0 + \beta_1 X_1 + \beta_2 X_2 + \beta_3 (X_1 \times X_2) \)
実世界での例: 運動と食事制限について考えてみましょう。どちらも健康に良いものです。しかし、運動をして、かつ食事にも気を使うと、それぞれのメリットを単に足し合わせた以上の素晴らしい効果が得られるかもしれません。この追加の「後押し」こそが交互作用効果です。
例え: コーヒーと砂糖です。コーヒーは苦く、砂糖は甘いですが、これらを合わせると、それぞれを別々に摂るのとは全く異なる味わいになります。両者が「交互に作用」することで、体験そのものが変化するのです。
5. 数学的変換
生データが偏っていたり、曲線を描いていたりすることがあります。数学を使ってデータを「まっすぐ」に補正します。
対数変換(Log Transformation)
データが右に歪んでいる(右裾が長い)場合、対数 \( \log(x) \) をよく使います。住宅価格や経営者の給与データなど、極端に大きな値が少数含まれる場合に有効です。対数変換は、そうした大きな外れ値を「引き寄せ」、小さな値を広げる効果があります。
多項式変換
関係が曲線を描いている場合、二乗項 \( X^2 \) を追加することがあります。
• 例: 車が停止するまでの距離は、スピードの二乗に比例します。
覚え方: Long(長い)裾にはLog(対数)!データが右側に長い裾を持っているなら、対数変換が一番の味方です。
6. 日付と時間の扱い
「2023-10-15」のような生の日付データは、回帰モデルにとってそのままでは役に立ちません。そこから「エッセンス」を抽出する必要があります!
抽出すべき一般的な特徴量:
• 曜日: 土曜日に売上が上がりやすいか?
• 月・季節: 冬になると暖房器具がよく売れるか?
• 祝日フラグ: 公的な祝日かどうか(バイナリ0/1)?
• 経過時間: 顧客の最後の購入から何日が経過したか?
7. 重要ポイントとまとめ
クイックレビューボックス:
• ダミー変数: テキストを0/1に変換。n-1ルールを忘れずに!
• ビニング: 数値をバケツ(グループ)に入れて、非線形な変化を捉える。
• 交互作用: Xの効果がYに依存する場合に使用する。
• 対数: 右に歪んだデータを修正し、分散を安定させるために使う。
• 日付: 「日」や「月」といったパーツに分解する。
最後のアドバイス: PAの試験では、なぜその特徴量を作ったのかという「理由」を常に説明できるようにしてください。ただできるからといって闇雲に行うのではなく、「これはモデルがターゲット変数をより良く説明する助けになるか?」と自分に問いかけてみてください。答えがイエスなら、あなたは正しい道を歩んでいます!
練習を続けましょう!特徴量エンジニアリングこそ、皆さんのアクチュアリーとしての直感を発揮できる場所です。皆さんならきっと大丈夫です!