🔥
Signate 第2回 金融データ活用チャレンジ 精度を上げるためのTips
はじめに
第2回 金融データ活用チャレンジのベースライン記事の続き記事です。コンペの概要などは過去記事をご参照ください。
この記事では自分が精度を上げたTipsをいくつか書いています。
Tips
1. カテゴリカル変数が多いデータにはCatboost
カテゴリカル変数が多いデータであったため、Catboostにカテゴリカル変数として突っ込むのが有効であった。自分の戦略の肝はこれだけ。
下記のページに記載があるが、分類問題においてはTarget Encoding的な変換がなされるようです。
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)
- learning rateは0.01くらいがよさげ
- 各foldごとにcutoffも違う方がよさそうだった?
- 外部データは試した限りは効かなかった(金利、人口...など)
- 3つ目の外部データが効かなかった原因は、生成データが故と結論付けている
Discussion