(57)【特許請求の範囲】
【請求項１】
時系列のトレーニングデータから、それぞれが互いに異なる複数の部分集合データを生成する部分集合生成部であって、前記複数の部分集合データのうちの少なくとも一つを、前記トレーニングデータから設定される母集団の標準偏差に基づいて該母集団の一部のデータを収集することで生成する、該部分集合生成部と、
前記複数の部分集合データのそれぞれに対して機械学習を実行することで、該複数の部分集合データに対応する複数のパターン関数を生成する関数生成部と、
前記複数のパターン関数のそれぞれを用いて、前記トレーニングデータ内の評価時点における予測値を求め、該評価時点での実測値と該予測値との誤差が最小である前記パターン関数に対応する学習期間を選択する選択部と
を備え、
前記部分集合生成部が、前記母集団における最新データを代表値として前記標準偏差を求める、
予測システム。
【請求項２】
前記部分集合生成部が、前記標準偏差に乗ずる係数を変化させながら、前記母集団から複数の前記部分集合データを生成する、
請求項１に記載の予測システム。
【請求項３】
前記部分集合生成部が、複数の前記母集団を設定し、各母集団から少なくとも一つの前記部分集合データを生成する、
請求項１または２に記載の予測システム。
【請求項４】
前記部分集合生成部が、前記選択部により選択された学習期間に対応する前記部分集合データから、それぞれが互いに異なる複数の新たな部分集合データを生成し、
前記関数生成部および前記選択部が、前記複数の新たな部分集合データに基づいて再度処理を実行する、
請求項１〜３のいずれか一項に記載の予測システム。
【請求項５】
前記選択部により選択された学習期間を用いて、将来の予測時点における予測値を求める予測部と、
前記予測部により得られた予測値と前記予測時点における実測値との誤差が所定の閾値未満か否かを判定する評価部と
をさらに備え、
前記予測時点における前記誤差が前記閾値以上である場合には、前記部分集合生成部、前記関数生成部、および前記選択部による処理が再度実行される、
請求項１〜４のいずれか一項に記載の予測システム。
【請求項６】
前記複数のパターン関数の生成、および前記評価時点における予測値の算出の少なくとも一方が並列処理される、
請求項１〜５のいずれか一項に記載の予測システム。
【請求項７】
前記機械学習がサポートベクターマシンである、
請求項１〜６のいずれか一項に記載の予測システム。
【請求項８】
プロセッサを備える予測システムにより実行される予測方法であって、
時系列のトレーニングデータから、それぞれが互いに異なる複数の部分集合データを生成する部分集合生成ステップであって、前記複数の部分集合データのうちの少なくとも一つを、前記トレーニングデータから設定される母集団の標準偏差に基づいて該母集団の一部のデータを収集することで生成する、該部分集合生成ステップと、
前記複数の部分集合データのそれぞれに対して機械学習を実行することで、該複数の部分集合データに対応する複数のパターン関数を生成する関数生成ステップと、
前記複数のパターン関数のそれぞれを用いて、前記トレーニングデータ内の評価時点における予測値を求め、該評価時点での実測値と前記予測値との誤差が最小である前記パターン関数に対応する学習期間を選択する選択ステップと
を含み、
前記部分集合生成ステップでは、前記母集団における最新データを代表値として前記標準偏差を求める、
予測方法。
【請求項９】
時系列のトレーニングデータから、それぞれが互いに異なる複数の部分集合データを生成する部分集合生成部であって、前記複数の部分集合データのうちの少なくとも一つを、前記トレーニングデータから設定される母集団の標準偏差に基づいて該母集団の一部のデータを収集することで生成する、該部分集合生成部と、
前記複数の部分集合データのそれぞれに対して機械学習を実行することで、該複数の部分集合データに対応する複数のパターン関数を生成する関数生成部と、
前記複数のパターン関数のそれぞれを用いて、前記トレーニングデータ内の評価時点における予測値を求め、該評価時点での実測値と前記予測値との誤差が最小である前記パターン関数に対応する学習期間を選択する選択部と
してコンピュータを機能させ、
前記部分集合生成部が、前記母集団における最新データを代表値として前記標準偏差を求める、
予測プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の一側面は、機械学習を用いる予測システム、予測方法、および予測プログラムに関する。
【背景技術】
【０００２】
従来から、サポートベクターマシンなどの機械学習を用いた将来予測が知られている。例えば下記特許文献１には、指数平滑法およびカーネルを用いた季節的時系列データの動的モデリングを使用して非線形的な時系列を予測する方法が記載されている。カーネルは、ガウスカーネルを使用した最小二乗放射基底関数回帰やサポートベクトル回帰のような非線形関数を使用して、過去の値から時系列の未来の値を予測する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１１−１５９２８２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
個々の事案（データ系列）毎に学習期間（学習量）および学習データに適切な値があること、すなわち、機械学習の精度が最も良くなる学習期間および学習データが存在することは知られている。しかし、その作業は手作業（例えば、経験的に、または試行錯誤による決定）なので、ある事案についての適切な学習期間および学習データを決めるのに時間が掛かってしまう。そこで、機械学習による予測の精度を一定のレベル以上に保ちながら学習期間および学習データを簡便に特定することが望まれている。
【課題を解決するための手段】
【０００５】
本発明の一側面に係る予測システムは、時系列のトレーニングデータから、それぞれが互いに異なる複数の部分集合データを生成する部分集合生成部であって、複数の部分集合データのうちの少なくとも一つを、トレーニングデータから設定される母集団の標準偏差に基づいて該母集団の一部のデータを収集することで生成する、該部分集合生成部と、複数の部分集合データのそれぞれに対して機械学習を実行することで、該複数の部分集合データに対応する複数のパターン関数を生成する関数生成部と、複数のパターン関数のそれぞれを用いて、トレーニングデータ内の評価時点における予測値を求め、該評価時点での実測値と該予測値との誤差が最小であるパターン関数に対応する学習期間を選択する選択部とを備える。
【０００６】
本発明の一側面に係る予測方法は、プロセッサを備える予測システムにより実行される予測方法であって、時系列のトレーニングデータから、それぞれが互いに異なる複数の部分集合データを生成する部分集合生成ステップであって、複数の部分集合データのうちの少なくとも一つを、トレーニングデータから設定される母集団の標準偏差に基づいて該母集団の一部のデータを収集することで生成する、該部分集合生成ステップと、複数の部分集合データのそれぞれに対して機械学習を実行することで、該複数の部分集合データに対応する複数のパターン関数を生成する関数生成ステップと、複数のパターン関数のそれぞれを用いて、トレーニングデータ内の評価時点における予測値を求め、該評価時点での実測値と予測値との誤差が最小であるパターン関数に対応する学習期間を選択する選択ステップとを含む。
【０００７】
本発明の一側面に係る予測プログラムは、時系列のトレーニングデータから、それぞれが互いに異なる複数の部分集合データを生成する部分集合生成部であって、複数の部分集合データのうちの少なくとも一つを、トレーニングデータから設定される母集団の標準偏差に基づいて該母集団の一部のデータを収集することで生成する、該部分集合生成部と、複数の部分集合データのそれぞれに対して機械学習を実行することで、該複数の部分集合データに対応する複数のパターン関数を生成する関数生成部と、複数のパターン関数のそれぞれを用いて、トレーニングデータ内の評価時点における予測値を求め、該評価時点での実測値と予測値との誤差が最小であるパターン関数に対応する学習期間を選択する選択部としてコンピュータを機能させる。
【０００８】
このような側面においては、互いに異なる部分集合データを自動的に生成して複数のパターン関数も自動的に生成し、トレーニングデータを用いてそれらのパターン関数の精度を検証することで、最適であると期待できる学習期間および学習データを簡便に特定することができる。
【発明の効果】
【０００９】
本発明の一側面によれば、機械学習による予測の精度を一定のレベル以上に保ちながら適切な学習期間および学習データを簡便に特定することができる。
【図面の簡単な説明】
【００１０】
【図１】実施形態に係る予測システムを構成するコンピュータのハードウェア構成を示す図である。
【図２】実施形態に係る予測システムの機能構成を示すブロック図である。
【図３】部分集合データの概念を説明する図である。
【図４】近傍データ収集法の概念を示す図である。
【図５】近傍データ収集法を用いて設定されるウィンドウ（部分集合データ）の例を示す図である。
【図６】実施形態に係る予測システムの動作を示すフローチャートである。
【図７】実施形態に係る予測システムの動作を示すフローチャートである。
【図８】実施形態に係る予測プログラムの構成を示す図である。
【図９】実施例の結果を示すグラフである。
【発明を実施するための形態】
【００１１】
以下、添付図面を参照しながら本発明の実施形態を詳細に説明する。なお、図面の説明において同一又は同等の要素には同一の符号を付し、重複する説明を省略する。
【００１２】
まず、図１〜３を用いて、実施形態に係る予測システム１０の機能および構成を説明する。図２に示す予測システム１０は、機械学習により未知の値を予測するコンピュータシステムである。
【００１３】
機械学習とは、既知の値の集合であるトレーニングデータを学習することでパターン関数を生成し、そのパターン関数を用いて未知の値を予測する処理である。本実施形態では、過去の時系列データであるトレーニングデータ（本明細書ではこれを「時系列のトレーニングデータ」と呼ぶ）を用い、そのトレーニングデータから得られたパターン関数を用いて将来の時点における値を予測する。なお、時系列データとは、ある現象の時間的な変化を連続的に、またはある規則に基づいて得られた値の系列である。機械学習の例として、人工ニューラルネットワーク（ＡＮＮ）、サポートベクターマシン（ＳＶＭ）、あるいはそのＳＶＭを回帰に対応させたサポートベクター回帰（ＳＶＲ）、決定木学習，相関ルール学習，ベイジアンネットワークなどが挙げられるが、予測システム１０はこれ以外のアルゴリズムを用いてもよい。
【００１４】
予測システム１０が予測する対象は限定されない。例えば、予測システム１０は気温や湿度などの気象（あるいは微気象）を予測してもよいし、他の自然現象または社会現象を予測してもよい。
【００１５】
予測システム１０は１台以上のコンピュータを備え、複数台のコンピュータを備える場合には、後述する予測システム１０の各機能要素は分散処理により実現される。個々のコンピュータの種類は限定されない。例えば、据置型または携帯型のパーソナルコンピュータ（ＰＣ）を用いてもよいし、ワークステーションを用いてもよいし、高機能携帯電話機（スマートフォン）や携帯電話機、携帯情報端末（ＰＤＡ）などの携帯端末を用いてもよい。あるいは、様々な種類のコンピュータを組み合わせて予測システム１０を構築してもよい。複数台のコンピュータを用いる場合には、これらのコンピュータはインターネットやイントラネットなどの通信ネットワークを介して接続される。
【００１６】
予測システム１０内の個々のコンピュータ１００の一般的なハードウェア構成を図１に示す。コンピュータ１００は、オペレーティングシステムやアプリケーション・プログラムなどを実行するＣＰＵ（プロセッサ）１０１と、ＲＯＭ及びＲＡＭで構成される主記憶部１０２と、ハードディスクやフラッシュメモリなどで構成される補助記憶部１０３と、ネットワークカードあるいは無線通信モジュールで構成される通信制御部１０４と、キーボードやマウスなどの入力装置１０５と、ディスプレイやプリンタなどの出力装置１０６とを備える。当然ながら、搭載されるハードウェアモジュールはコンピュータ１００の種類により異なる。例えば、据置型のＰＣおよびワークステーションは入力装置および出力装置としてキーボード、マウス、およびモニタを備えることが多いが、スマートフォンではタッチパネルが入力装置および出力装置として機能することが多い。
【００１７】
後述する予測システム１０の各機能要素は、ＣＰＵ１０１または主記憶部１０２の上に所定のソフトウェアを読み込ませ、ＣＰＵ１０１の制御の下で通信制御部１０４や入力装置１０５、出力装置１０６などを動作させ、主記憶部１０２または補助記憶部１０３におけるデータの読み出し及び書き込みを行うことで実現される。処理に必要なデータやデータベースは主記憶部１０２または補助記憶部１０３内に格納される。
【００１８】
図２に示すように、予測システム１０は機能的構成要素として受付部１１、部分集合生成部１２、関数生成部１３、選択部１４、予測部１５、および評価部１６を備える。
【００１９】
受付部１１は、時系列のトレーニングデータを受け付ける機能要素である。受付部１１はデータベース２０にアクセスしてトレーニングデータを読み出し、そのトレーニングデータを部分集合生成部１２に出力する。ここで、データベース２０はトレーニングデータを記憶する装置または機能要素であり、この実装方法は限定されない。例えば、データベース２０は予測システム１０内にあってもよいし、予測システム１０とは別のシステム内に存在してもよい。また、データベース２０は関係データベースでもよいしＣＳＶファイルでもよい。
【００２０】
部分集合生成部１２は、トレーニングデータから複数の部分集合データを生成する機能要素である。この部分集合データは、機械学習における学習期間（すなわち、ウィンドウ）を示す役割も持つ。本明細書では説明に応じて「部分集合データ」「学習期間」および「ウィンドウ」という用語を使い分けるかまたは併記するが、本明細書において、これら三つの用語の技術的な意味は同じである。例えば、「部分集合データ」は、コンピュータが処理するデータの観点から見た言葉であり、「学習期間」および「ウィンドウ」は、その部分集合データにより示される時間軸上の範囲であるということができる。なお、一つの部分集合データで示される学習期間またはウィンドウを時間軸上で見ると、後述する図５の例で示されるように、その学習期間またはウィンドウは複数の区間の集合で表され得る。生成される部分集合データの個数は２以上であれば何個でもよい。ただし、複数の部分集合データは互いに異なる必要があり、これは、複数の学習期間（ウィンドウ）が互いに異なることを意味する。部分集合生成部１２は生成した部分集合データを関数生成部１３に出力する。
【００２１】
図３を参照しながら部分集合生成部１２の処理を説明する。図３に示すトレーニングデータは、１０：００から１４：３０までの間に３０分間隔で測定した１０個の実績値ａ１〜ａ１０の集合である。最終的には、このトレーニングデータから、将来の予測値（例えば１５：００時点の予測値）を求めるためのパターン関数（詳細は後述する）およびその関数に対応する学習期間（ウィンドウ）が決定される。図３の例では、部分集合生成部１２はそのトレーニングデータから部分集合データ（学習期間）ｗ１，ｗ２，…，ｗｎを生成する。複数の部分集合データを生成する際に、部分集合生成部１２は、どの部分集合データ（学習期間）にも含まれず、かつそれらの学習期間よりも後の時点におけるデータを一つ以上残す。この残したデータは、後述する選択部１４においてパターン関数を評価する際に用いられる。図３の例では、１４：００および１４：３０における実績値ａ２，ａ１が残すデータに相当する。
【００２２】
個々の部分集合データを生成する際に設定するウィンドウの位置および長さは限定されない。例えば、部分集合生成部１２は、ウィンドウの位置が互いに異なるという条件下で、サイズが同じウィンドウを複数個設定してもよい。例えば、図３のトレーニングデータに対して、部分集合生成部１２は１２：３０〜１３：３０の範囲のウィンドウと、１２：００〜１３：００のウィンドウとを生成してもよい。
【００２３】
図３では、トレーニングデータのサイズおよびデータ測定期間の双方が非常に限定された例を示したが、一般にトレーニングデータは大量なので、個々の部分集合データも大きくなり得る。例えば、部分集合生成部１２は１年間分のトレーニングデータから季節毎（春、夏、秋、冬）の部分集合データや月毎（１〜１２月）の部分集合データなどを生成し得る。
【００２４】
部分集合生成部１２は、近傍データ収集法（ＳＤＣ：Ｓｈｏｒｔ−ｄｉｓｔａｎｃｅ  ｄａｔａ  ｃｏｌｌｅｃｔｉｏｎ  ｍｅｔｈｏｄ）を用いて動的にウィンドウ（学習期間。部分集合データ。）を決定してもよい。ＳＤＣは、母集団のうちの代表値Ｇを中心とし、その中心からの最大距離をｒとする範囲内に存在するデータを該母集団から収集するアルゴリズムである。図４はＳＤＣの概念を説明するための図であり、２次元座標上に散らばる母集団からＳＤＣによりデータを収集する概念を示す。図４における点群は個々のデータ（実績値）を示し、符号Ｇは代表値として選択された一つのデータ（実績値）を示す。図４において、データを収集する範囲は、中心Ｇと半径ｒとで規定される円である。値ｒは下記式（１）で定義される。
【数１】
0006494258.tif 000002
ここで、Ｎは母集団のデータの個数を示し、Ｓｉは個々のデータを示し、Ｇは代表値を示す。
【００２５】
本実施形態では、代表値Ｇは、母集団における最新データ（時系列に沿って見た場合にいちばん新しいデータ）であるとするが、代表値Ｇは他のデータであってもよい。例えば、代表値Ｇは最新データの次に新しいデータであってもよいし、母集団における統計値（平均値や中央値など）であってもよい。
【００２６】
式（１）は、値ｒが、ユークリッド距離を用いて得られる、代表値Ｇとそれ以外の各データとの標準偏差であることを表す。母集団が正規分布で表されるのであれば、代表値Ｇを中心とし、その中心からの最大距離をｒとする範囲内に存在するのは、母集団のうち最新データに近い約２／３のデータであり、このデータがウィンドウ内に含まれるので、約１／３のデータを削減することができる。そのため、機械学習の計算量をＯ（ｎ２）とし、母集団のすべてが利用された場合を１とすると、ＳＤＣを用いることで、モデル構築に要する時間を１−（２／３）２＝５／９に削減できる。
【００２７】
なお、図４では２次元座標を示しているが、トレーニングデータの次元は２次元には限定されず、１次元でもよいし、３次元でもよいし、４次元以上でもよい。トレーニングデータが２次元であれば、代表値Ｇを中心とする範囲は半径ｒの円で示され、トレーニングデータが３次元であれば、その範囲は半径ｒの球で示される。
【００２８】
時系列のトレーニングデータを予測する場合には、大量のデータを学習させるよりも、最新のデータと類似データのみを用いて学習させる方が予測精度が高まると期待される。例えば、夏のデータを予測する際にそれ以外の季節（例えば冬）のデータはノイズとなり得るので、夏のデータに近いデータのみを機械学習に用いる方が予測精度が高まると考えられる。
【００２９】
ＳＤＣを用いて一つのウィンドウ（学習期間。部分集合データ。）を決める場合、部分集合生成部１２はまず、トレーニングデータの全体から母集団を決定する。この母集団は、時間軸に沿ってみた場合に途切れることなく連続して存在するデータの集合である。母集団はトレーニングデータの全体でもよいし、トレーニングデータの一部でもよい。例えば、トレーニングデータが過去５年分の毎日の気温の履歴であれば、部分集合生成部１２はその５年分のデータを母集団として設定してもよいし、直近３年分のデータを母集団として設定してもよいし、４年前から１年前までの範囲のデータを母集団として設定してもよい。続いて、部分集合生成部１２は上記式（１）を計算して距離ｒを決定し、母集団内の代表値Ｇから距離ｒの範囲内に存在するデータを選択する。そして、部分集合生成部１２は、時間軸上において、選択されたデータが存在する範囲の集合を一つのウィンドウとして設定する。
【００３０】
ＳＤＣを用いて複数のウィンドウを得る方法は限定されない。例えば、部分集合生成部１２は母集団を変えることなく、距離ｒを変えながら個々の距離ｒ毎にデータを選択することで、複数のウィンドウを設定してもよい。例えば、式（１）で得られた値をｒ０として、距離ｒをｒ０×１．０，ｒ０×０．８、ｒ０×０．６、ｒ０×０．５、ｒ０×１．１、ｒ０×１．２などと変化させながら、それぞれのｒについてウィンドウを設定してもよい。様々な距離ｒを得るために、母集団の標準偏差に相当する値ｒ０に乗ずる係数は、１以上でもよいし１未満でもよい。値ｒ０に係数を乗ずる処理は重み付けの一種である。
【００３１】
あるいは、部分集合生成部１２は距離ｒを変えることなく、母集団を変えながら個々の母集団毎にデータを選択することで、複数のウィンドウを設定してもよい。例えば、母集団をトレーニングデータの全体、トレーニングデータの８０％分、トレーニングデータの６０％分などと変化させながら、それぞれの母集団についてウィンドウを設定してもよい。
【００３２】
あるいは、部分集合生成部１２は、母集団および距離ｒの双方を変えながら複数のウィンドウを設定してもよい。例えば、４種類の母集団を用意し、各母集団に対して５種類の距離ｒを用いることで、２０個のウィンドウが得られる。
【００３３】
部分集合生成部１２は、ＳＤＣを用いて１以上のウィンドウを設定すると共に、ＳＤＣ以外の手法を用いて１以上のウィンドウを設定することで、複数のウィンドウを設定してもよい。例えば、夏のデータを示す複数のウィンドウを得るために、部分集合生成部１２はＳＤＣを用いて少なくとも一つのウィンドウを動的に得ると共に、各年の７月１日〜８月３１日の間のデータを更なるウィンドウ（期間が動的にではなく予め指定されたウィンドウ）として設定してもよい。
【００３４】
図５は、ＳＤＣを用いて設定されるウィンドウ（部分集合データ）の例を示す図である。この図に示すトレーニングデータは、２０１１年１月１日から２０１４年１２月３１日にかけて毎日収集された実績値の集合である。例（ａ）〜（ｃ）における値ｒ０は、式（１）で得られる値であり、この値ｒ０に係数を乗ずることで距離ｒを変えている。各例においてウィンドウを決める母集団は、トレーニングデータの全体であるとする。例（ａ）では、距離ｒ＝ｒ０×１．０で定義される範囲内に存在するデータの集合がウィンドウ（部分集合データ）ｗ１１として設定されている。例（ｂ）では、距離ｒ＝ｒ０×０．８で定義される範囲内に存在するデータの集合がウィンドウ（部分集合データ）ｗ１２として設定されている。例（ｃ）では、距離ｒ＝ｒ０×０．６で定義される範囲内に存在するデータの集合がウィンドウ（部分集合データ）ｗ１３として設定されている。このように、距離ｒが小さくなるほど、ウィンドウは小さくなる。
【００３５】
このように、それぞれが互いに異なる複数の部分集合データを生成するのであれば、ウィンドウの設定方法は何ら限定されない。部分集合生成部１２は個々の部分集合データをユーザ入力に従って生成してもよいし、自動的に生成してもよい。
【００３６】
関数生成部１３は、各部分集合データに対して機械学習を実行することで、複数の部分集合データに対応する複数のパターン関数を生成する機能要素である。関数生成部１３は生成した複数のパターン関数を選択部１４に出力する。
【００３７】
上述した通り機械学習の具体的な手法は限定されないが、本実施形態では関数生成部１３はサポートベクター回帰を用いる。一つの部分集合データに対して、関数生成部１３は、線形の関係としてパターンを発見可能な空間にその部分集合データを変換することで（カーネル関数）、線形の関係としてパターンを発見する（パターン解析アルゴリズム）。より具体的に説明すると、関数生成部１３は、その部分集合データをカーネル関数によりカーネル行列に変換し、そのカーネル行列にパターン解析アルゴリズムを適用することでパターン関数を生成する。このパターン関数を用いることで、将来の時系列データを予測することが可能となる。関数生成部１３は入力された部分集合データのそれぞれについてその処理を実行することで、複数のパターン関数を生成する。例えば、三つの部分集合データＤａ，Ｄｂ，Ｄｃが入力された場合には、関数生成部１３は部分集合データＤａからパターン関数Ｆａを生成し、部分集合データＤｂからパターン関数Ｆｂを生成し、部分集合データＤｃからパターン関数Ｆｃを生成する。
【００３８】
選択部１４は、入力された複数のパターン関数の中で最も精度が高いパターン関数を特定し、そのパターン関数に対応する学習期間を将来の予測のために選択する機能要素である。ここで、パターン関数に対応する学習期間を選択するということは、そのパターン関数そのものも併せて選択することを意味する。選択部１４は選択したパターン関数および学習期間を予測部１５に出力する。
【００３９】
まず、選択部１４は受付部１１が受け付けたトレーニングデータで示される時点における複数の予測値を求める。選択部１４における処理で予測値を求める時点では既に実績値が得られており、その予測値はパターン関数および学習期間を選択するために用いられるに過ぎない。したがって、本明細書では、上述した複数の予測値を求める処理において設定される時点を「評価時点」と呼ぶ。上述したように、評価時点は、部分集合生成部１２で生成された複数の部分集合データで示される複数の学習期間のいずれよりも後の時点である。図３の例では、時刻１４：００および１４：３０が評価時点になり得る。
【００４０】
選択部１４は１以上の評価時点を設定する。続いて、選択部１４は各評価時点において、複数のパターン関数を用いて該評価時点における複数の予測値を求める。また、選択部１４は受付部１１が受け付けたトレーニングデータから各評価時点の実測値を取得する。
【００４１】
続いて、選択部１４は算出した予測値と実測値との誤差を求める。そして、選択部１４はその誤差が最小であるパターン関数と、該パターン関数に対応する学習期間とを選択する。誤差の計算方法は限定されず、例えば二乗平均平方根誤差（ＲＭＳＥ）または二乗平均誤差（ＭＳＥ）を用いてもよい。もし評価時点が一つだけであれば、単純な減算で得られる差を用いてもよい。評価時点は一つでも良いが、複数の評価時点を設定することで誤差の精度を上げることができる。
【００４２】
例えば、パターン関数Ｆａ，Ｆｂ，Ｆｃが入力され、評価時点としてＥＴ１，ＥＴ２が存在すると仮定する。この場合には、選択部１４はパターン関数Ｆａから評価時点ＥＴ１における予測値Ｖａ１と評価時点ＥＴ２における予測値Ｖａ２とを求める。さらに、選択部１４はパターン関数Ｆｂから評価時点ＥＴ１，ＥＴ２における予測値Ｖｂ１，Ｖｂ２を求め、パターン関数Ｆｃから評価時点ＥＴ１，ＥＴ２における予測値Ｖｃ１，Ｖｃ２を求める。続いて、選択部１４は評価時点ＥＴ１，ＥＴ２における実績値ＶＲ１，ＶＲ２をトレーニングデータから読み出す。そして、選択部１４は、パターン関数Ｆａによる予測値（Ｖａ１，Ｖａ２）および実績値（ＶＲ１，ＶＲ２）から得られる誤差と、パターン関数Ｆｂによる予測値（Ｖｂ１，Ｖｂ２）および実績値（ＶＲ１，ＶＲ２）から得られる誤差と、パターン関数Ｆｃによる予測値（Ｖｃ１，Ｖｃ２）および実績値（ＶＲ１，ＶＲ２）から得られる誤差とを求める。そして、選択部１４は誤差が最小のパターン関数と、該パターン関数に対応する学習期間とを選択する。
【００４３】
予測部１５は、選択されたパターン関数および学習期間を用いて将来の時点における予測値を求める機能要素である。予測部１５は求めた予測値をモニタやメモリ、データベース、プリンタなどの装置に出力する。ここで得られる予測値がどの程度正確であるかは、その時点になるまで分からない。予測部１５は求めた予測値を事後評価のために評価部１６に出力する。次の新たなパターン関数および学習期間が入力された場合には、予測部１５はその新たな入力に基づいて予測値を求める。
【００４４】
評価部１６は、予測部１５で得られた予測値が実際にどの程度正確だったかを判定する機能要素である。評価部１６は、予測部１５が予測した時点の実測値をデータベース２０から読み出し、入力された予測値とその実測値との誤差を求め、その誤差が所定の閾値未満であるか否かを判定する。この判定処理のために、評価部１６はその閾値を予め保持している。
【００４５】
誤差が閾値以上であるということは、予測部１５が現在使っているパターン関数の精度が良くないことを意味する。したがって、この場合には、評価部１６は新たなパターン関数および学習期間を決めるための指示を受付部１１に出力する。一方、誤差が閾値未満であるということは、現在のパターン関数の精度が良いことを意味する。したがって、この場合には、評価部１６はその指示を出力することなく処理を終了する。
【００４６】
次に、図６，７を用いて、予測システム１０の動作を説明するとともに本実施形態に係る予測方法について説明する。
【００４７】
基本的な処理手順を図６に示す。まず、受付部１１がトレーニングデータの入力を受け付け（ステップＳ１１）、部分集合生成部１２がそのトレーニングデータから複数の部分集合データを生成する（ステップＳ１２、部分集合生成ステップ）。続いて、関数生成部１３が各部分集合データに対してサポートベクター回帰による学習処理を実行することで複数のパターン関数を生成する（ステップＳ１３、関数生成ステップ）。続いて、選択部１４が各パターン関数を用いて評価時点での予測値を求め、実測値との誤差が最小のパターン関数に対応する学習期間を選択する（ステップＳ１４、選択ステップ）。パターン関数の生成、または評価時点での予測値の計算は、並列処理でも直列処理でもよく、または並列処理と直列処理を混在させてもよい。
【００４８】
続いて、予測部１５が選択結果に基づいて（選択されたパターン関数および学習期間を用いて）、将来の予測時点における予測値を求める（ステップＳ１５）。続いて、評価部１６がその予測値を検証する。すなわち、予測値とその時点における実測値との誤差が閾値未満であれば（ステップＳ１６；ＹＥＳ）、予測部１５は現在のパターン関数および学習期間を用いて将来の別の時点での予測値を求めることができる。
【００４９】
一方、予測値と実測値との誤差が閾値以上である場合には（ステップＳ１６；ＮＯ）、ステップＳ１１以降の処理が再度実行される。この場合、データベース２０は、受付部１１がトレーニングデータを前回取得した時以降に追加された実測値を記憶しているので、予測システム１０はその新たな実測値を含む最新のトレーニングデータをデータベース２０から取得して新たなパターン関数を得ることができる。
【００５０】
予測システム１０は、上記ステップＳ１２〜Ｓ１４の処理を複数回繰り返して部分集合データを段階的に絞り込みながらパターン関数を選んでいってもよい。図７を参照しながらその処理を説明する。
【００５１】
まず、受付部１１がトレーニングデータの入力を受け付け（ステップＳ２１）、部分集合生成部１２がそのトレーニングデータから複数の第１次部分集合データを生成する（ステップＳ２２、部分集合生成ステップ）。続いて、関数生成部１３が各第１次部分集合データに対してサポートベクター回帰による学習処理を実行することで複数のパターン関数を生成する（ステップＳ２３、関数生成ステップ）。続いて、選択部１４が各パターン関数を用いて特定の予測時点での予測値を求め、実測値との誤差が最小のパターン関数に対応する学習期間を選択する（ステップＳ２４、選択ステップ）。ここまでの処理は上記ステップＳ１１〜Ｓ１４と同様である。
【００５２】
続いて、部分集合生成部１２が、上記のステップＳ２４において選択された学習期間に対応する第１次部分集合データから複数の第２次部分集合データを生成する（ステップＳ２５）。例えば、第１次部分集合データが１０日分の時系列データである場合には、部分集合生成部１２は１０個の１日分の時系列データを第２次部分集合データとして生成する。続いて、関数生成部１３が各第２次部分集合データに対してサポートベクター回帰による学習処理を実行することで複数のパターン関数を生成する（ステップＳ２６）。続いて、選択部１４が各パターン関数を用いて特定の予測時点での予測値を求め、実測値との誤差が最小のパターン関数に対応する学習期間を選択する（ステップＳ２７）。
【００５３】
第１次部分集合データは時系列のトレーニングデータの一部であると言える。したがって、ステップＳ２５，Ｓ２６，Ｓ２７もそれぞれ、部分集合生成ステップ、関数生成ステップ、および選択ステップであると言える。
【００５４】
部分集合データを絞り込む場合も、パターン関数の生成、または評価時点での予測値の計算は、並列処理でも直接処理でもよい。
【００５５】
続いて、予測部１５が選択結果に基づいて（選択されたパターン関数および学習期間を用いて）、将来の予測時点における予測値を求める（ステップＳ２８）。続いて、評価部１６がその予測値を検証する。すなわち、予測値とその時点における実測値との誤差が閾値未満であれば（ステップＳ２９；ＹＥＳ）、予測部１５は現在のパターン関数を用いて将来の別の時点での予測値を求めることができる。一方、予測値と実測値との誤差が閾値以上である場合には（ステップＳ２９；ＮＯ）、ステップＳ２１以降の処理が再度実行される。
【００５６】
なお、図７の例では部分集合データの絞り込みは一度だけであったが、その処理は２回以上繰り返してもよい。すなわち、部分集合生成ステップ、関数生成ステップ、および選択ステップは何回繰り返してもよい。
【００５７】
次に、図８を用いて、予測システム１０を実現するための予測プログラムＰ１を説明する。
【００５８】
予測プログラムＰ１は、メインモジュールＰ１０、受付モジュールＰ１１、部分集合生成モジュールＰ１２、関数生成モジュールＰ１３、選択モジュールＰ１４、予測モジュールＰ１５、および評価モジュールＰ１６を備えている。
【００５９】
メインモジュールＰ１０は、機械学習による予測機能を統括的に制御する部分である。受付モジュールＰ１１、部分集合生成モジュールＰ１２、関数生成モジュールＰ１３、選択モジュールＰ１４、予測モジュールＰ１５、および評価モジュールＰ１６を実行することにより実現される機能はそれぞれ、上記の受付部１１、部分集合生成部１２、関数生成部１３、選択部１４、予測部１５、および評価部１６の機能と同様である。
【００６０】
予測プログラムＰ１は、例えば、ＣＤ−ＲＯＭやＤＶＤ−ＲＯＭ、半導体メモリなどの有形の記録媒体に固定的に記録された上で提供されてもよい。また、予測プログラムＰ１は、搬送波に重畳されたデータ信号として通信ネットワークを介して提供されてもよい。
【実施例】
【００６１】
以下、実施例に基づいて本発明を具体的に説明するが、本発明はそれらに何ら限定されるものではない。
【００６２】
単純なＳＶＲと、ＳＤＣを用いないＳＷ−ＳＶＲと、ＳＤＣを用いたＳＷ−ＳＶＲ（以下ではこれを「ＳＷ−ＳＶＲ（ＳＤＣ）」という）との予測精度を比較した。ここで、ＳＷ−ＳＶＲは、「Ｓｌｉｄｉｎｇ  Ｗｉｎｄｏｗ−ｂａｓｅｄ  Ｓｕｐｐｏｒｔ  Ｖｅｃｔｏｒ  Ｒｅｇｒｅｓｓｉｏｎ」の略であり、サポートベクター回帰において学習期間を自動調整する手法のことである。
【００６３】
実験には、１台のサーバと１台のクライアント端末とが通信ネットワークで接続されたコンピュータシステムを用いた。サポートベクター回帰のモデル構築および予測はサーバに実行させ、データ分割およびＳＤＣはクライアントＰＣに実行させた。サポートベクター回帰のパラメータは以下のように設定した。
・カーネル関数：Ｒａｄｉａｌ  Ｂａｓｉｓ  Ｆｕｎｃｔｉｏｎ（ＲＢＦ）
・コスト・パラメータ（Ｃ）：１．０
・ハイパー・パラメータ（γ）：０．１２５
・チューブ・パラメータ（ε）：０．１
・ウィンドウ・サイズ：８
・再構築閾値：１．０
ここで、ウィンドウ・サイズと再構築閾値以外のパラメータは、３種類の手法に共通である。ウィンドウ・サイズは、ＳＤＣを用いないＳＷ−ＳＶＲのみに関係するパラメータであり、学習データの分割数を示す。再構築閾値は、ＳＷ−ＳＶＲとＳＷ−ＳＶＲ（ＳＤＣ）とに用いられるパラメータである。ＳＷ−ＳＶＲ（ＳＤＣ）において、距離ｒに対する重み付けは行わなかった。
【００６４】
トレーニングデータとして、気象庁の提供する、静岡県浜松市のアメダスのオープンデータを用いた。そのデータは、２０１１年１月１日から２０１３年１２月３１日までの３年間において１０分毎に測定された、気温、相対湿度、気圧、平均風速、最大風速、および日照時間であり、これら６項目は説明変数に相当する。予測対象（目的変数）は１時間後の気温とし、季節毎にその気温（目的変数）を求めるようにした。各季節のトレーニングデータの期間と評価期間（予測対象の期間）とは次の通りである。
・春：トレーニングデータの期間は２０１１年１月１日〜２０１３年３月３１日であり、評価期間は２０１３年４月１日〜２０１３年５月１日であった。
・夏：トレーニングデータの期間は２０１１年１月１日〜２０１３年６月３０日であり、評価期間は２０１３年７月１日〜２０１３年８月１日であった。
・秋：トレーニングデータの期間は２０１１年１月１日〜２０１３年９月３０日であり、評価期間は２０１３年１０月１日〜２０１３年１１月１日であった。
・冬：トレーニングデータの期間は２０１１年１月１日〜２０１３年１２月３１日であり、評価期間は２０１４年１月１日〜２０１４年２月１日であった。
【００６５】
各季節のトレーニングデータについて、１０００〜１０００００件の範囲でデータ量（母集団）を変化させた場合の３種類の機械学習の予測誤差を評価した。予測誤差の指標として二乗平均平方根誤差（ＲＭＳＥ）を用いた。この評価結果を図９に示す。図９に示すグラフ（ａ），（ｂ），（ｃ），（ｄ）はそれぞれ、春、夏、秋、冬の評価結果を示す。各グラフの横軸はデータ量（母集団）であり、縦軸はＲＭＳＥ（℃）である。これらのグラフは、ＳＷ−ＳＶＲ（ＳＤＣ）の予測誤差が他の２種類の手法に比べて小さいこと、および、ＳＷ−ＳＶＲ（ＳＤＣ）ではデータ量が少なくても高い予測精度が得られることを示している。ＳＷ−ＳＶＲ（ＳＤＣ）を用いることで、季節および学習データ量にかかわらず予測誤差を低減することができることがわかった。
【００６６】
以上説明したように、本発明の一側面に係る予測システムは、時系列のトレーニングデータから、それぞれが互いに異なる複数の部分集合データを生成する部分集合生成部であって、複数の部分集合データのうちの少なくとも一つを、トレーニングデータから設定される母集団の標準偏差に基づいて該母集団の一部のデータを収集することで生成する、該部分集合生成部と、複数の部分集合データのそれぞれに対して機械学習を実行することで、該複数の部分集合データに対応する複数のパターン関数を生成する関数生成部と、複数のパターン関数のそれぞれを用いて、トレーニングデータ内の評価時点における予測値を求め、該評価時点での実測値と該予測値との誤差が最小であるパターン関数に対応する学習期間を選択する選択部とを備える。
【００６７】
本発明の一側面に係る予測方法は、プロセッサを備える予測システムにより実行される予測方法であって、時系列のトレーニングデータから、それぞれが互いに異なる複数の部分集合データを生成する部分集合生成ステップであって、複数の部分集合データのうちの少なくとも一つを、トレーニングデータから設定される母集団の標準偏差に基づいて該母集団の一部のデータを収集することで生成する、該部分集合生成ステップと、複数の部分集合データのそれぞれに対して機械学習を実行することで、該複数の部分集合データに対応する複数のパターン関数を生成する関数生成ステップと、複数のパターン関数のそれぞれを用いて、トレーニングデータ内の評価時点における予測値を求め、該評価時点での実測値と予測値との誤差が最小であるパターン関数に対応する学習期間を選択する選択ステップとを含む。
【００６８】
本発明の一側面に係る予測プログラムは、時系列のトレーニングデータから、それぞれが互いに異なる複数の部分集合データを生成する部分集合生成部であって、複数の部分集合データのうちの少なくとも一つを、トレーニングデータから設定される母集団の標準偏差に基づいて該母集団の一部のデータを収集することで生成する、該部分集合生成部と、複数の部分集合データのそれぞれに対して機械学習を実行することで、該複数の部分集合データに対応する複数のパターン関数を生成する関数生成部と、複数のパターン関数のそれぞれを用いて、トレーニングデータ内の評価時点における予測値を求め、該評価時点での実測値と予測値との誤差が最小であるパターン関数に対応する学習期間を選択する選択部としてコンピュータを機能させる。
【００６９】
このような側面においては、互いに異なる部分集合データを自動的に生成して複数のパターン関数も自動的に生成し、トレーニングデータを用いてそれらのパターン関数の精度を検証することで、最適であると期待できる学習期間および学習データを簡便に特定することができる。
【００７０】
この処理は、学習期間（ウィンドウ）を自動調整するものであるともいえる。パターン関数の決定に影響する学習期間は長ければ良いとは限らないから、最適な学習期間を手作業で特定するのは困難である。本実施形態では最適と思われる学習期間を自動的に求めることができる。
【００７１】
また、近傍データ収集法を学習期間の自動調整に適用することで、予測しようとする値に類似するデータの集まりを動的に部分集合データとして得られるので、予測処理のタイミングに関係なく予測精度を上げることができる。近傍データ収集法は、トレーニングデータから設定される母集団の標準偏差に基づいて該母集団の一部のデータを収集する方法である。
【００７２】
他の側面に係る予測システムでは、部分集合生成部が、母集団における最新データを代表値として標準偏差を求めてもよい。トレーニングデータの母集団における最新データは予測しようとする値に最も近いことが期待できるので、その最新データを代表値として標準偏差を求めることで、予測しようとする値に類似するデータの集まりをより確実に収集することができる。
【００７３】
他の側面に係る予測システムでは、部分集合生成部が、標準偏差に乗ずる係数を変化させながら、母集団から複数の部分集合データを生成してもよい。このように係数を変化させることで一つの母集団から複数の部分集合データを得ることができる。
【００７４】
他の側面に係る予測システムでは、部分集合生成部が、複数の母集団を設定し、各母集団から少なくとも一つの部分集合データを生成してもよい。複数の母集団を設定することで、部分集合データのバリエーションを増やすことができる。
【００７５】
他の側面に係る予測システムでは、部分集合生成部が、選択部により選択された学習期間に対応する部分集合データから、それぞれが互いに異なる複数の新たな部分集合データを生成し、関数生成部および選択部が、複数の新たな部分集合データに基づいて再度処理を実行してもよい。このように学習期間を絞り込むことで、パターン関数の精度の向上が期待できる。
【００７６】
他の側面に係る予測システムでは、選択部により選択された学習期間を用いて、将来の予測時点における予測値を求める予測部と、予測部により得られた予測値と予測時点における実測値との誤差が所定の閾値未満か否かを判定する評価部とをさらに備え、予測時点における誤差が閾値以上である場合には、部分集合生成部、関数生成部、および選択部による処理が再度実行されてもよい。この場合には、実際の予測処理を進めながら動的に学習期間を再設定することができる。
【００７７】
他の側面に係る予測システムでは、複数のパターン関数の生成、および評価時点における予測値の算出の少なくとも一方が並列処理されてもよい。並列処理をすることで、最適と思われる学習期間をより早く特定することができる。
【００７８】
他の側面に係る予測システムでは、機械学習がサポートベクターマシンであってもよい。
【００７９】
以上、本発明をその実施形態に基づいて詳細に説明した。しかし、本発明は上記実施形態に限定されるものではない。本発明は、その要旨を逸脱しない範囲で様々な変形が可能である。
【００８０】
上記実施形態では、ＳＤＣを用いたまたは用いないＳＷ−ＳＶＲを示したが、上述したように、機械学習の具体的な手法はサポートベクター回帰に限定されない。したがって、近傍データ収集法と共に用いられる機械学習は、人工ニューラルネットワーク（ＡＮＮ）、サポートベクターマシン（ＳＶＭ）、決定木学習，相関ルール学習，ベイジアンネットワークなどの他のアルゴリズムでもよい。
【００８１】
予測部１５および評価部１６は予測システム１０とは別のシステムにあってもよく、この場合には、選択部１４は選択したパターン関数および学習期間をその別システムに送信する。評価部１６は省略可能であり、この場合には、予測部１５は明示の指示があるまで選択されたパターン関数を使用し続ける。
【符号の説明】
【００８２】
１０…予測システム、１１…受付部、１２…部分集合生成部、１３…関数生成部、１４…選択部、１５…予測部、１６…評価部、２０…データベース、Ｐ１…予測プログラム、Ｐ１０…メインモジュール、Ｐ１１…受付モジュール、Ｐ１２…部分集合生成モジュール、Ｐ１３…関数生成モジュール、Ｐ１４…選択モジュール、Ｐ１５…予測モジュール、Ｐ１６…評価モジュール。
【図１】
0006494258.tif 000003
【図２】
0006494258.tif 000004
【図３】
0006494258.tif 000005
【図４】
0006494258.tif 000006
【図５】
0006494258.tif 000007
【図６】
0006494258.tif 000008
【図７】
0006494258.tif 000009
【図８】
0006494258.tif 000010
【図９】
0006494258.tif 000011