(57)【特許請求の範囲】
【請求項１】
センサからデータを受信する受信部と、
分析に必要なデータ量である必要量を特定する必要量特定部と、
前記必要量特定部によって特定された必要量と前記受信部によって基準期間に受信されたデータのデータ量である受信量とからデータの抽出間隔を特定し、前記受信部によって受信されたデータから、特定された抽出間隔でデータを抽出して、ストレージに格納する格納部と
を備えるデータ格納装置。
【請求項２】
前記必要量特定部は、前記ストレージに格納されたデータを入力として分析を行った場合に、指定された分析精度が得られるデータ量を前記必要量として特定する
請求項１に記載のデータ格納装置。
【請求項３】
前記必要量特定部は、指定された分析精度が得られるデータ量を分析手法毎に特定し、分析手法毎に特定されたデータ量のうち、最も多いデータ量を前記必要量として特定する
請求項２に記載のデータ格納装置。
【請求項４】
前記必要量特定部は、更新期間が経過した場合と、分析手法が追加された場合と、分析手法が削除された場合と、指定された分析精度が変更された場合とに、前記必要量を特定し直す
請求項３に記載のデータ格納装置。
【請求項５】
前記格納部は、前記更新期間中に前記必要量が増加した場合には、前記更新期間の開始時点から前記必要量が特定し直された時点までの過去期間については、増加した前記必要量で特定された前記抽出間隔により抽出された件数になるようにストレージに格納されたデータを補間して得られたデータを格納する
請求項４に記載のデータ格納装置。
【請求項６】
前記データ格納装置は、さらに、
前記データの形式が正しいか否か判定する形式判定部を備え、
前記格納部は、前記形式判定部によって正しいと判定されたデータから、抽出間隔でデータを抽出して、ストレージに格納する
請求項１から５までのいずれか１項に記載のデータ格納装置。
【請求項７】
前記データには、取得元のセンサのセンサＩＤが含まれ、
前記データ格納装置は、さらに、
センサの識別情報であるセンサＩＤを１つ以上記憶したセンサ記憶部と、
前記センサ記憶部に記憶されたセンサＩＤに、前記受信部が受信したデータに含まれるセンサＩＤがあるか否か判定するセンサ判定部と
を備え、
前記格納部は、前記センサ判定部にあると判定されたデータから、抽出間隔でデータを抽出して、ストレージに格納する
請求項１から６までのいずれか１項に記載のデータ格納装置。
【請求項８】
前記格納部は、前記受信部によって受信されたデータを一時記憶部に格納し、前記一時記憶部に基準量のデータが蓄積されると、前記一時記憶部から前記抽出間隔でデータを抽出して、ストレージに格納する
請求項１から７までのいずれか１項に記載のデータ格納装置。
【請求項９】
センサからデータを受信する受信処理と、
分析に必要なデータ量である必要量を特定する必要量特定処理と、
前記必要量特定処理によって特定された必要量と前記受信処理によって基準期間に受信されたデータのデータ量である受信量とからデータの抽出間隔を特定し、前記受信処理によって受信されたデータから、特定された抽出間隔でデータを抽出して、ストレージに格納する格納処理と
をコンピュータに実行させるデータ格納プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、センサから取得されたデータをストレージに格納する技術に関する。
【背景技術】
【０００２】
１つ以上のセンサから取得されたデータをストレージに格納しておき、後にストレージに格納されたデータを用いて分析を行う場合がある。多くの場合、分析の精度を高くするため、センサから取得されたデータが全てそのままストレージに格納される。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１５−２８７４２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
センサから取得されたデータが全てそのままストレージに格納されれば、分析の精度が高くなる可能性がある。しかし、ストレージに格納されるデータ量が多くなってしまう。
この発明は、分析の精度を維持しつつ、ストレージに格納されるデータ量を減らすことを目的とする。
【課題を解決するための手段】
【０００５】
この発明に係るデータ格納装置は、
センサからデータを受信する受信部と、
分析に必要なデータ量である必要量を特定する必要量特定部と、
前記必要量特定部によって特定された必要量と前記受信部によって基準期間に受信されたデータのデータ量である受信量とからデータの抽出間隔を特定し、前記受信部によって受信されたデータから、特定された抽出間隔でデータを抽出して、ストレージに格納する格納部と
を備える。
【０００６】
前記必要量特定部は、前記ストレージに格納されたデータを入力として分析を行った場合に、指定された分析精度が得られるデータ量を前記必要量として特定する。
【０００７】
前記必要量特定部は、指定された分析精度が得られるデータ量を分析手法毎に特定し、分析手法毎に特定されたデータ量のうち、最も多いデータ量を前記必要量として特定する
。
【０００８】
前記必要量特定部は、更新期間が経過した場合と、分析手法が追加された場合と、分析手法が削除された場合と、指定された分析精度が変更された場合とに、前記必要量を特定し直す。
【０００９】
前記格納部は、前記更新期間中に前記必要量が増加した場合には、前記更新期間の開始時点から前記必要量が特定し直された時点までの過去期間については、増加した前記必要量で特定された前記抽出間隔により抽出された件数になるようにストレージに格納されたデータを補間して得られたデータを格納する。
【００１０】
前記データ格納装置は、さらに、
前記データの形式が正しいか否か判定する形式判定部を備え、
前記格納部は、前記形式判定部によって正しいと判定されたデータから、抽出間隔でデータを抽出して、ストレージに格納する。
【００１１】
前記データには、取得元のセンサのセンサＩＤが含まれ、
前記データ格納装置は、さらに、
センサの識別情報であるセンサＩＤを１つ以上記憶したセンサ記憶部と、
前記センサ記憶部に記憶されたセンサＩＤに、前記受信部が受信したデータに含まれるセンサＩＤがあるか否か判定するセンサ判定部と
を備え、
前記格納部は、前記センサ判定部にあると判定されたデータから、抽出間隔でデータを抽出して、ストレージに格納する。
【００１２】
前記格納部は、前記受信部によって受信されたデータを一時記憶部に格納し、前記一時記憶部に基準量のデータが蓄積されると、前記一時記憶部から前記抽出間隔でデータを抽出して、ストレージに格納する。
【００１３】
この発明に係るデータ格納プログラムは、
センサからデータを受信する受信処理と、
分析に必要なデータ量である必要量を特定する必要量特定処理と、
前記必要量特定処理によって特定された必要量と前記受信処理によって基準期間に受信されたデータのデータ量である受信量とからデータの抽出間隔を特定し、前記受信処理によって受信されたデータから、特定された抽出間隔でデータを抽出して、ストレージに格納する格納処理と
をコンピュータに実行させる。
【発明の効果】
【００１４】
この発明では、データの分析に必要な必要量からデータの抽出間隔が特定され、抽出間隔でデータが抽出されてストレージに格納される。そのため、分析の精度を維持しつつ、ストレージに格納されるデータ量を減らすことができる。
【図面の簡単な説明】
【００１５】
【図１】実施の形態１に係るデータ格納装置１０の構成図。
【図２】実施の形態１に係る収集条件記憶部１２１が記憶するデータの説明図。
【図３】実施の形態１に係る分析精度記憶部１２２が記憶するデータの説明図。
【図４】実施の形態１に係るセンサ記憶部１２３が記憶するデータの説明図。
【図５】実施の形態１に係るストレージ３２に格納されるデータの説明図。
【図６】実施の形態１に係るデータ格納装置１０の全体的な動作を示すフローチャート。
【図７】実施の形態１に係る必要量の特定タイミングの説明図。
【図８】実施の形態１に係るステップＳ１の必要量特定処理を示すフローチャート。
【図９】実施の形態１に係る結果精度の説明図。
【図１０】実施の形態１に係るステップＳ８のデータ格納処理を示すフローチャート。
【図１１】実施の形態１に係る更新期間の途中で必要量が増加した場合の説明図。
【図１２】変形例１に係るデータ補間の説明図。
【図１３】変形例４に係る対象量の特定処理を示すフローチャート。
【図１４】変形例５に係るデータ格納装置１０の構成図。
【発明を実施するための形態】
【００１６】
実施の形態１．
＊＊＊構成の説明＊＊＊
図１から図５を参照して、実施の形態１に係るデータ格納装置１０の構成を説明する。
図１に示すように、データ格納装置１０は、コンピュータである。
データ格納装置１０は、プロセッサ１１と、記憶装置１２と、入力インタフェース１３と、出力インタフェース１４とのハードウェアを備える。プロセッサ１１は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
【００１７】
プロセッサ１１は、プロセッシングを行うＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）である。プロセッサ１１は、具体的には、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）、ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）である。
【００１８】
記憶装置１２は、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）である。また、記憶装置１２は、ＳＤ（Ｓｅｃｕｒｅ  Ｄｉｇｉｔａｌ）メモリカード、ＣＦ（ＣｏｍｐａｃｔＦｌａｓｈ）、ＮＡＮＤフラッシュ、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ（登録商標）ディスク、ＤＶＤといった可搬記憶媒体であってもよい。
【００１９】
入力インタフェース１３は、１つ以上のセンサ３１が接続され、センサ３１からデータを受信するための装置である。入力インタフェース１３は、具体例としては、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）、ＩＥＥＥ１３９４の接続端子、又は、ＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）である。
【００２０】
出力インタフェース１４は、ストレージ３２が接続され、データをストレージ３２に送信するための装置である。出力インタフェース１４は、具体例としては、ＵＳＢ、ＩＥＥＥ１３９４の接続端子、又は、ＮＩＣである。
【００２１】
データ格納装置１０は、機能構成要素として、必要量特定部２１と、受信部２２と、形式判定部２３と、センサ判定部２４と、格納部２５とを備える。必要量特定部２１と、受信部２２と、形式判定部２３と、センサ判定部２４と、格納部２５との各部の機能はソフトウェアにより実現される。
記憶装置１２には、データ格納装置１０の各部の機能を実現するプログラムが記憶されている。このプログラムは、プロセッサ１１により読み込まれ、実行される。これにより、データ格納装置１０の各部の機能が実現される。
【００２２】
プロセッサ１１によって実現される各部の機能の処理の結果を示す情報とデータと信号値と変数値は、記憶装置１２、又は、プロセッサ１１内のレジスタ又はキャッシュメモリに記憶される。以下の説明では、プロセッサ１１によって実現される各部の機能の処理の結果を示す情報とデータと信号値と変数値は、記憶装置１２に記憶されるものとして説明する。
【００２３】
プロセッサ１１によって実現される各機能を実現するプログラムは、記憶装置１２に記憶されているとした。しかし、このプログラムは、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ（登録商標）ディスク、ＤＶＤといった可搬記憶媒体に記憶されてもよい。
【００２４】
図１では、プロセッサ１１は、１つだけ示されていた。しかし、プロセッサ１１は、複数であってもよく、複数のプロセッサ１１が、各機能を実現するプログラムを連携して実行してもよい。
【００２５】
記憶装置１２は、収集条件記憶部１２１と、分析精度記憶部１２２と、センサ記憶部１２３と、一時記憶部１２４とを実現する。
【００２６】
収集条件記憶部１２１は、データを収集する条件が記憶される。
図２に示すように、収集条件記憶部１２１は、データ収集間隔と、正常列数とが記憶される。データ収集間隔は、センサ３１からデータを受信する間隔である。正常列数は、センサ３１から受信したデータの正常な項目数である。正常列数は、センサ３１毎に定められていてもよい。
【００２７】
分析精度記憶部１２２は、センサ３１から収集されたデータを用いた分析の精度が記憶される。
図３に示すように、分析精度記憶部１２２は、分析方法毎に、分析精度と、許容範囲と、データ量と、総計収束時間と、試行回数と、精度遷移と、データ量遷移と、入力データとが記憶される。分析精度は、対応する分析方法で求められる精度である。許容範囲は、分析精度が示す精度の前後何パーセントであれば許容されるかを示す。データ量は、分析精度が示す精度の分析をするのに必要なデータ量である。総計収束時間は、データ量を計算するのにかかった時間である。試行回数は、データ量を計算する際に分析処理が実行された回数である。精度遷移は、分析処理で得られた精度の遷移である。データ量遷移は、分析処理で使用したデータ量の遷移である。入力データは、分析処理で使用した学習用データ３３の識別子である。
【００２８】
センサ記憶部１２３は、センサ３１についての情報が記憶される。
図４に示すように、センサ記憶部１２３は、データ格納装置１０に接続されたセンサ３１毎に、センサグループ、優先順位、センサＩＤ、施設名称、機器名称、型番が記憶される。センサグループは、１つ以上のセンサ３１の集合に付された名称である。優先順位は、センサグループ内における優先順位である。センサＩＤは、センサ３１の識別子である。施設名称は、センサ３１が設置された施設の名称である。機器名称は、センサ３１の種別を表す名称であり、具体例としては、温度センサ、湿度センサ、圧力センサである。型番は、センサ３１の型番である。
【００２９】
一時記憶部１２４は、データ格納装置１０で処理中のデータが一時的に記憶される。
【００３０】
センサ３１は、検出値を検出して、検出値を含むデータを、収集条件記憶部１２１に記憶された間隔でデータ格納装置１０に送信する。検出値は、具体例としては、温度、湿度、圧力である。
【００３１】
ストレージ３２は、センサ３１で検出されたデータのうち、データ格納装置１０によって抽出された少なくとも一部のデータが格納される。
図５に示すように、ストレージ３２は、更新期間毎にデータが分けられて格納される。更新期間毎に分けられたデータの集合を学習用データ３３と呼ぶ。実施の形態１では、更新期間は、月初から月末までの１か月であるとする。そのため、例えば、２０１５年１２月の学習用データ３３、２０１６年１月の学習用データ３３、２０１６年２月の学習用データ３３というように、ストレージ３２は月毎の学習用データ３３が格納される。
【００３２】
＊＊＊動作の説明＊＊＊
図６から図１０を参照して、実施の形態１に係るデータ格納装置１０の動作を説明する。
実施の形態１に係るデータ格納装置１０の動作は、実施の形態１に係るデータ格納方法に相当する。また、実施の形態１に係るデータ格納装置１０の動作は、実施の形態１に係るデータ格納プログラムの処理に相当する。
【００３３】
図６を参照して、実施の形態１に係るデータ格納装置１０の全体的な動作を説明する。
ステップＳ１の必要量特定処理では、必要量特定部２１は、分析に必要なデータ量である必要量を特定する。分析に必要なデータ量とは、指定された分析精度が得られるデータ量という意味である。
具体的には、必要量特定部２１は、分析精度記憶部１２２に記憶された各分析方法を対象方法とし、ストレージに格納されたデータを入力として対象方法で分析する。これにより、必要量特定部２１は、対象方法について分析精度記憶部１２２に記憶された分析精度が得られるデータ量を特定する。そして、必要量特定部２１は、分析方法毎に特定されたデータ量のうち、最も多いデータ量を必要量として特定する。
【００３４】
ステップＳ２のデータ受信処理では、受信部２２は、収集条件記憶部１２１に記憶されたデータ収集間隔で、センサ３１からデータを受信する。
【００３５】
ステップＳ３の形式判定処理では、形式判定部２３は、ステップＳ２で受信されたデータの形式が正しいか否かを判定する。
具体的には、形式判定部２３は、データを項目毎に分解して、データに含まれる項目数を特定する。そして、形式判定部２３は、特定された項目数と、収集条件記憶部１２１に記憶された正常列数とが一致するか否かを判定する。形式判定部２３は、一致した場合にはデータの形式が正しいと判定し、一致しない場合にはデータの形式が正しくないと判定する。つまり、形式判定部２３は、通信中にデータの一部が欠落したような場合には、データの形式が正しくないと判定する。
形式判定部２３は、データの形式が正しい場合には処理をステップＳ４に進め、そうでない場合には、処理をステップＳ６に進める。
【００３６】
ステップＳ４のセンサ判定処理では、センサ判定部２４は、ステップＳ２で受信されたデータが指定されたセンサ３１から送信されたデータか否かを判定する。
具体的には、センサ判定部２４は、ステップＳ２で受信されたデータに含まれるセンサＩＤが、センサ記憶部１２３に記憶されており、かつ、ステップＳ２で受信されたデータに含まれるセンサＩＤについての優先順位が１であるか否かを判定する。センサ判定部２４は、センサＩＤが記憶されており、優先順位が１である場合には、データが指定されたセンサ３１から送信されたと判定し、そうでない場合、データが指定されたセンサ３１以外から送信されたと判定する。
センサ判定部２４は、データが指定されたセンサ３１から送信された場合には、処理をステップＳ５に進め、そうでない場合には、処理をステップＳ６に進める。
【００３７】
ステップＳ５の一時記憶処理では、格納部２５は、ステップＳ２で受信されたデータを一時記憶部１２４に格納する。一方、ステップＳ６のデータ破棄処理では、格納部２５は、ステップＳ１で受信されたデータを破棄する。
【００３８】
ステップＳ７の容量判定処理では、格納部２５は、一時記憶部１２４に記憶されたデータ量が基準量以上であるか否かを判定する。基準量は、事前に設定されたデータ量であり、任意のデータ量である。
格納部２５は、データ量が基準量以上である場合には処理をステップＳ８に進め、そうでない場合には処理をステップＳ２に戻す。
【００３９】
ステップＳ８のデータ格納処理では、格納部２５は、ステップＳ１で特定された必要量と、ステップＳ２で基準期間に受信されたデータのデータ量である受信量とから、更新期間に必要量のデータが抽出されるデータの抽出間隔を特定する。
そして、格納部２５は、一時記憶部１２４から１件ずつ受信時刻の順にデータを読み出し、抽出間隔でデータを抽出して、ストレージ３２に格納する。この際、格納部２５は、更新期間毎にデータを分けてストレージ３２に格納する。具体例としては、格納部２５は、更新期間毎に別のテーブル又はファイルにデータを格納する、あるいは、更新期間毎に別の識別子を付けてデータを格納する。なお、格納部２５は、読み出されたデータのうち、抽出されなかったデータについては、破棄する。
【００４０】
ステップＳ９の必要量判定処理では、必要量特定部２１は、必要量の再特定が必要か否かを判定する。
具体的には、必要量特定部２１は、（１）更新期間を経過した場合、（２）分析精度記憶部１２２にレコードが追加され、分析手法が追加された場合、（３）分析精度記憶部１２２からレコードが削除され、分析手法が削除された場合、（４）指定された分析精度が変更された場合のいずれかに該当するか否かを判定する。そして、必要量特定部２１は、（１）から（４）のいずれかに該当する場合には、必要量の再特定が必要であると判定し、そうでない場合には、必要量の再特定が必要ないと判定する。
つまり、図７に示すように、（０）図６に示す処理の開始時に必要量が特定された後は、（１）により更新期間毎に必要量が再特定されるとともに、（２）から（４）により、更新期間中に必要量が再特定される場合がある。
必要量特定部２１は、必要量の再特定が必要な場合には処理をステップＳ１に戻し、そうでない場合には処理をステップＳ２に戻す。
【００４１】
図８を参照して、ステップＳ１の必要量特定処理を説明する。
必要量特定処理について、図７に示す（０）から（４）の５つの場合についてそれぞれ説明する。
【００４２】
（０）図６に示す処理の開始時
前提として、図６に示す処理の開示時には、ストレージ３２に学習用データ３３が１つ格納されているとする。この学習用データ３３は、具体例としては、直近の更新期間にセンサ３１から送信された全てのデータである。あるいは、この学習用データ３３は、直近の更新期間にセンサ３１から送信された全てのデータのうち、ステップＳ３で形式が正しいと判定され、かつ、ステップＳ４で指定されたセンサ３１から送信されたと判定されるデータでもよい。あるいは、この学習用データ３３は、別途生成されたテストデータであってもよい。
【００４３】
ステップＳ１１では、必要量特定部２１は、ストレージ３２に格納された学習用データ３３を読み出す。そして、必要量特定部２１は、読み出された学習用データ３３から対象量のデータを抽出する。対象量の初期値は、事前に設定されているものとする。
【００４４】
ステップＳ１２では、必要量特定部２１は、分析精度記憶部１２２に記憶された１つの分析手法を対象方法として、抽出されたデータを用いて対象方法により分析する。
【００４５】
ステップＳ１３では、必要量特定部２１は、分析した結果の分析精度である結果精度と、対象方法について分析精度記憶部１２２に記憶された分析精度とを比較する。
分析精度記憶部１２２に記憶された分析精度を基準として許容範囲内に結果精度が入っていれば、必要量特定部２１は、現在の対象量を対象方法に対するデータ量として分析精度記憶部１２２に書き込み、処理をステップＳ１４に進める。
一方、許容範囲内に結果精度が入っていなければ、必要量特定部２１は、対象量を変更して、処理をステップＳ１１に戻す。この際、必要量特定部２１は、分析精度記憶部１２２に記憶された分析精度よりも結果精度が低い場合には対象量を増やし、分析精度記憶部１２２に記憶された分析精度よりも結果精度が高い場合には対象量を減らす。
【００４６】
ステップＳ１４では、必要量特定部２１は、分析精度記憶部１２２に未処理の分析方法が記憶されているか否かを判定する。
必要量特定部２１は、未処理の分析方法が記憶されている場合には、処理をステップＳ１２に戻し、未処理の分析方法が記憶されていない場合には、処理をステップＳ１５に進める。
【００４７】
ステップＳ１５では、必要量特定部２１は、ステップＳ１３で各分析方法について分析精度記憶部１２２に書き込まれたデータ量のうち、最も多いデータ量を必要量として特定する。
【００４８】
図３を参照して具体例を説明する。
対象量の初期値を１５ＭＢ（メガバイト）とする（図３のデータ量遷移欄参照）。ステップＳ１１で、必要量特定部２１は、学習用データ３３から１５ＭＢのデータを抽出する。ステップＳ１２で、必要量特定部２１は、分析手法“ニューラルネットワーク”を対象方法として、１５ＭＢのデータを入力として分析する。その結果、結果精度が２０％であったとする（図３の精度遷移欄参照）。すると、分析手法“ニューラルネットワーク”の分析精度８０％を基準として許容範囲±５％内に入っていない。そのため、必要量特定部２１は、対象量を倍の３０ＭＢに増やして処理をステップＳ１１に戻す（図３のデータ量遷移欄参照）。
【００４９】
次に、必要量特定部２１は、ステップＳ１１で学習用データ３３から３０ＭＢのデータを抽出する。ステップＳ１２で、必要量特定部２１は、分析手法“ニューラルネットワーク”を対象方法として、３０ＭＢのデータを入力として分析する。その結果、結果精度が４０％であったとする（図３の精度遷移欄参照）。すると、分析精度８０％を基準として許容範囲±５％内に入っていない。そのため、必要量特定部２１は、対象量を倍の６０ＭＢに増やして処理をステップＳ１１に戻す（図３のデータ量遷移欄参照）。
【００５０】
同様の処理を実行すると、対象量が６０ＭＢの場合には結果精度が６０％となり、分析精度８０％を基準として許容範囲±５％内に入っていないので、対象量が１２０ＭＢに増やされる。対象量が１２０ＭＢの場合に、結果精度が９０％となる。この場合、分析精度８０％を基準として許容範囲±５％内に入っていないが、初めて結果精度が分析精度８０％よりも高くなる。そこで、必要量特定部２１は、対象量を１００ＭＢに減らして処理をステップＳ１１に戻す（図３のデータ量遷移欄参照）。ここで、対象量が６０ＭＢから１２０ＭＢに増やされた際、結果精度が６０％から９０％に変化した。そこで、対象量である１００ＭＢは、対象量の変化と結果精度の変化とが正比例するものとして計算された、結果精度が８０％になる場合のデータ量である。具体的には、１００ＭＢ＝６０ＭＢ＋（（１２０ＭＢ−６０ＭＢ）／（９０％−６０％）×（８０％−６０％））である。
対象量が１００ＭＢの場合には結果精度が８０％となり、分析精度８０％を基準として許容範囲±５％内に入っている。そのため、ステップＳ１３で、必要量特定部２１は、対象量である１００ＭＢを分析手法“ニューラルネットワーク”についてのデータ量として分析精度記憶部１２２に書き込む。
【００５１】
次に、ステップＳ１４で分析精度記憶部１２２に未処理の分析方法が記憶されているため、処理がステップＳ１２に戻される。そして、ステップＳ１２で必要量特定部２１は、分析手法“ベイジアンネットワーク”を対象方法として、対象量である１００ＭＢのデータを入力として分析する。その結果、結果精度が７５％であったとする（図３の精度遷移欄参照）。すると、分析手法“ベイジアンネットワーク”の分析精度７０％を基準として許容範囲±５％内に入っている。そのため、ステップＳ１３で、必要量特定部２１は、対象量である１００ＭＢを分析手法“ベイジアンネットワーク”についてのデータ量として分析精度記憶部１２２に書き込む。
【００５２】
同様に、分析手法“ランダムフォレスト”について処理が実行され、データ量として２００ＭＢが書き込まれる。
【００５３】
そして、ステップＳ１５で必要量特定部２１は、各分析手法について分析精度記憶部１２２に書き込まれたデータ量のうち、最も多いデータ量である２００ＭＢを必要量として特定する。
【００５４】
（１）更新期間を経過した場合
（１）更新期間を経過した場合は、最新の学習用データ３３が使用される点が、（０）図６に示す処理の開始時と異なる。つまり、ステップＳ１１で必要量特定部２１は、ストレージ３２に格納された学習用データ３３のうち、最新の学習用データ３３を読み出す。以降の処理は、（０）図６に示す処理の開始時と同じである。
【００５５】
（２）分析精度記憶部１２２にレコードが追加された場合
追加されたレコードの分析方法だけを処理対象として、ステップＳ１１からステップＳ１４が実行される点が、（１）更新期間を経過した場合と異なる。つまり、ステップＳ１２で対象方法とされるのは、追加されたレコードの分析方法だけである。そして、ステップＳ１５では、分析精度記憶部１２２に記憶された全ての分析方法を対象として、最も多いデータ量が必要量として特定される。
【００５６】
（３）分析精度記憶部１２２からレコードが削除された場合
ステップＳ１１からステップＳ１４を実行せず、ステップＳ１５で残っているレコードの分析方法を対象として、最も多いデータ量が必要量として特定される。
【００５７】
（４）指定された分析精度が変更された場合
分析精度が変更されたレコードの分析方法だけを処理対象として、ステップＳ１１からステップＳ１４が実行される点が、（１）更新期間を経過した場合と異なる。つまり、ステップＳ１２で対象方法とされるのは、分析精度が変更されたレコードの分析方法だけである。そして、ステップＳ１５では、分析精度記憶部１２２に記憶された全ての分析方法を対象として、最も多いデータ量が必要量として特定される。
【００５８】
なお、ステップＳ１１で必要量特定部２１は、学習用データ３３に含まれるデータ量が対象量よりも少ない場合には、１つ古い学習用データ３３も用いる。
【００５９】
ステップＳ１３で用いる結果精度について補足する。
結果精度を計算するために、必要量特定部２１は、正解データを事前に用意しておき、分析した結果と正解データとを比較することにより結果精度を計算する。
具体例としては、（０）図６に示す処理の開始時に用いる学習用データ３３の一部を正解データ３４とする。例えば、（０）図６に示す処理の開始時に用いる学習用データ３３が１月間にセンサ３１から送信された全てのデータである場合に、学習用データ３３のうちの１日分のデータを正解データ３４とする。
ステップＳ１２で必要量特定部２１は、分析を行い１日分の分析値を計算する。そして、ステップＳ１３で必要量特定部２１は、同じ時刻についての分析値と正解データ３４の値とを比較して、一致率を計算する。必要量特定部２１は計算された一致率を結果精度とする。
例えば、図９に示すように、正解データ３４として、ａ１〜ａ１５の値が与えられ、分析値としてｂ１〜ｂ１５の値が得られたとする。このとき、必要量特定部２１は、ａ１とｂ１、ａ２とｂ２というように、同じ時刻の値どうしを比較する。そして、必要量特定部２１は、分析値の値が、比較される正解データ３４の値を基準として基準範囲内に入っていれば、分析値の値と正解データ３４の値とが一致するとして、一致率を計算する。例えば、ａ２−（０．１×ａ２）≦ｂ２≦ａ２＋（０．１×ａ２）であれば、分析値ｂ２は、正解データ３４の値と一致すると判定される。
分析によって、学習用データ３３の値が補間されるような場合には、正解データ３４と比較される対象から、学習用データ３３に含まれていた値を除外してもよい。図９において、分析値のうち、黒塗りで示された点は学習用データ３３に含まれていた値を示すとする。この場合、残りの白抜きで示された点であるｂ２，ｂ４，ｂ６，．．．についてのみ、同じ時刻の正解データ３４の値と比較して、一致率が計算される。
【００６０】
図１０を参照して、ステップＳ８のデータ格納処理を説明する。
ステップＳ８１では、格納部２５は、後述するステップＳ８２の処理で抽出間隔を特定した後に、ステップＳ１で必要量が特定されたか否かを判定する。
格納部２５は、必要量が特定された場合には処理をステップＳ８２に進め、必要量が特定されていない場合には処理をステップＳ８３に進める。
【００６１】
ステップＳ８２では、格納部２５は、更新期間に必要量のデータが均等に抽出されるようにするためのデータの抽出間隔を特定する。データが均等に抽出されるようにするのは、ある時期又はある時間帯等に偏ったデータでは、分析精度が低くなってしまう場合と、ある用途にしか利用できない場合とがあるためである。
具体的には、格納部２５は、ステップＳ１で特定された必要量を、更新期間を基準期間で除した値で除して、基準期間当たりの必要量を計算する。また、格納部２５は、基準期間当たりに受信部２２によって受信される平均的なデータ量を計算する。ここでは、格納部２５は、指定されたセンサ３１の数と、データの収集間隔から特定される基準期間当たりに１つのセンサ３１から収集されるデータ数と、１件のデータの平均データ量とを乗じて、平均的なデータ量を計算する。
そして、格納部２５は、１つのセンサ３１から収集されるデータ数を、平均的なデータ量を必要量で除した値で除して、基準期間当たりに１つのセンサ３１から抽出するデータ数を計算する。格納部２５は、基準期間当たりに１つのセンサ３１から収集されるデータ数を、計算されたデータ数で除して抽出間隔を計算する。
【００６２】
具体例としては、基準期間を１分とする。また、１分当たりの必要量が１０ＭＢであるとする。また、指定されたセンサ３１の数が１０００であり、１分当たりに１つのセンサ３１から収集されるデータ数が６１件であり、１つのデータの平均データ量が５１２Ｂ（バイト）であるとする。すると、１分当たりに受信部２２が受信する平均的なデータ量は２９．７ＭＢとなり、基準期間当たりに１つのセンサ３１から抽出するデータ数は、６１件／（２９．７ＭＢ／１０ＭＢ）＝２０．５４件になる。そして、抽出間隔は、６１件／２０．５４件＝２．９７件となる。
つまり、各センサ３１から収集されたデータについて、２．９７≒３件に１件ずつデータを抽出すれば、更新期間に必要量のデータがストレージ３２に格納されることになる。
【００６３】
ステップＳ８３では、格納部２５は、一時記憶部１２４から収集された順に１件のデータを読み出す。
【００６４】
ステップＳ８４では、格納部２５は、カウンタの値が抽出間隔と等しいか否かを判定する。なお、抽出間隔は、正の整数であるとする。
格納部２５は、カウンタの値が抽出間隔と等しければ処理をステップＳ８５に進め、カウンタの値が抽出間隔と等しくなければ処理をステップＳ８６に進める。なお、カウンタの値の初期値は０とする。
【００６５】
ステップＳ８５では、格納部２５は、カウンタの値を０にした上で、読み出されたデータを保持しておく。一方、ステップＳ８６では、格納部２５は、カウンタの値に１を加算した上で、読み出されたデータを破棄する。
そして、ステップＳ８７では、格納部２５は、一時記憶部１２４に未処理のデータがあるか否か判定する。格納部２５は、未処理のデータがあれば、処理をステップＳ８３に戻し、なければ、処理をステップＳ８８に進める。
【００６６】
ステップＳ８８では、格納部２５は、保持されたデータを、収集元のセンサ３１毎に分けて、圧縮した上でストレージ３２に格納する。また、格納部２５は、一時記憶部１２４のデータを削除する。
【００６７】
＊＊＊実施の形態１の効果＊＊＊
以上のように、実施の形態１に係るデータ格納装置１０は、データの分析に必要な必要量からデータの抽出間隔を特定して、特定された抽出間隔でデータを抽出してストレージ３２に格納する。これにより、分析の精度を維持しつつ、ストレージ３２に格納されるデータ量を減らすことができる。
【００６８】
また、実施の形態１に係るデータ格納装置１０は、データの形式を確認し、形式が正しいデータのみをストレージ３２に格納する。そのため、通信エラー等によりデータの一部が欠落し、分析に利用できないデータをストレージ３２に格納することを防止できる。これにより、ストレージ３２に不要なデータが格納されることを防止できる。
【００６９】
また、実施の形態１に係るデータ格納装置１０は、指定されたセンサ３１から収集されたデータのみをストレージ３２に格納する。そのため、バックアップ用として同様のセンサ３１を複数稼働させている場合に、重複してデータをストレージ３２に格納することを防止できる。
【００７０】
＊＊＊他の構成＊＊＊
【００７１】
＜変形例１＞
更新期間の途中で必要量が増加し、抽出間隔が再特定される場合がある。この場合、単純に実施の形態１で説明した処理を続けると、その更新期間においてストレージ３２に格納されるデータ量は、再特定された必要量にはならない。
図１１を参照して具体的に説明する。更新期間の中間点で必要量が５０ＭＢから１００ＭＢに増えたとする。この場合、更新期間の前半は、更新期間の終了時点で５０ＭＢ分のデータがストレージ３２に格納されるペースでデータが抽出される。したがって、更新期間の前半には２５ＭＢ分のデータがストレージ３２に格納される。更新期間の後半は、前半の倍のペースでデータが抽出される。したがって、更新期間の後半には５０ＭＢ分のデータがストレージ３２に格納される。その結果、更新期間の終了時点で７５ＭＢ分のデータがストレージ３２に格納されることになる。
【００７２】
これでは、その更新期間については、データの分析に必要なデータ量がストレージ３２に蓄積されないことになってしまう。そこで、変形例１として、格納部２５は、更新期間の途中で必要量が増加した場合、更新期間の開始時点から必要量が特定し直された時点までの過去期間については、増加した必要量で特定された抽出間隔により抽出された件数になるようにストレージ３２に格納されたデータを補間して等間隔に挿入する。これにより、過去期間分についてストレージ３２に格納されたデータ量を増加させる。
具体的には、格納部２５は、ストレージ３２に格納された過去期間のデータを収集元のセンサ３１毎に時系列に並べ、スプライン補間といった処理により、データ間の値を特定する。そして、格納部２５は、不足する分だけデータを取り出して、別データとしてストレージ３２に格納する。
図１２を参照して具体的に説明する。図１２では、黒塗りの点がストレージ３２に格納されたデータを示し、白抜きの点が補間された点を示す。更新期間の中間点で必要量が５０ＭＢから１００ＭＢに増えたとする。この場合、更新期間の前半においてストレージ３２に格納されたデータ量を倍にする必要がある。そこで、格納部２５は、更新期間の前半においてストレージ３２に格納されたデータを、収集元のセンサ３１毎に時系列に並べ、補間することにより、データ間の値を特定する。ここでは、ｉを１以上の整数とすると、補間点ｉ＋０．５の値は、隣り合う２つの値ｉ，ｉ＋１の平均値としている。そして、特定された値を示すデータをストレージ３２に格納する。これにより、更新期間の前半分のデータ量が２５ＭＢから５０ＭＢになる。そのため、更新期間の後半に、前半の倍のペースでデータが抽出され５０ＭＢ分のデータが抽出されれば、更新期間の終了時点で１００ＭＢ分のデータがストレージ３２に格納されることになる。
【００７３】
なお、更新期間の途中で必要量が再特定された場合、更新期間の残りの期間で必要量のデータがストレージ３２に格納されるように抽出間隔を特定することも考えられる。つまり、上述したように、更新期間の中間点で必要量が５０ＭＢから１００ＭＢに増えた場合であれば、更新期間の前半で２５ＭＢのデータしか格納されていないので、後半で７５ＭＢのデータが格納されるように抽出間隔を特定することも考えられる。
しかし、こうしてしまうと、ストレージ３２には、後半のデータが多くなってしまい、データに偏りが生じてしまう。そのため、分析精度が高くならない可能性がある。
【００７４】
ここでは、更新期間の途中で必要量が増加した場合を説明した。更新期間の途中で必要量が減少する場合もある。この場合、単純に実施の形態１で説明した処理を続けると、ストレージ３２に格納されるデータ量が多くなってしまう。しかし、データ量が少し多くなるだけで分析に必要なデータ量は確保される。そのため、単純に実施の形態１で説明した処理を続けてもよい。また、ストレージ３２に格納されたその更新期間のデータを一定間隔で間引いて、ストレージ３２に格納されたデータ量を減らしてもよい。
【００７５】
＜変形例２＞
実施の形態１では、形式が正しいデータをストレージ３２に格納していた。しかし、通信状態等によっては、多くのデータの形式に誤りがある場合もある。その結果、必要量のデータをストレージ３２に格納できなくなってしまう場合もある。
そこで、変形例２として、形式判定部２３は、基準率以上のデータの形式に誤りがある場合には、同じセンサ３１から前後に収集されたデータを用いて補間を行い、データ形式を整える。具体例としては、形式判定部２３は、データの温度の項目が欠けていた場合、そのデータの前に収集されたデータの温度と、そのデータの後に収集されたデータの温度とから、欠けていた温度の項目の値を計算して、データ形式を整える。そして、格納部２５は、データ形式が整ったデータをストレージ３２に格納する対象として一時記憶部１２４に格納する。
【００７６】
＜変形例３＞
実施の形態１では、優先順位が１のセンサ３１から収集されたデータをストレージ３２に格納していた。しかし、優先順位が１のセンサ３１が故障する場合もある。
そこで、変形例３として、受信部２２は、あるセンサ３１から送信されたデータを一定期間受信しない場合、そのセンサ３１は故障したものとみなす。そして、そのセンサ３１の優先順位を対象外にし、そのセンサ３１と同じセンサグループに属する他のセンサ３１の優先順位を繰り上げる。具体例としては、故障したとみなされたセンサ３１の優先順位が３であれば、優先順位が４以下であった他のセンサ３１の優先順位を１つずつ上げる。
これにより、優先順位が１のセンサ３１が故障した場合であっても、同じセンサグループに属する他のセンサ３１のデータがストレージ３２に格納されるようになる。
【００７７】
＜変形例４＞
実施の形態１では、図８のステップＳ１３で、許容範囲内に結果精度が入っていない場合に、分析精度よりも結果精度が低い場合には対象量を増やし、分析精度よりも結果精度が高い場合には対象量を減らした。これは、入力とするデータが多いほど、分析精度が高くなるということを前提としていたためである。しかし、入力とするデータが多いほど、分析精度が高くならない場合もあり得る。
そこで、変形例４として、過去の対象量の変化と結果精度の変化とに応じて、対象量を増減させる。
【００７８】
図１３を参照して具体的に説明する。
ステップＳ１３１では、必要量特定部２１は、分析精度よりも結果精度が低いか否かを判定する。必要量特定部２１は、分析精度よりも結果精度が低い場合には処理をステップＳ１３２に進め、そうでない場合には処理をステップＳ１３５に進める。
【００７９】
ステップＳ１３２では、必要量特定部２１は、直近に実行されたステップＳ１１では、その前に実行されたステップＳ１１よりも対象量を増やしたか否かを判定する。必要量特定部２１は、増やした場合には処理をステップＳ１３３に進め、そうでない場合には処理をステップＳ１３４に進める。
ステップＳ１３３では、必要量特定部２１は、直近に実行されたステップＳ１２での結果精度が、その前に実行されたステップＳ１２での結果精度よりも高いか否かを判定する。必要量特定部２１は、高い場合には対象量を増加させ、そうでない場合には対象量を減少させる。
ステップＳ１３４では、必要量特定部２１は、直近に実行されたステップＳ１２での結果精度が、その前に実行されたステップＳ１２での結果精度よりも高いか否かを判定する。必要量特定部２１は、高い場合には対象量を減少させ、そうでない場合には対象量を増加させる。
【００８０】
ステップＳ１３５では、必要量特定部２１は、直近に実行されたステップＳ１１では、その前に実行されたステップＳ１１よりも対象量を増やしたか否かを判定する。必要量特定部２１は、増やした場合には処理をステップＳ１３６に進め、そうでない場合には処理をステップＳ１３７に進める。
ステップＳ１３６では、必要量特定部２１は、直近に実行されたステップＳ１２での結果精度が、その前に実行されたステップＳ１２での結果精度よりも高いか否かを判定する。必要量特定部２１は、高い場合には対象量を減少させ、そうでない場合には対象量を増加させる。
ステップＳ１３７では、必要量特定部２１は、直近に実行されたステップＳ１２での結果精度が、その前に実行されたステップＳ１２での結果精度よりも高いか否かを判定する。必要量特定部２１は、高い場合には対象量を増加させ、そうでない場合には対象量を減少させる。
【００８１】
＜変形例５＞
実施の形態１では、データ格納装置１０の各部の機能がソフトウェアで実現された。しかし、変形例５として、データ格納装置１０の各部の機能はハードウェアで実現されてもよい。この変形例５について、実施の形態１と異なる点を説明する。
【００８２】
図１４を参照して、変形例５に係るデータ格納装置１０の構成を説明する。
各部の機能がハードウェアで実現される場合、データ格納装置１０は、プロセッサ１１と記憶装置１２とに代えて、処理回路１５を備える。処理回路１５は、データ格納装置１０の各部の機能及び記憶装置１２の機能を実現する専用の電子回路である。
【００８３】
処理回路１５は、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ロジックＩＣ、ＧＡ（Ｇａｔｅ  Ａｒｒａｙ）、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）、ＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）が想定される。
各部の機能を１つの処理回路１５で実現してもよいし、各部の機能を複数の処理回路１５に分散させて実現してもよい。
【００８４】
＜変形例６＞
変形例６として、一部の機能がハードウェアで実現され、他の機能がソフトウェアで実現されてもよい。つまり、データ格納装置１０の各部のうち、一部の機能がハードウェアで実現され、他の機能がソフトウェアで実現されてもよい。
【００８５】
プロセッサ１１と記憶装置１２と処理回路１５とを、総称して「プロセッシングサーキットリー」という。つまり、各部の機能は、プロセッシングサーキットリーにより実現される。
【符号の説明】
【００８６】
１０  データ格納装置、１１  プロセッサ、１２  記憶装置、１２１  収集条件記憶部、１２２  分析精度記憶部、１２３  センサ記憶部、１２４  一時記憶部、１３  入力インタフェース、１４  出力インタフェース、１５  処理回路、２１  必要量特定部、２２  受信部、２３  形式判定部、２４  センサ判定部、２５  格納部、３１  センサ、３２  ストレージ、３３  学習用データ。
【図１】
0006571027.tif 000002
【図２】
0006571027.tif 000003
【図３】
0006571027.tif 000004
【図４】
0006571027.tif 000005
【図５】
0006571027.tif 000006
【図６】
0006571027.tif 000007
【図７】
0006571027.tif 000008
【図８】
0006571027.tif 000009
【図９】
0006571027.tif 000010
【図１０】
0006571027.tif 000011
【図１１】
0006571027.tif 000012
【図１２】
0006571027.tif 000013
【図１３】
0006571027.tif 000014
【図１４】
0006571027.tif 000015