第2回 金融データ活用チャレンジ　Datsikuと共に

## はじめに
こんにちは！DoNoriです！
SIGNATEで開催された[第2回 金融データ活用チャレンジ](https://signate.jp/competitions/1325)に参加しました。昨年の第1回チャレンジで初めてコンペに参加し、データ分析の楽しさに魅了され、今回もデータ分析を楽しみたく、参加しました。

特に今回は、参加者に無料でデータ分析ツールが提供されるということで、興味をそそられました。ノーコードでデータ分析ができると聞いて、今回は[Dataiku](https://www.dataiku.com/ja/)を使ってコンペに参加させてもらいました！

## なぜDataiku

このツールのデモを見たとき、「おおっ！」ってなりました。
データを可視化するのがこんなに簡単になるなんて、グラフを表示させるのに今まで、一生懸命ChatGPT先生やGoogle先生に聞いていた毎日からおさらばできそうです！


## コンペの目標
今回のコンペは過去にKaggleで出題されたSBAのデータを元に作られたデータを分析するとのことでした。
コンペ参加自体、3回目のど素人なので今回はとにかく以下の3点を意識していきました。
・データをとにかく良く見る
・Kaggleの参加者のやり方を真似る
・Slackのコメントをよく見て真似る

そしてリーダーボードを眺めて、0.6を超えることを目標にチャレンジを開始しました！

## Dataikuを触ってみて
英語だし、そもそも単語に慣れていないので、最初は途方に暮れました。
でも、すぐに[ハンズオン](https://youtu.be/RGVAPJmwu_U?si=SeYGM94VfnrK76C6)を実施してもらい、こんな簡単なのか！！
とびっくりしました！

ハンズオンの説明もとても丁寧で分かりやすかったです🎵


## モデル作りはどうだった？
さて、ハンズオンを実践して、ざっくり流れを押さえた所で、本格的にデータ分析を開始

まずはデータを可視化！！

ってことで、staticsタブでポチポチ
ボタンを押したら、、

![IMG_0008.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/627422/e7bdc0eb-96b1-e232-49b2-ff8b9e5c5840.jpeg)

はいこれ！！

楽ですね、すごいですね！

うん？
これが、何を意味してるかって！？

そう、そこが問題なんですよね。
グラフは簡単に出来るけど、うーん、イマイチこのグラフが何を意味してるか、分からない。

数時間、なんか面白そうなグラフやら資料作って遊んでました笑

完全に課題一個目ですよね。
素晴らしいツールがサクッとグラフにしてくれても、肝心の人間がそのグラフを読み解けない・・・。

何はともあれ、分かりそうなグラフやら資料わ作ってみて、データの前処理を実践して、

いざモデルの作成！

モデルを作成画面はこんな感じで

![IMG_0009.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/627422/0745f699-24b8-4ab5-e374-5afde1b2a17d.jpeg)

これまた、ポチポチやるだけで、
使ってみたいアルゴリズムでモデルが簡単に出来ました！

Dataikuのおかげでどれが一番いい結果を出すのか、すぐに分かりました。
この辺、かなり楽になります！

さらに、実装したかったアンサンブル学習やクロスバリデーションも簡単に設定できて、コーディングに頭を悩ませず、どうやったらモデルの精度が上がるのか？に集中でき、無事目標の0.6以上を達成できました！

## データ分析で工夫したこと
==工夫①==
目標の一つとしてKaggle参加者の実装内容を学ぶを設定していたので、
似たようなKaggleのコンペでどのような前処理が行われていたか
探していたところ、[SBA Loan Approval Analysis](https://www.kaggle.com/code/kevinm6720/sba-loan-approval-analysis)の記事を見つけ、参考にしていきました。

記事の中で、フランチャイズのフラグを作ることや、Termを区間で分けることなど、自分でも理解できるところを参考にデータの前処理を行っていきました。

モデル作成では、デフォルト設定で複数のアルゴリズムで学習してみましたが、LightGBMが1番精度良かったので、こちらを採用。
Feature Importanceは以下の通りで、UrbanRural（都市か田舎か？）とNoEmp（企業の従業員数）がAIモデルの学習に重要なってそうなのがわかります。
もっと、知識のある方なら、このDataikuで表示されているグラフから、どうすればもっと学習精度を上げられる等分かるのかもしれませんが、今の私には無理なんで、とりあえず、UrbanRuralとNoEmpをいじってみようと思いました。

![IMG_0013.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/627422/6f3d89f9-c775-ce8c-b8b0-36c5ed2e829e.jpeg)

==工夫②==
UrbanRuralの欠損値と思われる0；未設定があったので、欠損値の補完のため、Cityの名前からおおよその人口を割り出し、都市、田舎に割り当てることを考えました。
その際、[外部データ](https://www.census.gov/data/datasets/time-series/demo/popest/intercensal-2000-2010-cities-and-towns.html)をexcelで加工し、Dataikuにアップロードして欠損値の補完を行いました。

![IMG_0021.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/627422/1a16f0c4-c19d-0fd0-89e1-eca8defa0b9d.jpeg)


正直、単に結合したら、キー項目が重複してしまうなど、後処理に苦労した上、思ったように成果が出なかったです　苦笑
まぁ、でもデータの結合を試せたので自分の経験値にはなったのでOK！笑


==工夫③==
コンペ参加者のコミュニティの中で、予測結果の0の数をtrainデータと合わせたというコメントを発見し、すぐに実践してみました。
![IMG_0020.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/627422/063586c4-056d-e461-d090-2403df1ac87b.jpeg)

これは、だいぶ効果が出て、それまで、0.58だったスコアが0.65を一気に超えていきました！！（万歳:open_hands:）

※(参考)このコンペのトップの方のスコア：0.6906755



## 感想タイム

Dataikuを使ってみて気づいたのは、データサイエンスって、実はコーディング技術よりも、背景にある理論を理解することの方が大切なんだなってことでした！

会社の後輩に今回のコンペに興味あるけど、Pythonを初めからやるの大変って言われたので、Dataikuを紹介しました！

個人的に今後のコンペでも使わせてもらいたいですが、個人で契約出来なさそうなのが残念。簡易版があったら嬉しいのに。

勤務先の上席との面談の際、このコンペの話になったので、Dataikuについて、めっちゃ便利なデータ分析ツールあってPythonの学習コスト減らせるから、うちの部でもデータ分析始めましょうって嘆願してしまいました笑

もちろん、Pythonをつかって学ぶこともこれから必要だと思います。
ただ素人でも、どうすればモデルを作れるか？ではなくて、どうやったらモデルを良く出来るか？に注力できたのはDataikuのおかげでした！

今後は、グラフをもっと読める様になることを目標に統計学の勉強をしていこうと思いました！

グラフを読むのを学ぶのに、お勧めの本や資料があったら教えて下さい！

最後まで読んで頂きありがとうございました！