仕事ではじめる機械学習 第2版

[cover photo]
TOPICS
Data Science
発行年月日
PRINT LENGTH
352
ISBN
978-4-87311-947-2
FORMAT
Print PDF EPUB
Ebook
3,300円
Ebookを購入する
Print
3,300円

2018年の発行以来、多くの読者に支持された書籍を全面改訂! 不確実性の高い機械学習プロジェクトについて、「仕事で使う」という観点から整理するコンセプトはそのままに、初版の発行後に登場した概念や課題を取り上げます。「機械学習でいい感じにしてくれ」と突然上司に言われたとき、本書で学んだことが読者の力になるはずです。本書で得た知識は読者が「いま」困っている問題を解決する助けとなるでしょう。 第2版では、機械学習システムの開発と運用の統合する「ML Ops」、機械学習モデルを解釈し、その妥当性や根拠を明らかにする「機械学習モデルの検証」、ユーザーの行動を学習しながら予測を進める「バンディットアルゴリズム」、意思決定における予測システムの役割や意思決定のデザインを扱う「オンライン広告での機械学習」といった新章を追加しています。 本書のサポートページ(GitHub)

目次

まえがき

第I部

1章 機械学習プロジェクトのはじめ方
    1.1 機械学習はどのように使われるのか
    1.2 機械学習プロジェクトの流れ
        1.2.1 ビジネス課題を機械学習の課題に定式化する
        1.2.2 類似の課題を、論文を中心にサーベイする
        1.2.3 機械学習をしなくて良い方法を考える
        1.2.4 システム設計を考える
        1.2.5 特徴量、教師データとログの設計をする
        1.2.6 実データの収集と前処理をする
        1.2.7 探索的データ分析とアルゴリズムを選定する
        1.2.8 学習、パラメータチューニング
        1.2.9 システムに組み込む
    1.3 実システムにおける機械学習の問題点への対処方法
        1.3.1 人手でゴールドスタンダードを用意して、予測性能のモニタリングをする
        1.3.2 予測モデルをモジュール化してアルゴリズムのA/Bテストができるようにする
        1.3.3 モデルのバージョン管理をして、いつでも切り戻し可能にする
        1.3.4 データ処理のパイプラインごと保存する
        1.3.5 開発/本番環境の言語/フレームワークを揃える
    1.4 機械学習を含めたシステムを成功させるには
    1.5 この章のまとめ

2章 機械学習で何ができる?
    2.1 どのアルゴリズムを選ぶべきか?
    2.2 分類
        2.2.1 パーセプトロン
        2.2.2 ロジスティック回帰
        2.2.3 SVM
        2.2.4 ニューラルネットワーク
        2.2.5 k-NN
        2.2.6 決定木、ランダムフォレスト、GBDT
    2.3 回帰
        2.3.1 線形回帰の仕組み
    2.4 クラスタリング・次元削減
        2.4.1 クラスタリング
        2.4.2 次元削減
    2.5 その他
        2.5.1 推薦
        2.5.2 異常検知
        2.5.3 頻出パターンマイニング
        2.5.4 強化学習
    2.6 この章のまとめ

3章 学習結果を評価するには
    3.1 分類の評価
        3.1.1 正解率を使えば良いのか?
        3.1.2 データ数の偏りを考慮する適合率と再現率
        3.1.3 F値でバランスの良い性能を見る
        3.1.4 混同行列を知る
        3.1.5 多クラス分類の平均の取り方: マイクロ平均、マクロ平均
        3.1.6 ROC曲線とAUC
        3.1.7 分類モデルを比較する
    3.2 回帰の評価
        3.2.1 平均二乗誤差
        3.2.2 決定係数
    3.3 機械学習を組み込んだシステムのA/Bテスト
    3.4 この章のまとめ

4章 システムに機械学習を組み込む
    4.1 システムに機械学習を含める流れ
    4.2 システム設計
        4.2.1 混乱しやすい「バッチ処理」と「バッチ学習」
        4.2.2 バッチ処理で学習、予測、予測結果をDB経由でサービングする
        4.2.3 バッチ処理で学習、リアルタイム処理で予測、予測結果をAPI経由でサービングする
        4.2.4 バッチ処理で学習、エッジのリアルタイム処理で予測する
        4.2.5 リアルタイム処理で学習をする
        4.2.6 各パターンのまとめ
    4.3 教師データを取得するためのログ設計
        4.3.1 特徴量や教師データに使いうる情報
        4.3.2 ログを保持する場所
        4.3.3 ログを設計する上での注意点
    4.4 この章のまとめ

5章 学習のためのリソースを収集する
    5.1 学習のためのリソースの取得方法
    5.2 公開されたデータセットやモデルを活用する
    5.3 開発者自身が教師データを作る
    5.4 同僚や友人などにデータ入力してもらう
    5.5 クラウドソーシングを活用する
    5.6 サービスに組み込み、ユーザーに入力してもらう
    5.7 この章のまとめ

6章 継続的トレーニングをするための機械学習基盤
    6.1 機械学習システム特有の難しさ
        6.1.1 データサイエンティストvs ソフトウェアエンジニア
        6.1.2 同一の予測結果を得る難しさ
        6.1.3 継続的トレーニングとサービングの必要性
    6.2 継続的トレーニングとML Ops
        6.2.1 リリースのアジリティを上げるための機械学習基盤
        6.2.2 ML Ops:機械学習基盤におけるCI/CD/CTを目指す取り組み
    6.3 機械学習基盤のステップ
        6.3.1 共通の実験環境
        6.3.2 予測結果のサービング
        6.3.3 学習、予測共通の処理のパイプライン化
        6.3.4 モデルの継続的学習・デプロイ
    6.4 予測結果のサービングを継続し続けるために
        6.4.1 監視・モニタリング
        6.4.2 定期的なテスト
    6.5 この章のまとめ

7章 効果検証:機械学習にもとづいた施策の成果を判断する
    7.1 効果検証の概要
        7.1.1 ビジネス指標(メトリクス)を用いた施策の評価
        7.1.2 施策実行後の効果検証の重要性
        7.1.3 オフライン検証とオンライン検証
        7.1.4 指標の選定
    7.2 因果効果の推定
        7.2.1 相関関係と因果関係の区別
        7.2.2 ルービンの因果モデル
        7.2.3 セレクションバイアスによるみせかけの効果
        7.2.4 ランダム化比較試験
        7.2.5 過去との比較で判断するのは難しい
    7.3 仮説検定の枠組み
        7.3.1 なぜ仮説検定なのか
        7.3.2 コインは歪んでいるか
        7.3.3 獲得ユーザーの継続利用率の比較
        7.3.4 差の信頼区間を求める
        7.3.5 偽陽性と偽陰性
        7.3.6 p値ハック
    7.4 A/Bテストの設計と実施
        7.4.1 2 群の抽出と標本サイズ
        7.4.2 継続的なA/Bテストと終了判定
        7.4.3 A/Aテストによる均質さの確認
        7.4.4 施策同士の相互作用に注意
        7.4.5 A/Bテストの仕組み作り
    7.5 オフライン検証
        7.5.1 ビジネス指標を使った予測モデルの評価
        7.5.2 反実仮想の扱い
        7.5.3 Off Policy Evaluation
    7.6 A/Bテストができないとき
        7.6.1 観察データを使った効果検証
    7.7 この章のまとめ
    7.8 こぼれ話:絶対に成功するA/Bテスト、A/Bテストの母集団ハック
        7.8.1 母集団コントロールによるA/Bテストのハック
        7.8.2 休眠顧客へのアプローチ
        7.8.3 バックボタンハック
        7.8.4 母集団ハックを見抜く
        7.8.5 休眠顧客を使った低リスク実験による成功事例の積み上げ

8章 機械学習のモデルを解釈する
    8.1 Google Colaboratory にインストールされているライブラリをバージョンアップする
    8.2 学習用のファイルをアップロードして確認する
    8.3 線形回帰の係数から原因を読み解く
    8.4 ロジスティック回帰の係数から原因を読み解く
    8.5 回帰係数のp値を求める
    8.6 決定木の可視化から原因を読み解く
    8.7 ランダムフォレストのFeature Importance の可視化
    8.8 SHAPによる寄与の可視化
    8.9 従業員満足度をSHAPで可視化する
    8.10 この章のまとめ

第II部

9章 Kickstarterの分析、機械学習を使わないという選択肢
    9.1 Kickstarter のAPIを調査する
    9.2 Kickstarter のクローラーを作成する
    9.3 JSONデータをCSVに変換する
    9.4 Excel で軽く眺めてみる
    9.5 ピボットテーブルで色々と眺めてみる
    9.6 達成したのにキャンセルされたプロジェクトを見てみる
    9.7 国別に見てみる
    9.8 レポートを作る
    9.9 今後行いたいこと
    9.10 この章のまとめ

10章 Uplift Modelingによるマーケティング資源の効率化
    10.1 Uplift Modelingの四象限のセグメント
    10.2 A/Bテストの拡張を通じたUplift Modelingの概要
    10.3 Uplift Modelingのためのデータセット生成
    10.4 2 つの予測モデルを利用したUplift Modeling
    10.5 Uplift Modelingの評価方法、AUUC
    10.6 実践的な問題での活用
    10.7 Uplift Modelingを本番投入するには
    10.8 この章のまとめ

11章 バンディットアルゴリズムによる強化学習入門
    11.1 バンディットアルゴリズムの用語の整理
    11.2 確率分布の考え方
    11.3 事後分布の考え方
    11.4 事後分布の信用区間上限を用いた実装例
    11.5 UCB1
    11.6 確率的なバンディットアルゴリズム
        11.6.1 Softmax 法
        11.6.2 Thompson Sampling 法
    11.7 各種バンディットアルゴリズムの比較
    11.8 文脈付き多腕バンディットのブートストラップ法による実装
    11.9 現実の問題での課題
        11.9.1 報酬が届くのに時間がかかる
        11.9.2 オフライン実験するためのログデータがバンディットによって偏っている
        11.9.3 有効なアームは流行の移り変わりで時間変化する
        11.9.4 最善なアームが最適ではないことがある、多様性の価値
        11.9.5 アームが途中から追加される
    11.10 バンディットアルゴリズムと、A/Bテスト、Uplift Modelingの関係性
    11.11 この章のまとめ

12章 オンライン広告における機械学習
    12.1 オンライン広告のビジネス設定
        12.1.1 広告枠の売買
        12.1.2 DSPの行動方策
        12.1.3 ファーストプライスオークションの特徴
        12.1.4 入札の流れ
    12.2 問題の定式化
        12.2.1 市場価格と勝率
        12.2.2 効用(Utility)
    12.3 予測の役割と実装
        12.3.1 オーディエンスのレスポンス予測
        12.3.2 勝率(市場価格)の予測
    12.4 広告配信ログの特徴
        12.4.1 フィードバックループ
        12.4.2 不均衡データ
        12.4.3 カーディナリティの大きなカテゴリ変数
        12.4.4 打ち切りデータ
    12.5 機械学習予測モデルの運用
        12.5.1 予測を外したときの対処
        12.5.2 継続的なモデルの訓練
    12.6 この章のまとめ

あとがき
参考文献
索引