自分の備忘用に。
昔書いたメモを再整理してみて、改めて、すごく濃い本だったなあ、と。
目次
- はじめに:データ分析思考
- ビジネス問題とデータサイエンスが提供するソリューション
- 予測モデリング:相関から教師ありセグメンテーションへ
- モデルをデータにフィットさせる
- オーバーフィッティングとその回避方法
- 類似度、近傍、クラスタ
- 意思決定のための分析思考1:良いモデルとは何か
- モデル性能の可視化
- エビデンスと確率
- テキスト表現とテキストマイニング
- 意思決定のための分析思考2:分析思考から分析工学へ
- その他のデータサイエンスの問題と技法
- データサイエンスとビジネス戦略
- おわりに
要点と学び
1. はじめに
要旨
- 本書の目的:
- データ分析の観点からビジネス問題を考察する能力を身に付けること、データから有用な知識を抽出するための基本原則を理解すること
- 本書で扱う問題:
- 【タイプ1】データを使って何を明らかにすべきか判断するための意思決定
例:ウォルマートは、ハリケーン時によく売れる商品を特定した
例:ターゲット社は、赤ちゃんがもうすぐ生まれる家庭を特定することで、競合に先んじてスペシャルオファーを提供した - 【タイプ2】何度も繰り返し行われ大規模な影響を与える意思決定
例:通信企業MegaTelCoは、顧客の乗り換え防止キャンペーンの効果が得られる顧客を特定した
- 【タイプ1】データを使って何を明らかにすべきか判断するための意思決定
- データ分析の基本原則:
- 「データ」と、「データから有用な知識を抽出する能力」を企業の重要な戦略的資産とみなすべきである
例:シグネット銀行は、利益ベースでの顧客スコアリングに切り替えるために、一時的に様々な顧客と契約を締結する「投資」を行い、数年間低収益にあえいだが、その後、収益が大幅に改善されることととなった
- 「データ」と、「データから有用な知識を抽出する能力」を企業の重要な戦略的資産とみなすべきである
- データサイエンスのコンセプト:
- データからビジネス課題解決のための知見を抽出するプロセス(例:CRISP-DM)では、人の創造性が重要な場面と、分析ツールに任せるべき場面とがある
- IT技術を駆使すれば巨大なデータから有益なパターンを見つけることができる
- データを入念に見て入れば何等かのパターンを発見できるが、そのデータ以外には使えないかもしれない(オーバーフィッティング)
- データマイニングの結果を評価する際には、それが用いられる背景について十分考慮すること(何を価値と見做すかビジネスによって異なるので)
私の学び
- 【タイプ2】に該当する、「業務効率化のためのデータ分析」を多く扱っていたが、【タイプ1】の分野にも分析で貢献できる価値があることが気付きになった。堅実に効果が出る【タイプ2】に対して、【タイプ1】は、「人工衛星画像を使って企業の工場をモニタリングして株価を予測する」といったように、突拍子がないけど当たると大きい案件に繋がることがあるので、両方を意識しながら分析案件を企画すると良いと思った
- 実務では、データが無い場面でも無理やり案件を進めてしまう圧力がかかりがちだが、データを「戦略的資産」と捉え、短期的な損害を飲んででも、長期的なデータ資産に投資することを選んだシグネット銀行の事例が印象的だった。ここまで大胆にやらないまでも、まずはABテストでデータを取るところから始めるなど、持っているデータをとりあえず分析することを止めようと思った。「どんなデータが必要か」、と言う点は後段で語られている
2. ビジネス問題とデータサイエンスが提供するソリューション
要旨
- 標準的なデータマイニングタスク:
- 分類、回帰、類似性マッチング、クラスタリング、共起グルーピング、プロファイリング、リンク予測、データ削減、因果モデリング(ここでは詳細割愛)
- データマイニングプロセス:
- ビジネス理解
データマイニングの中で達成したいことは何なのか?どのような方法でそれを達成するか?シナリオの中でどの部分がデータマイニングを使って達成できるのか? - データ理解
データ取得にかかるコストと利益は?データ取得のために追加投資するべきか?
例:「不正検出問題」であっても、不正の正解がある場合と、正解がない場合とで、データマイニングのアプローチが異なってくる - データ準備
分析に使える形にデータが加工できているか?
– データの表形式への変換
– 欠損値の除外・補完
– データの形式変換
リークしていないか? - モデリング(後述)
- 評価
真にパターンを抽出できているか?(バリデーション)
ビジネス目的に対して効果があるか?(シミュレーション)
本番環境でも効果を出せるか?(ABテスト) - 適用
モデルは処理速度の要件や既存システムとの互換性を満たしているか?
- ビジネス理解
私の学び
- 1章でも言及があったが、2章のデータ理解でも、「データへの投資の必要性」が明言され、さらにはこの後の章で、データへの投資の必要性に関する具体的な視点が出てきており、著者が「課題解決のためのデータという位置付け」をいかに大切にしているかが、伝わってきた。これまで疎かにしてきてごめんなさい
- 実務では、モデル評価に関して、「シミュレーション(=ビジネス効果算出)」を雑にやっていたことを反省した。後段にて、シミュレーションに関する具体事例が言及されており参考になった
3. 予測モデリング:相関から教師ありセグメンテーションへ
要旨
- 予測モデリングとは、データから目的変数を予測すること
- データサイエンスの役割は、目的変数を予測するうえで、価値が高い属性を見つけ出すこと
- 手法の具体的な適用例(ここでは詳細割愛)
4. モデルをデータにフィットさせる
要旨
- 最初にパラメータを与えずにモデル構築の中でパラメータを決定する方法(パラメトリックモデル)と、パラメータを用いずモデルを構築する方法(ノンパラメトリックモデル)がある
- パラメトリックモデルでは、「目的関数」を定め、「分類関数」の形式を仮定し、目的関数を最適化するように分類関数のパラメータを選択する
- 線形回帰、ロジスティック回帰、サポートベクターマシンはいずれも分類関数が線形のモデルであり、異なるのは目的関数だけである
- 線形回帰:二乗誤差
- ロジスティック回帰:ロジスティック関数
- サポートベクターマシン:ヒンジ関数
私の学び
- 紹介されているアルゴリズムのことは知っていたら、アルゴリズムの詳細ではなく、分類関数と目的関数に抽象化して説明されており、非常に分かりやすかった
5. オーバーフィッティングとその回避方法
要旨
- オーバーフィッティング状況を確認するためのグラフ:
- フィッティンググラフ
縦軸:精度、横軸:複雑性として、テストデータへの精度と、学習データへの精度の乖離状況を確認する - 学習曲線
縦軸:テストデータへの精度、横軸:学習量として、学習量が十分かを確認する
- フィッティンググラフ
- 回避方法:
- 入れ子の交差検証
モデルの複雑性をコントロールするための検証と、モデルの汎化性能を最終評価するための検証を行う入れ子にして行う - 正則化、ツリーの枝刈り、特徴量選択、ペナルティ項の追加等
- 入れ子の交差検証
- オーバーフィッティングが発生する理由:
- 多重比較が原因である
例:1回の試行(比較)では5%しか発生しない事象でも、2回試行(比較)すると、10%の確率で発生する
- 多重比較が原因である
私の学び
- これまで、「学習曲線」を使ってモデル評価をすることに馴染みがなかったが、第1章から一貫して主張されている「データへの投資」の文脈で捉えると、必要性がよくわかった
6. 類似度、近傍、クラスタ
要旨
- 教師ナシ学習は、分析要件が明確に定められていない場合に用いられる方法
- クラスタリング結果の解釈には、「クラスタの平均的な特徴を確認する」、「教師あり学習によってクラスタの境界条件を確認する」などのアプローチがある
- 各手法の概要(ここでは詳細割愛)
- 教師ナシ学習は、課題に対する着想を得るための位置付けとしてクイックに実施し、後段の評価工程に力を割くべき
私の学び
- クラスタリングなどの教師なし学習を、ビジネス課題解決の文脈で、探索的分析に位置付けており、これまでクラスタリングの使い道に疑問を持っていた私には、納得感があった。今後もモデル構築フェーズで教師なし学習を使うことはなさそうだ
7. 意思決定のための分析思考1:良いモデルとは何か
要旨
- 単純な分類性能の問題:
- 単純な分類性能の例:精度=1-誤差率
- 予測が偽陽性エラー、偽陰性エラーに対する利益/損失の重みが異なる場合、合理的でなくなる → 経済効果の期待値を考えよう
例:【偽陽性】癌でも無いのに癌だと診断される(損失小)、【偽陰性】癌なのに癌ではないと診断される(損失大)
- 期待値によるモデル評価:
- 経済効果の期待値=Σ p(o_i)*v(o_i)
– p(o_i):意思決定による結果o_iが発生する確率(予測モデルから分かる)
– v(o_i):その結果が得られた際に生じる効果/または損失(ビジネス文脈に依存)
- 混同行列における期待値= p(Y, p)*b(Y, p)+p(N, p)*b(N, p)+p(N, n)*b(N, n)+p(Y, n)*b(Y, n)
– p( ):混同行列の4象限が発生する確率
– b( ):その事象が発生した際に得られる利益(または損失) - 注意点
- 利益と損失の符号を一貫させること(利益はプラス、損失はマイナスなど)
- 同じ内容を重複してカウントしないこと
- 経済効果の期待値=Σ p(o_i)*v(o_i)
- データ投資に対する示唆:
- 情報の獲得コストが大きい場合には、情報獲得によってそれに見合った効果が得られるのか確認する
私の学び
- 最も重要な経済効果算出のためのフレームワークに言及した章。加えて、経済効果の期待値算出の過程が、携帯の乗り換え防止キャンペーンの例を用いて説明されており分かりやすかった
- 特に、情報の獲得コストに対する言及が参考になった。PoCでは様々なデータを使いがちだが、運用に落とす場面では獲得コストが大きいデータを使わないことも検討したい。その際、データ獲得コストと、データを使うことによる経済効果を、ここで紹介されているフレームを使って説明したい
8. モデル性能の可視化
要旨
- 代表技術:
- 利益曲線:
予測スコア順に対象を並べ、経済効果の期待値を算出したもの
意思決定の対象(≒閾値)の決定のために使える
クラスの事前分布、利益/コストが明確に分かっているときに有効 - リフト曲線:
クラスの事前分布が明確に分かっているときに有効(詳細割愛) - ROC曲線:
クラスの事前分布、利益/コストが分かっていなくても有効(詳細割愛)
- 利益曲線:
私の学び
- 個人的な解釈。モデル評価のバリデーション段階ではリフト曲線やROC曲線を使って評価して、シミュレーション段階では利益曲線を使うのが良い、と理解した
9. エビデンスと確率
要旨
- ベイズの概要とベイズのデータサイエンスの応用例(ここでは詳細割愛)
- ベイズと他手法の問題設定
- ベイズ
生成型の問題:異なる目的変数の値は、どのような特徴値を生成するのか? - 決定木・線形回帰など
識別型の問題:目的変数の値を識別するには、一番良い方法は何か?
- ベイズ
10. テキスト表現とテキストマイニング
要旨
- Bag-of-word、TFIDFなどのテキスト解析技術の概要と応用例(ここでは詳細割愛)
11. 意思決定のための分析思考2:分析思考から分析工学へ
要旨
- 経済効果の期待値分解から(=データから考えるのでは無い)、獲得すべきデータや作るべきモデルが具体化していく
- 乗り換え阻止の場合:
– 経済効果=(オファーを提示することで乗り換えが阻止できる確率-オファーを提示しなくても乗り換え阻止できる確率)×顧客がとどまった際の利益-キャンペーンコスト
– 必要なデータ=過去にキャンペーンを実施したかどうか、その結果、顧客が乗り換えたかどうかが分かるデータ
- 寄付獲得の場合:
– 経済効果=寄付してくれる確率×寄付してくれる場合の寄付金額-キャンペーンコスト
– 必要なデータ=キャンペーン実施したかどうか、反応したかどうか、反応した場合にいくら寄付してくれたか
- 乗り換え阻止の場合:
- 十分なデータが手に入らない場合には、①代替案(類似キャンペーンデータ等)を採用するか、②データ獲得のための投資を行うか、判断する
- データへの投資を考える際に、汎化性能の改善との関係性を可視化することが重要(前述の学習曲線で可視化可能)
学び
- 「何をどんなデータを使って予測するか?」とは全く違う頭の使い方。「施策Xを実施した際の効果Yを数理的にどう定義する?効果Y立証するにはどんなデータは必要か?」と言う発想。「予測は手段なので、まずは効果から考えなきゃいけないですよね」とこれまでの愚行を反省
- このような発想は、まさに因果推論で求められる発想だと思うけど、難しい言葉を使わず具体例で説明されているので、初心者の僕にも分かりやすかった
12. その他のデータサイエンスの問題と技法
要旨
- 代表的技術(詳細割愛):
- 項目間に存在する共起や関連付けの発見
→ アソシエーション分析 - 行動のプロファイリング(典型的な顧客行動の把握)
→ データ分布の確認、クラスタリング等 - ソーシャルレコメンド
→ データ間のリンク予測 - 処理の高速化・解釈性
→ データ削減 - 因果関係の解明(バイラルマーケティング等)
→ 原因分析手法
- 項目間に存在する共起や関連付けの発見
13. データサイエンスとビジネス戦略
要旨
- 優秀なマネジメント要件:
- ビジネスにおけるデータサイエンスニーズを正確に理解し、積極的に探究すること
- データサイエンス専門家と傾斜のいずれからも尊敬され、彼らと良好なコミュニケーションが行えること。特に、データサイエンスの専門用語とビジネス用語を自由に翻訳できること
- 複数のいくつものモデルや手法をビジネス上の制約やコストに当てはめるといった技術的に複雑な問題を調整できること。特に、ビジネスにおけるデータシステムや使用しているソフトウェアの技術的な構造を理解し、データサイエンスチームの開発成果が実務上役立つようにできること
- データサイエンスプロジェクトの成果について見当をつけられること
- 上記を企業の文化や習慣に即して実施できること
- データサイエンス事例の評価時のチェックリスト:
- 取り組もうとしているビジネス上の課題が漠然としていないか?データサイエンスによって解決可能な課題か?
- データサイエンスの活用結果を評価する基準がはっきりしているか?
- 大きな投資をする前にその有用性を証明できるか?
- 必要なデータ資産が揃っているか?例えば、教師あり学習モデルの場合、ただしくラベル付けされた教師データを用意できるか?
- データが不足しているなら、データ入手のための投資の準備ができているか?
- 具体的な提案事例を使ったケースワーク(詳細割愛):
私の学び
- 詳細を割愛してしまったが、ケースワークを通じて、ここまで述べられてきたコンセプトが「分かる」ではなく「できる」レベルで腹落ちしているかが確認できる。実務でもあるあるな見落とされがちなポイントが盛り込まれており、思ったよりできなかった。忘れた頃にまたやろう
14. おわりに
要旨
- データサイエンスの基本コンセプトのおさらい(詳細割愛)
最後に
以上、技術にも結構深く踏み込みつつ、ビジネス効果とつなげるためのコンセプトが説明されており、すげえ本だと思いました。改めて、私の学びをまとめておきます。
- 分析タイプ:
- 堅実に効果が出る【タイプ2】に対して、【タイプ1】は、「人工衛星画像を使って企業の工場をモニタリングして株価を予測する」といったように、突拍子がないけど当たると大きい案件に繋がることがあるので、両方を意識しながら分析案件を企画すると良い
- データ理解:
- クラスタリングなどの教師なし学習は、探索的分析に使うのが良い
- データ収集:
- データを「戦略的資産」と捉え、データが無い場面では、「短期的な損害を飲んででもデータ収集をする」と言う選択肢も持つ
- 分析に必要なデータは、「施策Xを実施した際の効果Yを数理的にどう定義する?効果Y立証するにはどんなデータは必要か?」と言う発想で定義する。「何をどんなデータを使って予測するか?」はその次に考える
- データ量を増やすかどうかの判断には、「学習曲線」を使うと良い
- モデル評価:
- モデルのバリデーション段階ではリフト曲線やROC曲線を使って評価して、シミュレーション段階では利益曲線を使うのが良い
- モデル運用:
- 運用に落とす場面では獲得コストが大きいデータを使わないことも検討する。その際、データ獲得コストと、データを使うことによる経済効果を評価する
以上!