JP6346378B2 - データの管理装置及びデータの管理方法 - Google Patents
データの管理装置及びデータの管理方法 Download PDFInfo
- Publication number
- JP6346378B2 JP6346378B2 JP2017525714A JP2017525714A JP6346378B2 JP 6346378 B2 JP6346378 B2 JP 6346378B2 JP 2017525714 A JP2017525714 A JP 2017525714A JP 2017525714 A JP2017525714 A JP 2017525714A JP 6346378 B2 JP6346378 B2 JP 6346378B2
- Authority
- JP
- Japan
- Prior art keywords
- cluster
- data
- time
- sensor
- block
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Testing And Monitoring For Control Systems (AREA)
Description
本発明は、時系列のビッグデータを分析する技術に関する。
近年、IoT(Internet of Things)やICT(Information and Communication Technology)という言葉に象徴される様に、様々な機器がネットワークに接続され、相互にデータ通信や制御を行えるようになってきた。例えば、電力の分野では各家庭の家電機器に取り付けた電力センサの時系列データを収集して、家電制御のスケジューリングに活用し、電力の全体需要の予測を行っている。あるいは、交通の分野では、各車両に取り付けた加速度センサの時系列データを収集して、道路整備の計画に活用したり、保険料策定の指針に用いている。
これらの大量のセンサから出力される時系列データの分析においては、センサのグループ化が重要となる。例えば、電力計などのセンサによる電力分析においては、朝食時の各家庭をまとめて消費電力の分布を作成したり、交通分析においては、初心者の車をまとめて急ブレーキの分布を作成することができる。
従来、センサのグループはドメイン知識を基に固定的な集合として管理されていた。なお、ドメイン知識とは、特定の技術分野における専門知識を示す。例えば、特定の地区の家庭のセンサや、特定の車種の車両のセンサなどである。しかし、実際の分析に用いるグループの多くは時間の経過とともに変化する。例えば、ある時刻における朝食時の家庭の消費電力は刻々と変化する。あるいは、ある時刻における初心者の車両は運転者の交代や熟練によって変化する。
これに対して、単純に各時刻における各センサのクラスタのデータを管理する方法が考えられる。しかしこの方法では、センサからのデータ量や期間に応じて大量のデータが発生することとなり、データ量の逼迫や、分析における検索の遅延といった問題が生じる。よって、クラスタ時系列を少ないデータ量で分析に有用に管理することが課題となる。
クラスタ時系列を管理する従来技術としては、クラスタの時間変化を表す時間変化情報をIRM(Infinite Relational Model)のモデルパラメータに導入する技術が提案されている(例えば、特許文献1)。
上記特許文献1に記載の従来技術は、ある時点におけるクラスタに時間変化を適用することで目的の時刻のクラスタを得る方法である。そのため、未計測時刻におけるクラスタの推定に効果を期待できる。
しかし、既計測時刻におけるクラスタの管理という観点では、特に時間変化の多い時系列データにおいて、少ないデータ量で精度の高いモデルを構築しにくいという課題があった。
本発明は、プロセッサとメモリを含んでセンサが出力したセンサデータを受け付けるデータの管理装置であって、前記センサデータの値を予め設定したクラスタに分類し、前記センサデータの時刻と前記センサの識別子と前記クラスタとを含むクラスタデータを生成するクラスタデータ生成部と、前記クラスタデータから、前記センサの識別子を要素とするセンサ軸方向と、前記センサデータの時刻を要素とする時刻軸方向と、からなる配列要素に前記クラスタを格納する2次元配列を生成し、前記2次元配列から、時刻軸方向でセンサ軸方向の配列要素を並べ替えたブロックを生成し、出現比率が最大となるクラスタを代表値とする1以上のブロックから前記時刻を含む時刻集合ごとに、前記センサの識別子を含むセンサ集合を含むクラスタブロックを生成して、クラスタブロックデータに格納するブロックデータ生成部と、を含む。
本発明によれば、取得したデータを、複数の値が含まれるブロックに並べかえて代表値で管理することで、少ないデータ量で精度の高いモデル(またはデータの集合)を生成することができる。また、高い圧縮効果を得ることができる。また、あるクラスタを持つセンサ集合と時刻集合の検索や、センサ集合と時刻集合におけるクラスタの割合の算出などが容易となり、分析が高速に行える。また、純粋度を管理することで、データ圧縮の精度の保証や計算完了データの切り分けが可能となる。
以下、本発明の一実施形態について添付図面を用いて説明する。
図1は、本発明を適用する計算機システムの基本構成を示すブロック図である。計算機システムはクラスタ生成装置100と、クラスタ時系列管理装置120と、から構成され、これらの装置はネットワーク110で相互に接続されている。ネットワーク110とは、企業内のLAN(Local Area Network)やLAN間を接続するWAN(Wide Area Network)やISP(Internet Service Provider)によるインターネット接続などを指す。なお、クラスタ生成装置100とクラスタ時系列管理装置120は同一のハードウェア(計算機またはプロセッサとメモリを含む装置)として構成されても良いし、複数のハードウェアとして構成されても良い。
クラスタ生成装置100はプロセッサ101と、メモリ102と、センサ群103と、記憶装置104と、ネットワークインターフェース105とを含み、これらの構成要素は内部バス等により相互に接続されている。
なお、これらの構成要素は構成により一部欠けても良いし、同様の要素や入出力装置などを追加しても良い。また、記憶装置104はメモリ102に含まれても良いし、外部記憶装置で代替しても良い。また、センサ群103は、1以上のセンサを含み、内部バスの他に、有線ネットワークや無線ネットワークを介して接続されても良い。
プロセッサ101は、メモリ102に格納されたプログラムを実行する処理部であり、CPU(Central Processing Unit)やMPU(Micro-Processing Unit)などを採用することができる。
メモリ102はプロセッサ101で実行されるプログラムや、プログラムから参照、更新するデータを一時的に記憶する主記憶部であり、RAM(Random Access Memory)や一部ROM(Read Only Memory)などを指す。
センサ群103は、自然現象や人工物の性質や時空間情報を、科学的原理によりクラスタ生成装置100が解釈可能な信号に置き換える変換部であり、電力センサや加速度センサなどで構成することができる。
記憶装置104はメモリ102を介してプロセッサ101で実行されるプログラムや、プログラムが使用するデータを継続的に記憶する補助記憶部であり、HDD(Hard Disk Drive)やSSD(Solid State Drive)などで構成することができる。
ネットワークインターフェース105は、クラスタ生成装置100とクラスタ時系列管理装置120とを接続するために利用される通信部であり、ネットワーク110を介してデータの送受信を行うためのインターフェースを指す。
クラスタ時系列管理装置120は、プロセッサ121と、メモリ122と、ネットワークインターフェース123と、入力装置124と、出力装置125と、記憶装置126とを含み、これらの構成要素は内部バスにより相互に接続されている。これらの構成要素は構成により一部欠けても良いし、同様の要素やセンサ群などを追加しても良い。また、記憶装置126はメモリ122に含まれても良いし、外部記憶装置で代替しても良い。
プロセッサ121、メモリ122、ネットワークインターフェース123、記憶装置126はそれぞれ、プロセッサ101、メモリ102、ネットワークインターフェース105、記憶装置104の同名の装置と同様である。
入力装置124は、キーボードやマウスなどで構成され、プログラムの実行や停止の指示や情報の入力を行うのに利用される。出力装置125には、ディスプレイやプリンタなどが接続され、プログラムの実行結果の表示を行う。
図2は本発明の第1の実施例であるクラスタ時系列データをクラスタブロックデータとして保管するための計算機システムの機能要素を示したブロック図である。
まず、クラスタ生成装置100の構成について説明する。クラスタ生成装置100のメモリ102には、センサデータ記録部210と、クラスタデータ生成部211と、クラスタデータ読出部212のプログラムが格納されている。
記憶装置104には、センサ時系列データ200と、クラスタモデルデータ201と、クラスタデータ202と、が格納されている。ネットワークインターフェース105はクラスタデータ送信部220を含む。
クラスタ生成装置100におけるプログラムとデータの関係は以下の通りである。まず、センサデータ記録部210がセンサ群103を介してセンサ時系列データ200を生成する。
次にクラスタデータ生成部211が、センサ時系列データ200とクラスタモデルデータ201を基にクラスタデータ202を後述するように生成する。最後にクラスタデータ読出部212がクラスタデータ202を、クラスタデータ送信部220からクラスタ時系列管理装置120へ送信する。クラスタデータ読出部212は、送信後にクラスタデータ202のレコードを削除する。なお、これらのプログラムは互いに包含関係にあってもよいし、あるいは独立関係にあってもよい。また、クラスタモデルデータ201はセンサ時系列データ200を基にクラスタデータ生成部211によって生成されても良い。
センサデータ記録部210と、クラスタデータ生成部211と、クラスタデータ読出部212の各機能部はプログラムとして記憶装置104からメモリ102にロードされる。
プロセッサ101は、各機能部のプログラムに従って処理することによって、所定の機能を提供する機能部として稼働する。例えば、プロセッサ101は、センサデータ記録プログラムに従って処理することセンサデータ記録部210として機能する。他のプログラムについても同様である。さらに、プロセッサ101は、各プログラムが実行する複数の処理のそれぞれの機能を提供する機能部としても稼働する。計算機及び計算機システムは、これらの機能部を含む装置及びシステムである。
次に、クラスタ時系列管理装置120の構成について説明する。クラスタ時系列管理装置120のメモリ122には、クラスタデータ記録部240と、ブロックデータ生成部241と、クラスタデータ保管部242のプログラムが格納されている。
記憶装置126には、クラスタ時系列データ250と、クラスタブロックデータ251と、保管クラスタ時系列データ252が格納されている。ネットワークインターフェース123はクラスタデータ受信部230を含む。
クラスタ時系列管理装置120におけるプログラムとデータの関係は以下の通りである。まず、クラスタデータ記録部240がクラスタデータ202を、クラスタデータ受信部230を介してクラスタ生成装置100から受信し、クラスタデータ202からクラスタ時系列データ250を後述するように生成する。
次に、ブロックデータ生成部241が、クラスタ時系列データ250を基に、複数のクラスタが含まれるブロックとしてのクラスタブロックデータ251を生成する。ブロックデータ生成部241は、クラスタブロックデータ251を生成するとクラスタ時系列データ250のレコードを削除する。
最後に、クラスタデータ保管部242がクラスタ時系列データ250から保管クラスタ時系列データ252へレコードを移す。これらのプログラムは互いに包含関係にあってもよく、あるいいは独立関係にあってもよく、呼出しの順序やタイミングも適宜変更することができる。
クラスタデータ記録部240と、ブロックデータ生成部241と、クラスタデータ保管部242の各機能部はプログラムとして記憶装置126からメモリ122にロードされる。
プロセッサ121は、各機能部のプログラムに従って処理することによって、所定の機能を提供する機能部として稼働する。例えば、プロセッサ121は、クラスタデータ保管部プログラムに従って処理することクラスタデータ保管部242として機能する。他のプログラムについても同様である。さらに、プロセッサ121は、各プログラムが実行する複数の処理のそれぞれの機能を提供する機能部としても稼働する。計算機及び計算機システムは、これらの機能部を含む装置及びシステムである。
なお、クラスタ生成装置100とクラスタ時系列管理装置120の各機能を実現するプログラム、テーブル等の情報は、記憶装置104、126などのストレージサブシステムや不揮発性半導体メモリ、ハードディスクドライブ、SSD(Solid State Drive)等の記憶デバイス、または、ICカード、SDカード、DVD等の計算機読み取り可能な非一時的データ記憶媒体に格納することができる。
本実施例の、クラスタ時系列は、ひとつのクラスタに含まれるセンサの識別子が、時刻に応じて変化する場合に、時刻毎のクラスタの構成要素を指す。
図3はセンサ群103によって計測されてセンサデータ記録部210によって生成されるセンサ時系列データ200の構成の一例を示す図である。センサ時系列データ200は所定の計測間隔毎にセンサの数に応じて図示の様なレコード310が生成される。
各レコードは、時刻300と、センサ301と、センサ値302のカラムをひとつのエントリに含む。時刻300は当該レコードの生成時刻を表したものである。時刻300は、図中では、YY/MM/DD hh:mm:ssの表現形式を用いているが、時刻またはタイムスタンプが正しく判別できれば、他の表現形式を用いても良い。なお、時刻300としては、クラスタ生成装置100がレコードを作成した時刻の他に、センサが当該センサデータを測定した時刻を用いてもよい。
センサ301は、センサ群103を構成するセンサのうち、センサデータを計測したセンサの識別子を表したものである。図中ではSX(S1〜S5)の形式としたが、個々のセンサを識別できれば他の表現形式を用いても良い。なお、センサの識別子本実施例1では、計算機システム内でユニークな値であれば良い。また、他の識別子についても同様である。
センサ値302は計測されたセンサデータの値(例えば、風速:m/sec)を表したものである。図中ではXX.XXの形式としたが、後述するモデル401との乖離を算出できれば他の表現形式を用いても良い。なお、センサ値302には、センサの種類に応じた形式でセンサデータを格納することができる。なお、図3の例では、時刻300(タイムスタンプ)を昇順でソートした状態を示す。
図4はクラスタデータ生成部211がクラスタ判定のための教師データとして用いるクラスタモデルデータ201の構成の一例を示す図である。クラスタモデルデータ201は判別したいクラスタとモデルの数に応じた図中410の様なレコードを有する。
各レコードは、クラスタ400と、モデル401のカラムをひとつのエントリに含む。クラスタ400にはクラスタの識別子が格納される。図3に示したセンサ時系列データ200の各レコードがどのクラスタに判定されたかは、この識別子を用いて後述するクラスタデータ202に記録される。図中では識別子をCX(C1〜C5)の形式としたが、クラスタの識別ができれば他の表現形式を用いても良い。
モデル401は、クラスタに含まれるセンサデータのモデルを表したものである。図中ではXX.XX、XX.XT,…とセンサデータの値を列挙したベクトル形式とした。しかしながら、この形式に限定されるもの絵ではなく、センサ時系列データ200のレコードとの乖離度である距離が、予め設定された手法(または法則)に従って算出できれば、複数のベクトル値でもよいし、あるいはスカラー値でもよく、他の表現形式を用いても良い。
図5は、クラスタデータ生成部211によって生成されるクラスタデータ202の構成の一例を示す図である。クラスタデータ202はクラスタの判定を行った単位時間毎にセンサの数に応じて図中510の様なレコードを生成する。
各レコードは時刻500、センサ501、クラスタ502のカラムをひとつのエントリに含む。時刻500は、当該レコードのセンサデータについてクラスタの判定を行った開始時刻(またはタイムスタンプ)を表したものである。図中では、YY/MM/DD hh:mm:ssの表現形式を用いているが、時刻が正しく判別できれば、他の表現形式を用いても良い。また、クラスタを判断したレコードと対応づけられれば、開始時刻、終了時刻などの情報で記録しても良い。
センサ501は、センサデータを計測したセンサの識別子を表したものである。図中ではSX(S1〜S5)の形式としたが、センサが識別できれば他の表現形式を用いても良い。クラスタ502はクラスタの判断結果となるクラスタの識別子を表したものである。図中ではクラスタモデルデータ201のクラスタ400と同様のカラムとしたが、これらが対応づけられれば他の表現を用いてもよい。なお、図5の例では、時刻500(タイムスタンプ)が1分間の例を示す。
図6は並べ替え対象のデータとしてクラスタ時系列管理装置120が管理するクラスタ時系列データ250の構成の一例を示す図である。クラスタ時系列データ250は、クラスタデータ202を蓄積したデータであり、蓄積期間に応じて図中610の様なレコードを生成する。
各レコードは時刻600、センサ601、クラスタ602のカラムをひとつのエントリに含む。時刻600、センサ601、クラスタ602は、図5に示したクラスタデータ202の時刻500、センサ501、クラスタ502の同名のカラムと同様である。また、図6の例では、時刻600(タイムスタンプ)を昇順でソートした時系列順の状態を示す。
図7は、クラスタ時系列データ250を並べ変えた結果としてクラスタ時系列管理装置120が管理するクラスタブロックデータ251の構造の一例を示す図である。クラスタブロックデータ251は、図6のクラスタ時系列データ250を並べ替えて、複数のクラスタを含むブロックの数に応じて図中710の様なレコードが生成される。
各レコードは時刻集合700、センサ集合701、クラスタ702、純粋度703のカラムをひとつのエントリに含む。時刻集合700は並べ替えの結果ブロックとしてまとまった時刻を表したものである。図中ではISO8601に準拠した日時を列挙した表現形式を用いているが、まとまった時刻が識別できれば他の表現形式を用いてもよい。
センサ集合701は、並べ替えの結果、出現比率が最大のクラスタにまとまったセンサの識別子を表したものである。図中では、クラスタ602を列挙した表現形式を用いているが、まとまったクラスタが識別できれば他の表現形式を用いてもよい。
クラスタ702は並べ替えの結果、ブロックとしてまとまったクラスタの代表値を表したものである。図中ではCX(C1〜C5)の表現形式を用いたが、どのクラスタであるか識別できれば他の表現形式を用いてもよい。
純粋度703は、後述する並べ替えの結果、まとまったブロックに含まれるクラスタを母数としたクラスタブの代表値の比率である。図中では有効桁数2ケタの浮動小数点数を用いたが、割合を識別できれば他の表現形式を用いてよい。
また、クラスタブロックデータ251の1レコードは、ひとつのクラスタブロックを示す。ひとつのクラスタブロックは、複数のクラスタを含む1以上のブロックをまとめたデータである。
例えば、図中710のレコードは、時刻集合700が2014−12−24の12:30:00〜12:33:00で、クラスタ=C1のセンサS1と、クラスタ=C1のセンサS3と、クラスタ=C1のセンサS5の3つのクラスタをひとつにまとめてセンサ集合701=S1、S3、S5とする。すなわち、時刻集合700で、センサデータの代表値の出現比率が最大となるクラスタに対応するセンサをセンサ集合701としてまとめる。そして、時刻集合700とセンサ集合701に対応するクラスタの代表値の比率である純粋度703で、圧縮されたデータの精度を管理する。
図8は、クラスタデータ保管部242が、並べ替え終了のデータとして管理する保管クラスタ時系列データ252の構造の一例を示す図である。保管クラスタ時系列データ252には、後述するように終了判断に応じて図中810の様なレコードが生成される。
各レコードは時刻800、センサ801、クラスタ802のカラムをひとつのエントリに含む。時刻800、センサ801、クラスタ802は、図6に示したクラスタ時系列データ250の時刻600、センサ601、クラスタ602およびクラスタデータ202の時刻500、センサ501、クラスタ502の同名のカラムと同様である。
図9は、センサデータ記録部210における、センサ時系列データ200を記録する処理の一例を示すフローチャートである。この処理は、クラスタ生成装置100のセンサデータ記録部210が、起動後から繰り返して実行する。
センサデータ記録部210では、ステップS900、ステップS905に記載の通り、1分経つ毎にクラスタ生成装置100を停止するまでステップS901、ステップS902、ステップS903、ステップS904を繰り返す。
図中では1分経つ毎の繰り返しとしたが、クラスタを判断するレコードの単位(または範囲)にあわせて、任意の単位時間(または時刻の範囲)での繰り返しでもよく、クラスタ生成装置100が認識できる他のイベントをトリガーとした繰り返しでもよい。また、センサデータ記録部210では、ステップS901、ステップS904に記載の通り1秒経つ毎にクラスタ生成装置100を停止するまでステップS902、ステップS903を繰り返す。図中では1秒経つ毎の繰り返しとしたが、センサ群103の計測間隔にあわせて任意の単位時間の繰り返しでもよい。
図9の処理では、まず、ステップS902でセンサ群103からセンサデータを取得し、時刻300、センサ301、センサ値302を含むレコードを生成してセンサ時系列データ200に追加する。レコードの生成には、A/D変換や時刻補正などの予め設定した前処理を含む。次に、ステップS904でクラスタデータ生成部211を呼出し、後述するような処理を実行する。
上記の処理により、センサデータ記録部210は、1秒ごとに取得したセンサ群103の測定値からセンサ時系列データ200に新たなレコードを追加する。そして、センサデータ記録部210は、1分ごとにクラスタデータ生成部211を起動して、後述するようにクラスタデータを生成する。
図10はクラスタデータ生成部211における、センサ時系列データ200の各レコードがどのクラスタに分類されるかを判定する処理の一例を示すフローチャートである。クラスタデータ生成部211ではステップS1003とステップS1008に記載の通り、クラスタモデルデータ201の全レコードを取得するまでステップS1004、ステップS1005、ステップS1006、ステップS1007を繰り返す。
まず、ステップS1000では、クラスタデータ生成部211がセンサ時系列データ200から過去1分のレコードを取得して開始時刻を保持する。なお、クラスタデータ202に生成処理の開始時刻は、センサ時系列データ200の時刻300を用いればよい。
図5のクラスタデータ202の説明でも記載したが、クラスタ生成装置100では、クラスタを判定したレコードを特定できれば、開始終了時刻、終了時刻などの情報で保持しても良い。また、クラスタの判定を行うレコードの単位に応じて任意の日時(またはタイムスタンプ)のレコードを取得しても良い。
次にステップS1001で、クラスタデータ生成部211は、取得したレコードの各時刻300のセンサ値302を各次元の要素として、センサ301毎に60次元の波形のベクトルを生成する。本実施例1では1分(60秒)ごとにクラスタデータ202の生成を行うので、センサ301毎に60次元の波形のベクトル値を算出する例を示す。例えば、図3で示したように、センサ301がS1〜S5の場合、クラスタデータ生成部211は、各センサ301の60次元の波形ベクトル値V1〜V5を算出する。なお、これに限定されるものではなく、図4に示したクラスタモデルデータ201が持つモデル401に応じて、次元数は任意で良く、例えば、1次元のスカラー値であっても良い。
次にステップS1002で、クラスタデータ生成部211は、センサ301毎に距離変数とクラスタ変数を定義して距離変数を十分に大きい値で初期化する。例えば、図3で示したように、センサ301がS1〜S5の場合、クラスタデータ生成部211は、各センサ301毎に距離変数D1〜D5と、クラスタ変数CL1〜CL5をそれぞれ初期化する。ここで、十分に大きい値とは、後述するユークリッド距離で算出される値よりも大きい値のことである。ステップS1002の処理では、距離変数とクラスタ変数の初期化が目的のため、任意の値で初期化して、1回目のループで算出したユークリッド距離で必ず更新する方法でも良い。
ステップS1003からステップS1008では、クラスタデータ生成部211が、クラスタモデルデータ201の全てのレコードについて以下の処理を繰り返す。
次にステップS1004で、クラスタデータ生成部211は、クラスタモデルデータ201から1レコードを取得する。すなわち、クラスタ400に対応するモデル401を取得する。
本実施例1ではクラスタデータ生成部211がモデル401について1レコードずつ判定し、後述する判定結果で解を更新しているが、モデル401のレコードをまとまった単位で取得して一斉に判定を行っても良い。
次にステップS1005で、クラスタデータ生成部211が、センサ301毎にモデル401のベクトルと、60次元の波形ベクトル値V1〜V5のユークリッド距離をそれぞれ算出する。なお、各センサ毎のユークリッド距離を変数E1〜E5とする。
本実施例1ではベクトルの要素毎の距離を積算したユークリッド距離E1〜E5を用いたが、類似性を判断できる値であれば、DTW(Dynamic Time Warping)など公知または周知の手法を用いて距離を算出して良い。
ステップS1005の処理によって、クラスタデータ生成部211が、ステップS1001で算出したセンサ301毎の60次元の波形ベクトル値V1〜V5と、モデル401に定義されたベクトルとのユークリッド距離E1〜E5とを、類似度の指標としてそれぞれ算出する。
次にステップS1006ではクラスタデータ生成部211が、上記算出されたユークリッド距離E(n)について、保持している距離変数D(n)よりも小さいか否かをそれぞれ判定する。なお、本実施例1において、(n)は「1」〜「5」の何れかを示し、「1」〜「5」の演算を順次実行するものとする。そして、クラスタデータ生成部211は、算出されたユークリッド距離E(n)が距離変数D(n)以上の場合には、類似性が低いと判定してステップS1008からステップS1004へ戻って蒸気処理を繰り返す。
一方、クラスタデータ生成部211は、算出されたユークリッド距離E(n)が距離変数D(n)よりも小さい場合には、類似性が高いと判定して、ステップS1007へ進む。
ステップS1007では、クラスタデータ生成部211が、センサ301毎にクラスタ変数CL(n)をクラスタ400の値で更新し、さらに距離変数D(n)をユークリッド距離E(n)で更新する。すなわち、クラスタデータ生成部211は、ユークリッド距離E(n)が距離変数D(n)よりも小さいことから、センサ301の60次元の波形ベクトル値V(n)と、モデル401のベクトルの類似性は高いと判定する。そして、クラスタデータ生成部211は、クラスタ変数CL(n)をモデル401に対応するクラスタ400に更新し、距離変数D(n)にユークリッド距離E(n)を設定する。
上記ステップS1003〜S1008の繰り返し処理が終了すると次に、ステップS1009へ進む。
ステップS1009では、クラスタデータ生成部211が、ステップS1000で保持した開始時刻と、センサ301毎のクラスタ変数CL(n)とから、時刻500、センサ501、クラスタ502のレコードを生成してクラスタデータ202へ追加する。この結果、1分間のセンサ時系列データ200から、図5で示すようにセンサ501毎にセンサデータが所属するクラスタへ振り分けたクラスタデータ202が生成される。次にクラスタデータ生成部211は、ステップS1010でクラスタデータ読出部212を呼出す。
以上の処理によって、1秒ごとのセンサ時系列データ200から、60次元波形ベクトル値V(n)とモデル401のユークリッド距離E(n)が算出され、ユークリッド距離(n)が距離変数D(n)よりも小さければ、当該モデル401のクラスタに当該センサを所属させる。すなわち、1秒毎のセンサデータから、センサS(n)毎に1分間の代表値をモデル401で定義されたクラスタとして分類することで、ひとつのセンサS(n)のセンサデータを時系列方向で圧縮する。
図5の例では、時刻12:30:00において、センサS1、S5のセンサデータがクラスタC1に分類され、センサS2、S4のセンサデータがクラスタC2に分類され、センサS3のセンサデータがクラスタC3に分類されたことを示す。
図11は、クラスタデータ読出部212で行われる、クラスタデータ202をクラスタ生成装置100からクラスタ時系列管理装置120へ送信する処理の一例を示すフローチャートである。
まず、ステップS1100では、クラスタデータ読出部212が、クラスタデータ202の全レコードを取得する。次にステップ1101では、クラスタデータ読出部212が、取得中のレコードを、クラスタデータ送信部220を介してクラスタ時系列管理装置120へ送信する。
次にステップ1102で、クラスタデータ読出部212は、送信が完了すると、クラスタデータ202の全レコードを削除する。図中では、送信済みのクラスタデータ202を削除しているが、レコードを削除せずに送信すべきレコードを時刻(タイムスタンプ)や差分などから判定して送信しても良い。
上記処理により、クラスタデータ生成部211がクラスタデータ202の生成を完了すると、クラスタデータ読出部212は記憶装置104からクラスタデータ202を読み出して、クラスタ時系列管理装置120へ送信する。そして、送信が完了したクラスタデータ202は記憶装置104から削除される。
図12は、クラスタ時系列管理装置120のクラスタデータ記録部240で行われる、クラスタ時系列データ250を記録する処理の一例を示すフローチャートである。この処理は、クラスタ時系列管理装置120の起動後から繰り返して実行される。
クラスタデータ記録部240はステップ1200とステップS1204に記載の通り、クラスタ時系列管理装置120が停止するまで、ステップS1201、ステップS1202、ステップS1203を繰り返す。
まず、クラスタデータ記録部240はステップS1201でクラスタ生成装置100からクラスタデータ202のレコードを受信したか否かを判定する。レコードを受信してない場合は再びS1201へと戻る。これはつまり、レコードの待ち受け状態を表す。
レコードを受信した場合は、ステップS1202に進み、クラスタデータ記録部240がクラスタデータ受信部230を介して受信したレコードをクラスタ時系列データ250へ追加する。
次にステップS1203では、クラスタデータ記録部240がブロックデータ生成部241を呼出す。
上記処理では、クラスタ生成装置100からクラスタデータ202のレコードを受信する度に、クラスタ時系列データ250にレコードを追加してから、ブロックデータ生成部241を呼び出す。上記処理により、所定の時間間隔で生成されたクラスタデータ202は、図6で示すようにクラスタ時系列データ250で時系列の順で、センサ601が所属するクラスタ602が時刻600毎に蓄積される。
なお、上記ではレコードを受信する度にブロックデータ生成部241を呼出しているが、任意の時間間隔やクラスタ時系列管理装置120が認識できる他のイベントをトリガーにして、ブロックデータ生成部241を呼出しても良い。
図13はブロックデータ生成部241で行われる、クラスタ時系列データ250の並べ替えによってクラスタブロックデータ251を生成する処理の一例を示すフローチャートである。この処理は、図12の処理によって繰り返して呼び出される処理である。
ブロックデータ生成部241では、ステップS1303とステップS1310に記載の通り、十分に大きな回数までステップS1304、ステップS1305、ステップS1306、ステップS1307、ステップS1308、ステップS1309を繰り返す。
ここで、十分に大きな回数とは、ブロックデータ生成処理が収束するまでのループ回数であり、並べ替えのロジックに応じて必要なループの回数を指す。この十分に大きな回数は、計算機システムの管理者などがセンサ群103の種類や数あるいはセンサデータの用途などに応じて予め設定したループ回数を用いることができる。また、ブロックデータ生成処理が収束する例としては、ブロックを並べ替える尤度(事後確率)が更新されなくなった時点とすることもできる。
また、ブロックデータ生成部241ではステップS1306とステップS1308に記載の通り、計算過程で生成されているセンサ軸要素のクラスタと、時刻軸要素のクラスタの組合せから成るクラスタブロックデータの全てに対してステップS1307を繰り返す。
なお、本実施例では全てのクラスタブロックに対して事後確率の計算を行っているが、ある時点での事後確率を保持しておき、並べ替えの結果変化したブロックのみの差分を計算しても良い。
まず、ステップS1300では、ブロックデータ生成部241がクラスタ時系列データ250の全レコードを取得してセンサ軸T1と時刻軸T2に対するクラスタという関係を要素に持つ2次元配列1900を図19のように生成する。
図19は、センサ軸T1と時刻軸T2を含む2次元配列1900の一例を示す図である。2次元配列1900は、図中行方向をセンサ301の識別子を要素とするセンサ軸T1とし、図中列方向をセンサデータの時刻300を要素とする時刻軸T2とする。
そして、図示の例では、センサ軸T1にはセンサS1〜S5を列挙し、時刻軸T2には時刻12:30:00〜12:34:00を列挙した例を示す。センサ軸T1と時刻軸T2から定まるカラム(配列の要素)には、クラスタの識別子が格納される。図19の2次元配列1900は、図6のクラスタ時系列データ250のセンサ601の識別子をセンサ軸T1とし、時刻600を時刻軸T2として、カラムにクラスタ602を並べ替えたものである。本実施例1では2次元配列を用いる例を示すが、センサと時刻に対するクラスタが識別できれば別のデータ構造を用いても良い。
次にステップS1301では、ブロックデータ生成部241が、センサ軸T1の要素内でのクラスタリングと、時刻軸T2の要素内でのクラスタリングを行うため、2次元配列1900を初期化する。この初期化は、例えば、センサ軸T1の要素に対するクラスタと、時刻軸T2の要素に対応するクラスタを所定値などで初期化すればよい。
次にステップS1302では、ブロックデータ生成部241が、クラスタのまとまりやすさに係わるハイパパラメータγと、クラスタブロック内の各クラスタ割合に関わるハイパパラメータβと、圧縮精度に関わる純粋度閾値と、ブロック化の範囲に関わる時間閾値を設定する。なお、ハイパパラメータγ、βと、純粋度閾値及び時間閾値は予め設定された値を用いればよい。
ステップS1303〜S1310では、ブロックデータ生成部241が、上記のループ回数に達するまで処理を繰り返す。
次にステップS1304では、ブロックデータ生成部241が、センサ軸T1の要素と時刻軸T2の要素の中から1つの要素をランダムに選択してクラスタの番号を消去する。本実施例1では、センサ軸T1と時刻軸T2の中から要素をランダムに抽出したが、全ての要素を順次に選択しても良い。
次にステップS1305では、ブロックデータ生成部241が、ハイパパラメータγを変数に有するCRP(Chinese Restaurant Process)の手法を用いて選択し、当該選選択した要素を既存のクラスタの番号に設定しなおす。つまり、CRPで選択した各軸方向で要素(ブロック)をまとめることを意味する。この処理によって、時刻軸T2方向のブロックと、センサ軸T1方向のブロックが、それぞれまとめられる。
なお、CRPについては、"The nested Chinese restaurant process and Bayesian nonparametric inference of topic hierarchies"(DAVID M. BLEI、THOMAS L. GRIFFITHS、MICHAEL I. JORDAN 著;Journal of the ACM (JACM) JACM Homepage archive, Volume 57 Issue 2, January 2010, Article No. 7 )や"Hierarchical Topic Models and the Nested Chinese Restaurant Process"(David M. Blei、 Thomas L. Griffiths、Michael I. Jordan、 Joshua B. Tenenbaum 著)などの周知の手法と同様であるので、説明は省略する。
次にステップS1306〜S1308では、ブロックデータ生成部241が、センサ軸T1の要素と、時刻軸T2の要素の組合せから定まるクラスタ番号の全てのブロックについて繰り返して実行する。
次にステップS1307では、ブロックデータ生成部241が、ハイパパラメータβを変数に有するディリクレ分布(Dirichlet distribution)から生成された多項分布に従って、クラスタブロック内のクラスタが生成されたとみなした場合の事後確率を算出する。
この事後確率は、ひとつのクラスタブロックに複数のブロックをまとめた際のブロックの尤もらしさ(尤度)を算出することを意味する。同一クラスタが多く含まれるブロックを尤もらしいと判定するためには、多項分布における各クラスタの発生割合に偏りが現れるようにディリクレ分布のパラメータγを設定しておく必要がある。
本実施例1では、図19で示した2次元配列1900の時刻範囲(12:30:00〜12:34:00)で5つのセンサS1〜S5のクラスタ番号を、図7に示すクラスタブロックデータ251のクラスタブロックにまとめる例を示す。本実施例1では5つのセンサのクラスタ番号をブロック化するためディリクレ分布を仮定して生成される多項分布を用いるが、連続値をブロック化するのであれば正規分布を仮定して生成される正規分布を用いても良い。あるいは、共役事前分布のように解析的に事後確率を算出できる分布であれば他の分布を仮定しても良い。
2次元配列1900のセンサ軸T1の要素と時刻軸T2の要素の組合せからなる全てのブロックについてステップS1307の処理が完了すると、ステップ1309の処理に進む。この時点で、2次元配列1900から、時刻軸T2方向でセンサ軸T1方向の配列要素を並べ替えたブロックのうち、出現比率が最大のクラスタを代表値とする1以上のブロックからクラスタブロックが生成される。
ステップS1309では、ブロックデータ生成部241が、各クラスタブロックの事後確率を掛け合わせた全体事後確率が最大となる場合のクラスタブロックを正解として保持する。
ステップS1304〜S1309の処理が所定のループ回数に達すると、ステップ1311の処理に進む。ステップS1304〜S1309のループが完了した時点で、ブロックデータ生成部241が保持しているクラスタブロックがクラスタブロックの候補として出力される。
クラスタブロックの生成については、例えば、2次元配列1900内の同一の時刻においてセンサ軸T1方向でクラスタ番号が等しいセンサをひとつのブロックとし、さらに、隣接する時刻軸T2方向でクラスタ番号が等しいブロックを結合することでクラスタブロックを生成する。
実際には、隣接するセンサ軸T1方向と隣接する時刻軸T2方向とでクラスタ番号が一致しない場合があるため、複数のブロックのセンサデータの代表値となるクラスタ番号を設定したクラスタブロックを生成する。センサデータの代表値となるクラスタ番号がクラスタブロックに含まれる比率が純粋度703で表される。純粋度703は、クラスタブロックの代表値であるクラスタが、当該クラスタブロックを構成するブロックのクラスタに含まれる比率である。
次にステップS1311では、ブロックデータ生成部241が、各クラスタブロックのセンサ軸T1の要素を時刻集合700、時刻軸T2の要素をセンサ集合701、クラスタブロック内で最も出現割合が最大のクラスタ番号をクラスタ702、その割合を純粋度703とし、純粋度703が規定の閾値以上で、かつ、現在時刻から時刻集合700に含まれる時刻までの時間が時間閾値以上の場合にはレコードを生成してクラスタブロックデータ251に追加する。
次にステップS1312では、ブロックデータ生成部241が、生成したレコードの時刻集合700に含まれる時刻600とセンサ集合701に含まれるセンサ601を持つクラスタ時系列データ250のレコードを削除する。
なお、ステップS1300〜ステップS1310の処理はIRMによる並べ替え(クラスタの時間変化による並び替え)に相当するが、クラスタがまとまる並べ替えができれば任意のロジックを用いて良い。
上記処理によって、クラスタ時系列管理装置120では、クラスタ時系列データ250のデータを2次元配列1900に展開し、センサ軸T1と時刻軸T2の要素を並べ替えて、クラスタ番号を代表値とするクラスタブロックを生成する。クラスタブロックは、時刻集合700毎にセンサ集合701と、センサデータの代表値を示すクラスタ702と、クラスタの比率を示す純粋度703を含み、複数のブロックをまとめたデータとなる。
換言すれば、取得したセンサデータを、複数の値が含まれるクラスタブロックに並べかえて代表値(クラスタ)で管理することにより、少ないデータ量で精度の高いモデル(またはデータの集合)を生成することができ、また、高いデータ圧縮効果を得ることができる。
本実施例1では、クラスタ生成装置100は、センサ群103の各センサが1秒ごとに測定したセンサデータを、1分ごとに集約してクラスタデータ202を生成する。クラスタデータ202を受信したクラスタ時系列管理装置120では、クラスタ時系列データ250に蓄積してから、上述の処理によってクラスタブロックデータ251を算出する。これにより、センサ群103からの大量のセンサデータを、時刻集合700毎にセンサ集合701の代表値であるクラスタ番号で管理することが可能となる。
また、ブロックデータ生成部241では、算出された純粋度が予め設定された純粋度閾値以上のクラスタブロックのみクラスタブロックデータ251に記録する。一方、ブロックデータ生成部241は、算出された純粋度が予め定めた閾値未満のクラスタブロックについては、並べ替え対象の時系列のまま削除することなくクラスタ時系列データ250に保存しておく。そして、ブロックデータ生成部241が再度処理を実行する際に、新たなクラスタ時系列データ250が追加された場合、上記保存されたクラスタ時系列データ250と追加されたクラスタ時系列データを用いて上記処理を実行する。
これにより、ブロックデータ生成部241は、クラスタブロックに採用されなかったクラスタ時系列データ250を保存しておき、新たなクラスタ時系列データ250が加えられたときに再度ブロックデータ生成処理を行って、より多くのクラスタブロックを生成することができる。
また、ブロックデータ生成部241は、現在時刻から時刻集合700に含まれる時刻までの時間が定めた時間閾値以上で、かつ、算出された純粋度が予め設定した純粋度閾値以上のクラスタブロックをクラスタブロックデータ251に記録する一方、現在時刻から時刻集合700に含まれる時刻までの時間が時間閾値未満か、あるいは、純粋度が予め設定した閾値未満のブロックについては、クラスタ時系列データ250にそのまま保存しておく。そして、新たにクラスタ時系列データ250が追加された場合に、ブロックデータ生成部241は、上記保存されたクラスタ時系列データ250と追加されたクラスタ時系列データを用いて上記処理を実行する。これにより、より多くのクラスタブロックを生成することができる。
また、ブロックデータ生成部241は、並べ替え対象(ブロックデータの生成対象)のクラスタ時系列データ250で現在時刻から時刻600までの時間が予め設定された時間閾値以上のレコードについては、並べ替え完了としてブロックデータの生成対象から除外してもよい。
また、純粋度の閾値を管理することによって、クラスタブロックデータ251の精度を保証することができる。すなわち、時系列で変化する大量のデータを代表値で管理しながらもデータの精度を確保できる。これにより、大量のセンサデータを分析するソースとしてクラスタブロックデータ251を提供することができる。
図14は、クラスタデータ保管部242で行われる再計算除外のためにクラスタ時系列データ250を保管クラスタ時系列データ252として保管する処理の一例を示したフローチャートである。この処理は、所定の周期(例えば、1日)や管理者の指令に応じて実行される。
まずステップS1400で、クラスタデータ保管部242は、クラスタ時系列データ250から時刻600が、現在より1カ月以上前のレコードを取得する。本実施例では現在より1カ月以上前のレコードを対象としたが、十分に再計算が行われたと思われる所定の期間を用いても良い。あるいは、期間に代わって、例えば、ブロックデータ生成部241による計算回数を管理しておき、計算回数に基づき保管クラスタ時系列データ252へ保管するデータを判定しても良い。
次に、クラスタデータ保管部242は、ステップS1400で取得したレコードを保管クラスタ時系列データ252に追加する(S1040)。次にクラスタデータ保管部242は、ステップS1402で保管クラスタ時系列データ252へ追加したレコードを、クラスタ時系列データ250から削除する。
上記処理により、ブロックデータ生成部241によって計算されて所定の条件(期間または演算回数)となったクラスタ時系列データ250は、保管クラスタ時系列データ252へ移動される。これにより、ブロックデータ生成部241が演算の対象とするクラスタ時系列データ250が過大になるのを防ぐことができる。
以上のように、本実施例1では、センサ群103から時系列的に値が変化する大量のセンサデータを収集するクラスタ時系列管理装置120が、センサデータを複数の値が含まれるブロックに並べかえて、ブロック毎にセンサデータの代表値であるクラスタ番号で管理するクラスタブロックを生成することで、少ないデータ量で精度の高いモデル(またはデータの集合)を生成することができる。また、時系列的に変換するセンサデータを、クラスタブロックデータ251とすることで高い圧縮効果を得ることができる。また、クラスタブロックデータ251が代表値に対応するクラスタ番号を保持することで、あるクラスタを含むセンサ集合と時刻集合の検索や、センサ集合と時刻集合におけるクラスタの割合の計算機などが容易となり、データの分析を高速に行うことが可能となる。
また、純粋度を管理することで、データ圧縮の精度の保証や計算完了データの切り分けが可能となる。また、ブロックデータ生成部241では、ループ回数を用いて上限のある繰り返し計算を行うことで、限られた計算機リソースの中でより多くのクラスタブロックを生成してデータ圧縮の効果を向上させることが可能となる。
また、上記実施例1では、クラスタ生成装置100がセンサ群103を有する例を示したが、これに限定されるものではない。例えば、クラスタ生成装置100がネットワークを介して複数のセンサに接続されてセンサデータを受信する構成であっても良い。
図15は本発明の第2の実施例における保管したクラスタブロックデータ251を分析に活用するための計算機システムの機能構成を示すブロック図である。前記実施例1の図2と同名の構成要素は、図2に記載の機能と同様の機能を持つ。
前記実施例1の図2と異なる点は、クラスタ生成装置100において、クラスタデータ読出部212にセンサ時系列データ200を接続した点と、クラスタ時系列管理装置120において、記憶装置126にセンサ時系列データ200Aを追加してクラスタデータ記録部240と接続した点と、メモリ122に含まれる構成要素にクラスタデータ検索部1500とU/I制御部1501を追加した点と、それに伴い入力装置124と出力装置125を明記した点である。なお、記憶装置126のセンサ時系列データ200Aは、クラスタ生成装置100のセンサ時系列データ200の複製である。
本実施例2では、クラスタデータ記録部240とブロックデータ生成部241とクラスタデータ保管部242とクラスタデータ検索部1500とU/I制御部1501を同一メモリ空間に配置したが、クラスタデータ検索部1500とU/I制御部1501のみ別のメモリ空間に配置されていても良い。
また、クラスタ生成装置100のセンサ時系列データ200をクラスタ時系列管理装置120のセンサ時系列データ200に移す処理は、実施例1で記載したクラスタ生成装置100のクラスタデータ202をクラスタ時系列管理装置のクラスタ時系列データ250に移す処理と同様である。読出や記録の対象を増やすだけの違いであるため、ここでは処理の詳細を再掲載しない。
図16はクラスタデータ検索部1500における分析に向けてクラスタデータと時系列データを検索する処理の一例を示すフローチャートである。
まず、クラスタデータ検索部1500は、ステップS1600でU/I制御部1501から期間(指定期間)とセンサの指定(指定センサ)を受け付ける。なお、指定期間は日時の範囲であり、指定センサは、センサの識別子で指定することができる。
次にクラスタデータ検索部1500は、ステップS1601でクラスタ時系列データ250から時刻600とセンサ601に指定期間内の時刻及び指定センサを含むレコードを取得する。
次にクラスタデータ検索部1500は、ステップS1602でクラスタブロックデータ251から時刻集合700及びセンサ集合701に、指定期期間内の時刻及び指定センサを含むレコードを取得する。
次にクラスタデータ検索部1500は、ステップS1603で保管クラスタ時系列データ252から時刻800及びセンサ801に、指定期間内の時刻及び指定センサを含むレコードを取得する。
次にクラスタデータ検索部1500は、ステップS1604でセンサ時系列データ200Aから時刻300及びセンサ301に、指定期間内の時刻及び指定センサを含むレコードを取得する。次にクラスタデータ検索部1500は、ステップS1601〜S1605で取得したレコードをU/I制御部1501に応答する。
以上の処理により、クラスタデータ検索部1500は、U/I制御部1501から受け付けた指定期間内の時刻と指定センサを含むデータを、クラスタ時系列データ250とクラスタブロックデータ251と保管クラスタ時系列データ252及びセンサ時系列データ200Aから取得して、U/I制御部1501に出力することができる。
図17はU/I制御部1501における、入力装置124と出力装置125を制御する処理の一例を示したフローチャートである。
まず、U/I制御部1501は、ステップS1700で入力装置124を介してユーザが入力したセンサと期間の指定を受け付ける。次にU/I制御部1501は、ステップS1701で指定期間とセンサを引数としてクラスタデータ検索部1500を呼出す。
次にU/I制御部1501は、ステップS1702でクラスタデータ検索部1500に上記図16の処理を実行させて検索結果のレコードを受け取る。次にU/I制御部1501は、ステップS1703で出力装置125を介してクラスタ分析画面1800を生成する。
上記処理によって、後述の図18の画面が生成され、出力装置125に出力される。
図18は上記図15の入力装置124と出力装置125における、クラスタの分析を行う画面の構成の一例を示した図である。
出力装置125にはクラスタ分析画面1800が表示される。クラスタ分析画面1800は期間1801と、センサ1802と、円グラフ1803と、ヒストグラム1804と、ブロック図1805と、選択部1806から構成される。
期間1801はユーザが指定する分析の期間を表す。期間1801は例えば入力装置124のマウスによってカレンダーをクリックすることにより生成できる。あるいは、キー入力により時間を表す文字列を直接入力しても良い。
センサ1802はユーザが指定する分析対象のセンサを表す。センサ1802は例えば入力装置124のマウスによってあらかじめデータとして持っておいたセンサの一覧をクリックすることにより生成できる。あるいは、キー入力によりセンサを表す文字列を直接入力しても良い。
円グラフ1803はユーザが指定した期間1801とセンサ1802の範囲における、クラスタの割合を表す。円グラフ1803はクラスタデータ検索部1500から検索結果として受け取ったレコードを基にU/I制御部1501が生成することができる。
具体的には、U/I制御部1501は、クラスタ時系列データ250から取得したレコード数と、クラスタブロックデータ251から取得した各レコードの時刻集合の時刻要素数とセンサ集合のセンサ要素数を掛け合わせたブロックサイズの小計数と、保管クラスタ時系列データ252から取得したレコード数との合計数を母数(分母)とする。
次に、U/I制御部1501は、クラスタ時系列データ250から取得したレコード内でC1と一致するクラスタ602を持つレコード数と、クラスタブロックデータ251から取得したレコード内でC1と一致するクラスタ702を持つレコードのブロックサイズの小計数と、保管クラスタ時系列データ252から取得したレコード内でC1と一致するクラスタ802を持つレコード数との合計を分子とする。
そしてU/I制御部1501は、上記分子を母数で割れば、C1クラスタの割合が算出できる。U/I制御部1501は、同様にしてC2、C3と各クラスタで繰り返し、全ての割合の算出が完了したら、円グラフ1803等の形で表示することで実現できる。
ヒストグラム1804は選択部1806によって選択されたクラスタに該当する時系列のヒストグラム集計結果を表わす。ヒストグラム1804はクラスタデータ検索部1500から受け取ったレコードを基に生成できる。
具体的には、U/I制御部1501が、クラスタ時系列データ250から取得したレコード内でC1と一致するクラスタ602を持つレコードの時刻600とセンサ601のセットと、クラスタブロックデータ251から取得したレコード内でC1と一致するクラスタ702を持つレコードの時刻集合700に含まれる時刻とセンサ集合701に含まれるセンサのセットと、保管クラスタ時系列データ252から取得したレコード内でC1と一致するクラスタ802を持つレコードの時刻800とセンサ801のセットとを抽出する。
そして、U/I制御部1501は、センサ時系列データ300から抽出した上記セットに該当する時刻300とセンサ301を含むレコードを取得し、取得したレコードのセンサ値302を予め定めたビンで分割して集計することでヒストグラムを生成できる。
ブロック図1805は取得したレコードの可視化を表している。ブロック図1805はクラスタデータ検索部1500から受け取ったレコードをU/I制御部1501が画面に描画すれば生成できる。
選択部1806は入力装置124のマウスでクリックすることで生成できる。図中のようにクリックしたクラスタに関連するデータ全ての強調は、円グラフ1803の生成で用いたデータやヒストグラム1804の生成で用いたデータの中から、選択したクラスタに該当するデータを抽出すれば実現できる。
以上のように、クラスタ時系列管理装置120では、クラスタブロックデータ251とクラスタ時系列データ250及びセンサ時系列データ200Aから、検索対象の指定期間と指定センサを含むレコードを取得して、代表値(クラスタ番号)に応じたグラフで出力することが可能となる。
クラスタブロックデータ251のデータ検索は高速に行うことが可能であり、かつ、クラスタ702に応じた値をグラフ化することで、クラスタブロックデータ251の検索結果を視覚化することが可能となる。
<まとめ>
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に記載したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加、削除、又は置換のいずれもが、単独で、又は組み合わせても適用可能である。
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に記載したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加、削除、又は置換のいずれもが、単独で、又は組み合わせても適用可能である。
また、上記の各構成、機能、処理部、及び処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、及び機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、または、ICカード、SDカード、DVD等の記録媒体に置くことができる。
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
Claims (15)
- プロセッサとメモリを含んでセンサが出力したセンサデータを受け付けるデータの管理装置であって、
前記センサデータの値を予め設定したクラスタに分類し、前記センサデータの時刻と前記センサの識別子と前記クラスタとを含むクラスタデータを生成するクラスタデータ生成部と、
前記クラスタデータから、前記センサの識別子を要素とするセンサ軸方向と、前記センサデータの時刻を要素とする時刻軸方向と、からなる配列要素に前記クラスタを格納する2次元配列を生成し、前記2次元配列から、時刻軸方向でセンサ軸方向の配列要素を並べ替えたブロックを生成し、出現比率が最大となるクラスタを代表値とする1以上のブロックから前記時刻を含む時刻集合ごとに、前記センサの識別子を含むセンサ集合を含むクラスタブロックを生成して、クラスタブロックデータに格納するブロックデータ生成部と、
を含むことを特徴とするデータの管理装置。 - 請求項1に記載のデータの管理装置であって、
前記ブロックデータ生成部は、
前記クラスタブロックの代表値としてのクラスタが、当該クラスタブロックを構成するブロックのクラスタに含まれる比率を純粋度として算出し、当該純粋度をクラスタブロックの要素とすることを特徴とするデータの管理装置。 - 請求項2に記載のデータの管理装置であって、
前記クラスタデータ生成部は、
前記生成したクラスタデータをクラスタ時系列データに格納し、
前記ブロックデータ生成部は、
前記クラスタ時系列データに格納されたクラスタデータについて前記クラスタブロックを生成し、前記純粋度が予め設定した純粋度閾値以上のクラスタブロックを前記クラスタブロックデータに格納し、前記純粋度が前記純粋度閾値未満のクラスタブロックのクラスタデータについては、前記クラスタ時系列データに保存しておき、前記クラスタ時系列データに新たなクラスタデータが追加された場合に、前記クラスタ時系列データに保存しておいた前記クラスタデータをクラスタブロックの生成に利用することを特徴とするデータの管理装置。 - 請求項2に記載のデータの管理装置であって、
前記クラスタデータ生成部は、
前記生成したクラスタデータをクラスタ時系列データに格納し、
前記ブロックデータ生成部は、
前記クラスタ時系列データに格納されたクラスタデータについて前記クラスタブロックを生成し、現在時刻から前記時刻集合に含まれる時刻までの時間が予め設定した時間閾値以上で、かつ、前記純粋度が予め設定した純粋度閾値以上のクラスタブロックを前記クラスタブロックデータに格納し、現在時刻から前記時刻集合に含まれる時刻までの時間が前記時間閾値未満のクラスタブロックのクラスタデータについては、前記クラスタ時系列データに保存しておき、前記クラスタ時系列データに新たなクラスタデータが追加された場合に、前記クラスタ時系列データに保存しておいた前記クラスタデータをクラスタブロックの生成に利用することを特徴とするデータの管理装置。 - 請求項1に記載のデータの管理装置であって、
前記クラスタデータ生成部は、
前記生成したクラスタデータをクラスタ時系列データに格納し、
前記ブロックデータ生成部は、
現在時刻から前記クラスタ時系列データに格納されたクラスタデータの時刻までの時間が予め設定された時間閾値以上のデータについては、ブロックデータの生成対象から除外することを特徴とするデータの管理装置。 - 請求項1に記載のデータの管理装置であって、
検索対象の期間と、センサの識別子を検索条件として受け付ける制御部と、
前記検索条件を満たすデータを取得する検索部と、をさらに含み、
前記クラスタデータ生成部は、
前記生成したクラスタデータをクラスタ時系列データに格納し、
前記検索部は、
前記クラスタブロックデータから前記検索条件を満たすクラスタブロックを取得し、前記クラスタ時系列データから前記検索条件を満たすクラスタデータを取得し、前記取得したクラスタブロックとクラスタデータとを出力することを特徴とするデータの管理装置。 - 請求項6に記載のデータの管理装置であって、
前記制御部は、
前記検索部が取得したクラスタブロックとクラスタデータから前記センサの識別子とクラスタの関係を時系列で表示する画面を生成することを特徴とするデータの管理装置。 - 請求項1に記載のデータの管理装置であって、
前記ブロックデータ生成部は、
前記2次元配列から、時刻軸方向でセンサ軸方向の配列要素を並べ替えたブロックを生成する際に、IRM(Infinite Relational Model)を用いて並べ替えることを特徴とするデータの管理装置。 - プロセッサとメモリを含むデータ管理装置がセンサから出力されたセンサデータを受け付けるデータの管理方法であって、
前記データ管理装置が、前記センサデータの値を予め設定したクラスタに分類し、前記センサデータの時刻と前記センサの識別子と前記クラスタとを含むクラスタデータを生成する第1のステップと、
前記データ管理装置が、前記クラスタデータから、前記センサの識別子を要素とするセンサ軸方向と、前記センサデータの時刻を要素とする時刻軸方向と、からなる配列要素に前記クラスタを格納する2次元配列を生成する第2のステップと、
前記データ管理装置が、前記2次元配列から、時刻軸方向でセンサ軸方向の配列要素を並べ替えたブロックを生成し、出現比率が最大となるクラスタを代表値とする1以上のブロックから前記時刻を含む時刻集合ごとに、前記センサの識別子を含むセンサ集合を含むクラスタブロックを生成して、クラスタブロックデータに格納する第3のステップと、を含むことを特徴とするデータの管理方法。 - 請求項9に記載のデータの管理方法であって、
前記第3のステップは、
前記クラスタブロックの代表値としてのクラスタが、当該クラスタブロックを構成するブロックのクラスタに含まれる比率を純粋度として算出し、当該純粋度をクラスタブロックの要素とすることを特徴とするデータの管理方法。 - 請求項10に記載のデータの管理方法であって、
前記第1のステップは、
前記生成したクラスタデータをクラスタ時系列データに格納し、
前記第3のステップは、
前記クラスタ時系列データに格納されたクラスタデータについて前記クラスタブロックを生成し、前記純粋度が予め設定した純粋度閾値以上のクラスタブロックを前記クラスタブロックデータに格納し、前記純粋度が前記純粋度閾値未満のクラスタブロックのクラスタデータについては、前記クラスタ時系列データに保存しておき、前記クラスタ時系列データに新たなクラスタデータが追加された場合に、前記クラスタ時系列データに保存しておいた前記クラスタデータをクラスタブロックの生成に利用することを特徴とするデータの管理方法。 - 請求項10に記載のデータの管理方法であって、
前記第1のステップは、
前記生成したクラスタデータをクラスタ時系列データに格納し、
前記第3のステップは、
前記クラスタ時系列データに格納されたクラスタデータについて前記クラスタブロックを生成し、現在時刻から前記時刻集合に含まれる時刻までの時間が予め設定した時間閾値以上で、かつ、前記純粋度が予め設定した純粋度閾値以上のクラスタブロックを前記クラスタブロックデータに格納し、現在時刻から前記時刻集合に含まれる時刻までの時間が前記時間閾値未満のクラスタブロックのクラスタデータについては、前記クラスタ時系列データに保存しておき、前記クラスタ時系列データに新たなクラスタデータが追加された場合に、前記クラスタ時系列データに保存しておいた前記クラスタデータをクラスタブロックの生成に利用することを特徴とするデータの管理方法。 - 請求項9に記載のデータの管理方法であって、
前記第1のステップは、
前記生成したクラスタデータをクラスタ時系列データに格納し、
前記第3のステップは、
現在時刻から前記クラスタ時系列データに格納されたクラスタデータの時刻までの時間が予め設定された時間閾値以上のデータについては、ブロックデータの生成対象から除外することを特徴とするデータの管理方法。 - 請求項9に記載のデータの管理方法であって、
前記データ管理装置が、検索対象の期間と、センサの識別子を検索条件として受け付ける第4のステップと、
前記データ管理装置が、前記検索条件を満たすデータを取得する第5のステップと、をさらに含み、
前記第1のステップは、
前記生成したクラスタデータをクラスタ時系列データに格納し、
前記第5のステップは、
前記クラスタブロックデータから前記検索条件を満たすクラスタブロックを取得し、前記クラスタ時系列データから前記検索条件を満たすクラスタデータを取得し、前記取得したクラスタブロックとクラスタデータとを出力することを特徴とするデータの管理方法。 - 請求項14に記載のデータの管理方法であって、
前記データ管理装置が、前記取得したクラスタブロックとクラスタデータから前記センサの識別子とクラスタの関係を時系列で表示する画面を生成する第6のステップをさらに含むことを特徴とするデータの管理方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2015/068784 WO2017002190A1 (ja) | 2015-06-30 | 2015-06-30 | データの管理装置及びデータの管理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2017002190A1 JPWO2017002190A1 (ja) | 2017-09-07 |
JP6346378B2 true JP6346378B2 (ja) | 2018-06-20 |
Family
ID=57609512
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017525714A Expired - Fee Related JP6346378B2 (ja) | 2015-06-30 | 2015-06-30 | データの管理装置及びデータの管理方法 |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP6346378B2 (ja) |
WO (1) | WO2017002190A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102102313B1 (ko) * | 2019-11-27 | 2020-04-20 | 주식회사 리얼타임테크 | 인메모리 데이터베이스 기반의 시계열 데이터 관리시스템 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6242930B2 (ja) * | 2016-03-17 | 2017-12-06 | 株式会社東芝 | センサデータ管理装置、センサデータ管理方法およびプログラム |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4509860B2 (ja) * | 2005-05-25 | 2010-07-21 | 株式会社東芝 | データ分割装置、データ分割方法およびプログラム |
JP4934058B2 (ja) * | 2008-01-09 | 2012-05-16 | 日本電信電話株式会社 | 共クラスタリング装置、共クラスタリング方法、共クラスタリングプログラム、および、そのプログラムを記録した記録媒体 |
US20110258203A1 (en) * | 2010-04-16 | 2011-10-20 | Wouhaybi Rita H | Methods and systems for relationship characterization and utilization from a user's social networks |
JP5851205B2 (ja) * | 2011-11-01 | 2016-02-03 | 日本電信電話株式会社 | クラスタリング装置、方法、及びプログラム |
JP6210867B2 (ja) * | 2013-12-05 | 2017-10-11 | 株式会社日立製作所 | データ関連性解析システムおよびデータ管理装置 |
-
2015
- 2015-06-30 JP JP2017525714A patent/JP6346378B2/ja not_active Expired - Fee Related
- 2015-06-30 WO PCT/JP2015/068784 patent/WO2017002190A1/ja active Application Filing
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102102313B1 (ko) * | 2019-11-27 | 2020-04-20 | 주식회사 리얼타임테크 | 인메모리 데이터베이스 기반의 시계열 데이터 관리시스템 |
WO2021107211A1 (ko) * | 2019-11-27 | 2021-06-03 | 주식회사 리얼타임테크 | 인메모리 데이터베이스 기반의 시계열 데이터 관리시스템 |
Also Published As
Publication number | Publication date |
---|---|
WO2017002190A1 (ja) | 2017-01-05 |
JPWO2017002190A1 (ja) | 2017-09-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11269476B2 (en) | Concurrent display of search results from differing time-based search queries executed across event data | |
US9460402B2 (en) | Condensing hierarchical data | |
US20200090085A1 (en) | Digital twin graph | |
WO2019129060A1 (zh) | 自动生成机器学习样本的特征的方法及系统 | |
US11157550B2 (en) | Image search based on feature values | |
US20200349482A1 (en) | Techniques for workflow analysis and design task optimization | |
US20220164394A1 (en) | System and methods for faster processor comparisons of visual graph features | |
US20120221503A1 (en) | Systems and methods for generating interpolation data template to normalize analytic runs | |
US20150032708A1 (en) | Database analysis apparatus and method | |
US9275483B2 (en) | Method and system for analyzing sequential data based on sparsity and sequential adjacency | |
JP2017220225A (ja) | 複雑なグラフ検索のための局所的な視覚グラフ・フィルタ | |
JP7145059B2 (ja) | モデルの予測根拠提示システム及びモデルの予測根拠提示方法 | |
JP6346378B2 (ja) | データの管理装置及びデータの管理方法 | |
TWI619033B (zh) | 執行以時間序列資料與分析資料當中的至少一部分作為輸入資料之分析處理的分析系統及分析方法 | |
CN103971191A (zh) | 工作线程管理方法和设备 | |
JP7441682B2 (ja) | データ処理システムおよびデータ圧縮方法 | |
JP7292235B2 (ja) | 分析支援装置及び分析支援方法 | |
JP7328799B2 (ja) | ストレージシステムおよび記憶制御方法 | |
JP6201053B2 (ja) | 素性データ管理システム、および素性データ管理方法 | |
Jony et al. | An Evaluation of Data Processing Solutions Considering Preprocessing and" Special" Features | |
CN117539948B (zh) | 基于深度神经网络的业务数据检索方法及装置 | |
US11874868B2 (en) | Generating and presenting multi-dimensional representations for complex entities | |
Tabassum et al. | Actionable Insights in Urban Multivariate Time-series | |
US20230111999A1 (en) | Method and system of creating clusters for feedback data | |
Tabassum et al. | Actionable Insights in Multivariate Time-series for Urban Analytics |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20170221 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20180508 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20180524 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6346378 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |