はじめに
この記事はあくまで著者本人が独断と偏見で、最近データサイエンティストに入門した人、入門しそうな人向け今後データサイエンティストとしてやっていく上で最低限読んでおいてもらいたい情報について雑多にまとめたものになります。もちろん、実践をやっていく上ではこれらを軸にさらにここから数倍以上の内容を勉強していく必要はあります。ある程度専門性によっても変わる部分ではあると思うので、ここではまずは押さえておきたい項目に絞っています。
これは著者が読んだものでしかないので、必ずしもこれらの情報を読めという意図ではなく、ここに上がった項目を一度はちゃんと勉強しておいてもらいたいという意味になります。皆様はこの項目を元に他の書籍、Webページ、動画、LLM、有識者などに教わるなどしてもらえれば良いと思います。
もちろん、これらを読んだだけでは実際にはわかったつもりの状態でしかなくて、今後実践していく中で実感をもって理解できるようになっていきます。それでもやっぱり知識として知ることが最初の段階
基本的に最初はテーブルデータ系を想定して列挙しています。追々画像認識とかの他の技術要素は追加していきたいです。
列挙した情報に賛否両論はあろうかと思いますので、皆様の方で他におススメがあれば、是非コメントで教えてくださいまし。
気が向いたら、時々更新はかけていきます。
フェーズ別
ここからはデータサイエンスプロジェクトにおける代表的なフェーズ別に列挙していきます。
要件定義~設計フェーズ
データ理解
データ解釈学
正しい解釈は正しい道筋を示してくれます。
評価指標設計
評価指標入門〜データサイエンスとビジネスをつなぐ架け橋
一般に機械学習の損失関数とビジネス上の評価関数は異なることがあるということを理解しましょう。何をもって精度を良しとするのかを正しく設計できれば、そのプロジェクトの勝ち筋に乗っかれますが、これを中途半端にすると悲しい結末に向かう可能性が高まるので、かなり重要です。
推進
データ分析失敗事例集: 失敗から学び、成功を手にする
読んでたら、あるあるばかりで色々フラッシュバックしてきて胃が痛くなりました。
データ分析フェーズ
統計学
データ分析に必須の知識・考え方 統計学入門 仮説検定から統計モデリングまで重要トピックを完全網羅
正しい統計学的理解は良い分析に繋がります。個人的には統計検定2級程度で出題されるレベルの知識量と理解があれば業務を始める上では十分だと思います。
可視化
指標・特徴量の設計から始める データ可視化学入門 データを洞察につなげる技術
可視化することで見えてくることがあります。分析の基本ですから、怠らずに頑張らないといけない部分です。
その他
データ分析に必須の知識・考え方 認知バイアス入門 分析の全工程に発生するバイアス その背景・対処法まで完全網羅
思い込みをしていると思わぬ落とし穴に嵌ることになります。バイアスをしっかり理解して進めないと、実用に耐えないものを作ってしまいかねません。
データ加工~機械学習フェーズ
コーディング/プログラミング
Python 実践データ分析 100本ノック 第2版
データ分析全般のコーディングの流れをある程度網羅されていて、自習的に練習できます。後続の何冊かがシリーズになっているので、それもトライしてみると良いでしょう。
データ加工全般
改訂新版 前処理大全〜SQL/pandas/Polars実践テクニック
基本的なデータの取り出し、加工の処理が書かれていて、最初にこれだけ押さえておきたいことが網羅されています。
欠損値 / 外れ値 / 異常値処理
欠損データ @tk-tatsuro 様
欠損値を安易に平均値で埋めてはいけません・・・。ちゃんと欠損値の意味を解くほぐして、適切な処置をする(もしくはあえてしない)判断ができるようになりましょう。
外れ値の意味と求め方を解説|必ずしも除外することが正解とは限らない? @GMO Research&AI様
外れ値も欠損値と同じです。データの意味や分布に合わせて扱えば、安易に除去しないでも有効に使える場合があります。
特徴量エンジニアリング
Kaggleで勝つデータ分析の技術
Kaggleでのテクニックとありますが、しっかりと実践的な内容が含まれていて、特徴量エンジニアリングの色々な手法の使い方のポイントがしっかりと網羅されています。
今あらためて考える特徴量エンジニアリング ~予測精度をあと一歩改善するテクニック @ISMagazine
ざっくりとした全体感が書かれています。経験的に、データの質を担保できた状態であれば、まずはドメイン知識に基づく特徴量の仮説をしっかりと立てて分析し、それをモデルに組み込んで評価の繰り返しが最も有効な手段でした。
機械学習モデリング(構造化データ)
Scikit-learn
Scikit-learnの使い方まとめ(機械学習入門・サンプル集)
最近は精度の観点からはあまりScikit-learnのモデルを学習させることは少なくなってきていますが、シンプルなアルゴリズムで理論が確立しているので、高速に動いて説明力とかの観点では使い勝手が良い場面もあるにはあります。
LightGBM
LightGBMを超わかりやすく解説(理論+実装)【機械学習入門33】かめ@米国データサイエンティスト様
テーブルデータ系では最近のデファクトです。雑に使ってもそこそこの精度が出しつつ高速に動くので、実用性の高さが人気です。似たような勾配ブースティング決定木モデルとしてXGBoost、CatBoostというのもあり、使い勝手は似ています。
その他
スモールデータ解析と機械学習
中級以上を想定している本ですが、痒い所に手が届いく内容になっていて、個人的にも非常に好きな本です。一通りながら作業の流れが見えてから読んでも良いと思います。
解釈 / 説明性
機械学習を解釈する技術〜予測力と説明力を両立する実践テクニック
実践の場で依頼主に説明する場合には、精度がある程度担保できるとその次にはモデルの解釈性を要求される場面があります。
実用フェーズ
活用
施策デザインのための機械学習入門〜データ分析技術のビジネス活用における正しい考え方
モデルの精度を追及して、いざすごい精度のモデルを作れたとしても、それがビジネス価値を生むかは別の話だったりします。現場でどう使うのかをイメージしておくことは非常に重要です。要件定義~設計フェーズにおける適切な評価指標の設計と併せて進めていくことが真の価値を生むために重要になります。
運用
機械学習システムデザイン ―実運用レベルのアプリケーションを実現する継続的反復プロセス
PoCやっている時には意識しないでも、それが成功していけば実運用に向かいます。ここの作業スコープは必ずしもデータサイエンティストの範疇ではないかもしれないですが、適切な運用の繋げ方は意識しておけると非常に良いと思います。特に時間と共にデータの分布が変わることによるモデルの陳腐化を理解して、汎用性をモデル開発時点で考慮しておけると良いかと思います。
おわりに
ここに列挙されたものがすぐに全部必要かというと、フェーズや状況によっても必要なものが変わってくるので、すぐに勉強はしなくても良いかもしれません。ただし、実践をして一連の流れを進めていくと必ず遭遇することばかりであり、その時の指針となる情報源があると良いと思います。実際にプロジェクトを進める中で読み返したものや、読んだときはすぐにはわからなかったけど書いてあったことが現場でやってみて腑に落ちたことも何度かあります。日頃から、各自読みやすい本や情報源を見つけてストックしておくようにしたいものです。