データサイエンティストを目指している大学3年生です!
初めて本格的にコンペに挑んでいるということで、少し記事を書いてみることにしました。
行き詰まってしまった人、詳しい中身がわからない人が、少しでもスコア改善につながれば嬉しいです。
この記事の執筆者について
- 統計検定2級(優秀成績賞)
- 統計検定準1級(最優秀成績賞)
- DS検定合格
- 簿記3級合格
- Flaskによるアプリ開発
全て2022年から始めて、秋までに取りました。機械学習の勉強はその秋から始め、今に至るといった感じです。(なのでまだ十分初学者)
どんなコンペか
金融データ活用推進協会(FDUA)が主催する、本邦初の超実践プログラムらしい。
コンペの内容は、要約すると「ある月のある住宅ローン契約者の属性や銀行口座情報などを元に、その人が3ヶ月後から連続して延滞するかどうかを予測する」もの。
他の特徴をまとめると、
- 評価指標はAUC
- データは実務経験に近い人工的な時系列データ
- 配布データ以外の利用は禁止
- テストデータが訓練データの翌月になっている
- 不均衡データ
- チュートリアルがめちゃくちゃしっかりしてる
やや特殊ではあるが、データが比較的綺麗でしっかりしたチュートリアル付きなので割と初心者でも取り組みやすいと思う。
ちなみに、以前参加したこのコンペの表記揺らぎや欠損処理が大変すぎて、これとは比べ物にならないくらい。
今の状況
- スコアは0.93ほど。0.94の壁を越えられず、悩んでいる
- 頑張って特徴量作って提出→スコア低下を繰り返し、沼にハマってる
- 上位の人たちのスコアが0.99を超えていて力の差を痛感してる
今までの奮闘記
2/2に期末試験が終わり、そこから本格参入。
初めにつまづいたのは環境構築。Databricks環境は初めて触ったので混乱した。
チュートリアルファイルや公式Slack チャンネルのやり取りを参考に、なんとか突破。
チュートリアル
今回のコンペはチュートリアルがしっかりしているので、(しっかりしすぎている)チュートリアルを全て終えると評価は0.896くらいを出せる。
(先生から言われた通りに勉強したら90点近くも取らせてくれるなんて、優しいなあ〜)なんて思ってた。(甘い)
チュートリアルにあった手法について、いくつか参考サイトを紹介します。
umapについて
一言で言うなら「高次元のデータを二次元や三次元データに落とし込んで可視化する」です。
今回はデフォルトで46もの変数があるので、46次元データを2次元データにしていると言えます。
t-SNEの読み方が「てぃーすにー」だと知った瞬間、推しになりました。
LightGBMについて
機械学習の中では最強と言われます。ざっくり言えば、決定木の集合ですが、詳しい説明は本当にわかりやすいこの方のブログに譲ります。
このブログの筆者である米国データサイエンティストのかめさんは本当にわかりやすいです。超おすすめです。
動画でざっくり理解したい方はこちら
不均衡データの処理について
中間イベントでも触れられていましたが、不均衡データの処理はかなり重要だと思います。
不均衡データへの対策がコード付きでいくつか載っています
交差検証(CV)について
時系列データなので、検証用データの選び方にも注意が必要です。
訓練データの中には、効果を検証したいデータより未来のものがあってはいけません。
このブログは図もついていてわかりやすいです。初めて交差検証を勉強する時、図を書かないと混乱するので、この記事はおすすめです。
チュートリアル後
チュートリアルを終えた後は、チュートリアルの最後に書いてあった、「エルボー法とk-meansを用いたクラスタリング」に挑戦。
参考にしたサイトはこれ。
ここまでやると他の参加者の人が記事を上げていたので、それを参考にすることにした。
ここまでに参考にした記事
始めて参加しているので、正直自分1人で進み続けるのは辛い。
なのでとてもありがたいです
-
【FDUA】第一回 金融データ活用チャレンジの戦い方を考える
正直、一番参考になったかもしれない。コードもついててとても良い。
-
【FDUA】第一回 金融データ活用チャレンジをやってみている
AutoMLを使って特徴量エンジニアリングに集中しているらしい。その手があったとは・・・となった。
-
SIGNATE 金融データ活用チャレンジ ~Databricks編~
Databricksについてが特に詳しく書かれている。コードもあってよき。
ここからやりたいこと
まずは0.94の壁を突破したい。
コンペの規約で詳しい中身は書けないけれど、あの有名なKaggle本1によれば、「スコアを最も効率よく伸ばす方法は良い特徴量を見つけること」らしいので、どんどん特徴量探索をしていきたい。
実務経験どころか人生経験が少ないので住宅ローンのイメージすらよくわからなくて大変だけど。笑
でも春休みだし、時間と元気は負けないのでがんばる。メダル欲しい。。。
最後に
自分がこれまでデータサイエンスを勉強する上で参考にしたもの
まだ機械学習を勉強し始めて半年も経たないくらいですが、今まで触れた教材や良いものを紹介します。
-
東大Python
無料。Pythonの基礎が全てまとまっています。Pythonの文法に不安がある方はこちらから。
https://utokyo-ipp.github.io/index.html -
東工大機械学習帳
無料。コード・理論付きで回帰から主成分分析などまで、幅広く学べます。
https://chokkan.github.io/mlnote/index.html -
Kaggleで勝つデータ分析の技術
説明不要、超有名なあのKaggle本。Kaggleのためだけでなく、実務で生きることも書かれている。必携の書らしい。
https://amzn.to/3xR2FCJ -
Python実践データ分析100本ノック
データ分析に特化した100本ノック本。最適化や自然言語処理も少し扱っているので、幅広い感じ。
https://amzn.to/3SbZY7K -
データ分析100本ノック(データサイエンス協会)
無料。データの前処理だけを扱う100本ノック。Python, R, SQLそれぞれ問題がある。
https://github.com/The-Japan-DataScientist-Society/100knocks-preprocess
自分が所属するDSLについて
自分はデータ分析特化型学生団体、DSLに所属しています。
単なる学生団体ではなく、データ分析に興味のある学生が慶應義塾大学、東京理科大学、日本大学を中心に集まり、日々イベント開催や参加、勉強会の実施を行なっており、総勢70名以上が活動しています。
DSLが主催した輪読会では、ゼロから作るPython機械学習を使用し、中学生から社会人の方まで幅広く参加していただきました。
やる気があればスキルや出身は問わないので、興味を持ってくださった方は、ぜひ一度Twitterから連絡をお願いします!
twitter→@DSL_Tw