top of page
執筆者の写真嘉藤田 潔

機械学習(Machine Learning)を活用した需要予測事例とKPIモデリング方法を徹底解説 | 教師あり学習、教師なし学習、時系列分析の違いも説明します。


  • 金融分野では過去顧客の財務情報を基にした審査の高度化によるリスク管理を実施

  • マーケティングとセールス業務ではイベントの成功率や製品の購買率を予測してターゲット顧客を厳密にセグメンテーション

  • 製造分野では不良品を自動的に検出して工程プロセスを最適化

  • 流通/物流分野では代表的に需要予測(DemandForecast)の精度を向上。製品の適正生産量または発注量を予測し、欠品や超過品を最小化。

需要予測は流通や物流分野だけでなく、製品を生産・販売するすべてのビジネスにおいて必要な業務でもあります。どの製品がどれだけ売れるか予測が可能であれば、それによってビジネス戦略とターゲット顧客設定がより簡単になることも期待できます。


ところが、需要予測の方法論は一般的な機械学習の予測方法論より考慮すべき事項が多く、モデル性能を担保することは容易ではありません。


そこで今回の記事では、ailysが行った需要予測モデリング事例を紹介しながら、以下のような質問を解決したいと思います。


  • マシンラーニングで需要予測をするためには、どのような特性のデータが必要か?

  • 需要予測のための方法論は、他の何かを予測する方法論とどのような違いがあるのか?

  • 需要予測モデルの精度を高めるためにはどのような作業が必要か?

  • 需要予測モデルはどのようなKPIを基準に基づいて評価すべきか?


マシンラーニング学習方法論の整理: 「教師あり学習」(SupervisedLearning)、「教師なし学習」(UnsupervisedLearning)、「時系列分析」(Time-SeriesAnalysis)とは?


教師あり学習」は予測したいターゲットが何かを教えてくれる(Supervise)という意味で、ターゲットを指定しない「教師なし学習」(UnsupervisedLearning)と区別される用語として使われます。


Aという商品がいくつ売れるかを予測したい場合、過去の販売データの中でAという変数をターゲットに指定するので、これを「教師あり学習」と呼ぶことができます。


反面、「教師なし学習」は特段ターゲットを指定しないため、何かを予測するよりはデータの特性を考慮して密接な関係のあるサンプル同士を束ねたものが結果として現れます。そのため、クラスタリング(Clustering)と呼ばれることもあります。クラスターという用語が耳慣れないかもしれませんが、束または群集という意味です。


「教師なし学習」は、どのような基準でデータをまとめるのかを指示するのではなく、コンピューターに自分でまとめてみろと指示を出すのです。


ところでAという商品の6月の最終販売量より6月第3週の販売量予測がより重要だと仮定してみます。この場合、日付の流れによる販売量の変動予測が必要となります。


このように、時間の流れに応じた過去のデータパターンを学習し、未来の予測も時間に応じて推定する方法論を「時系列分析」(Time-SeriesAnalysis)といいます。時間変数を考慮しない「教師あり学習」とは異なり、時間変数を考慮して学習することになります。


各方法論別にどのような事例があるのかについては、下記の文をご参照ください。


需要予測を「教師あり学習」にするか、「時系列分析」にするか?


上記のとおりであれば、時間の流れに沿って販売量を追跡してみたい場合には「時系列分析」で進め、時間と関係なく最終的な販売量を予測したい場合には「教師あり学習」で進めれば良いと類推されます。ところが、実際のプロジェクトでは時間の流れによって販売量を追跡する場合も「時系列分析」と共に「教師あり学習」を並行してモデリングすることがあります。なぜでしょうか?


時系列分析に使用されるデータは、基本的に時間軸によって予測ターゲットが記録されています。 つまり、下図のように時間の経過によって商品の販売量や価格の推移が連続的に記録されています。


<時系列分析データ例 Time Series Analysis Data Example>



この時、時間によるパターンを学習するためには、時間という変数とターゲットの関係に一種の規則性が存在しなければなりません。例えば、毎週月曜日に販売量が高くなったり、毎年冬に販売量が減少したり、一定の周期による減少と増加傾向が明確であるほど時系列分析モデルの性能は高くなります。


ところが、時間という変数より他の特定変数がターゲットに影響を大きく及ぼす場合があります。例えば、アイスクリームの販売量を予測する場合、数週間、何月という時間より気温と天気という変数が直接的な影響を与える場合などです。また、商品をPRするイベントを途中で行った場合、イベント可否という変数が時間変数より重要に作用するでしょう。このように時間による規則性より、その他の変数の値がターゲット予測に大きな影響を及ぼす場合、「教師あり学習」で進めることがより良いモデルになるかもしれません。


<「時系列分析」または「教師あり学習」活用データの違い>


もちろん「時系列分析」ではその他の変数を考慮できないという事ではありません。「時系列分析」でも気温、天気、イベントの有無、商品カテゴリなどの変数をデータに含めてモデリングが可能です。


しかし、時系列分析で使われるアルゴリズム(代表的にARIMA、LSTM、GRUなど)は基本的に時間変数に基づいてパターンを追跡し、他の変数は付随的な影響として考慮されます。


そこで時間の規則性がはっきり見える場合、「時系列分析」で接近した方が良いということになります。


反面、これを「教師あり学習」で解く時には単純な時間変数は意味がなくなり、一定時間以前のターゲット値を新しい変数に加工して他の変数を総合的に(またはユーザーの設定によって)考慮することが必要になります。下図は、「教師あり学習」で商品販売を予測する際に使われるデータの例です。


<要予測のための教師あり学習データ例>


実際の事例では「時系列分析」と「教師あり学習」をどのように活用したのか?


ailysの顧客事例を一つ紹介しようと思います。食品流通業者でこれまで担当者の経験と直観的な判断で出荷量を計算してきた方式を変えて、新しく機械学習を活用して精緻に予測を行った事例です。


一般的に流通分野では製品を超過生産するより不足する方が機会損失となりビジネス面での損害を与えます。 従って、一般的には十分に生産するのが安全な事が多いです。


ところが、もし冷凍食品なら超過生産品の保管費用が発生し、生鮮食品の場合、廃棄費用が発生するので、欠品による損害費用と保管/廃棄費用を一緒に考慮して適切な在庫の維持を行うことが非常に重要になります。


機械学習を活用して予測精度を高めようとする理由がここにあります。


この業者の食品データには日付に応じた過去の出荷量が記録されていたため時系列分析が可能であり、これを基に今後10日間の適正出荷量を予測することを目標に定めました。その結果、下図のように10日間の予測誤差率が0.9%以内に入ってくるようになりました。


<食品データ需要予測時系列分析結果>


さらに、この会社では既存の食品とともに、新しく発売された食品もどれだけ需要が発生するか予測してみようとしました。

新商品は過去の時系列データがないのでどのパターンを学習しなければならないでしょうか?


過去のデータがない新商品の場合でも機械学習によるモデリングが可能か?


この場合、新商品の特性を変数にして指導学習で接近する方法を使用しました。すなわち、過去の商品の販売データを学習する時、商品のカテゴリ、進行した行事の情報、販売価格、気温、天気、曜日などの変数を考慮し、これに対するパターンは新商品にも適用が可能でした。指導学習の予測結果は満足しました。 既存の予測方法より欠品率と超過在庫率を0.5%~4%ほど減らすことができました。


新商品の場合、時系列データがないため、商品特徴変数を「教師あり学習」として活用する


結論から言えば、この顧客の場合、時系列データが存在する既存商品の予測には「時系列分析」を活用し、時系列データが存在しない新商品の場合、商品の特徴を最大限多く反映できる「教師あり学習」を活用しました。もちろん、これは特定のケースに当てはまる一つのノウハウであり、すべてのプロジェクトに適用できる方法論ではありません。


他の顧客の場合には既存商品だったにもかかわらず、「時系列分析」の予測精度をさらに高めるために該当データを「教師あり学習」で試みたりもしました。特定商品に関しては「時系列分析」の結果が満足のいくものであり、他の商品については「教師あり学習」が満足できるものでした。このようにこれが絶対的な正解はないので、ユーザーが様々な試みをしてみることが必要な時もあります。


<時系列データがない場合の商品特徴変数を使った教師あり学習の方法>



ビジネス成果指標に基づいたモデリング:

KPI-DrivenModeling


前述の通り需要予測では超過在庫品より欠品を防止する予測モデルの方が有効な場合が多いくあります。例えば、Aというモデルは実際より10%多く予測し、Bというモデルは実際より10%少なく予測した場合、同じ誤差でも欠品を防止したAモデルが需要予測ではより良い結果をもたらすことが多くあります。過剰在庫についてはプロモーションや値引きなどにより売上を上げることができますが、欠品の場合は純粋な損失となるからです。


ところが、一般的な機械学習ではこのような成果指標を考慮できずにいます。モデルを評価する指標が絶対誤差(MAE、MSE、MAPEなど)のように従来使われていた統計指標をそのまま適用しているためです。これに対し、ailysは実際にビジネス成果に基づいたKPI達成を目標にモデルを開発しています。 これをKPI-DrivenModelingといいます。


KPI-DrivenModelingを適用した事例を見てみましょう。飲料水加工業者で需要予測を通じてビジネス成果を極大化した事例です。まず開発されたモデルの予測量と実際の販売量の割合で計算された的中率を定量目標の一つと定義しました。


この時、飲料水製品の特性上、冬季の対比ピーク期の成果がより重要なので、相対的な重要度を勘案して的中率に加重値を付与しました。 最後に予測と実際の誤差によって発生する欠品量と在庫量によってどの程度の損害額が発生するかを顧客から指定された指標に従って計算してみました。


その結果、下図のように一般的なAutoML(自動化機械学習)の統計指標として開発されたモデルに比べてKPI-DrivenModelingとして開発されたモデルの改善効果が高い事が明確になり、この改善により約8億円の損失額削減効果があることが明らかになりました。モデル開発方法論の違いがこれだけのビジネス成果の違いをもたらすという事が明らかとなりました。


まとめ


需要予測の事例を通して、KPI-DrivenModelingがなぜ重要なのかについて説明しました。 一般的な機械学習では予測モデルの性能を伝統的な統計指標で評価します。 例えば回帰モデルの場合、予測量と実際量の絶対誤差程度を平均して点数を与えるだけです。


しかし、このような統計指標はビジネス成果と関連性が低いことが多くあります。予測精度より重要なKPIがあるからです。これは超過品と欠品量の程度によって損害額が変わる流通分野では特に重要な考え方となります。超過品より欠品を減らす方向でKPIを握ってモデルを開発することが必要だからです。


KPI-Driven Modelingを実現する「DAVinCI LABS」


「DAVinCI LABS」は上記のようなビジネス成果に基づくKPI-Driven Modelingを作成するために必要な分析機能(「教師あり学習」「時系列予測」「KPIに基づく最適化)と、実際のモデルを作成するための教育やコンサルティングをパッケージにしたオールインワンのソリューションです。KPI-Driven Modelingに興味があれば是非一度お問い合わせください。



 









Comments


bottom of page