databricksのハンズオンに参加していろいろ体験してみた

# データブリックスのハンズオンに参加!
## 記事の内容
･データブリックスのすごさを紹介
･初心者が金融データ活用推進協会のコンペのハンズオンに参加したのでその感想
･ハンズオンきっかけで機能を触ってみたのでその感想

## こういう方向けの記事です
･データブリックスや機械学習触ってみたいけど、やったことがない人
･コンペに興味があるけどどこからやってみようか困っている人

## 背景
･金融データ活用推進協会(FDUA)が開催しているコンペに参加。
  これがコンペのURLです https://signate.jp/competitions/1325
･コンペ参加登録時に、使うツールとしてデータブリックスを選択すると専用のIDとPWがもらえました。
･コンペの内容としては、アメリカの企業データから、債務を完済できるかどうかを予測しようといったもの。
･データブリックスや機械学習は全くの初心者でしたが、ハンズオンでは、分かりやすい説明とサンプルコードが用意されていたので、なんとかついていけました。ハンズオンの後は、自分で色々と試してみました。
･参加したハンズオンのURL → https://youtu.be/957krUAVaLA?si=IzpOvdeeIDzV7MsA

# そもそもデータブリックスとは?
データブリックスとは、クラウド上でデータ分析や機械学習ができるプラットフォームです。
https://www.databricks.com/jp

## まず、データブリックスのすごいところをchatGPTにきいてみた
わからないことはGPTさんが教えてくれる☺
| 特徴 | 説明 |
| --- | --- |
| **Apache Sparkの統合** | Databricksは、Apache Sparkの共同創設者によって開発され、Sparkの機能を最大限に活用できる。 |
| **コラボレーションとノートブック機能** | チーム内のコラボレーションを容易にするノートブック機能を提供し、コード、データ、グラフなどを共有して作業できる。 |
| **MLflowの統合** | MLflowと緊密に統合されており、機械学習モデルのトレーニング、実験管理、デプロイメントを効率的に行うことができる。 |
| **データレイクとの連携** | AWS、Azure、GCPなどの主要なクラウドストレージサービスと連携し、データレイクから直接データを読み込むことが可能。 |
| **セキュリティとコンプライアンス** | エンタープライズレベルのセキュリティとコンプライアンスを提供し、多層のセキュリティ、監査、コンプライアンス機能が組み込まれている。 |
| **デルタレイクのサポート** | デルタレイクと密接に連携しており、データの信頼性と品質を向上させることができる。 |

その他のメリット
* データをアレンジしていくとき、その変遷がわかりやすく見れるのが素晴らしい
* データブリックスはクラウド上で動くので、自分のPCの性能に左右されない


## 早速体験!
まず、ログインしてコンペ運営さんが配布しているチュートリアルを使うことにしました。
![d1aa04027f41ded3beee0b8869b791e3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3676131/75b15df3-fda8-33ab-27ea-4c3847de0419.png)
機械学習が初めてな人でも触れるようにチュートリアル配布されていて有り難い･･･!
実行してみましたがスコアは0.6弱くらい(スコアは0~1で、1に近いほどいい)でまだまだこれからな数字。
このチュートリアルをベースに、カスタムするのが取り組みやすそう!


## AIでのアシストがすごかった
まじですごいなと思ったので気合を入れて紹介します。
たとえばここのコードの意味がわからないなと思ったとき･･･
![dff4232f67cb2c6e3e2df52ff6885f67.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3676131/6ac9bcf8-be7d-c9ee-1c91-907764aa31a9.png)
✨マークを押すとAIさんがアシストしてくれます。｢コードの説明｣と入力すると
![e9b7db140e737d958ac95c54c7e66b56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3676131/390cdd05-1258-8698-551c-a11ad3f3e503.png)
説明を付け足してくれました!!!
![9c8d7c327b2b4787e529f13dba1540c0.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3676131/e2983175-02ab-32a9-6f73-665d1661a0f6.png)

ここのコードを｢欠損値があるデータを削除｣に変えたいなって思ったら、コードを提案してくれました!!
(残念ながらこのコードがあっているかどうかは私にはわかりません･･･)
![c059f0585c01a36fb3eb589257371cc5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3676131/91bdec1b-3259-2944-c3b0-f1f6411f737f.png)
こんなふうにも!
![be9968819bff23bf3441877af9670353.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3676131/814929b0-b38d-5231-9e68-1d38f1db792f.png)
更新マークを押すと何回でも提案し直してくれるし、気にいらないときは｢拒否｣で終わらせることもできて、とても使いやすいと感じました。
:
個人的にこれのすごいと思ったところは、
* コードが書けなくても、自然言語で指示ができる →日本語が使えればOK:relaxed:
* 今までのコードの文脈もみてくれる →前提条件の細かい指示出し不要:relaxed:
という点です。
エラーが出たときの診断もしてくれるし、提案もしてくれる。
ほんとうに自分だけのアシスタントがいるんだなという感じがしますね!

### 初心者なりにカスタム方法を検討🤔･･･
企業の財務データが元データの項目にないので難しいところはあるのですが、以下2つを考えました。
* 企業の住所としてアメリカの州の名前があるので、それぞれの州の経済成長率を組み込む
* 保証機関が出してくれた保証可能な融資額(◯◯県信用保証協会の審査みたいなもんですかね?)という項目が割とアテになりそうだったので、この比重を重くする


## autoML(MLはマシンラーニングの略)
･ここまで配布されたチュートリアルを使ってカスタムする話をしていましたが、
 なんならゼロから自動で作ってくれるらしいです。すごすぎ。
･たくさんモデルを作ってもらって、そこから良さそうなものを使ったり、さらにカスタムしたりと幅が無限に広がりそうですね!
･作ってもらったモデルをもとに自身の学習をすることもできそうです。


以下autoML特徴についてchatGPT先生にまとめてもらいました。
|         |                                     |
|---------|-------------------------------------|
| **時間の節約と効率化** | 機械学習プロセスの自動化により、データの前処理、モデルの選択、ハイパーパラメータの調整が迅速。 |
| **アクセシビリティの向上** | 機械学習の専門知識がないユーザーでも、モデル開発が可能。 |
| **パフォーマンスの最適化** | さまざまなモデルとハイパーパラメータの組み合わせを自動でテストし、最適解を提供。 |
| **スケーラビリティ** | ビッグデータの効率的な処理と大規模な機械学習モデルの構築をサポート。 |
| **統合された環境** | データの探索からモデルのトレーニング、デプロイメントまでを一つのプラットフォームで実現。 |

これの、｢機械学習の専門知識がないユーザーでも、モデル開発が可能｣って本当にすごいことだと思います。こういう｢知識が少なくてもそこそこ実践レベルで使えるツールで世の中が便利になる｣という事象が個人的に大好物です。



## まとめ感想
* 機械学習は鍛錬を積んだデータサイエンティストだけのものだと思っていたのですが、AIのアシストをうまく使えば初心者でもそこそこのレベルのものはできるのかもしれません。すごい時代ですね･･･!
* 私が体験した機能はほんの一部なので、これ以上に色々機能があるらしいです
* データブリックスハンズオンでは、実際にデータを分析してみて、その楽しさや難しさを感じることができました。これを契機に、これからもっと勉強しようと思います!!
* ちなみにチュートリアルを自分なりにカスタムしてみたらスコアが下がってしまいました。。。初心者はここからスタートですね(T_T)