解きたい問題を機械学習の問題に落とし込む(問題の定式化)
解きたい問題を機械学習の問題に落とし込む
機械学習によりなんらかの問題解決をする場合、まずはその「解きたい問題」を機械学習の問題に落とし込むプロセス(問題の定式化)が必要
以下のようなステップで、「やりたいこと・達成したいこと」から、具体的な機械学習の問題へと落とし込んでいく
(1) 問題(目的)を明確化する
どのような問題を解きたいのか(目的)を言語化する
例: 「オンライン授業において、ドロップアウトする学習者を減らしたい」
場合によっては、(2)のイメージがあったうえで(1)が明確化することもある
(2) 機械学習によってこの問題をどのように解決するかを考える
(1)の問題を、機械学習によって解く問題に落とし込む
例:「オンライン授業において、ドロップアウトしそうな学習者を、機械学習によって早期の段階で予測して発見する」
漠然と「機械学習を使いたい」ではなく、予測の問題に落とし込むことが重要
(3) 問題を構造化する
(3-1) 目的変数と説明変数に使えそうなデータを洗い出す
教師あり学習を例にすると・・・
目的変数となるデータがどのようなものかを定める
例:「学生の在籍状態(在籍、休学、退学などの状態)のデータ」
説明変数となるデータとしてどのようなものが使用できそうかを考える
まず、(2)で設定した問題に関係するデータにはどのようなものがありそうか、可能な限り考える
構造データ、非構造データを問わず挙げてみる
例:「学習者の属性情報」「科目の情報」「アンケートの回答」「レポートの内容」「テストの点数」「システムの操作ログデータ」などなど
まだこの段階では説明変数の形になっていなくてもよいので、「対象の特徴を反映しているデータにはどのようなものがあるか」を考えていくとよい
これらのデータの(想定される)入手方法を整理する
例:データを持つ部署に使用許可を得て入手する、機器やシステムで計測・記録することで用意する、調査(アンケート含む)により取得する、オープンデータを用いる、など
(3-2) モデルの良さを評価する基準を定める
設定した問題において、モデルの良さを評価する基準は何か(どうなれば目的に照らして「良い」といえるのか)を考える
例:「実際にドロップアウトする学生を見つけ出せる確率(=recall)が高い」「ドロップアウトだと予測した学習者が実際にドロップアウトする確率(=precision)が高い」など
機械学習用の公開データから学ぶ
機械学習用のデータセットにあるような公開データをみると、「どのような問題が扱われているか」「そこではどのような説明変数や目的変数が扱われているか」の参考になる たとえば以下のようなデータをいろいろ見てみよう
機械学習のためのフリーのデータセット配布サイト。20年以上前からある有名どころ
機械学習の最も有名な分析コンペ