以下、本発明の実施の形態について説明する。本発明の実施の形態では、時系列データに対して自動又は手動でラベリングを行うと共に、ラベリングに関する情報(例えば、ラベリングの候補となるデータを示す情報や種々の統計量を示す情報等)をユーザに提供することで、効率的なラベリングを可能とするラベリング装置10について説明する。本発明の実施の形態では、ラベリングとは、時系列データに含まれるデータに対してラベルを付与する場合だけでなく、時系列データに含まれるデータに対して既に付与されているラベルを削除する場合も含まれるものとする。すなわち、本発明の実施の形態では、ラベリングは、時系列データに含まれるデータに対するラベルの付与又は削除を意味するものとする。
なお、或る所定の値のラベルがデータに付与されている場合、当該データを「ラベルが付与されていないデータ」(又は、「ラベル付与済みでないデータ」)と見做しても良い。例えば、ラベル値が「0」又は「1」の2値であり、ラベル値「0」が正常データを表し、ラベル値「1」が異常データを表すような場合、「0」のラベルが付与されているデータを「ラベルが付与されていないデータ」と見做しても良い。
ここで、時系列データとは、時系列性を保持したデータのことである。時系列データは、例えば、日時(又は、時刻等であっても良い。)を表すインデックスをtとして、x={xt}(t=1,・・・,T)で表される。このとき、各xtは、スカラーで表されるデータであっても良いし、ベクトルで表されるデータ(すなわち、複数の変数で表されるデータ)であっても良い。例えば、各xtが3つの変数v1、v2及びv3で表されるベクトルデータである場合、各xtは、xt=(v1,v2,v3)等の形式で表される。なお、Tは或る時間幅の日時を考えた場合における最終日時を表すインデックスである。
また、ラベルデータとは、時系列データに含まれるデータに対するラベルを示すデータのことである。ラベルデータは、例えば、y={yt}(t=1,・・・,T)で表される。なお、ytは、時系列データに含まれるデータxtに対応するラベルである。ただし、ラベルデータは、例えば、時系列データに付与されているラベル値の集合をCとして、y={yt|yt∈C}で表されるものであっても良い。
なお、時系列データとラベルデータとが別々のデータで表されている必要はなく、1つのデータ(すなわち、ラベル付き時系列データ)で表されていても良い。ラベル付き時系列データに含まれる各xtには、当該xtに付与されたラベルが含まれる。例えば、各xtが変数vで表されるスカラーデータである場合、ラベル付き時系列データに含まれる各xtは、xt=(v,yt)等の形式で表される。又は、例えば、各xtが3つの変数v1、v2及びv3で表されるベクトルデータである場合、ラベル付き時系列データに含まれる各xtは、xt=(v1,v2,v3,yt)等の形式で表される。
<ラベリング装置10の機能構成>
まず、本発明の実施の形態におけるラベリング装置10の機能構成について、図1を参照しながら説明する。図1は、本発明の実施の形態におけるラベリング装置10の機能構成の一例を示す図である。
図1に示すように、本発明の実施の形態におけるラベリング装置10は、表示制御部101と、操作受付部102と、データ入力部103と、ラベル処理部104と、統計量計算部105と、ラベル付与候補抽出部106と、データ出力部107とを有する。これら各部は、例えば、ラベリング装置10にインストールされたラベリングプログラム100がCPU(Central Processing Unit)に実行させる処理により実現される。また、本発明の実施の形態におけるラベリング装置10は、記憶部201を有する。なお、ラベリングプログラム100は、1つのプログラムであっても良いし、複数のプログラムモジュールにより構成されていても良い。
記憶部201は、ラベリングプログラム100が利用する記憶領域であり、各種データを記憶する。記憶部201に記憶されるデータとしては、例えば、時系列データやラベリングデータ等が挙げられる。
表示制御部101は、表示に関する各種制御を行う。例えば、表示制御部101は、後述するラベリング画面を表示したり、このラベリング画面内における各種情報を表示したりする。
操作受付部102は、ユーザからの各種操作の入力を受け付ける。例えば、操作受付部102は、表示制御部101により表示されたラベリング画面における各種操作等を受け付ける。
データ入力部103は、時系列データ(ラベル付き時系列データも含む。)を入力する。ここで、データ入力部103は、例えばユーザ選択等に応じて、任意の形式の時系列データを入力することができる。
例えば、データ入力部103は、ラベリング装置10の補助記憶装置等に記憶されているファイルを読み込むことで、このファイルに格納されている時系列データを入力しても良いし、ラベリング装置10と通信ネットワークを介して接続される端末装置等からアップロードされたファイルを読み込むことで、このファイルに格納されている時系列データを入力しても良い。又は、例えば、データ入力部103は、ユーザにより記述又は選択されたSQLクエリによりデータベースサーバ等から時系列データを入力しても良い。なお、このとき、データ入力部103は、例えばJOIN操作等により、複数のデータベースサーバ等から時系列データを入力しても良い。
ラベル処理部104は、データ入力部103により入力された時系列データに対して、自動ラベリング又は手動ラベリングを行う。ここで、手動ラベリングとは、例えば、ユーザの操作により設定されたデータ又はユーザの操作により設定された範囲に属するデータに対してラベリングすることである。また、自動ラベリングとは、例えば、ユーザの操作により選択された時系列予測アルゴリズムとパラメータとを用いて、この時系列予測アルゴリズム及びパラメータから抽出されるデータに対してラベリングすることである。
自動ラベリングを用いることで、ユーザは、複数の時系列予測アルゴリズムの中から所望の時系列予測アルゴリズムを選択すると共に、選択した時系列アルゴリズムのパラメータを設定するだけで、時系列データに対して自動的にラベリングを行うことができるようになる。
統計量計算部105は、時系列データやラベルデータ等から所定の統計量を計算する。ここで、所定の統計量としては、例えば、時系列データのうちのラベルが付与されているデータ数とラベルが付与されていないデータ数との割合(百分率等)が挙げられる、また、これ以外にも、所定の統計量としては、例えば、時系列データのうちのラベルが付与されているデータの最小値や中央値、平均値、最大値等が挙げられる。同様に、例えば、時系列データのうちのラベルが付与されていないデータの最小値や中央値、平均値、最大値等が挙げられる。
統計量計算部105により計算された統計量を示す情報(以降、「統計量情報」とも表す。)は、表示制御部101により、ラベリング画面内に表示される。ラベリング画面内に表示された統計量情報を確認することで、ユーザは、時系列データをラベリングする際の参考とすることができる。
ラベル付与候補抽出部106は、ラベルが付与されているデータ(以降、「ラベル付与済みデータ」とも表す。)の選択とパラメータの設定とに応じて、データ入力部103により入力された時系列データの中からラベル付与の候補となるデータを抽出する。ラベル付与候補抽出部106は、例えば、時系列データの中から部分系列を作成した上で、この部分系列との距離に基づいて、ラベル付与の候補となるデータを抽出する。
ラベル付与候補抽出部106により抽出されたデータは、表示制御部101により、ラベル付与候補情報としてラベリング画面内に表示される。ラベリング画面内に表示されたラベル付与候補情報を確認することで、ユーザは、ラベル付与の候補となるデータを知ることができる。
データ出力部107は、時系列データ(ラベル付き時系列データも含む。)を出力する。ここで、データ出力部107は、例えばユーザの選択等に応じて、任意の形式で時系列データを出力することができる。
例えば、データ出力部107は、ラベリング装置10の補助記憶装置等に対して時系列データをファイルとして出力しても良いし、ラベリング装置10と通信ネットワークを介して接続されるサーバ装置等に時系列データをファイルとして出力しても良い。又は、例えば、データ出力部107は、データベースサーバ等に時系列データを出力しても良い。なお、データ出力部107は、時系列データ又はラベル付き時系列データではなく、ラベルデータのみを出力しても良い。
<ラベリング処理>
以降では、本発明の実施の形態におけるラベリング装置10が実行するラベリング処理について、図2を参照しながら説明する。図2は、本発明の実施の形態におけるラベリング処理の流れの一例を示すフローチャートである。
ステップS101:まず、表示制御部101は、例えばラベリングプログラム100の起動等に応じて、時系列データをラベリングするためのラベリング画面G100を表示する。ここで、ラベリング画面G100について、図3及び図4を参照しながら説明する。図3及び図4は、ラベリング画面G100の一例を示す図である。なお、図3に示すラベリング画面G100と図4に示すラベリング画面G100とは、例えば、スクロールバー等により画面をスクロールさせることで相互に遷移させることができる。ただし、これに限られず、図3に示すラベリング画面G100と図4に示すラベリング画面G100とは、例えば、ボタンの押下等によって相互に遷移させることができるものであっても良い。
ラベリング画面G100には、データ入力欄G110と、表示変数選択欄G120と、時系列データ(グラフ表示)欄G130と、拡大表示欄G140と、手動ラベリング(範囲指定)欄G150と、自動ラベリング欄G160と、ラベル付与又はラベル削除欄G170と、ラベル付与候補抽出欄G180と、データ出力欄G190と、時系列データ(リスト表示)欄G200と、統計量情報欄G210と、ラベル付与候補情報欄G220とが含まれる。
データ入力欄G110は、データ入力部103により時系列データを入力する際の入力方法の設定と実行とを行うためのエリアである。データ入力欄G110には、データ入力の方法を設定するための入力方法設定欄G111と、時系列データの入力を実行するための入力ボタンG112とが含まれる。ユーザは、入力方法設定欄G111において、例えば、ファイルを読み込んで時系列データを入力する、データベースから時系列データを入力する等の各種入力方法を設定することができる。
表示変数選択欄G120は、時系列データ(グラフ表示)欄G130にグラフとして表示される変数を選択するためのエリアである。ユーザは、表示変数選択欄G120において、時系列データに含まれる各データの変数のうち、時系列データ(グラフ表示)欄G130にグラフとして表示する変数(以降、「表示対象変数」とも表す。)を選択することができる。
時系列データ(グラフ表示)欄G130は、データ入力部103により入力された時系列データの或る変数(上記の表示変数選択欄G120で選択された表示対象変数)に関するグラフ(以降では、「時系列グラフ」とも表す。)が表示されるエリアである。拡大表示欄G140は、時系列データ(グラフ表示)欄G130に表示されている時系列グラフを拡大表示するためのエリアである。
手動ラベリング(範囲指定)欄G150は、ラベル処理部104により日時の範囲指定で手動ラベリングを行う際の日時の範囲を設定するためのエリアである。自動ラベリング欄G160は、ラベル処理部104により自動ラベリングを行う際の時系列予測アルゴリズムの選択とパラメータの設定とを行うためのエリアである。ラベル付与又はラベル削除欄G170は、ラベル値の設定と、手動ラベリング又は自動ラベリングの実行とを行うためのエリアである。
ラベル付与候補抽出欄G180は、ラベル付与候補抽出部106によりラベル付与候補を抽出する際のパラメータの設定と実行とを行うためのエリアである。
データ出力欄G190は、データ出力部107によりデータ(時系列データ、ラベル付き時系列データ又はラベルデータ等)を出力する際の出力方法の設定と実行とを行うためのエリアである。
時系列データ(リスト表示)欄G200は、データ入力部103により入力された時系列データに含まれる各データをリストとして表示されるエリアである。すなわち、時系列データ(リスト表示)欄G200は、時系列データに含まれる各データが、いわゆる生データとしてそのまま表示されるエリアである。
統計量情報欄G210は、統計量計算部105により計算された統計量が統計量情報として表示されるエリアである。ラベル付与候補情報欄G220は、ラベル付与候補抽出部106により抽出されたラベル付与候補がラベル付与候補情報として表示されるエリアである。
以上のように、ラベリング画面G100には、複数のエリアが含まれており、これらのエリアにおいて種々の操作や情報の参照等を行うことができる。これらの各エリアの詳細については後述する。なお、ラベリング画面G100におけるユーザの各種操作(例えば、入力操作や選択操作、設定操作等)は、操作受付部102により受け付けられる。
ステップS102:次に、データ入力部103は、ラベリング画面G100のデータ入力欄G110におけるユーザの操作に応じて、時系列データ(ラベル付き時系列データも含む。)を入力する。なお、データ入力部103により入力された時系列データは、記憶部201に記憶される。
ユーザは、データ入力欄G110の入力方法設定欄G111で所望の入力方法を設定した上で、入力ボタンG112を押下する操作を行うことで、この入力方法によって時系列データを入力することができる。なお、ユーザは、入力方法設定欄G111において入力方法を設定する際に、この入力方法に応じたパラメータも設定する。例えば、入力方法として「データベースから入力」を設定した場合には、該当のデータベースから時系列データを入力するためのSQLを記述又は選択する。また、例えば、入力方法として「ファイルから入力」を設定した場合には、該当のファイルの格納先アドレス等を指定又は選択する。
上記のステップS102で時系列データが入力されると、時系列データ(リスト表示)欄G200には、表示制御部101により時系列データに含まれる各データがリストとして表示される。
ステップS103:次に、操作受付部102は、ラベリング画面G100の表示対象変数の選択を受け付ける。ユーザは、表示変数選択欄G120に含まれる選択欄G121に変数を入力することで、表示対象変数を選択することができる。なお、選択欄G121に入力可能な変数は、上記のステップS102で入力された時系列データに含まれる各データの変数のうちのいずれか1つの変数である。例えば、時系列データに含まれる各データxtがxt=(v1,v2,v3)と表される場合、選択欄G121に入力可能な変数は、v1、v2及びv3のうちのいずれか1つの変数である。
また、時系列データがラベル付き時系列データある場合には、ラベル値を除く変数を選択欄G121に入力可能とする。例えば、ラベル付き時系列データに含まれる各データxtがxt=(v1,v2,v3,yt)で表される場合、選択欄G121に入力可能な変数は、v1、v2及びv3のうちのいずれか1つの変数である。
ただし、選択欄G121に対して2つ以上の変数を入力可能としても良い。この場合、時系列データ(グラフ表示)欄G130には、選択欄G121に入力された複数の表示対象変数に関するグラフがそれぞれ表示される。
上記のステップS103で表示対象変数が選択されると、時系列データ(グラフ表示)欄G130には、表示制御部101により時系列データの表示対象変数に関するグラフが表示される。すなわち、時系列データ(グラフ表示)欄G130には、当該時系列データの全時間区間のグラフG131と、或る時間区間のグラフG132とが含まれる。なお、グラフG131及びG132では、ラベル付与済みのデータに対して、例えば丸印等の目印が表示される。
ここで、グラフG132は、グラフG131の或る時間区間(例えば、ユーザにより指定された時間区間)を拡大表示したグラフである。ユーザは、拡大表示欄G140に含まれる開始日時入力欄G141に所望の開始日時を入力すると共に、終了日時入力欄G142に所望の終了日時を入力した上で、表示ボタンG143を押下することで、入力した開始日時から終了時間までの時間区間の時系列データをグラフG132として表示させることができる。ただし、開始日時<終了日時である。例えば、上記のステップS102で入力された時系列データがx={xt}(t=1,・・・,T)である場合、グラフG131は、x1,・・・,xTの隣接するデータ同士を線分で接続したグラフである。一方で、開始日時をts(≧1),終了日時をte(≦T)とした場合、グラフG132は、xts,・・・,xteの隣接するデータ同士を線分で接続したグラフである。なお、ユーザは、例えば、グラフG131から所望の時間区間を範囲指定等することにより、当該時間区間の時系列データをグラフG132として表示させることもできる。
以降のステップS104~ステップS107は、表示対象変数が選択された後に、ユーザの操作に応じて実行される。すなわち、手動ラベリングを行うための操作又は自動ラベリングを行うための操作をユーザが行った場合はステップS104~ステップS105が実行され、ラベル付与候補を抽出するための操作をユーザが行った場合はステップS106~ステップS107が実行される。また、これらのステップS104~ステップS107は、ラベリング後の時系列データを出力するための操作が行われるまで任意の回数繰り返し実行することができる。
ステップS104:手動ラベリングを行うための操作(以降では、「手動ラベリング操作」と表す。)又は自動ラベリングを行うための操作(以降では、「自動ラベリング操作」と表す。)がユーザにより行われた場合、操作受付部102は、当該操作を受け付ける。そして、ラベル処理部104は、手動ラベリング又は自動ラベリングによりラベル付与又はラベル削除を行う。
ここで、ユーザは、以下の操作により手動ラベリング操作又は自動ラベリング操作を行うことができる。
(手動ラベリング操作)
ユーザは、手動ラベリング(範囲指定)欄G150に含まれる開始日時入力欄G151に所望の開始日時を入力すると共に、終了日時入力欄G152に所望の終了日時を入力する。ただし、開始日時<終了日時である。そして、ラベル付与を行う場合には、ユーザは、ラベル付与又はラベル削除欄G170に含まれる手動/自動区分選択欄G171で「手動」を選択すると共に、ラベル入力欄G172に所望のラベル値を入力した上で、ラベリングボタンG173を押下する。一方で、ラベル削除を行う場合には、ユーザは、ラベル付与又はラベル削除欄G170に含まれる手動/自動区分選択欄G171で「手動」を選択した上で、削除ボタンG174を押下する。
これにより、ユーザは、手動ラベリング操作を行うことができる。手動ラベリング操作が行われることで、時系列データに含まれる各データのうち、開始日時から終了日時までの時間区間に含まれるデータのラベリングが行われる。すなわち、ラベル付与の場合には、当該時間区間に含まれるデータに対して、当該ラベル値のラベルが付与される。一方で、ラベル削除の場合には、当該時間区間に含まれるデータからラベルが削除される。
なお、ユーザは、例えば、時系列データ(グラフ表示)欄G130に表示されているグラフG132中のデータを、マウス等のポインティングデバイスで選択することで手動ラベリング操作を行うことができても良い。このとき、ラベル付与の場合には、ユーザは、例えば、ラベル入力欄G172に所望のラベル値を入力した上で、グラフG132中の所望のデータを、ポインティングデバイスで選択すれば良い。一方で、ラベル削除の場合には、ユーザは、例えば、ラベル入力欄G172には何も入力されていない状態(ブランクの状態)で、グラフG132中の所望のデータを、ポインティングデバイスで選択すれば良い。又は、グラフG132中の所望のデータを、例えばポインティングデバイスでダブルクリックすること等によってラベル削除が行われても良い。
(自動ラベリング操作)
ユーザは、自動ラベリング欄G160に含まれるアルゴリズム選択欄G161から所望の時系列予測アルゴリズム(又は時系列アルゴリズムの組み合わせ)を選択すると共に、選択した時系列予測アルゴリズム(又は時系列アルゴリズムの組み合わせ)でのデータ抽出に必要なパラメータをパラメータ設定欄G162に設定する。そして、ラベル付与を行う場合には、ユーザは、ラベル付与又はラベル削除欄G170に含まれる手動/自動区分選択欄G171で「自動」を選択すると共に、ラベル入力欄G172に所望のラベル値を入力した上で、ラベリングボタンG173を押下する。一方で、ラベル削除を行う場合には、ユーザは、ラベル付与又はラベル削除欄G170に含まれる手動/自動区分選択欄G171で「自動」を選択した上で、削除ボタンG174を押下する。
これにより、ユーザは、自動ラベリング操作を行うことができる。自動ラベリング操作が行われることで、ユーザにより選択された時系列予測アルゴリズム(又は時系列アルゴリズムの組み合わせ)によりデータが抽出された上で、時系列データに含まれる各データうち、抽出されたデータがラベリングされる。なお、アルゴリズム選択欄G161で選択可能な時系列予測アルゴリズムとしては、例えば、Prophet、ARIMA、Singular Spectrum Transformation、Moving Average等が挙げられる。ただし、アルゴリズム選択欄G161で選択可能な時系列予測アルゴリズムは、これらに限られず、時系列データを予測可能なアルゴリズムであれば任意のアルゴリズムがアルゴリズム選択欄G161で選択可能とすることができる。
なお、上記の手動ラベリング操作及び自動ラベリング操作では、手動/自動区分選択欄G171で「手動」又は「自動」のいずれかをユーザが選択したが、この選択操作を不要としても良い。この場合、例えば、ユーザによりラベリングボタンG173又は削除ボタンG174が押下された場合に、ラベル処理部104が「手動」又は「自動」のいずれであるかを判別すれば良い。このとき、例えば、手動ラベリング(範囲指定)欄G150に含まれる開始日時入力欄G151及び終了日時入力欄G152に開始日時及び終了日時がそれぞれ設定されている場合は「手動」と判別する一方で、アルゴリズム選択欄G161で時系列予測アルゴリズムが選択されていると共にパラメータ設定欄G162にパラメータが設定されている場合は「自動」と判別すれば良い。
ここで、上記のステップS104のラベル付与又はラベル削除(すなわち、ラベリング)の処理の流れについて、図5を参照しながら説明する。図5は、本発明の実施の形態におけるラベル付与又はラベル削除の流れの一例を示すフローチャートである。この処理は、手動ラベリング操作又は自動ラベリング操作の何れかの操作を操作受付部102が受け付けた場合に実行される。
ステップS201:まず、ラベル処理部104は、操作受付部102が受け付けた操作が手動ラベリング操作又は自動ラベリング操作のいずれであるかを判定する。この判定結果が手動ラベリング操作である場合、ラベル処理部104は、ステップS202に進む。一方で、この判定結果が自動ラベリング操作である場合、ラベル処理部104は、ステップS203に進む。
ステップS202:ラベル処理部104は、手動ラベリング操作で選択されたデータにしてラベル付与又はラベル削除を行う。すなわち、ラベル付与の場合、ラベル処理部104は、開始日時入力欄G151に入力された開始日時から、終了日時入力欄G152に入力された終了日時までの間の時間区間に含まれるデータに対して、ラベル入力欄G172に入力されたラベル値を付与する。これにより、ラベリング対象のデータxt(すなわち、手動ラベリング操作で選択されたデータxt)に対してラベルytが付与される。なお、このラベルytは記憶部201に記憶される。
一方で、ラベル削除の場合、ラベル処理部104は、開始日時入力欄G151に入力された開始日時から、終了日時入力欄G152に入力された終了日時までの間の時間区間に含まれるデータに付与されているラベルを削除する。これにより、ラベリング対象のデータxt(すなわち、手動ラベリング操作で選択されたデータxt)からラベルytが削除される。
なお、ラベルを削除することは、ラベル値を所定の値に更新又は上書きすることであっても良い。例えば、ラベル値が「0」又は「1」の2値であり、ラベル値「0」が正常データを表し、ラベル値「1」が異常データを表すような場合、ラベルの削除は、ラベル値「1」のラベルが付与されているデータのラベル値を「0」に更新又は上書きすることであっても良い。
ステップS203:ラベル処理部104は、自動ラベリング操作で選択された時系列予測アルゴリズム(又は時系列アルゴリズムの組み合わせ)と、この時系列予測アルゴリズム(又は時系列アルゴリズムの組み合わせ)でのデータ抽出に必要なパラメータとによりラベリング対象のデータを抽出する。
ここで、時系列の予測値と信頼区間とが出力される時系列予測アルゴリズムが選択された場合に、ラベル処理部104がラベリング対象のデータを抽出する例について説明する。なお、時系列の予測値と信頼区間とが出力される時系列予測アルゴリズムとしては、例えば、Prophet等が挙げられる。
この場合、時系列予測アルゴリズムは、時系列データx={xt}(t=1,・・・,T)を入力として、予測値の時系列データ{^xt}(t=1,・・・,T)と、信頼区間{ut}及び{lt}とを出力する。ここで、ut及びltは、それぞれ予測値^xtの信頼区間の上限及び下限である。また、予測値であることを示すハット「^」は、便宜上、文字の頭上ではなく、文字の直前に記載する。
このとき、ラベル処理部104は、例えば、x1,・・・xTのうち、xt>ut又はlt>xtのいずれかを満たすxtをラベリング対象のデータとして抽出すれば良い。なお、この例の場合、ユーザは、パラメータの設定が不要である。
ただし、これに限られず、例えば、当該時系列予測アルゴリズムのパラメータとして閾値θがユーザにより設定された場合には、この閾値を用いてラベリング対象のデータを抽出しても良い。例えば、xt-ut>θ又はlt-xt>θのいずれかを満たすxtをラベリング対象のデータとして抽出しても良い。又は、例えば、|xt-^xt|>θを満たすxtをラベリング対象のデータとして抽出しても良い。なお、このとき、パラメータとして重みが設定されても良い。例えば、重みa(0<a≦1)が設定された場合、|xt-a×^xt|>θを満たすxtをラベリング対象のデータとして抽出するようにすれば良い。
また、時系列予測アルゴリズムの組み合わせがユーザにより選択された場合、複数の時系列予測アルゴリズムからラベリング対象のデータが抽出される。例えば、第1の時系列予測アルゴリズムと第2の時系列予測アルゴリズムとの組み合わせが選択された場合、第1の時系列予測アルゴリズムによる予測値の時系列データ{^x´t}(t=1,・・・,T)と、第2の時系列予測アルゴリズムによる予測値の時系列データ{^x´´t}(t=1,・・・,T)とを用いて、|xt-(a×^x´t+b×^x´´t)|>θを満たすxtをラベリング対象のデータとして抽出すれば良い。なお、a、b、θはユーザにより設定されたパラメータであり、a、bは第1の時系列予測アルゴリズムと第2の時系列予測アルゴリズムとの重みであり、例えば、a+b=1、a≧0、b≧0を満たすものである。
上記以外にも、例えば、第1の時系列予測アルゴリズムと第2の時系列予測アルゴリズムとが信頼区間を出力する場合には、第1の時系列予測アルゴリズムが出力する信頼区間を{u´t}及び{l´t}、第2の時系列予測アルゴリズムが出力する信頼区間を{u´´t}及び{l´´t}として、xt>(u´t+u´´t)/2又は(l´t+l´´t)/2>xtのいずれかを満たすxtをラベリング対象のデータとして抽出しても良い。また、時系列予測アルゴリズムの組み合わせは2つに限られず、3つ以上の時系列予測アルゴリズムの組み合わせであっても良い。
なお、上記では、時系列予測アルゴリズムを用いてラベリング対象のデータを抽出する場合について説明したが、例えば、ユーザにより設定された閾値θと、時系列データx={xt}(t=1,・・・,T)との比較によってラベリング対象のデータを抽出しても良い。例えば、xt>θを満たすxtをラベリング対象のデータとして抽出する(又は、xt<θを満たすxtをラベリング対象のデータとして抽出する)等としても良い。
また、ラベル入力欄G172に設定されたラベル値に応じて、ラベリング対象のデータを抽出する条件を変更しても良い。例えば、上記の信頼区間が出力される時系列予測アルゴリズムを用いる場合に、ラベル値が「0」であるときはxt>utを満たすか否かを判定し、ラベル値が「1」であるときはlt>xtを満たすか否かを判定する、等である。又は、例えば、予め決められた閾値と時系列データx={xt}とを比較する場合に、ラベル値が「0」であるときは、閾値θ0を用いて、xt>θ0を満たすか否かを判定し、ラベル値が「1」であるときは、閾値θ1を用いて、xt>θ1を満たすか否かを判定する、等である。 ステップS204:ラベル処理部104は、上記のステップS203で抽出されたデータに対してラベル付与又はラベル削除を行う。すなわち、ラベル付与の場合、ラベル処理部104は、上記のステップS203で抽出されたデータに対して、ラベル入力欄G172に入力されたラベル値を付与する。これにより、ラベリング対象のデータxt(すなわち、上記のステップS203で抽出されたデータxt)に対してラベルytが付与される。なお、このラベルytは記憶部201に記憶される。
一方で、ラベル削除の場合、ラベル処理部104は、上記のステップS203で抽出されたデータに付与されているラベルを削除する。これにより、ラベリング対象のデータxt(すなわち、上記のステップS203で抽出されたデータxt)からラベルytが削除される。
なお、上記でラベル付与を行う際に、上記のステップS203で抽出されたデータに既にラベルが付与されている場合も有り得る。この場合、既に付与されているラベルを更新又は上書きしても良い。すなわち、ラベリングボタンG173の押下操作は、ラベル付与だけでなく、ラベルの更新又は上書きをするための操作を意味しても良い。また、ラベルの更新又は上書きだけでなく、上記のステップS203で抽出されたデータに対して追加でラベルを付与しても良い。また、既にラベルが付与されているデータは、上記のステップS203で抽出されないようにしても良い。この場合に、(1)既に付与されているラベルを更新又は上書きするか、(2)追加でラベルを付与するか、(3)既にラベルが付与されているデータが抽出されないようにするか、の(1)~(3)のいずれとするかは、例えば、ユーザにより選択されても良い。
また、上記でラベル付与を行う際に、上記のステップS203で抽出されたデータに対して、ラベル入力欄G172に設定されたラベル値を付与したが、これに限られず、例えば、ラベル入力欄G172へのラベル値の入力操作を不要とし、上記のステップS203で抽出されたデータに応じてラベル値を付与しても良い。この場合、例えば、信頼性区間が出力される時系列予測アルゴリズムでは、xt-utの値又はlt-xtの値に応じたラベル値をxtに付与することが考えられる。具体的には、例えば、δt=xt-utとして、δtが或る範囲内の場合はラベル値「1」、別の或る範囲内の場合はラベル値「2」等のように、データに付与するラベル値を決定することが考えられる。同様に、例えば、ユーザにより設定された閾値θとxtとの比較によってラベル値を決定する場合もθとxtとの差に応じたラベル値をxtに付与することが考えられる。
また、上述したように、ラベルを削除することは、ラベル値を所定の値に更新又は上書きすることであっても良い。例えば、ラベル値が「0」又は「1」の2値であり、ラベル値「0」が正常データを表し、ラベル値「1」が異常データを表すような場合、ラベルの削除は、ラベル値「1」のラベルが付与されているデータのラベル値を「0」に更新又は上書きすることであっても良い。
図2に戻る。ステップS105:統計量計算部105は、時系列データやラベルデータ等から所定の統計量を計算する。そして、表示制御部101は、統計量計算部105により計算された統計量で、統計量情報欄G210に表示されている統計量情報を更新する。
ここで、図4に示す統計量情報欄G210には、時系列データのうちのラベル値「0」のラベルが付与されているデータ数と、ラベル値「1」のラベルが付与されているデータ数との割合が円グラフとして表示されているが、これは一例であって、統計量情報欄G210には、統計量計算部105により計算された任意の統計量が任意の形式で表示される。例えば、円グラフとして、ラベル値「0」のラベルが付与されているデータ数と、ラベル値「1」のラベルが付与されているデータ数と、ラベルが付与されていないデータ数(この場合のラベルが付与されていないデータとは、ラベル値自体が付与されていないデータのことである。)との割合が表示されても良い。また、円グラフ以外にも、例えば、統計量計算部105により計算された統計量が、ラベルが付与されているデータ及びラベルが付与されていないデータそれぞれの最小値、中央値、平均値、最大値等である場合、統計量情報欄G210には、ラベルが付与されているデータに関する箱ひげ図と、ラベルが付与されていないデータに関する箱ひげ図とが表示されていても良い。
ステップS106:ラベル付与候補を抽出するための操作(以降、「ラベル付与候補抽出操作」とも表す。)がユーザにより行われた場合、操作受付部102は、当該操作を受け付ける。そして、ラベル付与候補抽出部106は、データ入力部103により入力された時系列データの中からラベル付与の候補となるデータを抽出する。
ここで、ユーザは、ラベル付与候補抽出欄G180において、ラベル付与候補の抽出に必要なパラメータを設定すると共に、グラフG132の中から基準となるデータ(以降、「基準データ」と表す。)を選択した上で、抽出ボタンG185を押下することで、ラベル付与候補抽出操作を行うことができる。これらのパラメータは、例えば、距離選択欄G181と、ターゲットポイント選択欄G182と、時間長設定欄G183と、出力数設定欄G184とで設定することができる。また、基準データとしては、ラベル付与済みのデータの中から1つのデータが選択される。
距離選択欄G181では、ラベル付与候補の抽出に用いられる距離が選択される。距離選択欄G181で選択可能な距離としては、例えば、DTW(Dynamic Time Warping)やユークリッド距離等が挙げられる。これら以外にも、例えば、フーリエ変換距離や自己回帰係数距離等が選択可能であっても良い。
ターゲットポイント選択欄G182では、時間長設定欄G183で設定された時間長の部分系列を作成する際に、部分系列中の基準位置が選択される。ターゲットポイント選択欄G182で設定可能な基準位置としては、「First」、「Center」、「Last」等がある。
時間長設定欄G183には、部分系列の長さを示す時間長が設定される。ここで、本発明の実施の形態では、時間長は時系列データx={xt}のインデックスの長さで表されるものとする。ただし、時間長は、インデックスの長さに限られず、例えば、時間幅等で表されても良い。
出力数設定欄G184には、ラベル付与候補抽出部106により抽出されるデータ数が設定される。
ここで、上記のパラメータと基準データxt´とを用いて、時系列データx={xt}(t=1,・・・,T)の中からラベル付与候補を抽出する場合について説明する。なお、一例として、上記のパラメータのうち、時間長はL、出力数はNであるものとする。
まず、ラベル付与候補抽出部106は、基準データxt´を基準位置に含む時間長Lの部分系列を作成する。例えば、基準位置が「First」である場合、ラベル付与候補抽出部106は、基準データxt´が先頭にある時間長Lの部分系列を作成する。また、例えば、基準位置が「Center」である場合、ラベル付与候補抽出部106は、基準データxt´が中心にある時間長Lの部分系列(すなわち、例えば、L/2(L:偶数)番目又は(L+1)/2(L:奇数)番目に基準データxt´がある時間長Lの部分系列)を作成する。また、例えば、基準位置が「Last」である場合、ラベル付与候補抽出部106は、基準データxt´が末尾にある時間長Lの部分系列を作成する。以降では、基準データxt´が含まれる部分系列を「基準部分系列」と表す。
次に、ラベル付与候補抽出部106は、時系列データのうちのラベル付与済みでないデータを基準位置に含む時間長Lの部分系列(以降、「対象部分系列」と表す。)と、基準部分系列との距離を計算する。例えば、時系列データのうちのラベル付与済みでないデータの日時tの集合をSとすれば、例えば、ラベル付与済みでないデータを基準位置「First」に含む対象部分系列は、t∈Sとして、xt,・・・,xt+L-1で表される。同様に、例えば、ラベル付与済みでないデータを基準位置「Last」に含む対象部分系列は、t∈Sとして、xt-L+1,・・・,xtで表される。したがって、ラベル付与候補抽出部106は、各t∈Sについて、これらの対象部分系列と基準部分系列との距離を計算する。
そして、ラベル付与候補抽出部106は、基準部分系列との距離が小さい順に上位N個の対象部分系列を特定し、特定した対象部分系列の基準位置にあるデータを抽出する。これにより、ラベル付与の候補となるデータが抽出される。これは、基準部分系列と距離が小さい対象部分系列の基準位置にあるデータには、基準データと同様のラベルを付与することができる(又は基準データと同様のラベルが付与される可能性が高い)と考えられるためである。
ステップS107:表示制御部101は、上記のステップS106で抽出されたデータ(ラベル付与候補)で、ラベル付与候補情報欄G220に表示されているラベル付与候補情報を更新する。
ここで、図4に示すラベル付与候補情報欄G220には、「候補」として、上記のステップS106で抽出された上位3件のデータが表示されている。なお、「距離」は、当該データが含まれる対象部分系列と基準部分系列との距離である。また、「基準データ日時」及び「基準データラベル」は、それぞれ基準データの日時及びラベル値である。
なお、表示制御部101は、更に、上記のステップS106で抽出されたデータを示す情報を時系列データ(グラフ表示)欄G130に表示しても良い。例えば、グラフG132において、当該抽出されたデータの日時に縦線を表示したり、目立つ態様のアイコン等を表示したりしても良い。これにより、ユーザは、ラベル付与候補を示すデータがグラフG132上のどのデータであるのかを視覚的に容易に知ることができるようになる。
ステップS108:最後に、データ出力部107は、ラベリング画面G100のデータ出力欄G190におけるユーザの操作に応じて、ラベリング後の時系列データを記憶部201から出力する。
ユーザは、データ出力欄G190の出力方法設定欄G191で所望の出力方法を設定した上で、出力ボタンG192を押下する操作を行うことで、この出力方法によってラベリング後の時系列データを入力することができる。ここで、ラベリング後の時系列データは、ラベル付き時系列データであっても良いし、時系列データとラベルデータとの組であっても良い。また、データ出力部107は、ラベルデータのみを出力しても良い。
なお、ユーザは、出力方法設定欄G191において出力方法を設定する際に、この出力方法に応じたパラメータも設定する。例えば、出力方法として「データベースへ出力」を設定した場合には、該当のデータベースを指定又は選択する。また、例えば、出力方法として「ファイルへ出力」を設定した場合には、該当のファイルの格納先アドレス等を指定又は選択する。
<ラベリング装置10のハードウェア構成>
次に、本発明の実施の形態におけるラベリング装置10のハードウェア構成について、図6を参照しながら説明する。図6は、本発明の実施の形態におけるラベリング装置10のハードウェア構成の一例を示す図である。
図6に示すように、本発明の実施の形態におけるラベリング装置10は、入力装置301と、表示装置302と、外部I/F303と、RAM(Random Access Memory)304と、ROM(Read Only Memory)305と、CPU306と、通信I/F307と、補助記憶装置308とを有する。これら各ハードウェアは、それぞれがバスBを介して通信可能に接続されている。
入力装置301は、例えばキーボードやマウス、タッチパネル等であり、ユーザが各種操作を入力するのに用いられる。表示装置302は、例えばディスプレイ等であり、ラベリング装置10の処理結果を表示する。
外部I/F303は、外部装置とのインタフェースである。外部装置には、記録媒体303a等がある。ラベリング装置10は、外部I/F303を介して、記録媒体303a等の読み取りや書き込みを行うことができる。記録媒体303aには、ラベリングプログラム100等が記録されていても良い。
記録媒体303aとしては、例えば、フレキシブルディスク、CD(Compact Disc)、DVD(Digital Versatile Disk)、SDメモリカード(Secure Digital memory card)、USB(Universal Serial Bus)メモリカード等が挙げられる。
RAM304は、プログラムやデータを一時保持する揮発性の半導体メモリである。ROM305は、電源を切ってもプログラムやデータを保持することができる不揮発性の半導体メモリである。ROM305には、例えば、OS(Operating System)に関する設定情報や通信ネットワークに関する設定情報等が格納されている。
CPU306は、ROM305や補助記憶装置308等からプログラムやデータをRAM304上に読み出して、各種の処理を実行する演算装置である。
通信I/F307は、ラベリング装置10を通信ネットワークに接続するためのインタフェースである。ラベリングプログラム100は、通信I/F307を介して、所定のサーバ等から取得(ダウンロード)されても良い。
補助記憶装置308は、例えばHDD(Hard Disk Drive)やSSD(Solid State Drive)等であり、プログラムやデータを格納している不揮発性の記憶装置である。補助記憶装置308に格納されているプログラムやデータには、例えば、OS、アプリケーションプログラム、ラベリングプログラム100等がある。なお、記憶部201は、例えば、補助記憶装置308等により実現される。
本発明の実施の形態におけるラベリング装置10は、図6に示すハードウェア構成を有することにより、上述した各種処理を実現することができる。なお、図6に示す例では、ラベリング装置10が1台のコンピュータで実現される場合のハードウェア構成を示したが、これに限られず、ラベリング装置10は複数台のコンピュータで実現されていても良い。
<まとめ>
以上のように、本発明の実施の形態におけるラベリング装置10は、ラベリング画面G100上で、ユーザの操作によって自動又は手動で時系列データのラベリング(ラベル付与又はラベル削除)を行うことができる。特に、本発明の実施の形態におけるラベリング装置10では、時系列予測アルゴリズムにより時系列データを自動でラベリングすることができる。このため、時系列データに対して効率的なラベリングを行うことができるようになる。すなわち、時系列データに対して、高速に高い精度でラベリングを行うことができるようになる。
また、本発明の実施の形態におけるラベリング装置10は、ラベリング画面G100内に統計量情報やラベル付与候補情報等を表示する。したがって、ユーザは、これらの情報を参考にして、時系列データに対するラベリング結果が妥当か否かを確認したり、ラベルの付与漏れが無いかを確認したりすること等ができるようになる。
本発明は、具体的に開示された上記の実施形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。