第1章実務で生き抜くためのエンジニアリングスキル
1.1データサイエンティストを取り巻く環境の変遷
1.1.1希少価値が高かったデータサイエンティスト黎明期
1.1.2技術民主化の波とPoC 止まりの現実
1.1.3データサイエンスを価値に繋げるために
1.2プロジェクトで求められるエンジニアリングスキル
1.2.1データサイエンスプロジェクトのフロー
1.2.2データサイエンティストのスキル習得プロセスによる課題
1.2.3データサイエンスプロジェクト特有の難しさ
1.2.4価値を生むために必要なエンジニアリングスキル
1.3まとめ
第2章環境構築
2.1分析の土台としての環境構築
2.1.1なぜ環境構築が大切か
2.1.2適切な環境構築をするために
2.2リポジトリの構造を整える
2.2.1適切な構造のリポジトリを作るメリット
2.2.2本書で扱うリポジトリ構成
2.3VS Codeでの開発環境の整備
2.3.1VS Code の設定
2.3.2VS Code の拡張機能
2.3.3VS Code のデバッガ
2.3.4VS Code のショートカット
2.4Dev Container による仮想環境構築
2.4.1仮想環境とは
2.4.2仮想環境の種類
2.4.3Docker とDocker Compose
2.4.4Dev Container の使い方
2.5uv によるパッケージ管理
2.5.1パッケージ管理
2.5.2パッケージマネージャーの比較
2.5.3uv によるパッケージ管理
2.6まとめ
第3章コードの品質管理
3.1Notebookだけのデータサイエンティストからの卒業
3.1.1Notebookの手軽さと課題
3.1.2Notebook vs Python Script
3.1.3NotebookユーザーのためのPython Script入門
3.1.4一歩上のNotebookの使い方
3.2コード品質とは
3.2.1コード品質の重要性
3.2.2品質の高いコードとは
3.3品質の高いコードとその実現方法
3.3.1関数
3.3.2クラス
3.3.3命名
3.3.4コメントの書き方
3.3.5コーディング規約
3.3.6型ヒントと静的型チェック
3.3.7テスト
3.3.8品質の高いコードを書けるようになるためには
3.4コードレビューによる品質管理
3.4.1コードレビューとは
3.4.2コードレビューの利点と継続のために
3.4.3Gitブランチ戦略を取り入れる
3.4.4コードレビューの心得
3.4.5チームでの効果的なコードレビューを目指して
3.5まとめ
第4章データの品質確認
4.1データの品質確認の重要性
4.1.1データの品質との向き合い方
4.1.2現場のデータが汚い原因
4.2分析開始前のデータ確認
4.2.1データの背景を理解する
4.2.2データの品質を理解する
4.3Panderaによるデータフレームのバリデーション
4.3.1データ加工時の品質担保
4.3.2Panderaによるバリデーション
4.4データ品質管理の継続的な取り組み
4.4.1データの変化のモニタリング
4.4.2データ基盤チームとの連携による品質改善
4.5まとめ
第5章機械学習モデルの実験管理
5.1実験管理の意義
5.1.1データサイエンスプロジェクトの不確実性
5.1.2実験管理の必要性
5.1.3実験管理ツール
5.2Hydraによるパラメータ管理
5.2.1Hydraの概要
5.2.2Hydraのインストール
5.2.3Hydraの基本機能
5.2.4Hydraの実践的な機能
5.3MLflowによる実験の比較
5.3.1MLflowの概要
5.3.2MLflowのインストール
5.3.3MLflow Trackingのコンセプト
5.3.4MLflow Trackingによる実験管理
5.4まとめ
第6章プロトタイプ開発
6.1プロトタイプ開発の意義
6.1.1プロトタイプ開発とは
6.1.2データサイエンティストに求められるアウトプット
6.1.3プロトタイプ開発の利点
6.1.4アプリケーションフレームワークの種類
6.2Streamlitによるプロトタイプ開発
6.2.1プロトタイプの紹介
6.2.2Streamlitの概要
6.2.3Streamlitのインストール
6.2.4Streamlitによるシンプルなアプリケーションの作成
6.2.5Streamlitの機能・コンポーネントの紹介
6.2.6プロトタイプの作成
6.3まとめ