『先輩データサイエンティストからの指南書』浅野らの書評
タイトルからは「仕事のやり方」「チームビルディング」のようなどちらかというとビジネス本のような印象を受けますが、中身はまったく異なります。大きく分類すればPythonの本です。名著『リーダブルコード』のデータサイエンス版に近いです。『プロダクションデータサイエンス』のようなタイトルの方がしっくりくるし売れそうに思いましたが…先輩データサイエンティストからの小言ですね、すみません(笑)
著者らはブレインパッドという受託分析会社でキャリアを重ねてきたデータサイエンティストたちです。ブレインパッド社は現在において勉強会の開催や資料の公開に最も積極的な会社の一つで、例えば資料はここにまとめられています。このようにオープンであることは技術を高めるのに非常に効果的で、作成者・発表者が緊張感を持つため質が上がりますし、資料に共感した技術力の高い人がさらに集まります。しかし、ただ人が集まれば高品質の成果物ができるかというとそうではありません。誰が担当しても一定以上の品質を保つためには、チーム内で一貫した設計思想、環境やコーディングのルール、モデルの管理、教育などなどが必要と思っています。この本はそういった内容を扱い、データサイエンスの成果物をプロダクションレベルに引き上げるための指南書となっています。データ分析や機械学習モデルそのものを扱うような本ではありません。
以降では簡単に内容を紹介したいと思います。詳しい目次は出版社のページにあります。
- 第1章 実務で生き抜くためのエンジニアリングスキル
- 第2章 環境構築
- 第3章 コードの品質管理
- 第4章 データの品質確認
- 第5章 機械学習モデルの実験管理
- 第6章 プロトタイプ開発
2章
おすすめのリポジトリ構成や、Git・VS Code・Docker・uvの使い方を速習できます。例えば企業で新人エンジニアに対してPython研修をすることがあると思いますが、自分たちで環境構築の資料を一から作るより、この2章を読んで構築してもらった方がほとんどのケースでベターと思います。
3章
Notebookの利点・欠点からはじまり、関数実装のベストプラクティス、クラス実装のベストプラクティス、命名、コメント、コードレビューなどコードの品質に関する話題が幅広く扱われていて、デザインパターンへの言及もしばしばあります。Notebookを量産していてきちんとしたPythonコードに自信がないデータサイエンティストにぜひ読んでほしい章です。
個人的に一番好きな章です。もっと読みたいです。
4章
サンプリング確認、統計量確認、分布確認という基本的だけど重要なことの説明があります。またPanderaというpandasのデータフレームに対するバリデーションツールの使い方の説明があり、僕は存在も知らなかったので勉強になりました。
5、6章
5章は実験管理についてで、HydraとMLflowという実験管理ツールの説明があります。Kagglerが使っていると聞いたこともあり、日々機械学習モデルの試行錯誤を大量に行う人に向いているツールなのだと思います。6章はStreamlitによるプロトタイプ作成の説明があります。
Enjoy!
