解きたい問題を機械学習の問題に落とし込む(問題の定式化)
from 機械学習による問題解決
機械学習と予測
データサイエンスと予測的データ分析と機械学習
機械学習を用いた問題解決のフレームワーク
CRISP-DM(Cross-Industory Standard Process for Data Mining)
https://gyazo.com/52a50fd1f143220cb464d2f3ff6c8522
図の出典: 北川・竹村(編)「教養としてのデータサイエンス」(2021)
解きたい問題を機械学習の問題に落とし込む
機械学習によりなんらかの問題解決をする場合、まずはその「解きたい問題」を機械学習の問題に落とし込むプロセス(問題の定式化)が必要
以下のようなステップで、「やりたいこと・達成したいこと」から、具体的な機械学習の問題へと落とし込んでいく
(1) 問題(目的)を明確化する
どのような問題を解きたいのか(目的)を言語化する
例: 「オンライン授業において、ドロップアウトする学習者を減らしたい」
場合によっては、(2)のイメージがあったうえで(1)が明確化することもある
(2) 機械学習によってこの問題をどのように解決するかを考える
(1)の問題を、機械学習によって解く問題に落とし込む
例:「オンライン授業において、ドロップアウトしそうな学習者を、機械学習によって早期の段階で予測して発見する」
データサイエンスと予測的データ分析と機械学習にあるように、機械学習は予測(回帰・分類)を行う技術なので、「(1)の問題を解決するためには、何を予測する必要があるのか」を考えることになる
漠然と「機械学習を使いたい」ではなく、予測の問題に落とし込むことが重要
(3) 問題を構造化する
(3-1) 目的変数と説明変数に使えそうなデータを洗い出す
現実の問題では、授業の演習問題のように変数は前もって用意されているわけではない。自分でこの「変数」を用意しないといけない
これには、問題を分析し、問題に関係するデータにはどのようなものがあり得るかを考え、変数の形に落とし込んでいく、という作業が必要
https://gyazo.com/731fbda722b05829cbfad7f5264f7898
教師あり学習を例にすると・・・
(1)(2)で明確にした「解きたい予測問題」において、目的変数と説明変数を洗い出す
目的変数となるデータがどのようなものかを定める
例:「学生の在籍状態(在籍、休学、退学などの状態)のデータ」
説明変数となるデータとしてどのようなものが使用できそうかを考える
まず、(2)で設定した問題に関係するデータにはどのようなものがありそうか、可能な限り考える
構造データ、非構造データを問わず挙げてみる
例:「学習者の属性情報」「科目の情報」「アンケートの回答」「レポートの内容」「テストの点数」「システムの操作ログデータ」などなど
まだこの段階では説明変数の形になっていなくてもよいので、「対象の特徴を反映しているデータにはどのようなものがあるか」を考えていくとよい
目的変数と説明変数にどのようなものがあるか明確にできたら、これらのデータの(想定される)入手方法を整理し、実際にそれらの変数のデータを集める
例:データを持つ部署に使用許可を得て入手する、機器やシステムで計測・記録することで用意する、調査(アンケート含む)により取得する、オープンデータを用いる、など
(3-2) モデルの良さを評価する基準を定める
設定した問題において、モデルの良さを評価する基準は何か(どうなれば目的に照らして「良い」といえるのか)を考える
例:「実際にドロップアウトする学生を見つけ出せる確率(=recall)が高い」「ドロップアウトだと予測した学習者が実際にドロップアウトする確率(=precision)が高い」など
分類問題であれば、このようにトレードオフする複数の指標があるはず(参考:分類における評価指標)
(3-1)の「変数」の具体例(これまでの演習から)
身長から体重を予測する問題(回帰問題の例)
https://gyazo.com/7f5b0e85227bf48a1efddc68d3b774dc
説明変数$ Xは身長(height)、目的変数$ Yは体重(weight)
https://gyazo.com/7a698d3ddc4ed7db408eac5d54f98f53
数学・英語のテストの点数から合否を分類する問題(分類問題の例)
https://gyazo.com/e1f927490257e14cab01fbcfb77ef4e9
説明変数として、数学の点数(math)が$ X_1、英語の点数(english)が$ X_2となり、「合格・不合格のラベル(下の例では0が不合格・1が合格を表わすものとしている)」が目的変数$ Yとなる
https://gyazo.com/afc3b478b7e0d17167b8b8914a28287d
Irisデータによる機械学習の例(分類問題の例)
花びらの長さと幅、がくの長さの幅から、アヤメの品種を分類する問題
https://gyazo.com/10ddc411daf38e2d1f7cecd3a46f304c
この↓データのA~D列がそれぞれ説明変数$ X_1~$ X_4に、E列が目的変数$ Yになる
https://gyazo.com/f5ef663644a52d2e4ba4dcf6d44d70db
上の予測モデルの図にあてはめると
https://gyazo.com/c46050c363415726272289af8d05b0b5
機械学習用の公開データから学ぶ
機械学習用のデータセットにあるような公開データをみると、「どのような問題が扱われているか」「そこではどのような説明変数や目的変数が扱われているか」の参考になる
たとえば以下のようなデータをいろいろ見てみよう
UCI Machine Learning Repository
https://archive.ics.uci.edu/
機械学習のためのフリーのデータセット配布サイト。20年以上前からある有名どころ
Kaggle
https://www.kaggle.com/datasets
機械学習の最も有名な分析コンペ