Skip to content

Instantly share code, notes, and snippets.

@ackkerman
Created March 7, 2025 11:45
Show Gist options
  • Select an option

  • Save ackkerman/ae29cae7b168de9e0a525c35a66ec9fc to your computer and use it in GitHub Desktop.

Select an option

Save ackkerman/ae29cae7b168de9e0a525c35a66ec9fc to your computer and use it in GitHub Desktop.

Spaceship Titanic Competition: サマリーレポート

はじめに

本レポートは、Kaggle 上の Spaceship Titanic コンペティションにおける知見と結果をまとめたものです。本コンペティションの目的は、Spaceship Titanic が時空の異常との衝突時に、どの乗客が別の次元に輸送されたかを予測することです。私たちは、乗客データの分析と機械学習技術を用いて予測モデルの構築を行いました。

データ概要

データセットは以下の特徴量から構成されています:

  • PassengerId: 各乗客の一意のID。
  • HomePlanet: 乗客が出発した惑星。
  • CryoSleep: 乗客が航海中、冷凍睡眠(suspended animation)を選択したかどうかの指標。
  • Cabin: 乗客が滞在するキャビン番号。
  • Destination: 乗客が降りる惑星。
  • Age: 乗客の年齢。
  • VIP: 乗客が航海中に特別なVIPサービスを支払ったかどうか。
  • RoomService, FoodCourt, ShoppingMall, Spa, VRDeck: Spaceship Titanic 内の各豪華施設での乗客の利用料金。
  • Name: 乗客の名前(ファーストネームとラストネーム)。
  • Transported: 乗客が別の次元に輸送されたかどうか(ターゲット変数)。

方法論

予測モデルを構築・評価するために、以下のステップを実施しました:

  1. データ前処理:

    • 数値特徴量には中央値 (median) で、カテゴリカル特徴量には最頻値 (most frequent) で欠損値を補完しました。
    • カテゴリカル特徴量は Label Encoding を用いてエンコードしました。
    • 数値特徴量は StandardScaler を用いてスケーリングしました。
  2. 特徴量エンジニアリング:

    • RoomService, FoodCourt, ShoppingMall, Spa, VRDeck の支出を合計して TotalSpending 特徴量を作成しました。
    • CryoSleep_HomePlanetCryoSleep_Destination という相互作用特徴量を作成しました。
    • 当初は Cabin_Group, Cabin_Number, Cabin_SideCabin から、さらに FamilySizeIsVIP を考慮しましたが、後に性能への悪影響のため削除しました。
  3. モデル選択とチューニング:

    • Logistic Regression と RandomForestClassifier を試験しました。
    • RandomForestClassifier の feature importance を用いて上位10個の特徴量を選択しました。
    • RandomForestClassifier のハイパーパラメータ(n_estimatorsmax_depth)をチューニングしました。
  4. 評価:

    • 訓練データの20%をホールドアウトした検証用データセットで、精度 (accuracy) を評価しました。

結果

以下のチャートは、複数の試行における各モデルと特徴量セットのローカル精度を示しています:

image

最も良い性能を示したモデルは、以下のハイパーパラメータを持つ RandomForestClassifier でした:

  • n_estimators: 500
  • max_depth: 10

このモデルでは、feature importance に基づいて選択された上位10個の特徴量が使用されました:

  • TotalSpending
  • Age
  • Spa
  • FoodCourt
  • VRDeck
  • RoomService
  • ShoppingMall
  • CryoSleep_HomePlanet
  • CryoSleep_Destination
  • CryoSleep

最良のローカル精度は 0.78723 でした。

考察

実験結果から、以下が示されました:

  • 支出に関連する特徴量(TotalSpending、各施設の個別支出)と CryoSleep が、輸送の強い予測因子であること。
  • Age も重要な特徴量として現れました。
  • Cabin から派生した特徴量や VIP 特徴量はモデルの性能を改善せず、削除されました。
  • このデータセットと特徴量セットにおいては、RandomForestClassifier が Logistic Regression よりも優れていました。
  • RandomForestClassifier のハイパーパラメータ、特に n_estimators の増加により、精度に若干の改善が見られました。

制約事項:

  • 最良のローカル精度 (0.78723) は目標の 0.80 にまだ達していません。
  • モデルが訓練データに対して過学習している可能性があり、さらなるチューニングや正則化が必要です。
  • より高度な特徴量エンジニアリングや特徴量間の相互作用の検討が、データの複雑な関係性を捉えるために必要かもしれません。
  • 時間的制約により、XGBoost、LightGBM、CatBoost などの他のモデルについては深く検証していませんが、より良い結果が得られる可能性があります。

結論

本プロジェクトでは、Spaceship Titanic 上の乗客輸送を予測するために、さまざまな機械学習技術を検討しました。最も良い性能を示したのは、エンジニアリング済みおよび元の特徴量のサブセットを使用し、チューニングを行った RandomForestClassifier でした。目標精度の 0.80 には達しなかったものの、特徴量エンジニアリング、モデル選択、ハイパーパラメータのチューニングの重要性が示されました。

今後の課題:

  • より高度な特徴量エンジニアリング手法の検討。
  • XGBoost、LightGBM、CatBoost など他の機械学習モデルの実験。
  • Grid Search や Bayesian Optimization などを用いた、より広範なハイパーパラメータのチューニング。
  • 複数のモデルの予測を組み合わせるアンサンブル手法の検討。
  • データの更なる解析により、潜在的なバイアスや制約事項の洗い出し。
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment