機械学習プロジェクトの流れ
機械学習を用いた問題解決のフレームワーク
CRISP-DM(Cross-Industory Standard Process for Data Mining)
https://gyazo.com/52a50fd1f143220cb464d2f3ff6c8522
図の出典: 北川・竹村(編)「教養としてのデータサイエンス」(2021)
上の図の各フェーズに関連する本科目(機械学習Ⅰ・Ⅱ)での学習内容
機械学習プロジェクトの流れ
有賀・中山・西林『仕事ではじめる機械学習』(オライリー・ジャパン、2018)では、機械学習をビジネスに導入・運用するための機械学習プロジェクトが、以下のような流れになるとまとめられている
(1) ビジネス課題を機械学習の課題に定式化する
(2) 類似の課題を、論文を中心にサーベイする
(3) 機械学習をしないで良い方法を考える
(4) システム設計を考える
(5) 特徴量、教師データとログの設計をする
(6) 実データの収集と前処理をする
(7) 探索的データ分析とアルゴリズムを選定する
(8) 学習、パラメータをチューニングする
(9) システムに組み込む
(10) 予測精度、ビジネス指標をモニタリングする
上のCRISP-DMと対応づけると、おおよそ以下のような感じだろう
「ビジネス理解」のフェーズ → (1)~(3)
「データ理解」のフェーズ → (4)~(5)
「データ準備」のフェーズ → (6)
「モデリング」のフェーズ → (7)
「評価」のフェーズ → (8)
「デプロイメント」のフェーズ → (9)~(10)
「機械学習Ⅰ」でやったような、いわゆる機械学習アルゴリズムの実行のためのプログラミング的・数学的テクニックのフェーズは(6)~(8)くらい
機械学習を実際に役立てるためには、そのプログラミング的・数学的テクニックのフェーズ以前の、「解きたい問題を機械学習の問題に落としこんで、ライブラリにかけてモデル構築できるようにするまでのフェーズ」や、「構築した機械学習モデルを「使う」フェーズ」が重要である
むしろ、そこがうまくいくかどうかがカギ
これらのフェーズは、「どのような問題を解きたいか」「どこにどのようなデータがあるのか」「現実のビジネス等にて運用するためにはどのようなハードルがあるのか」「意思決定者にシステム構築を認めてもらうにはどうすればよいか」のような、その対象領域や環境のことをよく知った人間にしかできない仕事である
(1) ビジネス課題を機械学習の課題に定式化する
「ビジネス課題」とあるが、ビジネスに限らず、「解きたい問題」と考えてください
要するに、「何がやりたいのか(目的)」を明確にし、「どんな情報を使って(説明変数)、何を予測するのか(目的変数)」や、「モデルの性能はどのくらいであるべきか(評価基準)」などを定めていくこと
(2) 類似の課題を、論文を中心にサーベイする
同じような課題に機械学習で取り組んだ例はすでにあるかもしれない
論文等を調べて、すでにわかっている知見を参考にすることができるとよい
(3) 機械学習をしないで良い方法を考える
「本当に機械学習で解くべき(機械学習でないと解けない)ものなのかどうか」を十分に検討する
機械学習を利用するには、以下の条件を満たす必要があるという主張もある(『仕事ではじめる機械学習』より)
1. 大量のデータに対して、高速に安定して判断を求める必要がある
2. 予測結果には、一定の間違いが含まれることが許容できる
たとえば、別に機械学習でややこしいことをしなくても、ちゃんとデータを分析すれば、「月曜日は夜の時間帯にこの案内を出せば良い、火曜日は夕方にこの案内を出せば良い、・・・」のように簡単なルールベースで事足りるかもしれない
機械学習は「未知のデータに対して自動的になんらかの「予測」をする」ものであり、かつ「100%の保証はない確率的なもの」であるという原理・原則をもとに、本当に機械学習を使うべきかを十分に検討することが必要
(4) システム設計を考える
システムとして機械学習を実装する場合、そのシステムを設計する
(5) 特徴量、教師データとログの設計をする
(6) 実データの収集と前処理をする
(7) 探索的データ分析とアルゴリズムを選定する
基本的に試行錯誤を伴う
(8) 学習、パラメータをチューニングする
(9) システムに組み込む
(8)までで得られたモデルをシステムに組み込む
(10) 予測精度、ビジネス指標をモニタリングする
運用をしつつ、「うまくいっているかどうか」をモニタリングする