【FDUA】初学者大学生の第一回金融データ活用チャレンジ奮闘記

データサイエンティストを目指している大学3年生です！
初めて本格的にコンペに挑んでいるということで、少し記事を書いてみることにしました。

行き詰まってしまった人、詳しい中身がわからない人が、少しでもスコア改善につながれば嬉しいです。

## この記事の執筆者について
* 統計検定2級（優秀成績賞）
* 統計検定準1級（最優秀成績賞）
* DS検定合格
* 簿記3級合格
* Flaskによるアプリ開発

全て2022年から始めて、秋までに取りました。機械学習の勉強はその秋から始め、今に至るといった感じです。（なのでまだ十分初学者）

## どんなコンペか
金融データ活用推進協会(FDUA)が主催する、本邦初の超実践プログラムらしい。

https://signate.jp/competitions/841

コンペの内容は、要約すると「**ある月のある住宅ローン契約者の属性や銀行口座情報などを元に、その人が3ヶ月後から連続して延滞するかどうかを予測する**」もの。

他の特徴をまとめると、
* 評価指標はAUC
* データは実務経験に近い人工的な時系列データ
* 配布データ以外の利用は禁止
* テストデータが訓練データの翌月になっている
* 不均衡データ
* チュートリアルがめちゃくちゃしっかりしてる

やや特殊ではあるが、データが比較的綺麗でしっかりしたチュートリアル付きなので割と初心者でも取り組みやすいと思う。

ちなみに、以前参加したこのコンペの表記揺らぎや欠損処理が大変すぎて、これとは比べ物にならないくらい。

https://signate.jp/competitions/264

## 今の状況
* スコアは**0.93**ほど。0.94の壁を越えられず、悩んでいる
* 頑張って特徴量作って提出→スコア低下を繰り返し、沼にハマってる
* 上位の人たちのスコアが0.99を超えていて力の差を痛感してる

## 今までの奮闘記
2/2に期末試験が終わり、そこから本格参入。
初めにつまづいたのは環境構築。Databricks環境は初めて触ったので混乱した。

チュートリアルファイルや公式Slack チャンネルのやり取りを参考に、なんとか突破。

### チュートリアル
今回のコンペはチュートリアルがしっかりしているので、（しっかりしすぎている）チュートリアルを全て終えると評価は0.896くらいを出せる。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3179677/32d74919-266c-a803-249a-82d2a9207ea6.png)

（先生から言われた通りに勉強したら90点近くも取らせてくれるなんて、優しいなあ〜）なんて思ってた。（甘い）

チュートリアルにあった手法について、いくつか参考サイトを紹介します。

**umapについて**
一言で言うなら「高次元のデータを二次元や三次元データに落とし込んで可視化する」です。
今回はデフォルトで46もの変数があるので、46次元データを2次元データにしていると言えます。

https://qiita.com/odanny/items/06ab88353bcee7bf6aa7

t-SNEの読み方が「てぃーすにー」だと知った瞬間、推しになりました。

**LightGBMについて**
機械学習の中では最強と言われます。ざっくり言えば、決定木の集合ですが、詳しい説明は本当にわかりやすいこの方のブログに譲ります。

https://datawokagaku.com/lightgbm/

このブログの筆者である米国データサイエンティストのかめさんは本当にわかりやすいです。超おすすめです。

動画でざっくり理解したい方はこちら

https://youtu.be/BjniSO867ac

**不均衡データの処理について**
中間イベントでも触れられていましたが、不均衡データの処理はかなり重要だと思います。

https://qiita.com/tk-tatsuro/items/10e9dbb3f2cf030e2119

不均衡データへの対策がコード付きでいくつか載っています

**交差検証（CV)について**
時系列データなので、検証用データの選び方にも注意が必要です。
訓練データの中には、効果を検証したいデータより未来のものがあってはいけません。

https://www.codexa.net/cross_validation/

このブログは図もついていてわかりやすいです。初めて交差検証を勉強する時、図を書かないと混乱するので、この記事はおすすめです。

### チュートリアル後
チュートリアルを終えた後は、チュートリアルの最後に書いてあった、「エルボー法とk-meansを用いたクラスタリング」に挑戦。
参考にしたサイトはこれ。

https://qiita.com/deaikei/items/11a10fde5bb47a2cf2c2

ここまでやると他の参加者の人が記事を上げていたので、それを参考にすることにした。

### ここまでに参考にした記事
始めて参加しているので、正直自分1人で進み続けるのは辛い。
なのでとてもありがたいです:relaxed:

1. *【FDUA】第一回 金融データ活用チャレンジの戦い方を考える*
正直、一番参考になったかもしれない。コードもついててとても良い。

https://takaito0423.hatenablog.com/entry/2023/02/03/212539


2. *【FDUA】第一回 金融データ活用チャレンジをやってみている*
AutoMLを使って特徴量エンジニアリングに集中しているらしい。その手があったとは・・・となった。

https://qiita.com/isanakamishiro2/items/477fa0df6c5b69c77a1b

3. *SIGNATE 金融データ活用チャレンジ ～Databricks編～*
Databricksについてが特に詳しく書かれている。コードもあってよき。

https://www.nri-digital.jp/tech/20230214-12706/

## ここからやりたいこと
まずは0.94の壁を突破したい。
コンペの規約で詳しい中身は書けないけれど、あの有名なKaggle本[^1]によれば、「スコアを最も効率よく伸ばす方法は良い特徴量を見つけること」らしいので、どんどん特徴量探索をしていきたい。

実務経験どころか人生経験が少ないので住宅ローンのイメージすらよくわからなくて大変だけど。笑

でも春休みだし、時間と元気は負けないのでがんばる。メダル欲しい。。。

## 最後に
### 自分がこれまでデータサイエンスを勉強する上で参考にしたもの
まだ機械学習を勉強し始めて半年も経たないくらいですが、今まで触れた教材や良いものを紹介します。

1. 東大Python
    無料。Pythonの基礎が全てまとまっています。Pythonの文法に不安がある方はこちらから。
    https://utokyo-ipp.github.io/index.html
    
1. 東工大機械学習帳
    無料。コード・理論付きで回帰から主成分分析などまで、幅広く学べます。
    https://chokkan.github.io/mlnote/index.html

1. Kaggleで勝つデータ分析の技術
    説明不要、超有名なあのKaggle本。Kaggleのためだけでなく、実務で生きることも書かれている。必携の書らしい。
    https://amzn.to/3xR2FCJ

1. Python実践データ分析100本ノック
    データ分析に特化した100本ノック本。最適化や自然言語処理も少し扱っているので、幅広い感じ。
    https://amzn.to/3SbZY7K

1. データ分析100本ノック（データサイエンス協会）
    無料。データの前処理だけを扱う100本ノック。Python, R, SQLそれぞれ問題がある。
    https://github.com/The-Japan-DataScientist-Society/100knocks-preprocess

### 自分が所属するDSLについて
自分はデータ分析特化型学生団体、DSLに所属しています。

単なる学生団体ではなく、データ分析に興味のある学生が慶應義塾大学、東京理科大学、日本大学を中心に集まり、日々イベント開催や参加、勉強会の実施を行なっており、総勢７０名以上が活動しています。

DSLが主催した輪読会では、[ゼロから作るPython機械学習](https://amzn.to/3SdWVwa "ゼロから作るpython機械学習")を使用し、中学生から社会人の方まで幅広く参加していただきました。

やる気があればスキルや出身は問わないので、興味を持ってくださった方は、ぜひ一度Twitterから連絡をお願いします！
twitter→[@DSL_Tw](http://twitter.com/DSL_Tw "DSL Twitter")

[^1]: https://amzn.to/3k1RFPz