>100 Views
June 15, 26
スライド概要
(AIによる要約)
本資料では、機械学習モデルを構築する目的(Why)として、未来を予測し行動を最適化したいことを説明しています。需要予測や故障予測、動画レコメンドといった具体例を挙げ、モデルが「ちょうどいい」タイミングや量を導き出す仕組みであることを示しています。モデル構築の手順(How)は、①予測対象の決定、②予測期限の設定、③仮説立案とデータリスト作成、④データ取得、⑤探索的データ分析(EDA)で特徴量を見つけ、⑥モデル学習、⑦精度検証、⑧業務への実装と運用の8ステップで構成しており、各ステップは往復しながら進めます。最後に、回帰・分類・クラスタリングなどの代表的なモデル類型(What)を紹介し、実装はLightGBMやランダムフォレストなどのツールで容易に行えると述べています。
アジャイル/スクラム/データサイエンス/プロダクトマネジメント/プロジェクトマネジメント/組織論など、日々の学びをスライドにします。
【製造業データビジネス勉強会】08 機械学習モデル構築の WhyとHowとWhat 2026/06/16 @shimitaka1982 清水 隆史
今日の 勉強どころ
データビジネスの階層構造 プロセス 現時点の 個人的な感触 新規事業創出 プロジェクトマネジメント ビジネスモデル 要求分析・要件定義 プロダクトマネジメント リスクマネジメント プラクティ ス マインドセット 人材育成 ビジネス力 データサイエンス力 データエンジニアリング 力
データビジネスの進め方 ① 事業設計 ⑧ マ ③ データ準備 ー ④ 探索的データ分析 ケ テ ⑤ モデル構築 ィ ン ⑥ 社会実装 グ ⑦ 保守・運用 ② サービス設計 現時点の 個人的な感触 • いずれも単方向ではなく、 行ったり来たりを繰り返す • 全てを行うわけではなく、 途中から始まったり途中で 終わったりすることもある • 初期の段階で後期の要素を 考えておく必要がある
(参考)ゴールデンサークル Why(なぜ) ✓目的、信念、存在意義 How(どうやって) ✓プロセス、方法 Why What(何を) How ✓具体的な商品、サービス ※主にマーケティングで使われる考え方だが、 私は「相手から共感を得られるコツ」として解釈 [出典]サイモン シネック: 優れたリーダーはどうやって行動を促すか https://youtu.be/qp0HIF3SfI4?si=oELMEZ2vmNbr2Rnb What
(参考)Whyから始める そんなわけで、 モデル構築のWhyから 話を始めます
モデル構築の Why
なぜモデルを構築するのか? 一言でいえば 未来を予測したいから
(事例1)お弁当の需要予測 課題 ✓お弁当を出来るだけ多く売りたい ✓多すぎ→余って廃棄処分 ✓少なすぎ→機会損失 対策 ✓「ちょうどいい量」を予測しよう!
(事例2)機械の故障予測 課題 ✓機械が壊れると工場が生産ラインに影響が出る ✓機械が壊れる前に検知してメンテナンスしたい ✓一方でメンテナンスしすぎると逆にコストがかかる 対策 ✓「ちょうどいいメンテナンスの タイミング」を予測しよう!
(事例3)次に見たい動画を予測 課題 ✓何千・何万の動画コンテンツからユーザーが自力で見たい動画 を探すのは大変 ✓ユーザーが迷わず動画を再生し続け、サービスを解約せずに使 い続けてもらいたい 対策 ✓「ユーザーが見たいであろう動画」 を予測しよう!
なぜモデルを構築するのか? こんな時に モデルをつくって 未来を予測する
なぜモデルを構築するのか? もう少し言えば 予測することによって 行動を最適化したい
モデルとは何か 世の中には「モデル」と名の付くものが沢山ある ✓ファッションモデル ✓プラモデル ✓ビジネスモデル ✓プロセスモデル ✓ロールモデル ✓OSI参照モデル …etc.
モデルとは何か モデルは所詮プラモデル ✓『会社を変える分析の力』という本で 河本さんは「モデルは所詮プラモデル のようなもの」ということを書かれて いる [出典]会社を変える分析の力 (講談社現代新書) https://amzn.asia/d/026k7A97
モデルとは何か モデルとは複雑なものからエッセンスを抽出して、 出来るだけ簡単にしたものみたいな意味合い [出典]大和 (戦艦) - Wikipedia https://ja.wikipedia.org/wiki/%E5%A4%A7%E5%92 %8C_(%E6%88%A6%E8%89%A6) [出典]日本海軍 戦艦 大和 | 株式会社 ハセガワ http://www.hasegawa-model.co.jp/product/z01/
モデルとは何か 未来を予測するためには現実世界の現象を完璧に 再現できれば一番良いが、それは現実的ではない よって、出来るだけその現実世界を忠実に再現し ている簡易的なもの(モデル)を作りだすことに よって、出来るだけ精度高く未来を予測する、と いうのが機械学習モデルを構築する目的(Why) となる
モデル構築の How
モデル構築のステップ では次に、どのようにモデルを 構築していくか、について整理 する 実はここまでの勉強会の流れが ほとんどそのままモデル構築の ステップとなっている ① 事業設計 ② サービス設計 ③ データ準備 ④ 探索的データ分析 ⑤ モデル構築 ⑥ 社会実装 ⑦ 保守・運用
①何を予測するのか、を決める ビジネス上の課題を機械学習が解ける問題に落とし込み、 「何を予測するのか」を決める ここで回帰・分類・クラスタリング(後述)のどれにあ たるかも考える (例)お弁当の需要予測 →お弁当を作成する個数を予測する 予測したい
②いつまでに予測するのか、を決める それをいつまでに予測すればいいのかを考える (例)お弁当の需要予測 →おかずの発注の関係で前日の17時までに翌日のお弁 当を作成する個数を予測する ここまでのデータ が使える 6/13 17時 6/14 8時 6/14 11時 おかず発注締め切り =予測締め切り おかず届く お弁当作成開始 お弁当販売開始
③仮説を立てて欲しいデータをリスト アップ この後予測(つまりモデル構築)に必要となるデータを 集めるが、その前に「仮説」を立てておく この時点では「○○が関係しそうだから△△のデータが あるとよさそう」という程度で構わない お弁当の需要に天気は関係しそうだから 天候データは集めておきたい あとは経験的に近隣でイベントが行われ るかどうかも影響しそうだからイベント 情報のデータも集めておきたい
④データを集める 以前紹介した点などに注意しながらデータを集める [出典] 【DB勉強会】04_データ集めとデータエンジニアリング https://www.docswell.com/s/shimitaka/58NV8W-data-business-benkyo-04#p15
⑤EDAで特徴量のあたりをつける 以前紹介した点などに注意しながらEDAを進めて予測に 役に立ちそうな変数(特徴量)のあたりをつける [出典] 【DB勉強会】07_データ受領と探索的データ分析~NotebookLMを使ったお手軽EDA~ https://www.docswell.com/s/shimitaka/ZX26PN-data-business-benkyo-07#p25
⑥データを使ってモデル構築する 特徴量さえあれば、モデル構築自体はプログラムで1行で 終わる ハイパーパラメータ(モデル構築時の設定値のようなも の)などもまずはデフォルトで構築してみて構わない また、様々なモデルのパターン(LightGBM、ランダム フォレスト等)を使ってみると良い
⑦精度検証を行う 学習に使っていないテスト用のデータを構築したモデル に入力し、予測がどれぐらいあたっているかを検証する (例)1/1~3/31のデータを使って学習していたら、4/1 ~5/31のデータを使ってテストする*、など 学習に使うデータ (trainデータという) 検証に使うデータ (validデータとか testデータとかいう) 1/1~3/31までのデータ 4/1~5/31までのデータ *この方法が有効なのは時系列変動が無いデータであるという前提条件が担保される場合
⑧業務での使われ方を考える モデルが構築されたら、そのモデルの業務での使われ方 を考える (例)サーバーで自動的に毎日モデルが動いて17時に お弁当発注者のスマホに発注個数の通知が届く 明日のお弁当の作成個数の 138個です! 予測は ←お弁当の 発注者
⑧業務での使われ方を考える 業務での使われ方を考えてみた結果、「いつまでに予測 するのか」や「使うデータ」に修正が必要だと気付く場 合もある 17時におかずの発注締め切りなのに、 17時にアプリの通知が来るんじゃ間に 合わないじゃん! →16時には通知が来るようにしよう →16時までの天気予報しか使えない ←お弁当の 発注者
⑧業務での使われ方を考える つまりタイムラインはこうなる ここまでのデータ が使える ここで おかず発注 6/13 16時 6/13 17時 6/14 8時 6/14 11時 予測量通知 おかず発注 締め切り おかず届く お弁当作成開始 お弁当販売開始
⑧業務での使われ方を考える そのうち、通知された後で人がおかずを発注するのも面 倒だから自動的に発注できる仕組みが作れるといいじゃ ん、みたいな発想が出てくる そうなったら、今度はおかず発注の仕組みとの連携を考 えればよい わざわざ私の元にアプリで通知 来なくても、自動的に発注して くれたら嬉しい!! ←お弁当の 発注者
モデル構築の What
そもそもどんなモデルがあるのか 機械学習は以下のように分けられる 回帰 (例)単回帰分析、重回帰分 析 教師あり学習 分類 機械学習 教師なし学習 クラスタ リング (例)LightGMB、ランダム フォレスト、ロジスティック 回帰 (例)k-means(k平均法)
どのモデルかを考える (例1)お弁当の需要予測 →明日の必要量を予測するのなら回帰 (例2)機械の故障予測 →あと1週間以内に壊れるか壊れないかを予測するの なら分類 (例3)次に見たい動画を予測 →ユーザーを「洋画大好きグループ」「アニメオタク グループ」などにグループ分けするならクラスタリング
どのモデルかを考える 前頁はあくまでも一例であって、同じような問いでも回 帰・分類・クラスタリングが変わる場合もある (例3)ユーザーがその動画をどれくらい気に入るかの 「スコア(数値)」を予測し、そのスコアが高い順に動 画を並べておすすめする、といったことをやりたければ 回帰の問題になる
ここまでのまとめ 何を予測するのか? 明日のお弁当の作成個数を予測する タイプは? 回帰 いつまでに予測するのか? 前日の16時までに 使うデータは? 天気予報のデータ(前日16時時点) イベントのデータ(前日16時時点) どうやってモデルが使われ 前日の16時に翌日のお弁当の作成個数がお弁 るのか? 当発注者のスマホにメールで通知される ここまで整理できればほとんどモデル構築出来たも同然 言い方を変えるとモデル構築するためにはこういった情報 を整理することが極めて重要になる
モデル構築 もう少し 詳しく
使うデータをもう少し詳細に考える 「天気予報のデータ」と一言で言っても色々ある ✓天気(晴れ、曇り、雨、晴れ時々曇り、など) ✓気温 ✓降水確率(1時間ごとの降水確率) ✓雨雲レーダー 具体的にどのようなデータをどう使うのかを考える その際にも「仮説」があると良い
使うデータをもう少し詳細に考える (例)お弁当屋さんが多くの人が働いているオフィス ビルの1階にある。晴れの時よりも雨の時の方が「今日 は外に食べに行かずにお弁当で済まそう」と考える人 が多くお弁当も多くの個数が売れる。 お昼の時間帯に雨が降っているかどうかがポイントな ので、前日16時の時点で「当日の12時の降水確率」を 取得して活用することにする
使うデータをもう少し詳細に考える 本当に相関関係がありそうなのかをチェックしてみる 以下のような一覧表を作って過去のデータを整理する 予測したい 前日の16時の時点での 日(当日) 当日の降水確率 当日のお弁当の作 当日実際にお弁当 成個数 が売れた個数 4/1 0 100 25 4/2 10 150 40 4/3 30 150 128 4/4 90 150 150(完売) 4/5 60 100 75 4/6 30 200 180 4/7 20 200 130
使うデータをもう少し詳細に考える 「イベントのデータ」と一言で言っても色々ある ✓近くの野球場でプロ野球の試合が行われるかどうか ✓近くのサッカー場でJリーグの試合が行われるかどうか ✓近くのホールでアーティストのライブが行われるかどうか ✓それぞれのイベントの集客予定人数 ✓イベントの開始時間 具体的にどのようなデータをどう使うのかを考える その際にも「仮説」があると良い
使うデータをもう少し詳細に考える (例)お弁当屋さんの近くには徒歩10分に野球場と徒 歩15分にサッカー場と徒歩20分にホールがあるが、 サッカー場とホールはやや遠いためあまりお弁当屋さ んには寄らないと考え、野球だけに絞る。野球は14時 開始と18時開始がある。 何となく18時開始の方が夜ご飯用に お弁当を買ってくれる傾向がある 気がするが、念のため両方の パターンについて相関関係を 見ておきたい。
使うデータをもう少し詳細に考える 野球(イベント)開催のフラグの列を設けてみた 予測したい 日(当日) 前日の16時の時点での当 イベント開催のフ 日の降水確率 ラグ 当日のお弁当の作 成個数 当日実際にお弁当 が売れた個数 4/1 0 C 100 25 4/2 10 B 150 40 4/3 30 B 150 128 4/4 90 B 150 150(完売) 4/5 60 B 100 75 4/6 30 A 200 180 4/7 20 A 200 130 追加した列 A:野球開催(14時開始) B:野球開催(18時開始) C:野球開催なし
使うデータをもう少し詳細に考える つまり「降水確率とイベントのデータを使って当日実 際にお弁当が売れた個数を予測する問題」となる 説明変数(特徴量) 目的変数 予測したい 日(当日) 前日の16時の時点での当 イベント開催のフ 日の降水確率 ラグ 当日のお弁当の作 成個数 当日実際にお弁当 が売れた個数 4/1 0 C 100 25 4/2 10 B 150 40 4/3 30 B 150 128 4/4 90 B 150 150(完売) 4/5 60 B 100 75 4/6 30 A 200 180 4/7 20 A 200 130
使うデータをもう少し詳細に考える これを眺めると、降水確率が低めで野球が14時開催の 日が一番お弁当が売れそうだと分かる 予測したい 日(当日) 前日の16時の時点での当 イベント開催のフ 日の降水確率 ラグ 当日のお弁当の作 成個数 当日実際にお弁当 が売れた個数 4/1 0 C 100 25 4/2 10 B 150 40 4/3 30 B 150 128 4/4 90 B 150 150(完売) 4/5 60 B 100 75 4/6 30 A 200 180 4/7 20 A 200 130
使うデータをもう少し詳細に考える だがよく見ると、翌日の4/7もほぼ同じ条件だがお弁 当の売れ行きに大きな差があることが分かる 予測したい 日(当日) 前日の16時の時点での当 イベント開催のフ 日の降水確率 ラグ 当日のお弁当の作 成個数 当日実際にお弁当 が売れた個数 4/1 0 C 100 25 4/2 10 B 150 4/3 30 B 150 4/4 90 B 150 4/5 60 B 100 4/6 30 A 200 180 4/7 20 A 200 130 40 4/6は180個も売れ たのに、4/7は130 128 個しか売れないの 150(完売) はなぜ? 75
使うデータをもう少し詳細に考える ここでまた「仮説」を考える (例)よく考えたら曜日が関係 しているのかもしれない。 4/6は土曜日、4/7は日曜日。 また、野球の観客数にも関係 しているのかもしれない。
使うデータをもう少し詳細に考える 曜日と野球の試合の観客数の実績を入れてみた 予測した い日(当 日) 曜日 前日の16時の イベント開催のフラグ 時点での当日 の降水確率 観客数 当日のお弁 当の作成個 数 当日実際に お弁当が売 れた個数 4/1 月 0 C 0 100 25 4/2 火 10 B 25000 150 40 4/3 水 30 B 23000 150 128 4/4 木 90 B 21000 150 150(完売) 4/5 金 60 B 32000 100 75 4/6 土 30 A 43000 200 180 4/7 日 20 A 38000 200 130
使うデータをもう少し詳細に考える どうやら観客数とお弁当の売れ行きには相関がありそ うだ!と気付く 予測した い日(当 日) 曜日 前日の16時の イベント開催のフラグ 時点での当日 の降水確率 観客数 当日のお弁 当の作成個 数 当日実際に お弁当が売 れた個数 4/1 月 0 C 0 100 25 4/2 火 10 B 40 4/3 水 30 B 4/4 木 90 B 25000 150 日曜日の方が観客数が少な 23000 150 いからお弁当の売れ行きも 少ないのかもしれない! 21000 150 4/5 金 60 B 32000 100 75 4/6 土 30 A 43000 200 180 4/7 日 20 A 38000 200 130 128 150(完売)
使うデータをもう少し詳細に考える ところが、野球の観客数は当然だが前日の16時の時点 では分からない。だからモデル構築には使えない。 予測した い日(当 日) 曜日 前日の16時の イベント開催のフラグ 時点での当日 の降水確率 観客数 当日のお弁 当の作成個 数 当日実際に お弁当が売 れた個数 4/1 月 0 0 100 25 4/2 火 10 25000 150 40 4/3 水 30 23000 150 128 4/4 木 90 21000 150 150(完売) 4/5 金 60 B 32000 100 75 4/6 土 30 A 43000 200 180 4/7 日 20 A 38000 200 130 C B 前日の16時の時点では B 分からない! B
使うデータをもう少し詳細に考える チケットの売れ行きの詳細な情報は公開されてない。 だが、目視でチケット販売サイトを見ればなんとなく 分かる。 (例)6/14時点で 6/21のvs虎チームは ほぼ満席、6/28の vs兎チームは6割 ほどの売れ行き [出典] ベイチケ https://ticket.baystars.co.jp/
使うデータをもう少し詳細に考える 以上から、代替手段として以下の方法が考えられる (代替手段1)チケット販売サイトを目視で確認して 売れ行きの感覚値を1~10段階で入力して予測に使う (代替手段2)事前に分かっている対戦カードを説明 変数に追加して予測に使う (代替手段3)そもそも観客数を予測するモデルを構 築しその結果を説明変数に使用する どれもメリット・デメリットがあることから、コスト やスケジュールを鑑みて選択する
使うデータをもう少し詳細に考える このように、使いたいデータが手に入らなくても、代 替手段を考えるということは大切である。 「使いたい」と思ったデータが都合よく手に入るわけ ではないし、仮に手に入るとしてもお金がかかったり 契約で縛られたりする場合もある。 「使いたい」というのと「使える」というのは別であ る、ということは認識しておこう。
モデル構築 すべきか問題
モデル構築すべきか問題 Why→How→Whatを見てきたが、そもそもモデル構 築すべきかどうか、というのはよくよく考える必要が ある。 (例)故障検知というのは製造業で良く出てくるお題 である(誰もがやりたがる)。ところが、経験則的に だいたい以下のような結論に至ることが多い。 ✓【ケース1】故障検知モデルがうまく作れない ✓【ケース2】故障検知出来たところで誰も嬉しくない ✓【ケース3】傾向を見るだけならモデルを作る必要がない
【ケース1】 故障検知モデルがうまく作れない 故障検知というのは正常データと故障データを比較し て初めて構築が可能になる ところが、日本の製造業製品というのは基本的には品 質が高いので、市場に出た製品は経年劣化でもない限 りそうそう壊れるものではない よって、故障データが全体のうちの100分の1しかない、 といったことがよくある。 これを不均衡データという
【ケース1】 故障検知モデルがうまく作れない 不均衡データでも機械学習モデルは作れないこともな いが、精度はかなり怪しいことになる 普通に考えれば、100分の1を予測するというのは難し いということは想像できる。また、それは技術が優れ ていれば解決できる類のものではない。 ところが、機械学習モデルは内部的に凄いことをやっ ていると思われがちなので、普通だと出来ないことを 出来ると暗に思われてしまっている節がある。
【ケース2】 故障検知出来たところで誰も嬉しくない 「Why(なぜ)?」でも学んだ通り、機械学習モデル をつくるのは予測することによって行動を最適化した いから 具体的な「行動の最適化」例として「事前に故障検知 することによって早期にメンテンナンスを行って故障 リスクを抑えたい」といった話がよく出る ところが、分かったところで「早期にメンテナンスを 行う」ということが出来ない、という場合も多い
【ケース2】 故障検知出来たところで誰も嬉しくない よくあるのが、故障することが事前に分かったところ でメンテナンス対応の人員が増えるわけではないから 元々の修繕計画を変更してまで臨時対応することは出 来ない、というオペレート側の問題 また、出来上がったモデルによって故障すると予測す る前に定期メンテナンス(例えば5年に1回、など)が やってくる場合もある さらに、製品のユーザー側の都合でそもそも部品交換 が出来ないという場合もある(稼働を止められない、 など)
【ケース3】 傾向を見るだけならモデルを作る必要がない そもそも「故障の原因を詳細に知りたい」といった ニーズであれば、予測を行う必要性がなく、古典的な 統計解析を行えばよい なのだが、おそらく機械学習モデルを構築することが 「分析すること」だと誤解していると思われる依頼を 良く受ける(これは実はあながち間違いとも言い切れ なくて、特徴量重要度(インポータンス)を見ること が目的という場合もあるが、ここではそういうケース は例外とする)
【ケース3】 傾向を見るだけならモデルを作る必要がない これはおそらく、「こういう傾向でした」で終わって しまうとその後のビジネスに繋がらない、という事業 側の都合もあると邪推している だが、どう頑張ってもビジネスに繋がらないものは繋 がらないので、気付いた段階でその後のSaaS的なビジ ネス創出は諦めて「傾向を導出することに役に立て た」と誇りに思うことが肝要だと思う
本当に嬉しいの?を考える モデルによって誰が嬉しいのか?本当に嬉しいのか? をしっかり考えることが必要 「どうやってモデルが使われるのか」をナラティブ (物語)で考えてみると良い
Thank You !!