🔥

Signate 第2回 金融データ活用チャレンジ 精度を上げるためのTips

2024/02/18に公開

はじめに

第2回 金融データ活用チャレンジのベースライン記事の続き記事です。コンペの概要などは過去記事をご参照ください。

この記事では自分が精度を上げたTipsをいくつか書いています。

コードのGoogle colabはこちら

Tips

1. カテゴリカル変数が多いデータにはCatboost

カテゴリカル変数が多いデータであったため、Catboostにカテゴリカル変数として突っ込むのが有効であった。自分の戦略の肝はこれだけ。

下記のページに記載があるが、分類問題においてはTarget Encoding的な変換がなされるようです。

https://catboost.ai/en/docs/concepts/algorithm-main-stages_cat-to-numberic

2. 本来数字である変数もカテゴリカル変数として処理

今回は生成データであり、DisbursementGross などの本来数字のデータもカテゴリカル変数として処理されてそうであったため(学習データにおいて文字列として入っていたため)、カテゴリカル変数として処理しました。

ただし、これら変数はint型としても取り扱っています。

# ["DisbursementGross", "GrAppv", "SBA_Appv"]をカテゴリカル変数として追加(処理的にはcols_categoryに足した上でintに追加)
    cols = ["DisbursementGross", "GrAppv", "SBA_Appv"]
    for col in cols:
        df[f"{col}_int"] = df[col].copy()

3. その他(より細かいTips)

  1. learning rateは0.01くらいがよさげ
  2. 各foldごとにcutoffも違う方がよさそうだった?
  3. 外部データは試した限りは効かなかった(金利、人口...など)
    • 3つ目の外部データが効かなかった原因は、生成データが故と結論付けている

Discussion