TF-IDF × LightGBMでROC-AUC 0.94達成
📝 詳細な取り組み内容や全コードは、こちらのZenn記事にまとめています👇
🔗 Zenn記事
🎯 背景と目的
Dacon主催のAIコンペにて、「URLの文字情報のみで悪性かを判定するAIモデル」の開発に挑戦しました。
約700万件の大規模なデータをGoogle Colab環境で処理しながら、TF-IDFとLightGBMによるモデル構築を行いました。
🔧 技術構成
- 前処理:TF-IDF(文字3〜5gram、最大10万次元)
- モデル:LightGBM(max_depth=7、learning_rate=0.2)
- 評価:StratifiedKFold(3分割) + ROC-AUC
📊 サンプル実験で ROC-AUC 0.94095 を達成!
💥 課題と対策
Colab Pro環境でもRAM不足により全データでの学習が困難でした。
そのため、以下のような工夫を行いました:
- 特徴量数を 10万 → 5万 に削減
- データをサブサンプリングして段階的に学習
-
joblib
を使ってモデルやベクトルの分割保存を実施
🤖 実行環境
- Google Colab Pro
- Python 3.11
- scikit-learn 1.3.0
✍️ まとめ
最終提出には至りませんでしたが、実務レベルのデータ規模と環境制限下でのモデル設計・改善を実体験できた貴重なプロジェクトでした。
同じような状況で試行錯誤している方々に、少しでも参考になれば嬉しいです。