(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-26
(45)【発行日】2024-01-10
(54)【発明の名称】資源使用量予測方法および資源使用量予測プログラム
(51)【国際特許分類】
G06Q 50/06 20240101AFI20231227BHJP
G06Q 10/04 20230101ALI20231227BHJP
【FI】
G06Q50/06
G06Q10/04
(21)【出願番号】P 2019213790
(22)【出願日】2019-11-27
【審査請求日】2022-08-09
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002918
【氏名又は名称】弁理士法人扶桑国際特許事務所
(72)【発明者】
【氏名】熊野 達夫
(72)【発明者】
【氏名】渡辺 幸洋
【審査官】塩屋 雅弘
(56)【参考文献】
【文献】特開2013-087992(JP,A)
【文献】特開2019-117601(JP,A)
【文献】滑川 徹 Toru Namerikawa,需要曲線の特徴を考慮したH<SB>∞</SB>フィルタによる短期電力需要予測 H<SB>Infinity</SB> Filter-based Short-term Electric Load Prediction considering Characteristics of Load Curve,電気学会論文誌C Vol.132 No.9 IEEJ,日本,一般社団法人電気学会 The Institute of Electrical Engineers of Japan,第132巻,pp1446-1453
(58)【調査した分野】(Int.Cl.,DB名)
G06Q 10/00-99/00
(57)【特許請求の範囲】
【請求項1】
コンピュータが、
資源使用量の履歴を示す第1の時系列データに含まれる複数の時刻に対応する複数のレコードを、前記複数の時刻それぞれの属性に応じ
て、第1の属性に対応する第1のグループと、第2の属性に対応する第2のグループとに分割し、
前記第1のグループに属するレコードを時刻の順に結合することで、
前記第1の属性に対応する第2の時系列データ
を生成し、
前記第2のグループに属するレコードを時刻の順に結合することで前記第2の属性に対応する第3の時系列データを生成し、
前記第2の時系列データに基づいて前記資源使用量の予測値の算出に用いられる
、前記第1の属性に対応する第1の予測値算出式
を生成し、
前記第3の時系列データに基づいて前記資源使用量の前記予測値の算出に用いられる、前記第2の属性に対応する第2の予測値算出式を生成し、
前記資源使用量の複数の予測対象時刻を示す予測期間データが入力されると、前記複数の予測対象時刻のうち、前記第1の属性に対応する第1の予測対象時刻については前記第1の属性に対応する前記
第1の予測値算出式に基づいて前記資源使用量の前記予測値を算出
し、前記複数の予測対象時刻のうち、前記第2の属性に対応する第2の予測対象時刻については前記第2の属性に対応する前記第2の予測値算出式に基づいて前記資源使用量の前記予測値を算出し、
前記分割では、前記複数の時刻に対する前記資源使用量の変化の傾向を示すトレンド算出式を前記第1の時系列データから求め、前記第1の時系列データにおける各時刻の前記レコードの値から当該時刻に対する前記トレンド算出式の影響を除外した後に前記分割を行い、
前記算出では、前記第1の予測値算出式により算出された前記第1の予測対象時刻の前記予測値を、前記第1の予測対象時刻に対する前記トレンド算出式の値に基づいて補正し、前記第2の予測値算出式により算出された前記第2の予測対象時刻の前記予測値を、前記第2の予測対象時刻に対する前記トレンド算出式の値に基づいて補正する、
資源使用量予測方法。
【請求項2】
前記算出では、予測対象時刻の前記属性に応じて、
前記第1の予測値算出式および前記第2の予測値算出式を含む複数の予測値算出式の中から前記予測対象時刻に対する前記予測値の前記算出に用い
る予測値算出式を選択する、請求項1記載の資源使用量予測方法。
【請求項3】
前記算出では、
前記複数
の予測対象時刻のそれぞれに対して算出した前記予測値を、前記予測対象時刻の順に結合した予測結果を出力する、請求項
2記載の資源使用量予測方法。
【請求項4】
前記複数の時刻それぞれが属する日の曜日または時間帯に基づいて、前記複数の時刻それぞれの前記属性を決定する、請求項1記載の資源使用量予測方法。
【請求項5】
コンピュータに、
資源使用量の履歴を示す第1の時系列データに含まれる複数の時刻に対応する複数のレコードを、前記複数の時刻それぞれの属性に応じ
て、第1の属性に対応する第1のグループと、第2の属性に対応する第2のグループとに分割し、
前記第1のグループに属するレコードを時刻の順に結合することで、
前記第1の属性に対応する第2の時系列データ
を生成し、
前記第2のグループに属するレコードを時刻の順に結合することで前記第2の属性に対応する第3の時系列データを生成し、
前記第2の時系列データに基づいて前記資源使用量の予測値の算出に用いられる
、前記第1の属性に対応する第1の予測値算出式
を生成し、
前記第3の時系列データに基づいて前記資源使用量の前記予測値の算出に用いられる、前記第2の属性に対応する第2の予測値算出式を生成し、
前記資源使用量の複数の予測対象時刻を示す予測期間データが入力されると、前記複数の予測対象時刻のうち、前記第1の属性に対応する第1の予測対象時刻については前記第1の属性に対応する前記
第1の予測値算出式に基づいて前記資源使用量の前記予測値を算出
し、前記複数の予測対象時刻のうち、前記第2の属性に対応する第2の予測対象時刻については前記第2の属性に対応する前記第2の予測値算出式に基づいて前記資源使用量の前記予測値を算出し、
前記分割では、前記複数の時刻に対する前記資源使用量の変化の傾向を示すトレンド算出式を前記第1の時系列データから求め、前記第1の時系列データにおける各時刻の前記レコードの値から当該時刻に対する前記トレンド算出式の影響を除外した後に前記分割を行い、
前記算出では、前記第1の予測値算出式により算出された前記第1の予測対象時刻の前記予測値を、前記第1の予測対象時刻に対する前記トレンド算出式の値に基づいて補正し、前記第2の予測値算出式により算出された前記第2の予測対象時刻の前記予測値を、前記第2の予測対象時刻に対する前記トレンド算出式の値に基づいて補正する、
処理を実行させる資源使用量予測プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は資源使用量予測方法および資源使用量予測プログラムに関する。
【背景技術】
【0002】
コンピュータなどの情報処理装置により、システムにおけるハードウェアや電力などの資源の使用量を予測する技術がある。例えば、サーバ室の空調を行う空調装置の空調負荷を予測する負荷予測装置の提案がある。提案の負荷予測装置は、所定の周期で計測された空調負荷の時系列データから、現時点を含む直近の要求系列に類似する類似系列に続くデータ系列を抽出し、抽出したデータ系列により空調負荷の予測データ系列を生成する。
【0003】
また、予測日と同じ曜日である複数の過去日の電力需要の実績データを時刻ごとに平均化した需要変動パターンを生成する需要予測装置の提案もある。提案の需要予測装置は、生成した需要変動パターンの現時点のデータ値と現時点の実績値との差分を需要変動パターンに加算することで、現時点以後の電力需要を予測する。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2013-87992号公報
【文献】特開2016-19358号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
情報処理装置により、資源使用量の時系列データに対して時系列解析や機械学習の手法を用いて予測モデルを生成し、予測モデルにより資源使用量の予測を行うことが考えられる。一方、資源使用量の変化傾向の特徴は、システムを運用する時間帯や曜日などによって変わり得る。このため、入力された時系列データから単一の予測モデルを作成すると、特定の時間帯や曜日などに特有の変化傾向が予測モデルに反映され難くなり予測精度が低下する。
【0006】
1つの側面では、本発明は、予測精度を高めることができる資源使用量予測方法および資源使用量予測プログラムを提供することを目的とする。
【課題を解決するための手段】
【0007】
1つの態様では、資源使用量予測方法が提供される。この資源使用量予測方法では、コンピュータが、資源使用量の履歴を示す第1の時系列データに含まれる複数の時刻に対応する複数のレコードを、複数の時刻それぞれの属性に応じて、第1の属性に対応する第1のグループと、第2の属性に対応する第2のグループとに分割し、第1のグループに属するレコードを時刻の順に結合することで、第1の属性に対応する第2の時系列データを生成し、第2のグループに属するレコードを時刻の順に結合することで第2の属性に対応する第3の時系列データを生成し、第2の時系列データに基づいて資源使用量の予測値の算出に用いられる、第1の属性に対応する第1の予測値算出式を生成し、第3の時系列データに基づいて資源使用量の予測値の算出に用いられる、第2の属性に対応する第2の予測値算出式を生成し、資源使用量の複数の予測対象時刻を示す予測期間データが入力されると、複数の予測対象時刻のうち、第1の属性に対応する第1の予測対象時刻については第1の属性に対応する第1の予測値算出式に基づいて資源使用量の予測値を算出し、複数の予測対象時刻のうち、第2の属性に対応する第2の予測対象時刻については第2の属性に対応する第2の予測値算出式に基づいて資源使用量の予測値を算出し、上記の分割では、複数の時刻に対する資源使用量の変化の傾向を示すトレンド算出式を第1の時系列データから求め、第1の時系列データにおける各時刻のレコードの値から当該時刻に対するトレンド算出式の影響を除外した後に分割を行い、上記の算出では、第1の予測値算出式により算出された第1の予測対象時刻の予測値を、第1の予測対象時刻に対するトレンド算出式の値に基づいて補正し、第2の予測値算出式により算出された第2の予測対象時刻の予測値を、第2の予測対象時刻に対するトレンド算出式の値に基づいて補正する。
【0008】
また、1つの態様では、資源使用量予測プログラムが提供される。
【発明の効果】
【0009】
1つの側面では、予測精度を高めることができる。
【図面の簡単な説明】
【0010】
【
図1】第1の実施の形態の情報処理装置の処理例を示す図である。
【
図2】第2の実施の形態の情報処理システムの例を示す図である。
【
図7】平日に対する結合後の時系列データの例を示す図である。
【
図8】平日に対する予測値算出モデルの例を示す図である。
【
図9】休日に対する予測値算出モデルの例を示す図である。
【
図11】資源使用量の予測結果の例を示す図である。
【
図12】モデル作成処理例を示すフローチャートである。
【
図13】トレンド除去処理例を示すフローチャートである。
【
図14】時系列データ編集処理例を示すフローチャートである。
【
図17】予測期間分割処理例を示すフローチャートである。
【
図19】予測結果結合処理例を示すフローチャートである。
【
図21】トレンド復元処理例を示すフローチャートである。
【発明を実施するための形態】
【0011】
以下、本実施の形態について図面を参照して説明する。
[第1の実施の形態]
第1の実施の形態を説明する。
【0012】
図1は、第1の実施の形態の情報処理装置の処理例を示す図である。
情報処理装置10は、情報処理システムにおける資源の使用量の履歴に基づいて、将来の使用量を予測する。資源は、例えば、情報処理システムが有するCPU(Central Processing Unit)、RAM(Random Access Memory)およびNIC(Network Interface Card)などのハードウェアリソースである。資源は、例えば、情報処理システムにより消費される電力やエネルギーなどでもよい。
【0013】
情報処理装置10は、資源の使用量の履歴を示す時系列データに基づいて、時系列解析や機械学習の手法により、該当の情報処理システムにおける資源の使用量をモデル化する。時系列解析による予測モデルの生成手法の例として、ARIMA(Autoregressive Integrated Moving Average)モデルや状態空間モデルなどが挙げられる。機械学習による予測モデルの生成手法の例として、ディープラーニングなどが挙げられる。
【0014】
記憶部11は、RAMなどの揮発性記憶装置でもよいし、HDD(Hard Disk Drive)やフラッシュメモリなどの不揮発性記憶装置でもよい。処理部12は、CPU、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)などを含み得る。処理部12はプログラムを実行するプロセッサであってもよい。ここでいう「プロセッサ」には、複数のプロセッサの集合(マルチプロセッサ)も含まれ得る。
【0015】
記憶部11は、時系列データ20を記憶する。時系列データ20は、資源の使用量の履歴を示す。時系列データ20は、過去の複数の時刻に対応する複数のレコードを含む。各レコードは、資源の使用量を示す値を含む。例えば、時系列データ20は、過去の時刻t1~t9それぞれに対応するレコードを含む。時刻t1~t9について、時刻t1が最も古い時刻であり、時刻t2,t3,…の順に新しい時刻となり、時刻t9が最も新しい時刻である。すなわち、t1<t2<…<t9である。時刻t1~t9のレコードは、それぞれ値v1~v9を含む。
【0016】
処理部12は、第1の時系列データに含まれる複数の時刻に対応する複数のレコードを、複数の時刻それぞれの属性に応じた複数のグループに分割する。属性は、時刻の分類に用いられる情報であり、例えば、該当の時刻が属する曜日や1日のうちの時間帯などに応じて定められる。属性の一例としては、「平日」および「休日」が考えられる。属性の他の例としては、「昼間」の時間帯および「夜間」の時間帯が考えられる。属性は、各時刻を3種類以上に分類するものでもよい。例えば、属性として、「平日昼間」、「平日夜間」、「休日昼間」および「休日夜間」なども考えられる。
【0017】
各時刻の属性は、時系列データ20に含まれてもよいし、時系列データ20とは別個に情報処理装置10に入力されてもよい。あるいは、各時刻の属性は、各時刻が属する日の曜日や時間帯などに応じて、処理部12により決定されてもよい。
【0018】
時系列データ20の例では、時刻t1~t9は属性a,bの2つに分類される。時刻t1~t3,t6,t7,t9は、属性aである。時刻t4,t5,t8は、属性bである。この場合、処理部12は、時刻t1~t9のレコードを、時刻t1~t3,t6,t7,t9のレコードを含む属性aのグループ、時刻t4,t5,t8のレコードを含む属性bのグループに分割する。
【0019】
処理部12は、同一の属性に対応するグループに属するレコードを時刻の順に結合することで、第2の時系列データを属性ごとに生成する。例えば、処理部12は、属性aのグループに属するレコードを時刻の順に結合することで、時系列データ21を生成する。また、処理部12は、属性bのグループに属するレコードを時刻の順に結合することで、時系列データ22を生成する。
【0020】
時系列データ21は、時刻t1,t2,t3,t6,t7,t9のレコードを、時系列の順に含む。時刻t3,t6は、実際には不連続であるが、予測モデルの生成処理においては、連続した時刻とみなして扱われる。時系列データ22は、時刻t4,t5,t8のレコードを、時系列の順に含む。時刻t5,t8は、実際には不連続であるが、予測モデルの生成処理においては、連続した時刻とみなして扱われる。時系列データ21,22の各レコードは属性の情報を含んでもよいし、属性の情報を含まなくてもよい。
【0021】
処理部12は、生成された第2の時系列データに基づいて資源使用量の予測値の算出に用いられる予測値算出式を属性ごとに生成する。処理部12は、第2の時系列データに基づいて、既存の時系列解析や機械学習の手法により、資源使用量の予測モデルに相当する予測値算出式を属性ごとに生成する。予測値算出式は、時刻tに対する関数として求められる。時刻tは、基準時刻からの経過時間として表されてもよい。例えば、処理部12は、属性aに対して予測値算出式fa(t)を生成する。処理部12は、属性bに対して予測値算出式fb(t)を生成する。処理部12は、予測値算出式fa(t)を示す情報、および、予測値算出式fb(t)を示す情報を、記憶部11に格納する。
【0022】
処理部12は、属性ごとの予測値算出式に基づいて資源使用量の予測値を算出する。例えば、処理部12は、予測期間データ30を受け付ける。予測期間データ30は、予測値の算出対象となる複数の時刻を示す情報である。処理部12は、予測期間データ30で指定された複数の時刻それぞれに対する資源使用量の予測値を算出する。
【0023】
例えば、予測期間データ30は、時刻t10~t14を示す。時刻t10~t14について、t10<t11<t12<t13<t14である。予測期間データ30は、時刻t10~t14それぞれの属性の情報を含む。ただし、時刻t10~t14それぞれの属性の情報は、予測期間データ30とは別個に情報処理装置10により入力されてもよいし、各時刻が属する日の曜日や時間帯に応じて処理部12により決定されてもよい。例えば、時刻t10,t13,t14は属性aである。時刻t11,t12は属性bである。
【0024】
この場合、処理部12は、属性aである時刻t10,t13,t14それぞれに対し、属性aの予測値算出式fa(t)を用いて予測値v10,v13,v14を算出する。また、処理部12は、属性bである時刻t11,t12それぞれに対し、属性bの予測値算出式fb(t)を用いて予測値v11,v12を算出する。処理部12は、予測値算出式fa(t)および予測値算出式fb(t)を用いて算出した各予測値を、時系列にマージして、予測結果データ31を生成する。予測結果データ31は、時刻t10~t14それぞれに対応する値v10~v14を含む。予測結果データ31は、属性の情報を含んでもよいし、属性の情報を含まなくてもよい。
【0025】
情報処理装置10によれば、資源使用量の履歴を示す第1の時系列データに含まれる複数の時刻に対応する複数のレコードが、複数の時刻それぞれの属性に応じた複数のグループに分割される。同一の属性に対応するグループに属するレコードを時刻の順に結合することで、第2の時系列データが属性ごとに生成される。生成された第2の時系列データに基づいて資源使用量の予測値の算出に用いられる予測値算出式が属性ごとに生成される。属性ごとの予測値算出式に基づいて資源使用量の予測値が算出される。
【0026】
これにより、予測精度を高めることができる。例えば、平日グループおよび休日グループなどの各グループの特性に合わせた予測を各グループに対して行うことができるため、より正確な予測を行うことができる。
【0027】
ここで、資源使用量の変化傾向の特徴は、情報処理システムを運用する時間帯や曜日などによって変わり得る。例えば、平日と休日とでは資源使用量の変化傾向が異なることがある。また、昼間の時間帯と夜間の時間帯とでは資源使用量の変化傾向が異なることがある。入力された時系列データから、時系列解析や機械学習などの手法により単一の予測モデルを作成すると、特定の時間帯や曜日あるいは平日/休日などの属性に特有の変化傾向が予測モデルに反映され難くなる。このため、当該予測モデルを使用した予測の精度が低下する。
【0028】
そこで、情報処理装置10は、元の時系列データを、時刻の属性ごとに分割/結合して属性ごとの時系列データを生成し、属性ごとの時系列データに基づき、時系列解析や機械学習の手法により、時刻の属性ごとの予測値算出式を個別に生成する。すると、時間帯や曜日あるいは平日/休日などの時刻の属性に応じた変化傾向の特徴が、予測モデルに対応する予測値算出式に、より顕著に反映される。このため、情報処理装置10は、当該予測値算出式を用いて予測を行うことで、予測精度を高めることができる。
【0029】
[第2の実施の形態]
次に、第2の実施の形態を説明する。
図2は、第2の実施の形態の情報処理システムの例を示す図である。
【0030】
第2の実施の形態の情報処理システムは、予測装置100、サーバ装置200およびクライアント装置300を有する。予測装置100、サーバ装置200およびクライアント装置300は、ネットワーク50に接続されている。ネットワーク50は、例えば、LAN(Local Area Network)、WAN(Wide Area Network)またはインターネットなどである。
【0031】
予測装置100は、サーバ装置200の資源使用量を予測するサーバコンピュータである。サーバ装置200の資源使用量は、サーバ装置200の負荷とも言える。資源は、例えば、サーバ装置200が有するCPU、RAMおよびNICなどのハードウェアリソースである。資源は、サーバ装置200により消費される電力やエネルギーなどでもよい。資源使用量は、例えば、資源の使用率(%)、使用サイズ(例えば、バイト(bytes)やビット(bits))または消費量(例えば、ワット(W)やジュール(J))などの単位により表される。
【0032】
予測装置100は、サーバ装置200の資源使用量の履歴を示す時系列データに基づいて、時系列解析や機械学習の手法により予測値算出モデルを生成する。予測装置100は、生成した予測値算出モデルを用いて、資源使用量を予測する。予測装置100は、第1の実施の形態の情報処理装置10の一例である。
【0033】
サーバ装置200は、ユーザにより使用されるソフトウェアを実行するサーバコンピュータである。サーバ装置200は、ソフトウェアの実行に伴う資源使用量の履歴を示す時系列データを生成する。サーバ装置200は、ネットワーク50を介して、時系列データを予測装置100に提供する。
【0034】
クライアント装置300は、ユーザにより使用されるクライアントコンピュータである。クライアント装置300は、サーバ装置200が生成した時系列データを取得し、予測装置100に送信する。サーバ装置200が生成した時系列データは、サーバ装置200により予測装置100に送信されてもよい。
【0035】
クライアント装置300は、資源使用量の予測要求を予測装置100に送信する。予測要求は、予測対象の期間の指定を含む。予測対象の期間は、例えば、ユーザにより指定される。クライアント装置300は、予測要求に応じた資源使用量の予測結果を予測装置100から受信する。クライアント装置300は、予測結果を示す画面を、クライアント装置300に接続されたディスプレイに表示させる。
【0036】
図3は、予測装置のハードウェア例を示す図である。予測装置100は、CPU101、RAM102、HDD103、画像信号処理部104、入力信号処理部105、媒体リーダ106およびNIC(Network Interface Card)107を有する。なお、CPU101は、第1の実施の形態の処理部12に対応する。RAM102またはHDD103は、第1の実施の形態の記憶部11に対応する。
【0037】
CPU101は、プログラムの命令を実行するプロセッサである。CPU101は、HDD103に記憶されたプログラムやデータの少なくとも一部をRAM102にロードし、プログラムを実行する。なお、CPU101は複数のプロセッサコアを含んでもよい。また、予測装置100は複数のプロセッサを有してもよい。以下で説明する処理は複数のプロセッサまたはプロセッサコアを用いて並列に実行されてもよい。また、複数のプロセッサの集合を「マルチプロセッサ」または単に「プロセッサ」と言うことがある。
【0038】
RAM102は、CPU101が実行するプログラムやCPU101が演算に用いるデータを一時的に記憶する揮発性の半導体メモリである。なお、予測装置100は、RAM以外の種類のメモリを備えてもよく、複数個のメモリを備えてもよい。
【0039】
HDD103は、OS(Operating System)やミドルウェアやアプリケーションソフトウェアなどのソフトウェアのプログラム、および、データを記憶する不揮発性の記憶装置である。なお、予測装置100は、フラッシュメモリやSSD(Solid State Drive)などの他の種類の記憶装置を備えてもよく、複数の不揮発性の記憶装置を備えてもよい。
【0040】
画像信号処理部104は、CPU101からの命令に従って、予測装置100に接続されたディスプレイ111に画像を出力する。ディスプレイ111としては、CRT(Cathode Ray Tube)ディスプレイ、液晶ディスプレイ(LCD:Liquid Crystal Display)、プラズマディスプレイ、有機EL(OEL:Organic Electro-Luminescence)ディスプレイなど、任意の種類のディスプレイを用いることができる。
【0041】
入力信号処理部105は、予測装置100に接続された入力デバイス112から入力信号を取得し、CPU101に出力する。入力デバイス112としては、マウス・タッチパネル・タッチパッド・トラックボールなどのポインティングデバイス、キーボード、リモートコントローラ、ボタンスイッチなどを用いることができる。また、予測装置100に、複数の種類の入力デバイスが接続されていてもよい。
【0042】
媒体リーダ106は、記録媒体113に記録されたプログラムやデータを読み取る読み取り装置である。記録媒体113として、例えば、磁気ディスク、光ディスク、光磁気ディスク(MO:Magneto-Optical disk)、半導体メモリなどを使用できる。磁気ディスクには、フレキシブルディスク(FD:Flexible Disk)やHDDが含まれる。光ディスクには、CD(Compact Disc)やDVD(Digital Versatile Disc)が含まれる。
【0043】
媒体リーダ106は、例えば、記録媒体113から読み取ったプログラムやデータを、RAM102やHDD103などの他の記録媒体にコピーする。読み取られたプログラムは、例えば、CPU101によって実行される。なお、記録媒体113は可搬型記録媒体であってもよく、プログラムやデータの配布に用いられることがある。また、記録媒体113やHDD103を、コンピュータ読み取り可能な記録媒体と言うことがある。
【0044】
NIC107は、ネットワーク50に接続され、ネットワーク50を介して他のコンピュータと通信を行うインタフェースである。NIC107は、例えば、スイッチやルータなどの通信装置とケーブルで接続される。
【0045】
図4は、予測装置の機能例を示す図である。
予測装置100は、記憶部120、時系列データ入力部131、トレンド除去部132、ラベル入力部133、時系列データ編集部134、モデル作成部135、予測期間入力部136、予測期間分割部137、予測部138、予測結果結合部139、トレンド復元部140および予測データ出力部141を有する。
【0046】
記憶部120としては、RAM102やHDD103の記憶領域が用いられる。時系列データ入力部131、トレンド除去部132、ラベル入力部133、時系列データ編集部134、モデル作成部135、予測期間入力部136、予測期間分割部137、予測部138、予測結果結合部139、トレンド復元部140および予測データ出力部141は、CPU101がプログラムを実行することで実現される。
【0047】
なお、
図4では、時系列データ入力部131、モデル作成部135、予測部138および予測データ出力部141それぞれと記憶部120とを接続する線を示し、それ以外の各部と記憶部120との接続する線の図示を省略している。
【0048】
記憶部120は、資源使用量の予測に用いられる時系列データ、トレンドおよび予測値算出モデルの情報や、予測結果を示す予測データを記憶する。ここで、トレンドとは、時系列データにおける時刻の属性に依らない資源使用量の大局的な変化の傾向である。トレンドの一例として、ソフトウェアを使用するユーザの総数の増加に伴う資源使用量の増加や、ソフトウェアの機能拡張に応じた計算量の増加に伴う資源使用量の増加などが挙げられる。
【0049】
また、記憶部120は、ラベルデータおよび予測期間データを記憶する。ラベルデータは、各時刻、あるいは、各時刻が属する日や時間帯などのラベルを示すデータである。ラベルは、各時刻の属性に対応付けられる。例えば、「月曜日」~「金曜日」というラベルに対して、「平日」という属性が対応付けられる。また、「土曜日」、「日曜日」、「祝日」というラベルに対して、「休日」という属性が対応付けられる。例えば、ある日付について、「月曜日」かつ「祝日」の場合は、「休日」の属性となる。あるいは、ラベルがそのまま属性を示してもよい。例えば、「月曜日」というラベルに対して、「月曜日」という属性が対応付けられてもよい。また、例えば、「昼間」というラベルに対して「昼間」という属性が、「夜間」というラベルに対して「夜間」という属性がそれぞれ対応付けられてもよい。ラベルに対してどのような属性を対応付けるかは、例えば、曜日や時間帯などに応じた、予測対象のサーバ装置200のユーザによる使用傾向に応じて決定される。記憶部120は、ラベルに対応する属性を示す情報を予め記憶する。
【0050】
更に、記憶部120は、予測期間データを記憶する。予測期間データは、クライアント装置300から指定される予測期間のデータである。
時系列データ入力部131は、記憶部120に記憶された時系列データを取得し、トレンド除去部132に入力する。当該時系列データは、サーバ装置200による資源使用量の履歴を示す情報である。
【0051】
トレンド除去部132は、時系列データに基づいてトレンドを求め、時系列データからトレンドを除去する。トレンド除去部132は、例えば時系列データに対する線形回帰分析により、トレンドを表す式であるトレンド算出式を求める。トレンド除去部132は、トレンド算出式に基づいて、時系列データの各時刻におけるトレンド値を求める。トレンド除去部132は、時系列データの資源使用量から該当の時刻のトレンド値を減算することで、時系列データからトレンドを除去し、トレンド除去済み時系列データを生成する。
【0052】
ラベル入力部133は、各時刻のラベルを時系列データ編集部134および予測期間分割部137に入力する。
時系列データ編集部134は、トレンド除去済み時系列データに含まれる複数のレコードを、各時刻の属性に応じた複数のグループに分割する。時系列データ編集部134は、同一の属性のグループに属するレコードを結合して、属性ごとの時系列データを生成する。ここで、時系列データ編集部134は、時系列データに含まれる複数の時刻それぞれが属する日の曜日または時間帯を示すラベルデータに基づいて、複数の時刻それぞれの属性を決定する。ラベルデータにおけるラベルと属性との対応関係を示す情報は、前述のように記憶部120に予め格納される。
【0053】
モデル作成部135は、時系列データ編集部134により生成された属性ごとの時系列データに基づいて、資源使用量の予測値算出モデルを作成する。モデル作成部135は、作成した予測値算出モデルの情報を記憶部120に格納する。例えば、モデル作成部135は、予測値算出モデルの作成に、時系列解析や機械学習の手法を用いる。時系列解析による予測値算出モデルの作成手法の例として、ARIMAモデルや状態空間モデルなどが挙げられる。機械学習による予測値算出モデルの作成手法の例として、ディープラーニングなどが挙げられる。
【0054】
予測期間入力部136は、クライアント装置300から受け付けた予測要求に含まれる予測期間の情報を予測期間分割部137に入力する。
予測期間分割部137は、予測期間に含まれる各時刻を属性に応じて分割する。ここで、予測期間分割部137は、予測期間に含まれる複数の時刻それぞれが属する日の曜日または時間帯を示すラベルデータに基づいて、当該複数の時刻それぞれの属性を決定する。
【0055】
予測部138は、予測期間における資源使用量を予測する。すなわち、予測部138は、予測期間に含まれる予測対象時刻の属性に対応する予測値算出モデルに基づいて、予測対象時刻の資源使用量の予測値を算出する。このとき、予測部138は、予測対象時刻の属性に応じて、当該予測対象時刻に対する予測値の算出に用いる予測値算出式を選択する。予測部138は、予測対象時刻の属性に対応する予測値算出式を用いて、当該予測対象時刻に対する資源使用量の予測値を算出する。なお、予測部138が算出する予測値はトレンドの影響を含まない値となる。
【0056】
予測結果結合部139は、予測部138により算出された属性ごとの資源使用量の予測結果を結合する。すなわち、予測結果結合部139は、予測期間に含まれる各予測対象時刻に対して算出された予測値のレコードを、予測対象時刻の時系列に結合した結合後の予測結果を出力する。
【0057】
トレンド復元部140は、予測結果結合部139による結合後の予測結果に対してトレンドを復元する。すなわち、トレンド復元部140は、トレンド除去部132からトレンド算出式を取得し、トレンド算出式に基づいて、予測期間に含まれる各時刻に対応するトレンド値を算出する。トレンド復元部140は、予測期間の各時刻における資源使用量の予測値に、当該時刻のトレンド値を加算することで、トレンドを復元する。結合後の予測結果に対してトレンドを復元したデータが最終的な予測データとなる。
【0058】
予測データ出力部141は、トレンド復元部140により生成された予測データを出力する。例えば、予測データ出力部141は、予測データを記憶部120に格納する。また、予測データ出力部141は、クライアント装置300に予測データを送信する。予測データ出力部141は、ディスプレイ111に予測データの内容を表示させてもよい。
【0059】
図5は、時系列データの例を示す図である。
グラフ151は、サーバ装置200による資源使用量の履歴を示す時系列データの例を表す。グラフ151の横軸は時刻である。グラフ151の縦軸は資源使用量である。グラフ151の例では、各時刻に対応するラベルとして曜日が示されている。祝日以外の月曜日~金曜日は、「平日」の属性に相当する。土曜日、日曜日および祝日は「休日」の属性に相当する。
【0060】
グラフ151によれば、平日における資源使用量の変化傾向と休日における資源使用量の変化傾向とは大きく異なっている。
図6は、トレンドの例を示す図である。
【0061】
グラフ152は、サーバ装置200による資源使用量の履歴を示す時系列データの例を表す。グラフ152の横軸は時刻である。グラフ152の縦軸は資源使用量である。
図6には、当該時系列データに対して抽出されるトレンド153も示されている。トレンド153を表すトレンド算出式は、例えば、時系列データの全時刻に亘る線形近似により時刻に関する一次の関数として求められる。トレンド算出式は、例えば、絶対時刻に対するトレンド値を表す式として求められる。トレンド153は、時刻に関する二次以上の関数や指数関数などとして求められてもよい。また、トレンド除去部132は、線形近似ではなく、移動平均によってトレンド算出式を求めてもよい。更に、トレンド除去部132は、時系列データの全体に対する線形近似ではなく、一定数に区切った範囲に対する線形近似によりトレンド算出式を求めてもよい。
【0062】
トレンド除去部132は、グラフ152で表される時系列データからトレンド153を除去する。そして、時系列データ編集部134は、時系列データの各レコードを属性ごとに複数のグループに分割し、同一のグループに属するレコードを時刻の順に結合する。
【0063】
図7は、平日に対する結合後の時系列データの例を示す図である。
グラフ154は、グラフ152の時系列データからトレンド153を除去したトレンド除去済み時系列データのうち平日のレコードを結合した結果を表す。グラフ154の横軸は時刻である。グラフ154の縦軸は資源使用量である。グラフ152の時系列データからトレンド153を除去せずに、例えば平日のレコードを結合すると、結合部分の2つの時刻での資源使用量の差が比較的大きくなり、資源使用量が不連続になり易い。
【0064】
そこで、時系列データ編集部134は、トレンド153を除去してから平日のレコードを結合する。すると、結合部分の資源使用量の差を比較的小さくすることができる。このため、結合後の時系列データを、結合部分の2つの時刻に関しても連続した時系列データとみなして扱うことが可能になる。
【0065】
なお、図示を省略するが、時系列データ編集部134は、属性「休日」についても同様に、トレンド除去済み時系列データのうち休日のレコードを結合することで、休日に対する結合後の時系列データを生成する。
【0066】
次に、モデル作成部135により作成される予測値算出モデルの例を説明する。ここで、下記では、予測値算出モデルの一例として、毎日同じパターンでの資源使用量の変動を繰り返す単純なモデルを示す。予測値算出モデルは、数式、すなわち、予測値算出式の情報によって表される。
【0067】
図8は、平日に対する予測値算出モデルの例を示す図である。
グラフ155は、平日の0時~23時59分に対する予測値算出モデルを示す。グラフ155の横軸は時刻である。グラフ155の縦軸は資源使用量である。当該予測値算出モデルは、例えば、時刻tに対する資源使用量を表す関数である予測値算出式により表される。予測値算出式における時刻tは、例えば絶対時刻でもよいし、基準時刻に対する相対時刻でもよい。例えば、時刻tは、該当の日の0時を基準時刻とし、基準時刻からの経過時間として表されてもよい。グラフ155に示されるように、予測値算出式は、時刻tに関する高次の式により表される。
【0068】
なお、属性の他の例として、「平日昼間」、「平日夜間」のように、「平日」を複数の時間帯に区分する属性を用いる場合も考えられる。この場合、「平日昼間」に属する時刻に対しては「平日昼間」の属性に対する予測値算出モデルが用いられ、「平日夜間」に属する時刻に対しては「平日夜間」の属性に対応する予測値算出モデルが用いられることになる。
【0069】
図9は、休日に対する予測値算出モデルの例を示す図である。
グラフ156は、休日の0時~23時59分に対する予測値算出モデルを示す。グラフ156の横軸は時刻である。グラフ156の縦軸は資源使用量である。当該予測値算出モデルは、平日の場合と同様に、例えば、時刻tに対する資源使用量を表す関数である予測値算出式により表される。
【0070】
図8と同様に、属性の他の例として、「休日昼間」、「休日夜間」のように、「休日」を複数の時間帯に区分する属性を用いる場合も考えられる。この場合、「休日昼間」に属する時刻に対しては「休日昼間」の属性に対する予測値算出モデルが用いられ、「休日夜間」に属する時刻に対しては「休日夜間」の属性に対応する予測値算出モデルが用いられることになる。
【0071】
また、
図8,9の例では、一日における資源使用量に対する予測値算出モデルを例示したが、予測装置100は、一週間や一か月などの他の期間における資源使用量の予測値算出モデルを、平日や休日などの属性ごとに求めてもよい。
【0072】
図10は、データ構造例を示す図である。
記憶部120は、時系列データ121、ラベルデータ122および予測期間データ123を記憶する。
【0073】
時系列データ121は、時刻と資源使用量とを有する複数のレコードを含む。例えば、時系列データ121は、「(2018-11-21 13:00,1683)」というレコードを含む。このレコードは、2018年11月21日の13時における資源使用量が「1683」であることを示す。ここで、時系列データ121では、1時間ごとの資源使用量の統計値が毎時00分のレコードとして記録される例を示している。統計値としては、例えば、毎分あるいは毎秒計測される資源使用量の1時間での平均値や中央値などが考えられる。時系列データ121の例のように「時刻」の単位は1時間単位でもよいし、1分単位や1秒単位などでもよい。あるいは、「時刻」の単位は例示した単位よりも長い単位でもよい。例えば、比較的長い期間に対する予測を行う場合などに「時刻」の単位を「日」などとすることも考えられる。
【0074】
ラベルデータ122は、日付と曜日とを有する複数のレコードを含む。例えば、ラベルデータ122は、「(2018-11-21,水)」というレコードを含む。このレコードは、2018年11月21日が水曜日であることを示す。すなわち、2018年11月21日、および、2018年11月21日に属する各時刻の属性が平日であると言える。
【0075】
予測期間データ123は、予測期間の始めの時刻と予測期間の終わりの時刻とを有するレコードを含む。例えば、予測期間データ123は、「(2019-8-1 0:00,2019-9-1 0:00)」というレコードを含む。このレコードは、予測期間の初めの時刻が2019年8月1日の0時00分であり、予測期間の終わりの時刻が2019年9月1日の0時00分であることを示す。
【0076】
また、記憶部120は、
図6で例示したトレンド算出式の情報を記憶する。トレンド算出式は、例えば「-1.711×10
6+1.109×10
-3×t」のように、時刻tに対する式で表される。トレンド算出式における時刻tは、例えば絶対時刻を示す。
【0077】
また、記憶部120は、
図8,9で例示した予測値算出モデルに相当する予測値算出式の情報を記憶する。
図11は、資源使用量の予測結果の例を示す図である。
【0078】
グラフ157は、サーバ装置200による資源使用量の履歴を示す時系列データに、予測期間157aにおける、トレンド復元済みの予測値のレコードを結合したデータを示す。例えば、各時刻に対して平日および休日の属性を付与する場合、予測部138は、平日の予測値算出式に基づいて、予測期間157aの平日の予測値を算出する。トレンド復元部140は、トレンド算出式に基づくトレンド値を当該平日の予測値に加算して、トレンド復元済みの予測値を得る。また、予測部138は、休日の予測値算出式に基づいて、予測期間157aの休日の予測値を算出する。トレンド復元部140は、トレンド算出式に基づくトレンド値を当該休日の予測値に加算して、トレンド復元済みの予測値を得る。
【0079】
このように、予測装置100は、まずは、複数の時刻に対する資源使用量の変化の傾向を示すトレンド算出式を、入力された時系列データから求める。そして、予測装置100は、当該時系列データにおける各時刻のレコードの値から当該時刻に対するトレンド算出式の影響を除外した後に、時系列データの各レコードを属性ごとに分割する。予測装置100は、属性ごとの予測値算出式により算出された予測対象時刻の予測値を、当該予測対象時刻に対するトレンド算出式の値に基づいて補正する。トレンドは、時刻の属性に依らない傾向を示す。このため、属性ごとの予測値算出式の作成を行う前に、トレンドの影響を時系列データから除去することで、適切な予測値算出式を作成でき、当該予測値算出式による予測の精度を向上することができる。
【0080】
次に、予測装置100による処理手順を説明する。まず、予測の前段階として、予測値算出モデルの作成処理の手順を説明する。
図12は、モデル作成処理例を示すフローチャートである。
【0081】
(S10)時系列データ入力部131は、時系列データ121を受け付け、記憶部120に格納する。ラベル入力部133は、ラベルデータ122を受け付け、記憶部120に格納する。
【0082】
(S11)トレンド除去部132は、時系列データ121を時系列データ入力部131から取得し、時系列データ121に対してトレンド除去処理を行い、トレンド除去済み時系列データを生成する。トレンド除去処理の詳細は後述される。
【0083】
(S12)時系列データ編集部134は、トレンド除去済み時系列データに対して時系列データ編集処理を行い、属性ごとの時系列データを生成する。時系列データ編集処理の詳細は後述される。
【0084】
(S13)モデル作成部135は、属性ごとの時系列データに基づいて、属性ごとの予測値算出式を作成する。予測値算出式の作成には、既存の時系列解析や機械学習などによる手法を用いることができる。モデル作成部135は、属性ごとの予測値算出式を、該当の属性の情報に対応付けて、記憶部120に格納する。そして、モデル作成処理が終了する。
【0085】
図13は、トレンド除去処理例を示すフローチャートである。
トレンド除去処理は、ステップS11に相当する。
(S20)トレンド除去部132は、時系列データ入力部131より入力された時系列データ全体を線形近似してトレンド算出式を算出する。
【0086】
(S21)トレンド除去部132は、算出したトレンドを時系列データから引く。例えば、トレンド除去部132は、時系列データの各時刻に対応する値から、該当の時刻におけるトレンド値を減算することで、トレンド除去済み時系列データを生成する。
【0087】
(S22)トレンド除去部132は、トレンド算出式とトレンド除去済み時系列データとを出力する。例えば、トレンド除去部132は、トレンド算出式とトレンド除去済み時系列データとを記憶部120に格納する。そして、トレンド除去処理が終了する。
【0088】
図14は、時系列データ編集処理例を示すフローチャートである。
時系列データ編集処理は、ステップS12に相当する。
(S30)時系列データ編集部134は、トレンド除去済み時系列データを、入力されたラベルに基づいて分割する。例えば、時系列データ編集部134は、トレンド除去済み時系列データに含まれる各時刻の属性を、ラベルデータに基づいて決定する。時系列データ編集部134は、トレンド除去済み時系列データに含まれる各レコードを、時刻の属性ごとのグループに分割する。
【0089】
(S31)時系列データ編集部134は、分割したトレンド除去済み時系列データを属性ごとに結合する。例えば、時系列データ編集部134は、各グループに属するレコードを、時系列の順に結合することで、属性ごとの時系列データを生成する。
【0090】
(S32)時系列データ編集部134は、結合したトレンド除去済み時系列データを属性ごとに出力する。例えば、時系列データ編集部134は、属性ごとの時系列データを、記憶部120に格納する。そして、トレンド除去処理が終了する。
【0091】
次に、「平日」および「休日」の属性により、時系列データに含まれる各時刻を分類して編集する例を示す。
図15は、時系列データの編集例を示す図である。
【0092】
時系列データ161は、トレンド除去済み時系列データである。時系列データ161は、時系列データ編集部134による編集前の時系列データである。時系列データ161は、日付、曜日、祝日区分および値の項目を含む。ここで、各日付に対する曜日および祝日区分は、ラベルデータに含まれるラベルによって特定される。曜日は、該当の日付の曜日を示す。祝日区分は、該当の日付が祝日であるか否かを示す。
【0093】
時系列データ161は、日付「1」~「14」に対応する複数のレコードを含む。各レコードは、日付「1」~「14」に対して資源使用量の値「x1」~「x14」を含む。
なお、
図15では、図示を簡略化するために、1つの日付に対して1つの値のみを示しているが、時系列データ161は、各日付に属する複数の時刻それぞれに対して、資源使用量の値を有する。後述される時系列データ162,163も同様である。
【0094】
曜日は、日付「1」、「2」、「3」、…の順に、月曜日、火曜日、水曜日、…である。また、日付「11」は、木曜日であり、祝日である。時系列データ161のうち、日付「11」以外の月曜日~金曜日は、祝日ではない。該当の日付が祝日である場合、祝日であることを示す情報が祝日区分に設定される。図中、祝日であることを示す情報を、「祝」と記載することがある。また、該当の日付が祝日でない場合、祝日区分を設定なしとしている。図中、「設定なし」を空欄により示すことがある。
【0095】
この場合、日付「11」以外の月曜日~金曜日である日付「1」~「5」、「8」~「10」、「12」の属性は「平日」である。土曜日、日曜日および祝日である日付「6」、「7」、「11」、「13」、「14」の属性は「休日」である。したがって、日付「1」~「5」、「8」~「10」、「12」に属する各時刻の属性は「平日」である。日付「6」、「7」、「11」、「13」、「14」に属する各時刻の属性は「休日」である。
【0096】
時系列データ編集部134は、時系列データ161の各レコードを属性ごとのグループに分割する。時系列データ編集部134は、グループごとの複数のレコードを時系列の順に結合することで、属性「平日」に対応する時系列データ162と、属性「休日」に対応する時系列データ163とを生成する。時系列データ162は、日付「1」~「5」、「8」~「10」、「12」のレコードを含む。時系列データ163は、日付「6」、「7」、「11」、「13」、「14」のレコードを含む。時系列データ162,163は、曜日および祝日区分を含んでもよいし、含まなくてもよい。
【0097】
次に、作成された予測値算出モデルに基づく資源使用量の予測の手順を説明する。
図16は、予測処理例を示すフローチャートである。
(S40)予測期間入力部136は、予測期間データを受け付け、記憶部120に格納する。ラベル入力部133は、ラベルデータを受け付け、記憶部120に格納する。
【0098】
(S41)予測期間分割部137は、予測期間データに対して、予測期間分割処理を実行する。予測期間分割処理の詳細は後述される。
(S42)予測部138は、属性ごとの予測値算出モデルに基づいて、予測期間に対する資源使用量の予測値を算出する。予測部138は、予測期間に含まれる各時刻の属性に応じて、当該時刻の予測値の算出に用いる予測値算出式を選択する。例えば、予測対象の時刻の属性が「平日」の場合、予測部138は、属性「平日」に対応する予測値算出式を用いて、予測値を算出する。また、予測対象の時刻の属性が「休日」の場合、予測部138は、属性「休日」に対応する予測値算出式を用いて、予測値を算出する。
【0099】
(S43)予測結果結合部139は、属性ごとの予測結果を結合する予測結果結合処理を実行する。予測結果結合処理の詳細は後述される。
(S44)トレンド復元部140は、予測結果結合部139による結合後の予測結果に対して、トレンドを復元するトレンド復元処理を実行する。トレンド復元処理の詳細は後述される。
【0100】
(S45)予測データ出力部141は、トレンド復元部140によるトレンド復元済みの予測データを出力する。予測データ出力部141は、予測データを記憶部120に格納する。予測データ出力部141は、クライアント装置300に予測データを送信してもよい。また、予測データ出力部141は、ディスプレイ111に予測データの内容を表示させてもよい。そして、予測処理が終了する。
【0101】
図17は、予測期間分割処理例を示すフローチャートである。
予測期間分割処理は、ステップS41に相当する。
(S50)予測期間分割部137は、入力されたラベルを基に予測期間を分割する。例えば、予測期間分割部137は、ラベルデータを基に、予測期間に属する各時刻の属性を決定し、予測期間に属する各時刻を、属性ごとに分割する。例えば、予測期間分割部137は、属性「平日」の時刻群および属性「休日」の時刻群に、予測期間を分割する。
【0102】
(S51)予測期間分割部137は、分割した予測期間を出力する。そして、予測期間分割処理が終了する。
図18は、予測期間の分割例を示す図である。
【0103】
予測期間データ171は、分割前の予測期間データである。予測期間データ171は、日付、曜日および祝日区分の項目を含む。ここで、各日付に対する曜日および祝日区分は、ラベルデータに含まれるラベルによって特定される。
【0104】
予測期間データ171は、日付「15」~「23」に対応する複数のレコードを含む。曜日は、日付「15」、「16」、「17」、…の順に、月曜日、火曜日、水曜日、…となる。また、日付「15」は、祝日である。予測期間データ171のうち、日付「15」以外の月曜日~金曜日は、祝日ではない。
【0105】
この場合、日付「15」以外の月曜日~金曜日である日付「16」~「19」、「22」、「23」の属性は「平日」である。土曜日、日曜日および祝日である日付「15」、「20」、「21」の属性は「休日」である。したがって、日付「16」~「19」、「22」、「23」に属する各時刻の属性は「平日」である。日付「15」、「20」、「21」に属する各時刻の属性は「休日」である。
【0106】
予測期間分割部137は、予測期間データ171の各レコードを属性ごとのグループに分割することで、属性「平日」に対応する予測期間データ172と、属性「休日」に対応する予測期間データ173とを生成する。予測期間データ172は、日付「16」~「19」、「22」、「23」のレコードを含む。予測期間データ173は、日付「15」、「20」、「21」のレコードを含む。予測期間データ172,173は、曜日および祝日区分を含んでもよいし、含まなくてもよい。
【0107】
図19は、予測結果結合処理例を示すフローチャートである。
予測結果結合処理は、ステップS43に相当する。
(S60)予測結果結合部139は、予測部138による属性ごとの予測結果を結合する。例えば、予測結果結合部139は、属性ごとの予測結果の各レコードを、時刻の時系列の順に結合して、1つの予測結果とする。
【0108】
(S61)予測結果結合部139は、結合した予測結果を出力する。例えば、予測結果結合部139は、結合した予測結果を記憶部120に格納する。
図20は、予測結果の結合例を示す図である。
【0109】
予測結果181は、属性「平日」に対する資源使用量の予測結果である。予測結果182は、属性「休日」に対する資源使用量の予測結果である。予測結果181,182は、予測部138により生成される。
【0110】
予測結果181における日付「16」~「23」に属する各時刻の予測値は、属性「平日」に対応する予測値算出式を用いて算出される。例えば、予測結果181は、日付「16」~「19」、「22」、「23」に対して、予測値「y1」~「y6」を有する。
【0111】
予測結果182における日付「15」、「20」、「21」に属する各時刻の予測値は、属性「休日」に対応する予測値算出式を用いて算出される。例えば、予測結果182は、日付「15」、「20」、「21」に対して、予測値「y7」~「y9」を有する。
【0112】
なお、
図20では、図示を簡略化するために、1つの日付に対して1つの予測値のみを示しているが、予測結果181,182は、各日付に属する複数の時刻それぞれに対して、資源使用量の予測値を有する。後述される予測結果183も同様である。
【0113】
予測結果結合部139は、予測結果181,182に含まれる各レコードを、時系列の順に結合して、予測結果183を生成する。予測結果183は、日付「15」~「23」のそれぞれに対応する予測値を有するレコードを含む。
【0114】
図21は、トレンド復元処理例を示すフローチャートである。
トレンド復元処理は、ステップS44に相当する。
(S70)トレンド復元部140は、予測結果結合部139による結合後の予測結果にトレンドを加算する。例えば、トレンド復元部140は、トレンド算出式に基づいて、当該予測結果の各時刻におけるトレンド値を算出し、予測結果の該当の時刻の値に加算する。
【0115】
(S71)トレンド復元部140は、トレンド加算後の予測結果を出力する。そして、トレンド復元処理が終了する。トレンド加算後の予測結果は、予測データ出力部141により、クライアント装置300に送信されたり、ディスプレイ111に表示されたりする。
【0116】
ここで、サーバ装置200による資源使用量の変化傾向の特徴は、サーバ装置200を運用する時間帯や曜日などによって変わり得る。例えば、平日と休日とでは資源使用量の変化傾向が異なることがある。また、昼間の時間帯と夜間の時間帯とでは資源使用量の変化傾向が異なることがある。入力された時系列データから、時系列解析や機械学習などの手法により単一の予測モデルを作成すると、特定の時間帯や曜日などに特有の変化傾向が予測モデルに反映され難くなる。このため、当該予測モデルを使用した予測の精度が低下する。
【0117】
そこで、予測装置100は、資源使用量の履歴を示す時系列データにおける時刻の属性ごとに、時系列解析や機械学習などの手法により予測値算出を求める。すなわち、当該時系列データにおける時刻の属性ごとに、予測値算出式が個別に生成される。すると、時間帯や曜日などの属性に応じた変化傾向の特徴が、予測値算出式に反映され易くなる。このため、予測装置100は、当該予測値算出式を用いて予測を行うことで、予測精度を高めることができる。
【0118】
また、予測装置100は、入力された時系列データに関して、全体的に上昇傾向であるなどの大まかな傾向を示すトレンドを、当該時系列データから除外した後に属性ごとの予測値算出式を生成する。これにより、トレンドを加味して予測値算出式を生成するよりも、生成される予測値算出式の精度を高めることができる。予測の際には、予測装置100は、予測値算出式により算出された算出値をトレンドによる値で補正して、予測値を求める。これにより、トレンドを加味して生成した予測値算出式を用いて予測を行う場合に比べて、予測の精度を高めることができる。
【0119】
また、トレンドのある時系列データをモデル化して将来の値を予測する場合に、パラメータが比較的少ない単純なモデルで、予測値算出用のモデルを表現できる。このため、比較的少ないデータでもモデル化でき、少量のデータでも精度の良い予測が可能になる。
【0120】
第2の実施の形態では、時系列データに含まれる複数のレコードをグループに分類するための属性として、「平日」や「休日」を主に例示したが、他の属性でグループ化することも考えられる。
【0121】
例えば、属性は「昼間」および「夜間」でもよい。属性に「昼間」および「夜間」を用いる場合、時系列データおよび予測期間の各時刻が「昼間」および「夜間」の何れの属性に対応するかを示す情報が、ラベルデータとして予測装置100に入力される。
【0122】
また、属性は「平日昼間」、「平日夜間」、「休日昼間」および「休日夜間」でもよい。この場合、時系列データおよび予測期間の各時刻が「平日昼間」、「平日夜間」、「休日昼間」および「休日夜間」の何れの属性に対応するかを示す情報が、ラベルデータとして予測装置100に入力される。
【0123】
あるいは、属性は、「月曜日」、「火曜日」、…といった曜日でもよい。
何れの属性を用いるかは、曜日、平日/休日、昼間/夜間の時間帯などに応じた、サーバ装置200のユーザによる使用傾向に応じて決定される。
【0124】
なお、第1の実施の形態の情報処理は、処理部12にプログラムを実行させることで実現できる。また、第2の実施の形態の情報処理は、CPU101にプログラムを実行させることで実現できる。プログラムは、コンピュータ読み取り可能な記録媒体113に記録できる。
【0125】
例えば、プログラムを記録した記録媒体113を配布することで、プログラムを流通させることができる。また、プログラムを他のコンピュータに格納しておき、ネットワーク経由でプログラムを配布してもよい。コンピュータは、例えば、記録媒体113に記録されたプログラムまたは他のコンピュータから受信したプログラムを、RAM102やHDD103などの記憶装置に格納し(インストールし)、当該記憶装置からプログラムを読み込んで実行してもよい。
【符号の説明】
【0126】
10 情報処理装置
11 記憶部
12 処理部
20,21,22 時系列データ
30 予測期間データ
31 予測結果データ