モデルのアルゴリズム以前に、「データをどう扱うか」で点数が削られるのがMLS試験の恐ろしさです。自分が間違えたポイントを中心に、基礎体力を整理します。
探索的データ分析(EDA):手法と目的を一致させる
MLSでは「次に何をすべきか?」を問われます。目的と図法をセットで脳内にインデックスします。
- クラス分布の偏り(不均衡) クロス集計、カウントプロット
- 外れ値の有無 ボックスプロット(箱ひげ図)、散布図
- 変数の相関関係 ヒートマップ(相関行列)
- テキストの傾向把握 ワードクラウド
「高いカーディナリティ」:One-Hotの罠
ユーザーIDや郵便番号など、ユニーク値が多すぎる変数(高カーディナリティ)にOne-Hotエンコーディングを使うと、次元が爆発して計算資源を食い尽くし、モデルが不安定になります。
- 試験対策のキーワード:
- Feature Hashing(ハッシュトリック): 次元を固定しつつ、高カーディナリティをさばく。
- Target Encoding: 目的変数の平均値で置換する(ただし、リークに注意)。
- SageMaker Data Wrangler: これらをノンコードで処理できるAWSの推奨ツール。
欠損値(NaN)処理:時系列と統計の使い分け
「とりあえず埋める」ではなく、データの性質を見極めるのがMLS流です。
- 時系列データ: 前の値を踏襲する Forward Fill や線形補間。
- 数値データ(外れ値あり): 平均値よりも 中央値(Median) が安定します。
- カテゴリデータ: 「Unknown」という新しいカテゴリとして扱うのも一つの解です。
クラス不均衡:SMOTEのその先へ
少数クラスを合成して増やす SMOTE は強力ですが、試験では以下のセットで問われます。
- 手法: オーバーサンプリング(SMOTE) or アンダーサンプリング。
- 評価: Accuracy(正解率)を信じない。F1スコアやAUC を重視する。
- 注意点: SMOTEは「訓練データ」のみに適用すること。テストデータまで合成すると正当な評価ができません。
インフラ:GPUと分散トレーニングの勘所
巨大なデータや複雑なモデル(RNN/CNN)を扱う際、学習時間の短縮がテーマになります。
- インスタンス選択: P系(P3/P4)やG系(G4dn/G5)のGPUインスタンスを選択。
- 分散学習:
instance_countを2以上に設定。- データ並列: データを分割して各ノードで学習(主流)。
- モデル並列: 巨大すぎて1つのGPUに乗らないモデルを分割。
- 注意: 学習ジョブは一時的なクラスターなので、通常のEC2のようなAuto Scaling Groupで管理するのではなく、SageMakerが「指定された台数」をプロビジョニングする形式です。
1日目のまとめ
「NaNだから埋める」「偏っているからSMOTE」といった条件反射ではなく、「ビジネス要件(見落とし厳禁か、誤報厳禁か)」と「データの分布」を天秤にかける視点が、合格への近道だと痛感しています。
コメントを残す