この記事はBrainPad Advent Calendar 2024 22日目の記事です。
2022年に新卒でブレインパッドに入社し、今年でデータサイエンティスト3年目となる者です。n番煎じではありますが入社してからの学びの振り返りという意味も込め、データサイエンティストとしてのスキルアップのために読んでよかったおすすめの書籍30冊を厳選して紹介します。
前提
筆者は学部では応用数学、修士では理論統計学を専攻しており、統計や機械学習については一定の知識がありました。一方でエンジニアリングは経験が浅く、入社時点ではPythonをノートブックベースで軽く書ける程度でGitやDocker、クラウドなどの知識はほぼ皆無でした。
一般的にデータサイエンティストに求められるスキル要素のビジネス、データサイエンス、エンジニアリングの3つの区分にしたがって書籍を紹介しますが、上記の背景もあり
- ビジネス、エンジニアリングは初学者向け
- データサイエンスは中級者向けかつ理論寄り
という傾向となっています。この点を踏まえた上で参考にしていただけますと幸いです。
おすすめ書籍
それではトピック別におすすめの書籍を紹介していきます。なお、書籍と言っておきながらWeb上の資料など書籍ではないものも一部含みます。
エンジニアリング
コーディング
1. リーダブルコード
エンジニアの入門書として必ずと言ってよいほど名前の挙がる名著です。適切な命名方法や読みやすい制御フローの書き方など、可読性の高いコードを書くためのエッセンスがコンパクトにまとまっています。分量としては200ページほどとそれほど多くはありませんが、読み返す度に新たな発見がある本です。
2. 良いコード/悪いコードで学ぶ設計入門
オブジェクト指向をベースとした設計についての入門書です。設計における陥りやすいアンチパターンとそれを解決する方法について、具体的なコード例を交えつつ紹介しています。Javaで書かれておりPythonの作法とやや異なる部分もありますが、考え方は十分参考になります。個人的には、リーダブルコードで基礎をおさえた次に読む本としておすすめできるものかと思います。
Python
3. 自走プログラマー
実践的なPythonの入門書としてはこちらをおすすめします。関数設計やレビューを意識したプルリクエストの作り方、テストの書き方など、実際のプロジェクト開発で役立つ実践的なノウハウがコンパクトにまとまっています。Webアプリケーション開発を想定して書かれた本ですが、データサイエンティストとしてチームでコーディングをする上でも十分参考になります。
4. ロバストPython
動的型付けで柔軟性の高いPythonで堅牢なコードを書くための方法について解説しています。型ヒント、各種データ型(Enum、データクラスなど)とその使い分けの指針、Pydanticなど、すぐに使い始められるようなトピックが多く、実務にも直接的に活かすことができます。
5. Effective Python 第2版
Pythonicなコードの書くためのベストプラクティスを90項目にわたる広範なトピックについて取り扱った本です。コレクション型に関する気の利いた書き方から、並行処理・非同期処理などのやや発展的なトピックまで幅広く学ぶことができます。各トピックは基本的には独立してるため気になるところをつまみ食いすることも可能です。
SQL
6. 達人に学ぶSQL徹底指南書 第2版
データベース上のデータを取り回す上でSQLの知識は必須です。この本はSQLの書き方のベストプラクティスや高速化のテクニックについて書いており、基本的な構文を学んだ後のステップアップの一冊としておすすめできます。
7. SQLではじめるデータ分析
時系列分析、コホート分析、テキスト分析などのデータ分析例を通して実践的なSQLの書き方を学ぶことができます。コードもGitHubで公開されているためハンズオン的に学ぶことも可能です。
データエンジニアリング
8. 達人に学ぶDB設計指南書 第2版
テーブル設計の実践的なノウハウについて書いた本です。アプリケーションのバックエンドとしてのデータベースを意識した本ですが、正規化理論やテーブル設計のアンチパターンなど、テーブルデータを取り扱う上での基本的な知識を体系的に学ぶことができます。
9. 実践的データ基盤への処方箋
データ基盤でビジネス価値を生むための実践的なノウハウが、データ整備、システム構築、組織作りの3つの観点から解説されています。データを見通しよく扱うための3層構造によるデータの管理方法など、現場の生の体験をもとにした知見が丁寧に言語化されており大変参考になります。
Linux
10. 新しいLinuxの教科書 第2版
Linuxの入門書として定番の一冊です。Linuxの機能から基本的なコマンド、シェルスクリプトなど基本的なLinuxの知識を体系的に学ぶことができます。今年に入ってから第2版が出たようです。
Git
11. GitHub実践入門
基本的なgitコマンドの使い方から代表的なブランチ戦略(GitHub Flow、Git Flow)まで、Gitを使ったチーム開発のいろはを学ぶことができます。ハンズオンに沿って実際に手を動かしながら学べるため初学者の方におすすめです。
12. Atlassian Git Tutorial
各gitコマンドの使い方をハンズオンと併せて学べるドキュメントです。Gitは広く普及している割には、それぞれのコマンドの挙動を正確に理解して使いこなすまでにややハードルのあるツールだと思います。このドキュメントは各コマンドを雰囲気ではなく仕組みから正確に解説しており(e.g. git reset
はHEADとブランチのrefを指定したコミットに動かす)納得しつつ読み進めることができます。
Docker
13. 仕組みと使い方がわかる Docker&Kubernetesのきほんのきほん
データサイエンティスト自身がコンテナでアプリケーションを開発、デプロイする場面は比較的少ない一方で、Dev Containerなどコンテナベースで分析環境を整えるスタイルは一般的になってきているように感じます(特にクラウドでGPUの学習環境を用意するためにはほぼ必須)。本書はコンテナの概念からdockerコマンドの基礎、Dockerfile、docker-composeまでDockerの基礎を平易な言葉で解説しており、最初の一冊としておすすめです。
クラウド
14. コードで学ぶAWS入門
他の技術領域にも共通しますが、特にクラウドは知識のインプットだけではイメージしづらい部分が多いため、とにかくサービスに触れてみることが重要だと思います。こちらは東大の工学部計数工学科の講義資料で、ハンズオンで様々なサービスに触れることを通してAWSの使い方を学ぶことができます。ハンズオンの内容はさることながら、資料としてのクオリティが高く純粋な読み物としてもおすすめできます。
データサイエンス
統計学や機械学習の各トピックごとに優れた書籍を挙げ出すときりがないので、できるだけトピックに被りの無いことを意識しつつ、独断と偏見でピックアップしてご紹介します。
統計学一般
15. 統計学実践ワークブック
幅広い統計学のトピックが網羅的にまとまった本です。それぞれのトピックの内容は要点に絞って書かれており比較的コンパクトですが、統計学の各領域を学ぶためのとっかかりを掴む上では最適な一冊だと思います。各章の最後には統計検定準1級相当の例題が付いているため、資格対策としても利用できます。
16. 現代数理統計学
中級者向けの数理統計学の名著です。推定論、検定論を中心とした古典統計の基礎理論を丁寧かつ体系的に解説しています。通読は骨が折れますが、本格的に統計学を学びたい方には絶対におすすめしたい一冊です。よく統計検定1級の対策本として紹介されますが、内容自体は1級合格よりも高いレベルにあると思います。
17. 統計学を哲学する
統計学は現実の事象を確率という数学的な道具を通して理解する枠組みであり、その狭間で解釈の問題が生じます。古典統計とベイズ統計の確率の捉え方の違いや統計手法の依拠している思想について、哲学的な観点から紐解いた本です。直接的に実務に役立つという類のものではないかもしれませんが、統計学の思想に触れることのできる貴重な本なので、興味のある方にはぜひおすすめしたい本です。
ベイズ統計学
18. 標準 ベイズ統計学
ベイズ統計学の基礎を体系的に解説した「A First Course in Bayesian Statistical Methods」の日本語訳です。正規-正規、ガンマ-ポアソンなどの標準的なモデルから階層モデル、MCMCに至るまでベイズ統計の標準的なトピックが適切なボリュームでまとまっています。コンパクトにベイズ統計が学べる本として最適な一冊です。
因果推論
19. 調査観察データの統計科学
因果推論・効果検証については幅広いレベルでさまざまな本がありますが、個人的にはこの本がイチ押しです。potential outcome frameworkに基づくRubin流の因果推論について丁寧に解説されており、傾向スコアを中心とする観察データの因果推論について学ぶことができます。なお、因果ダイアグラムをベースとしたPerl流の因果推論については取り扱っていないのでご注意ください。
機械学習一般
20. パターン認識と機械学習 上/下
機械学習の理論書として必ず名前の上がる定番の本(通称PRML)です。全体的にベイズ統計の考え方に寄った記述ですが、線形回帰、SVM、ガウス過程回帰、ブースティングなど、機械学習の代表的が手法が一通り網羅されており、体系的にしっかりと学ぶことができます。ボリュームたっぷりで通読難易度は高めです。
21. 深層学習 第2版
深層学習に関連する広範なトピックを網羅的かつ体系的に学ぶことができる一冊です。誤差逆伝播などの基礎的な事項から、様々な学習方法、代表的なアーキテクチャ(CNN、RNN、GNN、Transformer、生成モデルなど)に至る幅広いトピックについて詳細に解説されています。本書に限らずMLPシリーズはいずれも内容の質が高く勉強になります。
22. Kaggleで勝つデータ分析の技術
Kaggleで役立つ機械学習モデリングの実践的なテクニックについて解説している本です。「Kaggleで勝つ」というコンセプトで書かれていますが、評価指標や特徴量エンジニアリング、バリデーションの切り方など、実務でも多用するようなトピックが豊富に取り扱われており、機械学習の実践書として広くおすすめできる本かと思います。
自然言語処理
23. 自然言語処理の基礎
深層学習をベースとした自然言語処理の主要なトピックが体系的にまとまった本です。RNNから始まりTransformer、そこからBERTなどの事前学習モデルに至るまでの流れがスムーズに解説されています。昨今のLLMを学ぶための前提知識を付ける上でも有効な本だと思います。
推薦
24. 推薦システム実践入門
実務における機械学習の代表的な応用先の一つである推薦について、実践的な知見がまとまった本です。推薦アルゴリズムや評価方法などの数理的な話はもちろん、UI/UXや実システムに組み込む上での工夫などの実践的なトピックについても整理されており、推薦システムを学ぶ上での入門書として適した一冊だと思います。
Explanable AI
25. 機械学習を解釈する技術
タイトルの通り機械学習を解釈するための技術についてまとまった本です。実務ではモデルを作って終わりではなく、どのような特徴量が予測に寄与しているのかなど、モデルの解釈まで求められる場面にしばしば遭遇します。こちらの本は、SHAPをはじめとした代表的な手法についてとてもわかりやすく解説されておりおすすめです。
最適化
26. しっかり学ぶ数理最適化
連続最適化(線形計画、非線形計画)から組合せ最適化まで、最適化の主要なトピックを幅広く学ぶことができます。数学的に丁寧に記述されていながらも、カラー刷りの図解を通してグラフィカルにわかりやすく解説されており、タイトル通りしっかりと学ぶことができます。
ビジネス
コミュニケーション
27. ロジカル・シンキング
コンサルタントへの推薦書として挙げられる定番の本です。相手に伝えるメッセージとして備えておくべき要件、構造的に論理を構成するための方法など、仕事におけるコミュニケーションやドキュメンテーションのベースとなる考え方がまとめられています。
28. 一番伝わる説明の順番
データサイエンティスト、特に受託分析業務では様々なバックグラウンドを持つクライアントとやりとりをするため、専門的な言葉を並び立てるだけでは価値につながりにくく、理解してもらうための説明を与える技術が求められます。「結論よりまずは前提をそろえる」など、その通りと思いつつも意外とできていない、伝えるためのエッセンスが分かりやすく書かれています。
スライド作成
29. 外資系コンサルのスライド作成術
分析業務では最終アウトプットをスライドの形に落とすことも多く、スライド作成の技術も求められます。本書はスライド作成の基本的な作法についてまとめた本です。スライドの基本的な構成要素から作成手順、図表のテクニックなどについて、良い例/悪い例の図解とあわせて解説しています。
30. 伝わるデザインの基本
読んでもらえる資料を作るためにはデザインに気を配ることも重要です。伝わるデザインはセンスではなくルールによって決まります。そのルールについて教えてくれる本です。この本自体のデザインも洗練されており、視覚的に楽しみつつ読むことができます。
おわりに
ビジネス、データサイエンス、エンジニアリングの区分に沿って、様々な領域、トピックのおすすめ書籍を紹介しました。データサイエンティストは良くも悪くも境界が曖昧な職業だと感じます。だからこそ、今後も興味・関心や志向性に応じて周辺の領域に染み出しつつ、スキルの幅を広げていければと思います。
この記事が同じような境遇の方の学習の参考になれば幸いです。