書籍紹介 : Python実践データ分析課題解決ワークブック
こんにちはD2Cデータサイエンティストの城田です。
この記事では「Python実践データ分析課題解決ワークブック」について紹介をしていきます。
はじめに
私は普段、データサイエンスを活用する業務に携わっています。
その中でよく参考書や専門書の統計・データサイエンスの知識を、そのまま実用に活かすことは難しいと感じることがあります。
というのも、現実にある問題の多くは複雑でケースに対して参考書のように最適解を掲示することが難しいからです。参考書にあるような理想的な条件を鵜呑みにして、現実のデータをそのままアルゴリズムに当てはめても、分析結果は不明瞭になりがちで、仮に良い結果が出たとしても根拠に乏しいものになります。ここにはデータサイエンティストの技術的、知識的な課題があり、アルゴリズムの効果を引き出すためには多くの経験が必要に感じます。
また多くの場合、分析結果は各プロジェクトのステークホルダーに対して説明をして納得していただければならないです。ステークホルダーは必ずしも統計・データサイエンスに精通しているわけではないため、参考書や専門書にあるような複雑なロジックをそのまま説明しても、せっかく効果的な分析を行ったとしても、十分に理解してもらえない結果につながることがあります。なので、データサイエンティストにはプロジェクトのメンバーとの調整能力や上手に説明するためのコミュニケーション能力も必要になると考えます。
まとめるとデータサイエンスを実問題で活用するためには、適切に知識を運用する経験と、業務に組み込むためのコミュニケーション能力の2つが必要になります。
この2つの要素を高次元で両立させることは難しく能力開発には膨大な時間とリソースが必要になります。
私がこの書籍に注目したのは、上に書いた2つの能力の開発をテーマにおきつつバランスが取れていると感じたからです。その上で紹介しているアルゴリズムは汎用的で書籍の内容のトレースを心がければ、効率的に良い結果が得られると思いました。もちろんそれだけで最適な結果が得られるというものでは無いですが、進めていく上で最低条件を満たしているかのチェックシートになり得ると思います。
特にデータサイエンスプロジェクトでのコミュニケーションの進め方などは、他の書籍ではあまり例がなく、大変参考になりました。
何よりも自分自身がこの書籍の対象読者であったため、ケースに対しての没入感がとてもありました。
一通り統計データサイエンスの表面を学んで、いざデータを業務に利活用していくという観点でこの書籍を読んで取り組めば良いスタートダッシュをきれるのではないかと思います。
書籍のまとめ
なぜ分析スキルを実務でいかせないんだろう?
表紙に書いてある問いかけですが、この疑問を書籍内で解消していくという流れになります。
書籍では分析課題を解決するためのフローを構築して、そのスキームと照らし合わせながら学習を進めていきます。
上の図のように課題解決プロセスを5つのブロックに分けて考えて、その分解した課題解決のために分析プロセスを適応するという構成になっています。
書籍では、まず自分が置かれている状況の説明を行います。書籍の内では、「経営企画部から実店舗の2023年の売上は2022年と比べて減少しているがデータ分析を行い売上回復の提案をしてもらえないかという依頼を受けた」など。
率直に言って、かなり抽象的な要望ですが、このようなケースは現実のデータ分析ではよく見られます。
それに対して上記のスキームを適応して、問題の解決を図っていきます。
重要な点として、このスキームを適用することで、共通のテーマに繰り返し取り組み、多角的な視点からデータ分析を進められることが挙げられます。
次の課題解決フェーズに移る際はかならず手前のフェーズを振り返り整理しなければならないため、「取り敢えず分析やってみた」みたいな目的不明の資料の散乱を防止出来るところも良い点だと思います。
書籍の例を挙げると、説明課題の絞り込みの際に基礎的な集計による仮説の検証に加えk-meansによるクラスタリングを使った分析プロセスを適応しています。また、その中でプログラミングや分析実装以外でデータサイエンティストが考慮すべき項目も整理していきます (ヒアリングするべきことや、分析デザインの決め方など)。読者は分析デザインなどのソフトスキルの演習とプログラミング実装などのハードスキルを交互に繰り返して、データに対してどのように理解を深めていくか、あるいはデータサイエンスプロジェクトをどのように進めていくかを学習出来る仕組みになっています。
また、章の最初に先輩からのアドバイスという項目としてどのように問題に取り組んだらよいかというアドバイスも記されています。
このソフトスキルとハードスキルの融合はかなり重要なことだと考え、基本的な可視化や簡単なscikit-learnを使った機械学習モデルでの分析でも、しっかりと手法や考察をまとめ実装と検証のサイクルを回していくことにより、より説得力があり上手く分析が出来なくても次の分析に繋げれるようなリスクヘッジも行うことができ、結果的に効果的な分析が行えると思います。
ソフトスキルとハードスキルの融合によって、表紙の問にあるような問題に対してこの書籍のロールプレイを通して解決していけるようになっています。
書籍で取り扱っている内容
方針としては広く浅くに感じますが手法について知っているという方でも、どのように融合させて業務活用していくかということのヒントにはなると思います。データサイエンス初心者からすると、どの項目も漏らすことができない必須科目になると思います。
ソフトスキル
- 分析プロジェクトのスキームの考え方
-
データに対してのアプローチ方法
- 仮説検証型アプローチ
- 仮説を整理して、データ分析を通して仮説検証を行っていく
- 仮説探索型アプローチ
- データを起点として課題を探索していく
- 仮説検証型アプローチ
- ロジックツリーなどのフレームワークを使った分析結果のまとめ方
-
問題にどのように焦点を絞っていくか
- 前処理の段階での不要なデータの削除
- 検証したい項目とそれに対する手法の策定方法
-
統計的検定ではない仮説検定の手法
- 何を数値化、可視化したら考えている仮説が検証できるか?
- ステークホルダー、有識者と議論すべき項目の策定方法
-
いわゆる分析者としてのデータサイエンスプロジェクトの進め方
- どのように貢献を第三者に伝えるか?
ハードスキル
pythonとpandas、その他メジャーなデータ分析向けのライブラリを使った基本的な項目となっています。あまり、使い方やパラメータなどは詳しく書かれていないので気になる場合は公式のリファレンス等を参照する必要があります。
-
google_colabolatoryを使ったpythonの基本的なコーディング
- 再利用しやすいコーディング方法など
-
pandasをつかったデータ成形、集計
- 効率的な集計の実装方法
- matplotlibを使ったデータの可視化
-
scikit-learnでの機械学習を使った分析
- k-meanを使ったクラスタリング
- エルボー法、シルエット法を使ったクラスタの評価
- 決定木を使った分類
- 混同行列を使ったモデルの評価
- 決定木モデルの解釈
- 主成分分析を使った次元圧縮と可視化
- LightGBMを使った分類
- クロスバリデーションを使った評価
- SHAPを使ったLightGBMの解釈
- 重回帰モデルを使った効果検証
- 効果検証を行うための実験のデザイン
- 介入効果の確認、共線性のチェック
- k-meanを使ったクラスタリング
書籍の対象読者
学生向けか社会人向けかという話では、社会人向けの書籍となっています。特にある程度データサイエンスを学習し、実務に活かす段階あるいは活かしている人が読むと有効な知識が得られると思います。自分自身はデータサイエンティストとしてのキャリアは3年目で、その中では主に分析担当や実装担当として業務を行うことが多いです。
ハードスキル的な側面ではこの書籍の内容はほぼ知っているという状態でしたが、データやモデルから得られた情報をどのように活用していくか、あるいはどのように情報をまとめ報告すべきかのような視点のブラッシュアップにつながったと思います。手法として知っているかと、ケースとして利用できるイメージがあるかでは実務運用において大きな差があるとこの書籍を通じて感じました。
逆にデータサイエンス、Pythonの知識ゼロの人がこの書籍を読む際はその前に、それに対応して入門者向けの書籍やコンテンツの学習が必要かと思います。この書籍にもある程度記載はされていますが、肝要であるハードスキルとソフトスキルの結びつきまで理解することは難しいと思います。
必要な環境
GoogleColabolatoryと筆者が公開しているコード、データを用いて分析を行うので特に特別必要な環境等は無いです。
最後に
最後まで読んで頂きありがとうございました。
この書籍の内容をまとめると
- データサイエンスの知識を実務で活かすことは少し難しい
- アルゴリズムを知っていることと同じくらい、どう活用するかのデザインが出来ることが大事
- 分析結果をステークホルダーに発表するだけでなく、関係者と調整を行ったり、発表する情報に適切な優先順位をつけることも重要
この三点になると思います。
伸び悩みがある経験者にとってはかなり有用な資料になると思いますので、是非紹介した書籍を手にとってもらえると幸いです。

株式会社D2C d2c.co.jp のテックブログです。 D2Cは、NTTドコモと電通などの共同出資により設立されたデジタルマーケティング企業です。 ドコモの膨大なデータを活用した最適化を行える広告配信システムの開発をしています。
Discussion