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