0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Kaggle Playground挑戦記録】S5E8 〜クロス特徴量の作り方〜

Last updated at Posted at 2025-09-15

1. はじめに

  • 非エンジニアが Kaggle Playground へ挑戦
  • 目的:汎用ベースラインの構築 + 特徴量作成の学び
  • 今回の題材:クロス特徴量の作り方

2. アプローチ概要

  • 使用環境:Kaggle Notebook
  • 使用モデル:LightGBM, XGBoost, CatBoost
  • 参考にした公開Notebook:"Notebook by GM C. Deotte :XGBoost - Using Original Data - [CV 0.976]", GM C. Deotte [1]

3. 実装の工夫:クロス特徴量

  • これまで特徴量を作成する際、カラムの組み合わせを一つ加えてCV確認、改善すれば採用、悪化すれば不採用、というループを回していた。例えば、下記のコードの通り。
# (1) 住宅ローンあり + 債務残高
all_df["housing_loan"] = all_df["housing"].astype(str) + "_" + all_df["loan"].astype(str)

# (2) コンタクト時間 x 年齢
all_df["duration_x_age"] = all_df["duration"] * all_df["age"]

# (3) sin,cos(コンタクト時間)
all_df['duration_sin'] = np.sin(2*np.pi * all_df['duration'] / 400)
all_df['duration_cos'] = np.cos(2*np.pi * all_df['duration'] / 400)
  • GM Chris氏の公開コードより、「カテゴリ列」と「数値列」を網羅的に組み合わせる方法を学んだ。実装内容は下記の通り。(詳細は参考文献 [1] )

① カテゴリ列(CATS)、数値列(NUMS)を保存

② 数値列をカテゴリに変換 → CATS1

③ CATS + CATS1をラベルエンコードしサイズ(SIZES)保存

④ (c1,c2)の組み合わせで新規特徴量CATS2を作成
   CATS2 = c1 x SIZES[c2] + c2

⑤ CATS + CATS1 + CATS2 の CE (カウントエンコード)を保存

⑥ CATS1, CATS2 は TE (ターゲットエンコード) 特徴量として更新

4. スコア推移(AUC)

番号  内容 CV   Public LB Private LB 備考
01 ベースライン 0.9688 0.9689 0.9686 LGBM/XGB/CB
02 特徴量追加 0.9712 0.9723 0.9719 最終提出(期限内)
03 XGB + TE 0.9753 0.9767 0.9763 Chris氏コード編集
04 LGBM + TE 0.9756 0.9766 0.9763 03をLightGBMへ移植
05 アンサンブル 0.9762 0.9770 0.9766 外部データ含む[2]

最終スコア

最終スコア1.png
最終スコア2.png

Late Submission

  • 期限後に改めて提出し、AUC 0.9770 まで改善。アプローチ自体の有効性を確認できた。
    Late Submission.png

まとめ

  • クロス特徴量の網羅的な生成 + TEの組合せが大きな改善につながった
  • 期限内の最終提出は AUC 0.9723 (Public LB)
  • Late Submissionでは AUC 0.9770 に到達
  • Kaggle初心者として学んだこと
    (1) 手動の特徴量作成より「網羅的な組合せ」+ TEの方が強力
    (2) 実務では「特徴量の意味」を説明できることが不可欠
  • 今後の挑戦
    (1) Playgroundに継続参加し、公開コードを含めて新たな経験を蓄積
    (2) テーブルデータコンペで一定の成果を出せるようになること

本記事は自身の学習記録ですが、特徴量設計・モデル改善のアプローチは業務のデータ活用にも応用可能だと考えています。

参考文献

[1] Notebook by GM Chris :XGBoost - Using Original Data - [CV 0.976]
https://www.kaggle.com/code/cdeotte/xgboost-using-original-data-cv-0-976
[2] 自身のGitHubコード
https://github.com/gentlech0/product/blob/main/01_Kaggle/01_Playground/S5E8/10_S5E8-Final-Edition.ipynb

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?