(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022076421
(43)【公開日】2022-05-19
(54)【発明の名称】需要予測サーバ及び需要予測方法
(51)【国際特許分類】
G06Q 30/02 20120101AFI20220512BHJP
【FI】
G06Q30/02 310
【審査請求】未請求
【請求項の数】26
【出願形態】OL
(21)【出願番号】P 2020186861
(22)【出願日】2020-11-09
(71)【出願人】
【識別番号】519291331
【氏名又は名称】株式会社ELYZA
(74)【代理人】
【識別番号】100140899
【弁理士】
【氏名又は名称】竹本 如洋
(72)【発明者】
【氏名】垣内 弘太
(72)【発明者】
【氏名】曽根岡 侑也
【テーマコード(参考)】
5L049
【Fターム(参考)】
5L049BB04
(57)【要約】
【課題】 売上予測の算出前に複数の前処理を切り替えて実行することで売上予測の精度を向上させる仕組みを提供する。
【解決手段】 商品の売上データを取得する売上データ取得部と、取得した前記売上データに対して、売上予測を行うためのデータに修正を行う複数のクレンジング処理を組み合わせて実行することによりクレンジング後データを算出するクレンジング処理部と、前記クレンジング後データを入力とし売上予測データを出力とする売上予測モデルを機械学習により生成し、生成された前記売上予測モデルの精度を算出し、前記精度が所定の値以上の前記売上予測モデルを選択するモデル学習処理部と、選択された前記売上予測モデルに基づいて売上予測データを出力する売上予測処理部と、を有する需要予測サーバ。
【選択図】
図20
【特許請求の範囲】
【請求項1】
商品の売上データを取得する売上データ取得部と、
取得した前記売上データに対して、売上予測を行うためのデータに修正を行う複数のクレンジング処理を組み合わせて実行することによりクレンジング後データを算出するクレンジング処理部と、
前記クレンジング後データを入力とし売上予測データを出力とする売上予測モデルを機械学習により生成し、生成された前記売上予測モデルの精度を算出し、前記精度が所定の値以上の前記売上予測モデルを選択するモデル学習処理部と、
選択された前記売上予測モデルに基づいて売上予測データを出力する売上予測処理部と、
を有する需要予測サーバ。
【請求項2】
前記クレンジング処理部は、
前記売上データと、前記クレンジング処理を実行することにより生成された前記クレンジング後データとを対比可能な形で出力し、
前記クレンジング後データの修正、前記クレンジング後データの使用可否の確認、又は前記クレンジング処理の設定の修正、の少なくとも1つを受け付ける表示を出力する請求項1に記載の需要予測サーバ。
【請求項3】
前記表示は利用者端末に対して出力され、
前記利用者端末から、前記クレンジング後データの修正、前記クレンジング後データの使用可否の確認、又は前記クレンジング処理の設定の修正、の少なくとも1つを受け付ける請求項2に記載の需要予測サーバ。
【請求項4】
前記クレンジング処理部は、
修正された前記クレンジング後データ、使用可であることを確認された前記クレンジング後データ、又は、修正された前記クレンジング処理の設定、の少なくとも1つに基づいて、前記クレンジング処理を実行する条件、処理内容、又は設定の少なくとも1つを更新する請求項2又は3に記載の需要予測サーバ。
【請求項5】
前記クレンジング処理部は、
前記売上データと、使用可能であることが確認された前記クレンジング後データとを教師データとして用い、入力を売上データとし、出力をクレンジング後データとするクレンジング処理モデルを機械学習により生成し、
前記クレンジング処理モデルを用いて、前記クレンジング処理を実行し、入力された売上データから推定されるクレンジング後データを出力する請求項1~4のいずれか1項に記載の需要予測サーバ。
【請求項6】
前記クレンジング処理部は、
前記売上データと、複数の前記クレンジング処理を実行することにより生成された前記クレンジング後データとを対比可能な形で出力し、
複数の前記クレンジング処理から、売上予測に使用する前記クレンジング処理の選択を受け付ける表示を出力する請求項1~5のいずれか1項に記載の需要予測サーバ。
【請求項7】
前記クレンジング処理は、前記売上データの一部の欠損に対して補完を行う欠損値補完処理を含む請求項1~6のいずれか1項に記載の需要予測サーバ。
【請求項8】
前記クレンジング処理は、対応する他の売上データと比べて売上データが誤っている可能性のある箇所を検出し、修正する異常検知処理を含む請求項1~7のいずれか1項に記載の需要予測サーバ。
【請求項9】
前記クレンジング処理は、所定の値を超える売上げが所定の期間内に発生することを検出した場合に、その売上げを除外する大量客注検出処理を含む請求項1~8のいずれか1項に記載の需要予測サーバ。
【請求項10】
前記クレンジング処理は、商品識別情報が切り替わった商品について、切り替え前後の商品識別情報を対応付けする商品識別情報紐付け処理を含む請求項1~9のいずれか1項に記載の需要予測サーバ。
【請求項11】
前記クレンジング処理は、セット商品の売上を前記セット商品に含まれる各個別商品の売上に加算するセット商品処理を含む請求項1~10のいずれか1項に記載の需要予測サーバ。
【請求項12】
前記クレンジング処理は、販売状態を示す変数の異常検知処理を含む請求項1~11のいずれか1項に記載の需要予測サーバ。
【請求項13】
前記クレンジング処理部は、クレンジング処理の設定を変更した複数のクレンジング後データを算出し、
前記モデル学習処理部は、複数の前記クレンジング後データに基づいて複数の前記売上予測モデルを生成し、複数の前記売上予測モデルの評価を実行し、
前記クレンジング処理部は、前記評価が所定の値以上の前記売上予測モデルに対応する前記クレンジング処理の設定を用いて前記クレンジング処理を実行する請求項1~12のいずれか1項に記載の需要予測サーバ。
【請求項14】
前記クレンジング処理部は、複数のクレンジング処理を組み合わせて複数のクレンジング後データを算出し、
前記モデル学習処理部は、複数の前記クレンジング後データに基づいて複数の前記売上予測モデルを生成し、複数の前記売上予測モデルの評価を実行し、
前記クレンジング処理部は、前記評価が所定の値以上の前記売上予測モデルに対応する前記クレンジング処理の組み合わせに基づいて複数の前記クレンジング処理を実行する請求項1~12のいずれか1項に記載の需要予測サーバ。
【請求項15】
前記クレンジング処理部は、
前記売上データと、前記精度が所定の値以上の前記売上予測モデルに使用された1又は複数の前記クレンジング処理を特定する情報と、を教師データとして用い、入力を売上データとし、出力をクレンジング処理を特定する情報とするクレンジング処理判定モデルを機械学習により生成し、
前記クレンジング処理判定モデルを用いて、入力された売上データに対して実行する前記クレンジング処理を特定する情報を出力する請求項1~14のいずれか1項に記載の需要予測サーバ。
【請求項16】
前記所定の値以上の精度とは、算出したすべての前記売上予測モデルのうち最も精度が高い値の精度であり、選択される前記精度が所定の値以上の前記売上予測モデルは、算出したすべての前記売上予測モデルのうち最も精度が高いものである請求項1~15のいずれか1項に記載の需要予測サーバ。
【請求項17】
商品の売上データを取得し、
取得した前記売上データに対して、売上予測を行うためのデータに修正を行う複数のクレンジング処理を組み合わせて実行することによりクレンジング後データを算出し、
前記クレンジング後データを入力とし売上予測データを出力とする売上予測モデルを機械学習により生成し、
生成された複数の前記売上予測モデルの精度を算出し、前記精度が所定の値以上の前記売上予測モデルを選択し、
選択された前記売上予測モデルに基づいて売上予測データを出力する
需要予測方法。
【請求項18】
前記売上データと、前記クレンジング処理を実行することにより生成された前記クレンジング後データとを対比可能な形で出力し、
前記クレンジング後データの修正、前記クレンジング後データの使用可否の確認、又は前記クレンジング処理の設定の修正、の少なくとも1つを受け付ける表示を出力する請求項17に記載の需要予測方法。
【請求項19】
前記表示は利用者端末に対して出力され、
前記利用者端末から、前記クレンジング後データの修正、前記クレンジング後データの使用可否の確認、又は前記クレンジング処理の設定の修正、の少なくとも1つを受け付ける請求項18に記載の需要予測方法。
【請求項20】
修正された前記クレンジング後データ、使用可であることを確認された前記クレンジング後データ、又は、修正された前記クレンジング処理の設定、の少なくとも1つに基づいて、前記クレンジング処理を実行する条件、処理内容、又は設定の少なくとも1つを更新する請求項18又は19に記載の需要予測サーバ。
【請求項21】
前記売上データと、使用可能であることが確認された前記クレンジング後データとを教師データとして用い、入力を売上データとし、出力をクレンジング後データとするクレンジング処理モデルを機械学習により生成し、
前記クレンジング処理モデルを用いて、前記クレンジング処理を実行し、入力された売上データから推定されるクレンジング後データを出力する請求項17~20のいずれか1項に記載の需要予測方法。
【請求項22】
前記売上データと、複数の前記クレンジング処理を実行することにより生成された前記クレンジング後データとを対比可能な形で出力し、
複数の前記クレンジング処理から、売上予測に使用する前記クレンジング処理の選択を受け付ける表示を出力する請求項17~21のいずれか1項に記載の需要予測方法。
【請求項23】
クレンジング処理の設定を変更した複数のクレンジング後データを算出し、
複数の前記クレンジング後データに基づいて複数の前記売上予測モデルを生成し、複数の前記売上予測モデルの評価を実行し、
前記評価が所定の値以上の前記売上予測データに対応する前記クレンジング処理の設定を用いて前記クレンジング処理を実行する請求項17~22のいずれか1項に記載の需要予測方法。
【請求項24】
複数のクレンジング処理を組み合わせて複数のクレンジング後データを算出し、
複数の前記クレンジング後データに基づいて複数の前記売上予測モデルを生成し、複数の前記売上予測モデルの評価を実行し、
前記評価が所定の値以上の前記売上予測データに対応する前記クレンジング処理の組み合わせに基づいて複数の前記クレンジング処理を実行する請求項17~22のいずれか1項に記載の需要予測方法。
【請求項25】
前記所定の値以上の精度とは、算出したすべての前記売上予測モデルのうち最も精度が高い値の精度であり、選択される前記精度が所定の値以上の前記売上予測モデルは、算出したすべての前記売上予測モデルのうち最も精度が高いものである請求項17~24のいずれか1項に記載の需要予測方法。
【請求項26】
需要予測サーバに請求項17~25のいずれか1項に記載の需要予測方法の各ステップを実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、需要予測サーバ及び需要予測方法に関する。
【背景技術】
【0002】
本技術分野の背景技術として、特開2016-115157号公報(特許文献1)がある。この公報には、「商品ごとに精度の高い売上予測を提供する場合の負荷が増大することを抑止するために、実施形態の売上予測プログラム提供方法は、コンピュータが、複数の商品ごとに異なる売上予測モデル生成アルゴリズムを用いて生成された該複数の商品それぞれに対応する売上予測プログラムを、該複数の商品のうちのいずれに対応するかを識別可能な状態で、かつ選択可能な状態で表示する処理を実行する。」ことが記載されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかし、特許文献1では、売上予測の算出前に複数の前処理を切り替えて実行することは何ら慮されていない。
【0005】
そこで、本発明は、売上予測の算出前に複数の前処理を切り替えて実行することで売上予測の精度を向上させる仕組みを提供する。
【課題を解決するための手段】
【0006】
上記課題を解決するために、例えば特許請求の範囲に記載の構成を採用する。
本願は上記課題を解決する手段を複数含んでいるが、その一例を挙げるならば、商品の売上データを取得する売上データ取得部と、取得した前記売上データに対して、売上予測を行うためのデータに修正を行う複数のクレンジング処理を組み合わせて実行することによりクレンジング後データを算出するクレンジング処理部と、前記クレンジング後データを入力とし売上予測データを出力とする売上予測モデルを機械学習により生成し、生成された前記売上予測モデルの精度を算出し、前記精度が所定の値以上の前記売上予測モデルを選択するモデル学習処理部と、選択された前記売上予測モデルに基づいて売上予測データを出力する売上予測処理部と、を有することを特徴とする。
【発明の効果】
【0007】
本発明によれば、売上予測の算出前に複数の前処理を切り替えて実行することで売上予測の精度を向上させる仕組みを提供することができる。
上記した以外の課題、構成及び効果は、以下の実施形態の説明により明らかにされる。
【図面の簡単な説明】
【0008】
【
図1】全体の売上予測システム1の構成図の例である。
【
図2】売上予測サーバ101のハードウェア構成の例である。
【
図3】利用者端末102のハードウェア構成の例である。
【
図4】管理者端末103のハードウェア構成の例である。
【
図11】売上予測システム1のデータの流れを説明する図の例である。
【
図13】クレンジング処理フロー1300の例である。
【
図14】クレンジングモデル生成処理フロー1400の例である。
【
図15】特徴量生成処理フロー1500の例である。
【
図16】売上予測モデル学習処理フロー1600の例である。
【
図18】クレンジング処理修正・変更処理フロー1800の例である。
【
図19】クレンジング後データ表示画面1900の例である。
【
図21】クレンジング処理判定モデル生成処理フロー2100の例である。
【発明を実施するための形態】
【0009】
以下、実施例を図面を用いて説明する。
【実施例0010】
図1は、全体の売上予測システム1の構成図の例である。
売上予測システム1は、複数の利用者端末102、複数の管理者端末103、を備え、それぞれがネットワークを介して売上予測サーバ101に接続されている。なお、ネットワークは有線、無線を問わず、それぞれの端末はネットワークを介して情報を送受信することができる。
【0011】
売上予測システム1のそれぞれの端末や売上予測サーバ101は、例えば、スマートフォン、タブレット、携帯電話機、携帯情報端末(PDA)などの携帯端末(モバイル端末)でもよいし、メガネ型や腕時計型、着衣型などのウェアラブル端末でもよい。また、据置型または携帯型のコンピュータや、クラウドやネットワーク上に配置されるサーバでもよい。また、機能としてはVR(仮想現実:Virtual Reality)端末、AR(拡張現実:Augmented Reality)端末、MR(複合現実:Mixed Reality)端末でもよい。あるいは、これらの複数の端末の組合せであってもよい。例えば、1台のスマートフォンと1台のウェアラブル端末との組合せが論理的に一つの端末として機能し得る。またこれら以外の情報処理端末であってもよい。
【0012】
売上予測システム1のそれぞれの端末や売上予測サーバ101は、それぞれオペレーティングシステムやアプリケーション、プログラムなどを実行するプロセッサと、RAM(Random Access Memory)等の主記憶装置と、ICカードやハードディスクドライブ、SSD(Solid State Drive)、フラッシュメモリ等の補助記憶装置と、ネットワークカードや無線通信モジュール、モバイル通信モジュール等の通信制御部と、タッチパネルやキーボード、マウス、音声入力、カメラ部の撮像による動き検知による入力などの入力装置と、モニタやディスプレイ等の出力装置とを備える。なお、出力装置は、外部のモニタやディスプレイ、プリンタ、機器などに、出力するための情報を送信する装置や端子であってもよい。
【0013】
主記憶装置には、各種プログラムやアプリケーションなど(モジュール)が記憶されており、これらのプログラムやアプリケーションをプロセッサが実行することで全体システムの各機能要素が実現される。なお、これらの各モジュールは集積化する等によりハードウェアで実装してもよい。また、各モジュールはそれぞれ独立したプログラムやアプリケーションでもよいが、1つの統合プログラムやアプリケーションの中の一部のサブプログラムや関数などの形で実装されていてもよい。
【0014】
本明細書では、各モジュールが、処理を行う主体(主語)として記載をしているが、実際には各種プログラムやアプリケーションなど(モジュール)を処理するプロセッサが処理を実行する。
補助記憶装置には、各種データベース(DB)が記憶されている。「データベース」とは、プロセッサまたは外部のコンピュータからの任意のデータ操作(例えば、抽出、追加、削除、上書きなど)に対応できるようにデータ集合を記憶する機能要素(記憶部)である。データベースの実装方法は限定されず、例えばデータベース管理システムでもよいし、表計算ソフトウェアでもよいし、XML、JSONなどのテキストファイルでもよい。
【0015】
利用者端末102は、売上予測情報を利用する企業等に設置された端末である。売上予測情報を利用するとは自ら売上予測情報を利用することだけでなく、当該情報を他社に提供することも含む。
管理者端末103は、売上予測システム1の管理者などが使用する端末である。
売上予測サーバ101は、利用者端末102から売上予測を行うにあたって必要となる商品情報や売り上げ情報等の様々な情報の入力を受け付け、これらを企業DB221に記憶する。
【0016】
図2は、売上予測サーバ101のハードウェア構成の例である。
売上予測サーバ101は、例えばクラウド上に配置されたサーバで構成される。
主記憶装置201には、定型化モジュール211、クレンジングモジュール212、特徴量生成モジュール213、売上予測モデル学習モジュール214、売上予測モジュール215、可視化モジュール216等のプログラムやアプリケーションが記憶されており、これらのプログラムやアプリケーションをプロセッサ203が実行することで売上予測サーバ101の各機能要素が実現される。
【0017】
定型化モジュール211は、各企業から送付され企業DB221に格納されたフォーマットがそれぞれ異なる商品や売り上げに関する情報を、定型のフォーマットに直す処理を行う。
クレンジングモジュール212は、定型化した売上データに対して、クレンジング処理を行う。企業DB221の売上データは、入力ミスや設計ミスがあったり、特異な発注があったり、売上予測に適した形式でない等の、データ上の問題がある可能性があり、これらのミスや不備を修正することで機械学習に適した形式のデータに変更し、機械学習による売上予測の精度を高める。
【0018】
特徴量生成モジュール213は、クレンジング処理を行った売上等のデータに対して特徴量を追加する加工を行い、機械学習のモデルの入力に適した形式に変更する。クレンジング処理を行った売上等のデータを、クレンジング後の売上データと呼ぶこともあるし、これにさらに特徴量を追加したデータを、クレンジング後の売上データと呼ぶこともある。特徴量生成モジュール213は、クレンジング後の売上データをクレンジング後データDB223に記憶する。
【0019】
売上予測モデル学習モジュール214は、特徴量を追加したクレンジング後の売上データを入力として、1つ又は複数の売上予測モデルを生成する。また、売上予測モデル学習モジュール214は、これらの複数の売上予測モデルの評価を行い、一番精度の高いチャンピオンモデルを選定する。なお、一番精度の高いものに限られず、精度が一定の閾値以上のものを選択する構成であってもよい。
売上予測モジュール215は、チャンピオンモデル又は選択された売上予測モデルに基づいて、売上予測を実行し、予想結果DB224に結果を記憶する。
可視化モジュール216は、クレンジングモジュール212によるクレンジング後の売上データや売上予測モジュール215による売上予測結果等を利用者端末102や管理者端末103に表示する。
【0020】
補助記憶装置202は、企業DB221、定型データDB222、クレンジング後データDB223、予想結果DB224を記憶する。
企業DB221は、企業等の利用者端末102から送信される商品データや売上データを記憶する。
定型データDB222は、定型化処理された後の売上データ等を記憶する。
クレンジング後データDB223は、クレンジング処理を施した後の売上データ等を記憶する。
予想結果DB224は、売上予測結果の情報を記憶する。
【0021】
図3は、利用者端末102のハードウェア構成の例である。
利用者端末102は、例えば据置型コンピュータやノートパソコン、タブレット等で構成される。
主記憶装置301には、クレンジング結果表示モジュール311、及び売上予測表示モジュール312が記憶されており、これらのプログラムやアプリケーションをプロセッサ303が実行することで利用者端末102の各機能要素が実現される。
【0022】
クレンジング結果表示モジュール311は、クレンジング処理した後の売上データ等とクレンジング処理前の売上データ等とを対比可能な形で利用者端末102や管理者端末103等に表示し、ユーザ等から、クレンジング処理が適切に行われているかどうかを確認や、データや設定の修正を受け付ける。
売上予測表示モジュール312は、売上予測サーバ101の可視化モジュール216と連携し、受信した売上予測結果を表示する。
補助記憶装置302の利用者端末データ321は、利用者の所属する企業の売上データなど、利用者に関連する情報や、売上予測サーバ101から送信された売上予測結果等を記憶する。
【0023】
図4は、管理者端末103のハードウェア構成の例である。
管理者端末103は、例えば据置型コンピュータやノートパソコンで構成される。
主記憶装置401には、管理モジュール411が記憶されており、これらのプログラムやアプリケーションをプロセッサが実行することで管理者端末103の各機能要素が実現される。
管理モジュール411は、売上予測システム1全体の管理を行う。また、管理モジュール411は、売上予測サーバ101にアクセスし、売上予測サーバ101の設定や管理を行う。
補助記憶装置402の管理者端末データ421は、売上予測システム1を管理するための情報を記憶する。
【0024】
図5は、商品管理情報500の例である。
商品管理情報500は商品を管理するための情報であり、商品ID501、グループID502、商品名503、JANコード504、カテゴリ505及び定価506などの情報を記憶する。
商品ID501は、商品毎に自動的に生成されるユニークなIDである。
グループID502は、異なる商品識別番号が付されているが実質的に同じ種類の商品である(対応する)複数の商品から構成されるグループごとに生成されるIDである。
商品名503には、商品の名称が記憶される。
【0025】
JANコード504は、どの事業者のどの商品かを識別する商品識別情報の1つである。なお、日本では一般的に商品をJAN(Japanese Article Number)コードで管理しているが、国際的に使用されるEAN(European Article Number)コードを用いてもよいし、その他の商品識別情報であってもよい。
カテゴリ505には、商品の分類情報が記憶される。
定価506には、商品の価格が記憶される。
【0026】
図6は、売上情報600の例である。
売上情報600は、商品ごとの売り上げを管理する情報であり、商品ID601、グループID602、日付603、店舗コード604、定価605、販売価格606、販売個数607等の情報を記憶する。
商品ID601及びグループIDには、商品の情報が記憶されており、商品管理情報500の値を参照する。
日付603には、商品を販売した日付が記憶される。
店舗コード604には、商品を販売した店舗を特定する情報が記憶される。
定価605、販売価格606、販売個数607は、販売した商品に関する情報である。なお、定価605は、商品管理情報500の定価506の値を参照する構成としてもよい。
【0027】
図7は、売上集計情報700の例である。
売上集計情報700は商品の売上情報600を集計した情報であり、商品ID701、グループID702、商品名703及び売上データ704などの情報を記憶する。
売上集計情報700は、例えば4/8から6/23までの期間における週間売上の情報を記憶している。
本実施例においては、売上情報600及び売上集計情報700等の売上に関する情報をまとめて売上データを呼ぶこともある。
【0028】
図8は、特徴量追加売上情報800の例である。
特徴量追加売上情報800は、売上データに対して、機械学習のモデルの入力に適した形式にしつつ、機械学習モデルの精度を上げるための特徴量を生成し、追加した情報である。
特徴量追加売上情報800は、例えば商品ID801、カテゴリ802、日付803、定価804、販売価格805、販売個数806、月807、日808、割引率809等の情報を記憶する。
図8の例では、商品ID、カテゴリなどの変数を0、1、2という数字のカテゴリに置き換え、日付から月・日を、定価及び販売価格から割引率を、特徴量として追加している。
【0029】
図11は、売上予測システム1のデータの流れを説明する図の例である。
定型化モジュール211が、企業DB221に記憶された様々なフォーマットの商品データや売上データを定型化処理することにより、定型化した売上データ等を生成し、定型データDB222に記憶する。
クレンジングモジュール212が、定型データDB222から定型化した売上データを取得し、クレンジング処理を行い、可視化モジュール216が、クレンジング処理を行う前の売上データとクレンジング後の売上データとを対比可能な形で利用者端末102や管理者端末103に出力する。可視化モジュール216は、利用者端末102や管理者端末103からの問い合わせを受けるQuery API(Application Programming Interface)と、問い合わせに対する回答や、売上予測サーバ101のデータを利用者端末102に出力するWeb APP(Web Application)とを有する。
【0030】
利用者端末102のユーザ等により、クレンジング処理によるデータ修正に対して誤りがないかどうかの確認を受け付け、確認が完了したクレンジング後の売上データをクレンジング後データDB223に記憶する。また、クレンジング処理の設定についても併せて出力し、設定の修正や確認を受け付けることとしてもよい。
特徴量生成モジュール213は、クレンジング後データDB223から取得したクレンジング後の売上データに対して、特徴量を追加する処理を行い、これのデータに対して売上予測モデル学習モジュール214が売上予測モデルを生成する。
売上予測モデルのうち精度が所定の閾値以上の売上予測モデルを用いて、売上予測モジュール215が売上予測処理を行い、その結果を予想結果DB224に格納する。
売上の予測結果は可視化モジュール216を介して利用者端末102や管理者端末103に表示される。
【0031】
図12は、定型化処理フロー1200の例である。
定型化処理フロー1200は、定型化モジュール211が、様々な形式の商品データや売上データを、機械学習に適した定型の売上データ等に変更する処理である。
定型化モジュール211は、企業DB221から売上データ等を取得する(ステップ1210)。
定型化モジュール211は、取得した売上データ等を、機械学習に適した定型のデータ形式に変更する(ステップ1220)。
定型化モジュール211は、定型化した売上データ等を定型データDB222に記憶する。
なお、本実施例においては、定型化した売上データを「売上データ」と呼ぶこともある。
【0032】
図13は、クレンジング処理フロー1300の例である。
企業DB221に記憶されている売上データは、入力ミス・設計ミス・需要予測に適した形式でない、等の可能性があるため、売上予測の精度を上げるために、クレンジングモジュール212がデータのクレンジングを行う。
クレンジングモジュール212は、定型データDB222から、定型化した売上データを取得する(ステップ1310)。
クレンジングモジュール212は、定型化した売上データを解析し、その内容に適したクレンジング処理を選択する(ステップ1320)。
クレンジングモジュール212は、定型化した売上データに対して選択したクレンジング処理を実行する(ステップ1330)。
【0033】
クレンジングモジュール212は、可視化モジュール216と連携し、クレンジング後の売上データを表示する(ステップ1340)。
具体的には、クレンジングモジュール212により処理された売上データを可視化モジュール216が取得し、可視化モジュール216が、クレンジング前の売上データとクレンジング後の売上データとを対応付けた画面情報を生成し、利用者端末102等に送信する。
利用者端末102のクレンジング結果表示モジュール311は、受信した売上データとクレンジング後の売上データとを対応付けた画面情報を出力装置305に表示する。
【0034】
なお、可視化モジュール216がクレンジング前の売上データとクレンジング後の売上データとを対応付けた画面情報を生成せず、対応するデータ及び表示に必要な情報を利用者端末102に送信し、利用者端末102のクレンジング結果表示モジュール311が、受信した売上データとクレンジング後の売上データとを対応付けた画面を生成する構成であってもよい。
また、クレンジング前の売上データは表示せず、クレンジング後の売上データのみを表示する構成であってもよい。
また、可視化モジュール216でなく、クレンジングモジュール212が表示を行う構成であってもよい。
【0035】
クレンジングモジュール212は、利用者端末102のクレンジング結果表示モジュール311を介して、クレンジング後の売上データに対する修正の有無の確認及び、修正がある場合にはそのデータの修正を受け付ける(ステップ1350)。クレンジングモジュール212は、修正されたクレンジング後の、修正データをクレンジング後の売上データとして確定する。
クレンジングモジュール212は、修正が確定したクレンジング後の売上データをクレンジング後データDB223に記憶する(ステップ1360)。
【0036】
図19は、クレンジング後データ表示画面1900の例である。
利用者端末102のクレンジング結果表示モジュール311は、売上予測サーバ101のクレンジングモジュール212及び可視化モジュール216と連携し、クレンジング前の売上データとクレンジング後の売上データとをモニタなどの出力装置305に表示する。
クレンジングモジュール212は、ルールベース・機械学習等によりデータの修正すべき部分を検知し、適用すべきクレンジング処理を決定し、修正を実行することもできるが、完全自動でクレンジングを行うと、以下のような不確実性が起こり得る。
・修正すべきと検知した箇所が本当に修正すべき箇所なのか
・修正すべき箇所を正しく修正できているか
そこで、利用者に上記のような不確実性を確認してもらう機能を持たせることで、クレンジングの精度が向上し、売上予測の精度が向上する。
なお、クレンジング後の売上データを利用者端末102に表示して利用者による確認を受けることなく、直接クレンジング後データDB223にクレンジング後の売上データを記憶する構成であってもよい。
【0037】
クレンジング後データ表示画面1900には、実施したクレンジング処理である価格の異常検知処理1901及び大量客注処理1902が表示されている。図の例では、このうち価格の異常検知処理1901を商品A1903に適用した売上データを表示している。
クレンジング後売上情報1930の表示部分には、クレンジング処理前の売上データ1931とクレンジング処理後の売上データ1933とが対比可能な形で表示されており、2020/3/23の価格100円が、修正後の売上データ1933の修正部分1934として1000円に修正されている。
【0038】
クレンジング後の売上データ1933の値について、ユーザから修正確認を受ける修正確認欄1932があり、ユーザから、修正値の確定、又は値の修正を受け付ける。例えば、修正確認欄1932に「OK」が記入された場合には、修正後の値が正しいことを確認したことを示す。または、何も記入しない場合には修正後の値が正しいこととして処理を行ってもよい。また値を修正する場合には、利用者が修正確認欄1932に正しい数値を記入する。
クレンジング処理前の売上データ1931とクレンジング処理後の売上データ1933はクレンジング処理グラフ表示1910に、それぞれのデータを対比可能な形で表示される。図の例では2020/3/23の実績値の価格100円が、誤りの数値であって、クレンジング処理による修正によって、価格1000円に修正されている。
【0039】
ここで修正が確認され、確定されたクレンジング後の売上データは、クレンジング結果表示モジュール311により売上予測サーバ101に送信され、クレンジングモジュール212が、クレンジング後データDB223に記憶する。
図の例では、複数のクレンジング処理1901や1902について、売上データとクレンジング後データとが対比可能な形で表示されている。
表示された複数のクレンジング処理それぞれについて、実際に売上予測に使用するかどうかの選択、すなわち使用可否の確認を受け付け、また使用が否のものについては値の修正を受け付けることができる。なお、値を修正することなく、そのデータを破棄してしまってもよい。また、クレンジング処理の設定についても併せて出力し、設定の修正や確認を受け付けることとしてもよい。
クレンジングモジュール212は、修正されたクレンジング後データ、又は使用可であることを確認されたクレンジング後データ、又はクレンジング処理の設定の修正や確認に基づいて、クレンジング処理実行するルールや設定(すなわち条件や処理内容や設定)を更新することもできる。
【0040】
その他、利用者のクレンジング結果表示モジュール311は、可視化モジュール216のWeb Appを通して以下のフィードバックを売上予測サーバ101に返すことができる。
・表示したクレンジング処理を実行するかどうかの選択。
・システムがクレンジング対象とした箇所が、本当に修正すべき点かどうかの確認。
・修正した・する予定の内容が正しいかどうかの確認。
・使用するクレンジング処理や、各クレンジング処理の設定の変更。
【0041】
ここで個別のクレンジング処理について説明する。
需要予測システム自体は、業界に依らない汎用的なものであるが、本実施例では小売業界を想定したクレンジング処理の例を説明する。
なお、これらの処理はクレンジングモジュール212が実施するが、クレンジングモジュール212のサブモジュールがそれぞれのクレンジング処理を行う構成としてもよい。
【0042】
1.欠損値補完
欠損値補完処理は、売上データの一部の欠損に対して補完を行う処理である。
クレンジングモジュール212が、データの一部の欠損を発見した場合に、その欠損を以下のような方法から、カラムごとに適切なものを選んで補完する。
・前後の日時の値で補完する。
・決まった値で補完する。(例えば、売上は欠損している箇所は0(ゼロ)で補完、欠品フラグは欠品していないものとして補完、等の処理を行うことができる。)
・平均値又は中央値等を算出し、その値で補完する。
【0043】
2.価格の異常検知
価格の異常検知は、対応する他の売上データと比べて、売上データが誤っている可能性のある箇所を検出し、修正する処理である。
クレンジングモジュール212が、価格のデータが間違っている可能性がある箇所を検出し、修正する。例えば以下のような方法がある。
・対応する他のデータと比べて価格が高い箇所を検出し修正する。(例えば、定価より価格が上がっているものを検出し、上限が定価となるように修正する。)
・対応する他のデータと比べて価格が低い箇所を検出し修正する。(例えば、定価の5割以下となっているものを検出し、下限が定価の5割となるように修正する。)
・前後の所定の日数の価格の平均値を算出し、この平均値と比べて所定の値(例えば10%)以上差がある場合に異常と検知し、その異常値を例えばこの平均値に修正する。
【0044】
3.売り上げデータの異常検知(特に大量客注)
大量客注の検知は、所定の値を超える売り上げが所定の期間内に発生することを検出した場合に、その売り上げを除外する処理である。
小売店では、店舗やECでの通常の売上に加えて、企業などからの大量客注を受ける可能性があり、このような大量客注は、以下の理由から、除外して通常の売上のみで予測を立てる方が機械学習に適している。
・大量客注は、特定カテゴリの商品に対して不定期に大きなスケールで来ることが多く、予測自体が非常に困難。
・スケールが大きいので、注文を受けてから生産を始める場合が多く、予測対象に含むことが適切でない。
【0045】
クレンジングモジュール212が、大量客注かどうかを判定する方法としては以下のようなものがある。
・商品ごとに定めた閾値をある店舗での売上が超えたことを検出した場合に、その店舗で大量客注があったと判定する。
・各商品について、全国での日毎の売上の平均μと標準偏差σを算出し、μ+nσ以上の売上の日に、大量客注があったと判定する。
・各商品について、店舗ごとに日毎の売上の平均μと標準偏差σを算出し、μ+nσ以上の売上の日に、大量客注があったと判定する。
・各商品について、ある店舗での売上が、全国での売上に占める日毎の割合の平均μと標準偏差σを算出し、μ+nσ以上の割合の日に、その店舗に対して大量客注があったと判定する。
【0046】
大量客注があったと判定された場合に、クレンジングモジュール212が、その大量客注に対する箇所のデータを除外する方法としては以下のようなものがある。
・前後の日付の売上の値で補完する。
・前後n日の売上の平均又は中央値を取り、その値で補完する。
【0047】
4.JAN紐付け
JAN紐付けは、商品識別情報が切り替わった商品について、切り替え前後の商品識別情報を対応付けする処理である。
商品の規格が若干変わることで、実質商品が同じでもJANコードが切り替わってしまう場合がある。そこでクレンジングモジュール212が、以下のような方法で商品の対応付けを行う。
・JANコードは「どの事業者の、どの商品か」を表す世界共通の商品識別情報である。JANコードが切り替わった商品について、切り替え前後のJANコードを紐付けして、同一商品として取り扱う。
具体的には、商品名データ・売上データの波形などを入力として、機械学習アルゴリズム又はルールベースにより、JAN紐付け(対応付け)を行う。
【0048】
例えば、
図7の売上集計情報700の例では、商品ID701が5の「プラスチック定規大」の売上が4/29頃から下がってきて6/3頃にゼロになる一方、これと入れ替わる形で、商品ID701が12の「BIG定規」の売上が4/29頃から増加し、6/3頃に「プラスチック定規大」とほぼ同程度になっている。
クレンジングモジュール212は、これらの売上を解析することにより、「プラスチック定規大」の名前が「BIG定規」に変わったものと判定し、これらの商品のJANコードを紐づける(対応付ける)処理を行う。
【0049】
5.セット商品の処理
複数の商品をセットで売る、という場合が存在する。例えば、商品Aと商品Bを新生活応援セットとして販売ことを想定する。この場合実質的な商品Aの売上は、商品A単体での売上と、セットに含まれる商品Aの売上と、を足したものになる。しかし、データとしては、セット商品と商品Aの売上は別々のものとして残るため、各個別商品の需要をデータが反映しない形となるおそれがある。
【0050】
そこで、各個別商品の需要も考慮するためにクレンジングモジュール212がセット商品について行うデータ処理として以下の方法がある。
・セット商品の売上を、それに含まれる各個別商品の売上に加算して記録する。
・その後、別途各商品が何個のセット商品に含まれているか、というカラムを追加する。
クレンジングモジュール212によるこの処理により、ただ売上を加算するだけでは落ちてしまっていた、セット商品で販売されている、という情報を一部補填することができる。
【0051】
6.販売状態を表す変数の異常検知
企業によっては、各商品が現在販売中なのか、生産中止なのか、販売終了なのか、という情報を管理している。このような情報は需要予測モデルの学習には有用であり、生産を中止した後のデータなどは、普段の売上より低くなる等、売上予測の学習においてはノイズとなり得るので、適切に取り除くことができれば精度が向上する。
例えばクレンジングモジュール212は、以下のような処理によりデータの整合性を確認する。
・販売中止となっている商品の売上であることを判定した場合には、売上が0(ゼロ)になっているかを確認し、なっていない場合にはデータを修正する。
・通常販売中→生産中止→販売終了という状態の変化を記憶しており、売上データを解析し、この状態の変化に対応する売上になっているかを確認し、なっていない場合にはデータを修正する。
・販売終了→生産終了等の時系列の誤りを検出し、データを修正する。
【0052】
上記のように複数のクレンジング処理があるが、可視化モジュール216はクレンジングモジュール212と連携し、売上データと、複数のクレンジング処理を実行することにより生成された複数のクレンジング後データとを対比可能な形で表示し、複数のクレンジング処理から、売上予測に使用する特定のクレンジング処理の選択を受け付けることができる。
利用者から複数のクレンジング処理の内どのクレンジング処理を利用するかの確認、クレンジング後データの利用可否の確認、及びそれぞれのデータの修正を受け付けることにより、これらのデータに基づいて各クレンジング処理を実行するルールや設定(すなわち条件や処理内容や設定)を更新することができ、各クレンジング処理の精度が向上する。
【0053】
図14は、クレンジングモデル生成処理フロー1400の例である。
クレンジングモジュール212は、定型化した売上データを解析し、ルールベース若しくは機械学習によりクレンジング処理を実行する。クレンジングモデル生成処理フロー1400は、このクレンジング処理を機械学習で実行するためのモデルを生成し、学習する処理フローである。
クレンジングモジュール212は、定型データDB222から定型化した売上データを取得する(ステップ1410)。
【0054】
クレンジングモジュール212は、定型化した売上データに対してクレンジング処理を実施し、データに対する利用者からの修正や確認を受け付け、修正が確定したクレンジング後の売上データを取得する(ステップ1420)。
クレンジングモジュール212は、クレンジング処理前の売上データと、修正が確定し使用可能であると判定されたクレンジング処理後の売上データとを教師データとして用い、入力を売上データとし、出力を前記クレンジング後の売上データとするクレンジング処理判定モデルを機械学習により生成する(ステップ1430)。
クレンジングモジュール212は、生成したクレンジング処理モデルを記憶し、出力する(ステップ1440)。
【0055】
クレンジングモジュール212は、記憶及び出力されたクレンジング処理判定モデルを用いて、入力された定型化した売上データから推定されるクレンジング後の売上データを算出し、出力する。
なお、クレンジング後データに対して、利用者からそのデータの使用可否の選択を受け付ける表示を出力するが、利用者から使用可と判定されたクレンジング後データ、又は利用者からデータの修正を受け付けた後に、使用可と判定されたクレンジング後データをクレンジングモデル生成のための教師データとして使用することで、モデルを用いたクレンジング処理の精度を高めることができる。
【0056】
これまで説明したような、利用者によるクレンジング後の売上データの確認及び修正を行うフィードバックを受け付けることで、以下のような効果がある。
・データが修正されることにより予測精度が向上する。
・フィードバックループにより継続的にクレンジング処理の精度が向上する。より具体的には、クレンジングモジュール212のクレンジング処理の結果に対して、利用者がフィードバックを与えることで、クレンジング処理のアノテーション付きデータが得られる。各クレンジング処理のルール・機械学習モデルを、そのデータを元に更新することで、クレンジング処理自体の精度が向上する。このヒューマンインザループが回ることで、運用の中でクレンジング処理の精度が継続的に向上する。
【0057】
図15は、特徴量生成処理フロー1500の例である。
特徴量生成処理フロー1500は、特徴量生成モジュール213が、クレンジング後の売上データに対して、モデルの入力に適した形にしつつ機械学習モデルの精度を上げるための特徴量を生成し、追加する処理である。
特徴量生成モジュール213は、クレンジング後データDB223からクレンジング後の売上データを取得する(ステップ1510)。
特徴量生成モジュール213は、機械学習モデルの精度を上げるための特徴量を生成し、追加する(ステップ1520)。クレンジングモジュール212は、様々な特徴量生成のモジュールをカスタマイズして使用可能であり、また、外部データも特徴量に加えることが可能である。
特徴量生成モジュール213は、特徴量を追加したクレンジング後の売上データを出力する(ステップ1530)。
【0058】
図16は、売上予測モデル学習処理フロー1600の例である。
売上予測モデル学習処理フロー1600は、売上予測モデル学習モジュール214が、売上予測を行う機械学習のモデルを生成し、学習する処理である。
売上予測モデル学習モジュール214は、特徴量を追加したクレンジング後の売上データを取得する(ステップ1610)。
売上予測モデル学習モジュール214は、クレンジング後データから算出された複数の特徴量を入力とし、売上予測データを出力とする売上予測モデルを機械学習により生成する、又は学習する(ステップ1620)。入力される特徴量に対しては、種々のハイパーパラメータを調整する。
【0059】
売上予測モデル学習モジュール214は、生成された複数の売上予測モデルの精度を算出し、精度が所定の値以上の売上予測モデルをチャンピオンモデルとして選択する(ステップ1640)。
例えば、所定の値は、算出したすべての売上予測モデルのうち最も精度が高いものであり、最も精度が高い売上予測モデルがチャンピオンモデルとして選択される。その他、精度が閾値以上の複数の売上予測モデルが選択されることとしてもよい。
売上予測モデル学習モジュール214は、選択されたチャンピオンモデルの売上予測モデルを記憶し、売上予測のために出力する(ステップ1650)。
ハイパーパラメータや売上予測モデルは変更や組み合わせが可能であり、複数の売上予測モデルを生成してそのうちの精度の高いものがチャンピオンモデルとして選択される。
【0060】
売上予測モデルの精度が高いとは、検証用のデータの入力データに対して売上予測処理を実施した結果と、検証用データの予測対象である正解データと、を比較した場合の誤差が最小、又はあらかじめ定めた閾値以下のことである。精度評価は、ホールドアウト法やクロスバリデーション法等により行うことができる。
検証用データとは、例えば学習用データと同じ構造を持つ、学習用データとして使用したデータと異なるデータである。例えば、8月までの売上データを学習データとして用いて、時期が異なる9月以降の売上データを検証用データとして用いる。
検証用データの入力データは例えば、
図8の例では、販売個数806以外の商品ID801、カテゴリ802、販売価格805、月807、日808、割引率809であって、正解データは例えば、実際の販売個数の値である。
【0061】
図17は、売上予測処理フロー1700の例である。
売上予測処理フロー1700は、売上予測モジュール215が、チャンピオンモデルを用いて売上予測を行う処理である。
売上予測モジュール215は、特徴量を追加したクレンジング後の売上データを取得する(ステップ1710)。
売上予測モジュール215は、チャンピオンモデルを用いて売上予測処理を実行する(ステップ1720)。
売上予測モジュール215は、予測結果を予想結果DB224に記憶する(ステップ1730)。
【0062】
図20は、売上予測表示画面2000の例である。
利用者端末102の売上予測表示モジュール312は、売上予測サーバ101の可視化モジュール216と連携し、売上予測結果をモニタなどの出力装置305に表示する。具体的には、可視化モジュール216のQuery APIが予想結果DB224の予測結果情報を抽出し、Web Appが表示画面を生成し、利用者端末102に送信する。
なお、Web Appで画面を生成することなく、画面生成のための情報のみを利用者端末102に送信し、利用者端末102の売上予測表示モジュール312が画面を生成する構成であってもよい。
また、利用者端末102の代わりに管理者端末103が表示する構成であってもよい。
【0063】
売上予測表示画面2000は、複数のカテゴリ2001や2002の複数の商品に関する売上予測を表示することが可能であり、図の例では利用者により選択されたカテゴリX2001の商品A2003の売上予測データが表示されている。
売上予測表示画面2000には、予想結果DB224から読み出した予測結果情報2030が表示される。
また、グラフ表示2010には、境界2011を境として、売り上げの実測値と予測値とが識別可能な状態で表示される。
図の例では、売り上げの値として販売個数を表示しているが、売上金額で表示することもできる。
予測結果は、利用者により編集可能な形で表示されており、編集された情報は、売上予測表示モジュール312が発注に利用することができる。
【0064】
以上説明した実施例1によれば、過去の実績データを元に、機械学習を用いて将来の需要を予測することができる。
機械学習を用いて需要予測を行うことで、人間が経験則に基づいて予測を行うよりも高精度に将来の需要を予測することができ、需要予測に基づく受発注を行うことで、機会損失や、余剰在庫、廃棄を大きく削減する効果がある。
また、機械学習を用いた需要予測に連動して生産管理や受発注管理、生産計画策定、仕入れ量調整、値引き戦略等の策定を行うことで、これらの管理や計画策定に関する作業効率や精度を向上させることができる。
【0065】
本実施例では、小売業について、過去の売上データを元に各商品の将来の売上を予測する例を説明した。売上データは、商品の売上個数でもよいし、売上金額でもよい。
また、本実施例の需要予測の対象は小売業に限られず、例えば広告業であれば広告宣伝費の受注金額や、受注件数等に対しても適用可能であるし、物流業であれば物流の受注金額や、物流受注件数等に対しても適用可能である。
なお、ステップ1810では、複数のクレンジング処理及びその設定を変更しながら複数のクレンジング処理を並列して実行するものとして説明したが、まず各クレンジング処理について、設定を変更しながら精度評価を行って、各クレンジング処理の最適な設定を選択してから、その後、複数のクレンジング処理の組み合わせについて精度評価を行って、最適な組み合わせを決定することとしてもよい。
精度評価は、ホールドアウト法やクロスバリデーション法等により行うことができる。また、最適な設定(パラメータ)の探索は、ランダムに値を探索するランダムサーチや、確率的な予測を用いるベイズ最適化などで行うことができる。
実施例2では、複数のクレンジング処理を実施することが可能であり、売上予測モデル学習モジュール214が、売上データを解析することにより、売上データに適したクレンジング処理を選択して、クレンジングモジュール212にフィードバックした。
なお、このクレンジング処理の選択は、売上予測モデル学習モジュール214が実行したが、売上予測処理の結果や評価結果を可視化モジュール216が利用者端末102や管理者端末103に表示し、利用者や管理者がこれらの端末を介して選択を行うこともできる。また、売上データの対象企業の業種などに基づいて予め定められたルールベースで設定することもできる。また、データが蓄積してくると統計的分析を用いて選択を行うこともできる。