Snowflakeの試験(SnowPro Advanced: Data Scientist Certification(DSA-C02))に受かった話

この投稿は[ちゅらデータアドベントカレンダー2023](https://qiita.com/advent-calendar/2023/churadata)の5日目の記事です。

# はじめに
こんにちは。ちゅらデータの親会社のDATUM STUDIO株式会社の亀井と申します。
昨日、同僚の@Benjamin0313 さんが試験に落ちた記事を書いてくれたので、今日は試験に受かった話を書こうと思います。（煽）
@Benjamin0313さんの記事はこちら↓

https://qiita.com/Benjamin0313/items/e477918a844055138454

# これは何？
8月に[**SnowPro Advanced: Data Scientist Certification（DSA-C02）**](https://learn.snowflake.com/en/certifications/snowpro-advanced-datascientist) に(ギリギリ)合格したので、勉強した内容とかを書きました。



# 基本情報
[公式サイト](https://learn.snowflake.com/en/certifications/snowpro-advanced-datascientist/ "公式サイト")から抜粋。
前提資格である[SnowPro Core Certification](https://learn.snowflake.com/en/certifications/snowpro-core-jpn/)と比較してみました。


| 項目                         | SnowPro® Core Certification         | SnowPro® Advanced Data Scientist |
|------------------------------|-------------------------------------|----------------------------------|
| 試験バージョン               | COF-C02                             | DSA-C02                          |
| 質問の合計数                 | 100                                 | 65                               |
| 質問のタイプ                 | 複数選択、単一選択                   | 複数選択、単一選択               |
| 制限時間                     | 115分                               | 115分                            |
| 使用言語                     | 英語 & 日本語                         | 英語                             |
| 登録料                       | $175 USD                            | $375 USD                         |
| 合格スコア                   | 750 + スケールスコア (0 - 1000)     | 750 + スケールスコア (0 - 1000)  |
| スコアにカウントされない内容 | 試験には、統計情報収集のためのスコアにカウントされないアイテムが含まれている場合がある。これらのアイテムはフォーム上で識別されておらず、スコアには影響しない。これらのコンテンツのために追加の時間が考慮されている。 | 同左                              |
| 前提条件                     | 前提条件なし                          | SnowPro Core 認定済み            |


# 受験前の状態
- 数理統計学、機械学習の基礎知識
    - 学生時代に基本的な知識は習得済み
    - 入社後も、統計検定準一級のワークブックの勉強会を週次で行っていました。
- pandas, scikit-learn
    - kaggle等で若干触ったことあるレベルでした。
- **Snowflakeの実務経験**
    - **ありませんでした。**
    - ただし、直前に[SnowPro Core Certification](https://learn.snowflake.com/en/certifications/snowpro-core-jpn/)に合格できるくらいの基礎知識は持っていました。

# 結果
750/1000で本当にギリギリ合格しました
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3634941/8f61b2d9-f20f-3804-151e-1c029394180d.png)

なので、今回の合格は再現性がかなり怪しいです。勉強法などはほどほどに参考にしてください。

# リソース
### 公式の学習ガイド
[[DSA-C02] SnowPro Advanced: Data Scientist Exam Study Guide](https://learn.snowflake.com/courses/course-v1:snowflake+SPSG-DSA+B/about )
- 正義。
- 基本的には、これに載っている項目のうち、知らないものを順番に潰していくという作業をしました
    - 試験範囲に関連する記事、公式ドキュメントも記載されています。
    - ただ、ML関連の公式ドキュメントはあんまりないので、後述のハンズオンで補填していきます。

### ハンズオン資料
https://quickstarts.snowflake.com/guide/getting_started_with_dataengineering_ml_using_snowpark_python/index.html#0 

https://quickstarts.snowflake.com/guide/getting_started_snowpark_machine_learning/index.html#0

https://docs.snowflake.com/ja/sql-reference/external-functions-creating-aws

https://datumstudio.jp/information/0729_snowflake_hands-on_seminar/

（最後のハンズオン資料は、公開資料ではなさそうでした...）

MLパイプライン、モデルの実装についての公式ドキュメントがあまりないので、これらで補填しました。
手を動かして勉強しかったので、上記のハンズオンを写経しました。

### 本
- 試験のために読んだというより、読んだことがある本を復習のために読み返しました。
- **馴染みある本で勉強するのがいいと思います。**
- [Kaggleで勝つデータ分析の技術](https://gihyo.jp/book/2019/978-4-297-10843-4)
    - MLモデルの前処理の復習
- [はじめてのパターン認識｜森北出版株式会社](https://www.morikita.co.jp/books/mid/084971)
    - 評価指標（混合行列、AUCとか）の復習
- [日本統計学会公式認定統計検定準1級対応　統計学実践ワークブック](https://www.gakujutsu.co.jp/product/978-4-7806-0852-6/)
    - 線形回帰の復習

# 勉強したこと
- 大まかな方針として、公式の学習ガイドに載っている項目のうち、知らないものを勉強していきました。
- slackのcanvasに試験範囲をコピペして、わかったところからチェックを入れていく、という勉強法をとりました。

### 統計、機械学習の基礎知識の復習
- 試験範囲となっている概念はほぼ既知だったので、持っている本でさらっと復習しました。
- MLOps周りやpartial dependency とかは未知だったので、学習ガイドに貼ってある記事やドキュメントを読んで勉強しました。

### ハンズオン
- SQLやpythonの構文も聞かれそうだったので、手を動かして覚えました。
- 知らない構文が出てきた時は、公式ドキュメントを読みにいったりしました。
- 試験範囲にexternal functionがたくさん出てきたので、これも公式のハンズオンをやりました。

# 最後に
- 統計、MLに関する（Snowflakeとは関係ない）問題の比率が高かったので、実務経験がなくても意外と戦えます。
- 昨日の記事でも記載がありましたが、本試験は同僚の@Benjamin0313さん、先輩の@ugmukaさんと3人で一緒に受けました。結果、僕だけが合格という結果となりましたが、一人では絶対合格まで辿り着けませんでした。
ここに、感謝の意を述べさせていただきます。さんきゅな。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3634941/bd71681c-2a49-9d84-6b1b-93d17b7b5278.png)
↑祝勝会の様子（焼肉を奢ってくださいました！）

# (おまけ)試験前に参考にしたサイト
[A new piste to ski: Taking the SnowPro Advanced Data Scientist Certification Exam](https://medium.com/snowflake/a-new-piste-to-ski-taking-the-snowpro-advanced-data-scientist-certification-exam-6816a9fa31d1) 
- ググって唯一でてきた合格体験記

- 試験前から強すぎて（サイエンティスト歴10年、GCP Professional Data Engineer 認定、SnowPro Advanced Data Engineer）あんまり参考になりませんでした。

- 試験の内容とかは結構参考にしました。