IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 公立大学法人会津大学の特許一覧

特開2023-97910時系列分類装置、時系列分類プログラム及び時系列分類方法
<>
  • 特開-時系列分類装置、時系列分類プログラム及び時系列分類方法 図1
  • 特開-時系列分類装置、時系列分類プログラム及び時系列分類方法 図2
  • 特開-時系列分類装置、時系列分類プログラム及び時系列分類方法 図3
  • 特開-時系列分類装置、時系列分類プログラム及び時系列分類方法 図4
  • 特開-時系列分類装置、時系列分類プログラム及び時系列分類方法 図5
  • 特開-時系列分類装置、時系列分類プログラム及び時系列分類方法 図6
  • 特開-時系列分類装置、時系列分類プログラム及び時系列分類方法 図7
  • 特開-時系列分類装置、時系列分類プログラム及び時系列分類方法 図8
  • 特開-時系列分類装置、時系列分類プログラム及び時系列分類方法 図9
  • 特開-時系列分類装置、時系列分類プログラム及び時系列分類方法 図10
  • 特開-時系列分類装置、時系列分類プログラム及び時系列分類方法 図11
  • 特開-時系列分類装置、時系列分類プログラム及び時系列分類方法 図12
  • 特開-時系列分類装置、時系列分類プログラム及び時系列分類方法 図13
  • 特開-時系列分類装置、時系列分類プログラム及び時系列分類方法 図14
  • 特開-時系列分類装置、時系列分類プログラム及び時系列分類方法 図15
  • 特開-時系列分類装置、時系列分類プログラム及び時系列分類方法 図16
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023097910
(43)【公開日】2023-07-10
(54)【発明の名称】時系列分類装置、時系列分類プログラム及び時系列分類方法
(51)【国際特許分類】
   G06N 5/04 20230101AFI20230703BHJP
   G06N 20/00 20190101ALI20230703BHJP
   G06F 17/18 20060101ALI20230703BHJP
【FI】
G06N5/04
G06N20/00 130
G06F17/18 Z
【審査請求】未請求
【請求項の数】6
【出願形態】OL
(21)【出願番号】P 2021214286
(22)【出願日】2021-12-28
【新規性喪失の例外の表示】特許法第30条第2項適用申請有り (1)令和3年7月11日に https://ieeexplore.ieee.org/document/9494521にて発表。 (2)令和3年7月12日に IEEE International Conference on Fuzzy Systems(FUZZ-IEEE)2021にて発表。
(71)【出願人】
【識別番号】506301140
【氏名又は名称】公立大学法人会津大学
(74)【代理人】
【識別番号】100094525
【弁理士】
【氏名又は名称】土井 健二
(74)【代理人】
【識別番号】100094514
【弁理士】
【氏名又は名称】林 恒徳
(72)【発明者】
【氏名】ラゲ ウダイ キラン
(72)【発明者】
【氏名】渡部 有隆
(72)【発明者】
【氏名】ペニュゴンダ ラヴィクマール
【テーマコード(参考)】
5B056
【Fターム(参考)】
5B056BB61
(57)【要約】      (修正有)
【課題】計算量が少なく低コストの計算方法で高精度に分類する時系列分類装置、方法及びプログラムを提供する。
【解決手段】方法は、実訓練時系列データを、複数の時系列のイベント値の最小値と、最大値と、最小値及び最大値の間の代表値を有する最小値時系列と、最大値時系列と、代表値時系列をイベント毎に有する各クラスの代表訓練時系列データに圧縮し、分類対象のテスト時系列の複数のタイムスタンプのイベント値に対する複数のFMS値を、各クラスの代表訓練時系列データに基づいて、クラス毎に算出し、複数のタイムスタンプのFMS値の平均値が最小のクラスを、テスト時系列のクラスに分類する。テスト時系列のイベント値が、最小値時系列のイベント値以下または最大値時系列のイベント値以上ならFMS値=1.0、最小値と代表値時系列のイベント値の間ならFMS値=α×A、代表値と最大値時系列のイベント値の間ならFMS値=Δ×Bと算出する。
【選択図】図11
【特許請求の範囲】
【請求項1】
メモリと、
前記メモリにアクセスするプロセッサとを有し、
前記プロセッサは、
(1)クラスがそれぞれラベリングされた複数の時系列を有する実訓練時系列データをクラス別に分割し、
(2)前記分割した各クラスの複数の時系列をそれぞれ有する各クラスの実訓練時系列データを、前記複数の時系列の各タイムスタンプのイベント値の最小値と、最大値と、前記最小値及び最大値の間の代表値をそれぞれ有する最小値時系列と、最大値時系列と、代表値時系列を有する各クラスの代表訓練時系列データにそれぞれ圧縮し、
(3)分類対象のテスト時系列の複数のタイムスタンプのイベント値それぞれに対する複数のファジーメンバーシップ値(以下FMS値と称する。)を、前記各クラスの代表訓練時系列データに基づいて、クラス毎に算出し、
(4)前記複数のタイムスタンプのFMS値の平均値が最小のクラスを、前記テスト時系列のクラスに分類し、
前記(3)の処理で、前記テスト時系列のイベント値が、
前記最小値時系列のイベント値以下または前記最大値時系列のイベント値以上の場合、最大FMS値を、
前記代表値時系列のイベント値と等しい場合、最小FMS値を、
前記最小値時系列のイベント値から前記代表値時系列のイベント値の間の場合、前記テスト時系列のイベント値の増加に対応して前記最大FMS値及び前記最小FMS値の間の第1FMS値から最小FMS値に減少する第2FMS値を、
前記代表値時系列のイベント値から前記最大値時系列のイベント値の間の場合、前記テスト時系列のイベント値の増加に対応して前記最小FMS値から前記最小FMS値及び前記最大FMS値の間の第3FMS値に増加する第4FMS値を、
前記テスト時系列のイベント値のFMS値にそれぞれ算出する、時系列分類装置。
【請求項2】
前記最小値時系列のイベント値と前記代表値時系列のイベント値の間の第1パーセンタイルで、前記第2FMS値が減少するための第1の係数が変化し、
前記代表値時系列のイベント値と前記最大値時系列のイベント値の間の第2パーセンタイルで、前記第4FMS値が増加するための第2の係数が変化する、請求項1に記載の時系列分類装置。
【請求項3】
前記最小値時系列のイベント値と前記第1パーセンタイルとの間の前記第2FMS値が減少する係数が1であり、
前記第2パーセンタイルと前記最大値時系列のイベント値との間の前記第4FMS値が増加する係数が1である、請求項2に記載の時系列分類装置。
【請求項4】
前記代表値は、平均値、中央値、最頻値及びミッドレンジのいずれかである、請求項1乃至3のいずれかに記載の時系列分類装置。
【請求項5】
(1)クラスがそれぞれラベリングされた複数の時系列を有する実訓練時系列データをクラス別に分割し、
(2)前記分割した各クラスの複数の時系列をそれぞれ有する各クラスの実訓練時系列データを、前記複数の時系列の各タイムスタンプのイベント値の最小値と、最大値と、前記最小値及び最大値の間の代表値をそれぞれ有する最小値時系列と、最大値時系列と、代表値時系列を有する各クラスの代表訓練時系列データにそれぞれ圧縮し、
(3)分類対象のテスト時系列の複数のタイムスタンプのイベント値それぞれに対する複数のファジーメンバーシップ値(以下FMS値と称する。)を、前記各クラスの代表訓練時系列データに基づいて、クラス毎に算出し、
(4)前記複数のタイムスタンプのFMS値の平均値が最小のクラスを、前記テスト時系列のクラスに分類し、
前記(3)の処理で、前記テスト時系列のイベント値が、
前記最小値時系列のイベント値以下または前記最大値時系列のイベント値以上の場合、最大FMS値を、
前記代表値時系列のイベント値と等しい場合、最小FMS値を、
前記最小値時系列のイベント値から前記代表値時系列のイベント値の間の場合、前記テスト時系列のイベント値の増加に対応して前記最大FMS値及び前記最小FMS値の間の第1FMS値から最小FMS値に減少する第2FMS値を、
前記代表値時系列のイベント値から前記最大値時系列のイベント値の間の場合、前記テスト時系列のイベント値の増加に対応して前記最小FMS値から前記最小FMS値及び前記最大FMS値の間の第3FMS値に増加する第4FMS値を、
前記テスト時系列のイベント値のFMS値にそれぞれ算出する、
処理をコンピュータに実行させるプログラムコードを有する時系列分類プログラム。
【請求項6】
(1)クラスがそれぞれラベリングされた複数の時系列を有する実訓練時系列データをクラス別に分割し、
(2)前記分割した各クラスの複数の時系列をそれぞれ有する各クラスの実訓練時系列データを、前記複数の時系列の各タイムスタンプのイベント値の最小値と、最大値と、前記最小値及び最大値の間の代表値をそれぞれ有する最小値時系列と、最大値時系列と、代表値時系列を有する各クラスの代表訓練時系列データにそれぞれ圧縮し、
(3)分類対象のテスト時系列の複数のタイムスタンプのイベント値それぞれに対する複数のファジーメンバーシップ値(以下FMS値と称する。)を、前記各クラスの代表訓練時系列データに基づいて、クラス毎に算出し、
(4)前記複数のタイムスタンプのFMS値の平均値が最小のクラスを、前記テスト時系列のクラスに分類し、
前記(3)の処理で、前記テスト時系列のイベント値が、
前記最小値時系列のイベント値以下または前記最大値時系列のイベント値以上の場合、最大FMS値を、
前記代表値時系列のイベント値と等しい場合、最小FMS値を、
前記最小値時系列のイベント値から前記代表値時系列のイベント値の間の場合、前記テスト時系列のイベント値の増加に対応して前記最大FMS値及び前記最小FMS値の間の第1FMS値から最小FMS値に減少する第2FMS値を、
前記代表値時系列のイベント値から前記最大値時系列のイベント値の間の場合、前記テスト時系列のイベント値の増加に対応して前記最小FMS値から前記最小FMS値及び前記最大FMS値の間の第3FMS値に増加する第4FMS値を、
前記テスト時系列のイベント値のFMS値にそれぞれ算出する、
処理をプロセッサが実行する時系列分類方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、時系列分類装置、時系列分類プログラム及び時系列分類方法に関する。
【背景技術】
【0002】
現実世界では様々な時系列(または時系列データ)が生成される。例えば、ECGデータ(心電図データ)などである。時系列(time series)とは、ある現象の時間的な変化を、連続的に(または一定間隔をおいて不連続に)観測して得られた値の系列(一連の値)のことをいう。例えば、統計学や信号処理で時間経過に従って計測されるデータ列であり、通常、一定のある時間間隔で測定される(Wikipediaより転載)。
【0003】
このような時系列を分類することは重要なタスクである。例えば、後述する図2図3の実際の時系列データTR_TSDBに示すとおり、16個の時系列ts1~ts16は、タイムスタンプ1~10の10個のイベント値をそれぞれ持つ。そして、16個の時系列は8個ずつ2つのクラスCL(CL=1及びCL=2)に分類される。
【0004】
上記16個の時系列を訓練データとして持つ分類モデル(分類装置)が与えられた場合、時系列分類装置は、モデルの訓練データに基づいてテストの(分類対象の)時系列を2つのクラスのいずれかに分類する。前述のECGデータの場合、様々な心疾患のECGデータを訓練時系列とする分類装置が、患者のECGデータの時系列をいずれかの心疾患に分類する。
【0005】
従来の時系列分類装置は、最短ユークリッド距離法、RNN、LSTM、GRU(Recurrent neural network、Long Short Term Memory、Gated recurrent unit、それぞれマシンラーニングの一つ)などがある。
【先行技術文献】
【非特許文献】
【0006】
【非特許文献1】Fuzzy Classification of Time Series Data, Penugonda Ravikumar, V. Susheela Devi, published on October 8, 2013, 2013 IEEE-FUZZ
【非特許文献2】Weighted Feature-based Classification of Time Series Data, Penugonda Ravikumar, V. Susheela Devi, published on January 15, 2015, 2014 IEEE-CIDM
【非特許文献3】A Novel Parameter-Free Energy Efficient Fuzzy Nearest Neighbor Classifier for Time Series Data, Penugonda Ravikumar, R. Uday Kiran, et.al., published July 11, 2021, 2021 FUZZ-IEEE
【発明の概要】
【発明が解決しようとする課題】
【0007】
最短ユークリッド距離法は、テスト時系列との間のユークリッド距離が最短の訓練データを検出し、テスト時系列を検出した訓練データのクラスに分類する。
【0008】
しかし、この方法では、テスト時系列の全イベント値と全訓練データの時系列の全イベント値とのユークリッド距離をそれぞれ計算する必要があるので、訓練データの時系列の数及び各時系列のイベント値の数が多いと計算量が膨大になる。また、テスト時系列のN個(前述の10個)のタイムスタンプのイベント値に最も類似するN個のイベント値を持つ訓練データを検出するので、分類精度は高くない。なぜなら、このような最短ユークリッド距離法は、訓練データの複数の時系列のイベント値の分布を考慮していないからである。
【0009】
更に、マシンラーニングは、なぜその分類に決定したかを説明できないブラックボックス問題があり、パラメータが膨大で長時間の計算が必要であり、高価である。
【0010】
従来の時系列分類方法は、時系列内のイベント値のファジーな性質(fuzzy nature of the items within a time series)を考慮していない。すなわち、各クラスに属する複数の時系列は各タイムスタンプにおいて異なるイベント値を持ち、各タイムスタンプの異なるイベント値は所定の範囲内または分布内の値である。従来の最短ユークリッド距離法では、訓練データの時系列が各タイムスタンプにおいて単一のイベント値を持つ。そのため、時系列分類装置の精度に限界がある。
【0011】
そこで、本実施の形態の第1の側面の目的は、計算量が少なく低コストの計算方法で高精度に分類する時系列分類装置、時系列分類プログラム及び時系列分類方法を提供することにある。
【課題を解決するための手段】
【0012】
本実施の形態の第1の側面は、メモリと、前記メモリにアクセスするプロセッサとを有し、
前記プロセッサは、
(1)クラスがそれぞれラベリングされた複数の時系列を有する実訓練時系列データをクラス別に分割し、
(2)前記分割した各クラスの複数の時系列をそれぞれ有する各クラスの実訓練時系列データを、前記複数の時系列の各タイムスタンプのイベント値の最小値と、最大値と、前記最小値及び最大値の間の代表値をそれぞれ有する最小値時系列と、最大値時系列と、代表値時系列を有する各クラスの代表訓練時系列データにそれぞれ圧縮し、
(3)分類対象のテスト時系列の複数のタイムスタンプのイベント値それぞれに対する複数のファジーメンバーシップ値(以下FMS値と称する。)を、前記各クラスの代表訓練時系列データに基づいて、クラス毎に算出し、
(4)前記複数のタイムスタンプのFMS値の平均値が最小のクラスを、前記テスト時系列のクラスに分類し、
前記(3)の処理で、前記テスト時系列のイベント値が、
前記最小値時系列のイベント値以下または前記最大値時系列のイベント値以上の場合、最大FMS値を、
前記代表値時系列のイベント値と等しい場合、最小FMS値を、
前記最小値時系列のイベント値から前記代表値時系列のイベント値の間の場合、前記テスト時系列のイベント値の増加に対応して前記最大FMS値及び前記最小FMS値の間の第1FMS値から最小FMS値に減少する第2FMS値を、
前記代表値時系列のイベント値から前記最大値時系列のイベント値の間の場合、前記テスト時系列のイベント値の増加に対応して前記最小FMS値から前記最小FMS値及び前記最大FMS値の間の第3FMS値に増加する第4FMS値を、
前記テスト時系列のイベント値のFMS値にそれぞれ算出する、時系列分類装置である。
【発明の効果】
【0013】
第1の側面によれば、時系列の分類を計算量が少なく低コスト且つ高精度に行うことができる。
【図面の簡単な説明】
【0014】
図1】本実施の形態における時系列分類装置の構成を示す図である。
図2】クラスラベルCL=2に対応付けられた実際の訓練時系列データTR_TSDB(CL=2)とテストデータの時系列データTST_TSDBを示す図である。
図3】クラスラベルCL=1に対応付けられた実際の訓練時系列データTR_TSDB(CL=1)とテストデータの時系列データTST_TSDBを示す図である。
図4図2のクラスCL2の時系列ts1~ts8とテスト時系列tts17をプロットしたグラフを示す図である。
図5図3のクラスCL1の時系列データts9~ts16とテスト時系列tts17をプロットしたグラフを示す図である。
図6】本実施の形態における時系列分類装置によるテストデータのテスト時系列の分類方法を示すフローチャート図である。
図7】代表訓練時系列データRP_TSDBの生成処理S2の第1の例のフローチャートを示す図である。
図8】処理S3のフローチャートを示す図である。
図9】クラス2(cl2)の代表訓練時系列データRP_TSDB2の時系列とテスト時系列tts17の例を示す図である。
図10】クラス1(cl1)の代表訓練時系列データRP_TSDB1の時系列とテスト時系列tts17の例を示す図である。
図11】FMS関数μの第1の例を示す図である。
図12】ユーザが与えるα、Δがα=0.5、Δ=0.1の場合のFMS値を算出するFMS関数μを示す図である。
図13】テスト時系列ts17とクラスCL=2の代表訓練時系列データの5つの時系列ts_min_2, ts_β_2, ts_mean_2, ts_Γ_2, ts_max_2をプロットしたグラフの図である。
図14】テスト時系列ts17とクラスCL=1の代表訓練時系列データの5つの時系列ts_min_2, ts_β_2, ts_mean_2, ts_Γ_2, ts_max_2をプロットしたグラフの図である。
図15】代表訓練時系列データRP_TSDBの生成方法の第2の例のフローチャートを示す図である。
図16図15の第2の例におけるFMS関数μを示す図である。
【発明を実施するための形態】
【0015】
図1は、本実施の形態における時系列分類装置の構成を示す図である。時系列分類装置1は、サーバ、クライアント端末、パーソナルコンピュータ、タブレット端末、スマートフォンなどのコンピュータである。時系列分類装置1は、プロセッサ10と、メインメモリ12と、ネットワークインタフェース14と、ストレージ20~26と、それらを接続するバス28を有する。ストレージには、時系列分類プログラム20、実訓練時系列データ22、クラス別の実訓練時系列データから生成された代表訓練時系列データ24、分類対象のテスト時系列データ26が格納される。ネットワークインタフェース14は、ネットワークNWを介して複数のクライアント端末装置30,32と接続可能である。
【0016】
時系列分類プログラム20は、メインメモリ12内に展開され、プロセッサ10により実行される。プロセッサ10が、時系列分類プログラム20を実行することで、実訓練時系列データ22から代表訓練時系列データ24を生成し、テスト時系列データ26の各テスト時系列を分類する。
【0017】
単変数の時系列tsidは、ある時間間隔で発生するイベント値の順番に収集されたものである。つまり、時系列tsidは以下のように表される。
tsid={v1, v2, ... vc}
ここで、vp (1≦p≦c)は、タイムスタンプpのイベント値を表す。時系列の長さ|tsid|は、イベント値vpの合計数cを表す。
【0018】
時系列データTSDBは、複数の時系列の集合である。つまり以下のとおりである。
TSDB={ts1, ts2, ... tsk}, k≧1
時系列データのサイズ|TSDB|は、時系列データTSDB内に存在する時系列tsidの合計数kである。|TSDB|=k
【0019】
以下のCLは、分類ラベル(クラスラベル)の集合である。nはクラス数である。
CL={CL1, CL2, ... CLn}, n≧1
【0020】
時系列分類において、時系列データTSDBの要素である時系列tsidそれぞれは、分類ラベル(クラスラベル)clkまたはclk(1≦k≦n)に対応付けられる。
【0021】
図2は、クラスラベルCL=2に対応付けられた実際の訓練時系列データTR_TSDB(CL=2)とテストデータの時系列データTST_TSDBを示す図である。図3は、クラスラベルCL=1に対応付けられた実際の訓練時系列データTR_TSDB(CL=1)とテストデータの時系列データTST_TSDBを示す図である。図2、3の訓練時系列データTR_TSDB(CL=2)、TR_TSDB(CL=1)は、図1の実訓練時系列データTR_TSDBであり、それぞれ8つの時系列ts1-ts8、ts9-ts16を有する。各時系列tsは時系列IDとして1~16が与えられる。図2、3のテストデータの時系列データTST_TSDBは1つのテスト時系列tts17のみが示される。
【0022】
図2の訓練時系列データTR_TSDB(CL=2)内の先頭の時系列TS1は以下のとおりである。
ts1:{10,9,8,8,7,6.9,6,6,4,3.8}:2
ここで、ts1は時系列であり、{10,9,8,8,7,6.9,6,6,4,3.8}は昇順のタイムスタンプのイベント値列である。また、この時系列のサイズは、|tsid|=|{10,9,8,8,7,6.9,6,6,4,3.8}|=10である。つまり、図2の先頭の時系列は10個のイベント値を含む。他の時系列ts2~ts16及びテスト時系列tts17も同様である。さらに、訓練時系列データTR_TSDB(CL=2)とTR_TSDB(CL=1)のサイズは|TSDB|=16、クラスラベルの集合はCL={1,2}である。
【0023】
図4は、図2のクラスCL2の時系列ts1~ts8とテスト時系列tts17をプロットしたグラフを示す図である。また、図5は、図3のクラスCL1の時系列データts9~ts16とテスト時系列tts17をプロットしたグラフを示す図である。図4、5共に、横軸がタイムスタンプ1~10に、縦軸が各タイムスタンプのイベント値にそれぞれ対応する。また、テストデータのテスト時系列tts17は破線で示され、訓練データの時系列ts1~ts16は実線で示される。図4のクラスラベルCL2の訓練時系列データの時系列ts1~ts8(実線)と、図5のクラスラベルCL1の訓練時系列データの時系列ts9~ts16(実線)とは、グラフ上にプロットすると明らかに異なる領域に現れる。そして、図4図5内に示したとおり、テストデータのテスト時系列tts17(破線)は、クラスラベルCL2の訓練時系列データの時系列ts1~ts8(実線)に類似することが視覚的には確認される。
【0024】
但し、実社会では、時系列分類モデルを構成する訓練時系列の数は膨大であり、更に、クラスラベルの数も多数である。そして、各クラスラベルに属する訓練時系列データの時系列のイベント値の領域は複雑に近似することが想定される。
【0025】
前述したとおり、従来の最短ユークリッド距離法では、テストデータのテスト時系列の全イベント値と訓練時系列データの全時系列の全イベント値とのユークリッド距離をそれぞれ計算する必要があるので、訓練時系列データの時系列の数及び各時系列のイベント値の数が多いと計算量が膨大になる。
【0026】
また、テストデータのテスト時系列のN個(前述の10個)のタイムスタンプのイベント値に最も類似するN個のイベント値を持つ訓練時系列を検出するので、分類精度は高くない。なぜなら、最短ユークリッド距離法は、訓練時系列データのイベント値の分布を考慮していないからである。例えば、図4では、訓練時系列データのある時系列は他の時系列のイベント値と大きく異なるイベント値を有する。その場合、全イベント値のユークリッド距離の合計または平均は、訓練時系列データの分布から大きく外れたテスト時系列のイベント値に基づいて非常に大きな値を取ることがあり、そのような場合誤った分類が行われる場合がある。
【0027】
図6は、本実施の形態における時系列分類装置によるテストデータのテスト時系列の分類方法を示すフローチャート図である。図1に示したプロセッサは、時系列分類プログラム20を実行して、以下の処理を実行する。
【0028】
即ち、プロセッサ10は、複数クラスに分類された実訓練時系列データTR_TSDBを取得する(S1)。実訓練時系列データTR_TSDBは、例えば図2図3に示した時系列データTR_TSDB(CL=2)、TR_TSDB(CL=1)である。実訓練時系列データTR_TSDBは、実際に取得された時系列の集合であり、時系列分類モデルの訓練時系列データである。
【0029】
次に、プロセッサ10は、各クラスの実訓練時系列データTR_TSDBを各クラスの代表訓練時系列データRP_TSDBにそれぞれ圧縮(変換)する(S2)。代表訓練時系列データRP_TSDBは、各クラスの実訓練時系列データTR_TSDBに含まれる複数の時系列のタイムスタンプのイベント値の最小値min、第1パーセンタイルβ、代表値(平均値、中央値、最頻値、ミッドレンジ等)、第2パーセンタイルΓ、最大値maxの時系列を有する時系列データである。最小値、第1パーセンタイル、代表値、第2パーセンタイル、最大値は、複数の訓練時系列の各タイムスタンプのイベント値の分布を表す。詳細は後述する。
【0030】
そして、プロセッサ10は、テスト時系列データTST_TSDBのテスト時系列について、当該テスト時系列のイベント値に対するファジーメンバーシップ値(以下FMS値と称する。)を、複数クラスの代表訓練時系列データそれぞれに基づいて算出する(S3)。即ち、テスト時系列の各イベント値に対して、クラス数と同じ数のFMS値が算出される。処理S3では、更にテスト時系列の各イベント値に対するFMS値の平均値がFMS距離FMSDとしてクラス別に算出される。
【0031】
具体的には、代表訓練時系列データの最小値未満、最小値、第1パーセンタイル、代表値、第2パーセンタイル、最大値、最大値超にはそれぞれのファジーメンバーシップ値FMS_Vが割り当てられる。例えば、最小値未満及び最大値超には最大FMS値、FMS_V=1.0が、代表値には最小FMS値、FMS_V=0が、最小値には最大FMS値と最小FMS値の間の第1FMS値、FMS_V=α=0.5を、最大値には最大FMS値と最小FMS値の間の第2FMS値、FMS_V=Δ=0.5などが割り当てられる。
【0032】
FMS値FMS_Vは0~1.0に正規化された値が好ましいが、代表値のFMS_Vが最小FMS値、最小値未満及び最大値超のFMS_Vが最大FMS値、最小値及び最大値のFMS_Vが最小FMS値と最大FMS値の間の値であればよい。詳細は図9、10等で説明する。そして、テスト時系列のイベント値に対するFMS値FMS_Vが、代表訓練時系列データと上記割り当てられたFMS値に基づいて算出される。詳細は図8で説明する。
【0033】
その後、プロセッサ10は、テスト時系列について、FMS値の平均が最小のクラスを、テスト時系列のクラスと決定する(S4)。FMS値が各タイムスタンプのイベント値の分布を考慮した値である。従って、上記のFMS値の平均値が最小のクラスと決定する方法は、実訓練時系列データのファジーな性質を考慮した方法である。
【0034】
図7は、代表訓練時系列データRP_TSDBの生成処理S2の第1の例のフローチャートを示す図である。時系列分類装置のプロセッサ10は、時系列分類プログラム20を実行し、以下の代表訓練時系列データRP_TSDBの生成処理S2を行う。
【0035】
プロセッサ10は、実訓練時系列データTR_TSDBを取得する(S21)。そして、プロセッサは、各クラスの実訓練時系列データTR_TSDBについて、以下の処理S23-S25を実行する(S22-S26)。
【0036】
あるクラスの実訓練時系列データTR_TSDBは複数の時系列tsを含む。プロセッサは、あるクラスの複数の時系列tsについて、各タイムスタンプのイベント値vの最小値min、第1パーセンタイルβ、代表値(平均値、中央値、最頻値、ミッドレンジ等)のうち例えば平均値mean、第2パーセンタイルΓ、最大値maxを算出する(S23-S25)。平均値meanは代表値のいずれでも良い。本実施の形態では代表値の例として平均値meanを利用する。全てのクラスの実訓練時系列データについて、処理S23-S25が行われる。その結果、全てのクラスの実訓練時系列データTR_TSDBそれぞれに含まれる時系列の各タイムスタンプでのイベント値の最小値、第1パーセンタイル、平均値、第2パーセンタイル、最大値が算出される。
【0037】
具体的に説明する。実訓練時系列データTR_TSDBの各クラスclkの実訓練時系列データをTSDBclkとする。以下のδを利用者が特定する統計的パラメータとする。
δ={minimum, β-percentile, mean, Γ-percentile, maximum}
プロセッサは、処理S24を実行することで、各クラスの統計的パラメータδを算出する。
【0038】
プロセッサは、各クラスの統計的パラメータδを使用して、膨大な数の時系列tsをそれぞれ含む各クラスclkの実訓練時系列データTSDBclkを、小さな集合の代表訓練時系列データRP_TSDB(^TSDBclk(^はTSDBclkの上にある記号))に圧縮(または変換)する。
^TSDBclk={tsmin clk, tsβ clk, tsmean clk, tsΓ clk, tsmax clk
上記の要素tsmin clk, tsβ clk, tsmean clk, tsΓ clk, tsmax clkは、クラスclkの時系列データでそれぞれ計算したイベント毎のまたはタイムスタンプ毎のminimum, β-percentile, mean, Γ-percentile, maxをそれぞれ表す。
【0039】
クラスclkの実訓練時系列データTSDBclkから代表訓練時系列データ^TSDBclkに圧縮(または変換)する数式は以下のとおりである。
【0040】
【数1】
ここで、tsid.viは時系列tsidのタイムスタンプiでのイベント値viを表す。また、第1パーセンタイルβ-percentileと第2パーセンタイルΓ-percentileは、利用者から与えられるパーセンタイルである。利用者はイベント値の分布に基づいて第1、第2パーセンタイルを設定する。式(1)は、最小値の時系列ts_min_clkは、クラスclkの実訓練時系列データTSDB clkに属する全ての時系列tsidのタイムスタンプiでのイベント値の最小値を、全タイムスタンプi=1~i=|tsid|について集めた集合であることを意味する。他の式(2)~(5)も同様である。
【0041】
図9は、クラス2(cl2)の代表訓練時系列データRP_TSDB2の時系列とテスト時系列tts17の例を示す図である。図10は、クラス1(cl1)の代表訓練時系列データRP_TSDB1の時系列とテスト時系列tts17の例を示す図である。この2つの代表訓練時系列データは、図2図3のクラス2の実訓練時系列データTR_TSDB(CL=2)、クラス1の実訓練時系列データTR_TSDB(CL=1)からそれぞれ算出される。
【0042】
なお、図9内の時系列{ts_min_2, ts_β_2, ts_mean_2, ts_Γ_2, ts_max_2}は、クラスclk=cl2の{tsmin clk, tsβ clk, tsmean clk, tsΓ clk, tsmax clk}に対応する。図10内の時系列{ts_min_1, ts_β_1, ts_mean_1, ts_Γ_1, ts_max_1}も同様である。
【0043】
例えば、図9の時系列ts_min_2のタイムスタンプ1のイベント値9.5は、図2の実訓練時系列データTR_TSDB(CL=2)の8つの時系列ts1~ts8のタイムスタンプ1のイベント値の最小値である。他のタイムスタンプ2~10も同様である。また、図9の時系列ts_β_2、ts_mean_2、ts_Γ_2、ts_max_2の各タイムスタンプ2~10のイベント値も、図2の実訓練時系列データTR_TSDB(CL=2)の8つの時系列ts1~ts8内のタイムスタンプ2~10のイベント値のそれぞれβパーセンタイル、平均値、Γパーセンタイル、最大値である。
【0044】
図10内の時系列{ts_min_1, ts_β_1, ts_mean_1, ts_Γ_1, ts_max_1}の10個のイベント値も、同様に図2の実訓練時系列データTR_TSDB(CL=1)の8つの時系列ts9~ts16のタイムスタンプ1~10のイベント値から算出される。
【0045】
図8は、処理S3のフローチャートを示す図である。処理S3では、プロセッサは、テスト時系列のイベント値に対するファジーメンバーシップ値を、代表訓練時系列データに基づいて算出した。つまり、プロセッサ10は、まずテスト時系列データTST_TSDB内のテスト時系列ttsを取得する(S31)。そして、プロセッサは、各クラスclkの代表訓練時系列データRP_TSDBについて(S32-S37)、当該代表訓練時系列データの各時系列ts_min_clk~ts_max_clkのイベント値に基づいて、テスト時系列の各タイムスタンプ1-10のイベント値に対するFMS値FMS_Vを算出する(S33-S35)。
【0046】
さらに、プロセッサは、テスト時系列の各タイムスタンプのイベント値に対するFMS値の平均値を算出する(S36)。このFMS値の平均値が、各クラスの代表訓練時系列データに対するテスト時系列のFMS距離(ファジーメンバーシップ距離)である。プロセッサは、テスト時系列と各クラスCLの代表訓練時系列データRP_TSDBとのFMS距離をそれぞれ算出する(S36,S37)。その後、プロセッサは、図6の処理S4に示すとおり、FMS値の平均値(FMS距離)が最小のクラスを、テスト時系列ttsのクラスと決定する(S4)。
【0047】
図8の処理S34で、プロセッサは、テスト時系列の各タイムスタンプのイベント値のFMS値を、代表訓練時系列データの各時系列ts_min_clk, ts_β_clk, ts_mean_clk, ts_Γ_clk, ts_max_clkに予め割り当てられたFMS値の補間演算等で算出する。
【0048】
具体的には、クラスclk(1≦k≦n)を推定することが必要なテスト時系列をttsidとする。テスト時系列ttsidのイベント値と代表訓練時系列データRP_TSDBの複数のイベント値の分布との間の距離、FMS値、を決定するFMS関数μは、以下のとおりである。
【0049】
【数2】
ここで、μa=1、α、0、Δ、1の5個のFMS値は、(1)代表訓練時系列データRP_TSDBの時系列ts_min_clk以下のイベント値ttsid.va, (2)ts_min_clkとts_β_clkの間のイベント値ttsid.va, (3)ts_mean_clkのイベント値ttsid.va, (4)ts_Γ_clkとts_max_clkの間のイベント値ttsid.va, (5)ts_max_clk以上のイベント値ttsid.vaそれぞれに対するFMS値FMS_Vである。そして、係数Aは、テスト時系列ttsidのイベント値ttsid.vaが代表訓練時系列データRP_TSDBの時系列のイベント値ts_β_clk.va~ts_max_clk.vaにある場合にFMS値を算出する補間演算の係数である。同様に、係数Bは、テスト時系列ttsidのイベント値ttsid.vaが代表訓練時系列データRP_TSDBの時系列のイベント値ts_mean_clk.va~ts_Γ_clk.vaにある場合にFMS値を算出する補間演算の係数である。
【0050】
図11は、FMS関数μの第1の例を示す図である。横軸が時系列tsidのタイムスタンプiのイベント値tsid.viであり、縦軸がFMS値(=μ)である。図11に示す太い実線は、テスト時系列ttsidのイベント値ttsid.viが代表訓練時系列データRP_TSDBの時系列ts_min_clkのイベント値以下からts_max_clkのイベント値以上までに対応するFMS値FMS_Vを示す。
【0051】
図11のFMS関数μは、テスト時系列ttsidのイベント値が以下の7つの場合(a)~(g)に応じて以下のFMS値μaを算出する。
(a) ttsid.va≦ts_min_clk.vaの場合:μa=1
(b) ts_min_clk.va<ttsid.va≦ts_β_clk.vaの場合:μa
(c) ts_β_clk.va<ttsid.va<ts_mean_clk.vaの場合:μa=α×A
(d) ttsid.va=ts_mean_clk.vaの場合:μa=0
(e) ts_mean_clk.va<ttsid.va<ts_Γ_clk.vaの場合:μa=Δ×B
(f) ts_Γ_clk.va≦ttsid.va<ts_max_clk.vaの場合:μa
(g) ttsid.va≧ts_max_clk.vaの場合:μa=1
A=(ts_mean_clk.va -ttsid.va)/(ts_mean_clk.va -ts_β_clk.va )
B=(ttsid.va-ts_mean_clk.va)/(ts_Γ_clk.va -ts_mean_clk.va)
上記において、0≦α≦1、0≦Δ≦1であり、aはタイムスタンプ、βとΓは0~100の間のパーセンタイルから選択される。
【0052】
特に(b)では、ts_min_clk.va<ttsid.va≦ts_β_clk.vaの場合、μa=α×A(A=1)と言える。よって、(b)と(c)とでテスト時系列のイベント値の増加に対応してFMS値=αからFMS値=0に減少する係数Aが、A=1からA=(ts_mean_clk.va -ttsid.va)/(ts_mean_clk.va -ts_β_clk.va )に変化するといえる。
【0053】
同様に、(f)では、ts_Γ_clk.va≦ttsid.va<ts_max_clk.vaの場合、μa=Δ×B(B=1)と言える。よって、(f)と(e)とでテスト時系列のイベント値の増加に対応してFMS値=0からFMS値=Δに増加する係数Bが、B=(ttsid.va-ts_mean_clk.va)/(ts_Γ_clk.va -ts_mean_clk.va)からB=1に変化するといえる。
【0054】
上記のFMS関数の基本的考えは次の通りである。第1に、(a)(g)のように、もしテスト時系列のあるタイムスタンプのイベント値があるクラスの時系列のイベント値の最小値以下と最大値以上なら、FMS値μに1が与えられる。第2に、もしそうでなければ((b)~(f)のように最小値と最大値の間にあるなら)、代表訓練時系列のイベント値の平均値に対する近さに応じて0から1の間のαとΔに対応する値α×A、Δ×BがFMS値μに与えられる。テスト時系列のイベント値がどのような値になるか予測できず、テスト時系列のイベント値が代表訓練時系列データの最小値よりかなり小さい値や、最大値よりかなり大きい値になった場合((a)or(g)の場合)、そのFMS値が極端に大きくなることが回避できる。つまり、テスト時系列のイベント値のノイズにより、不適切なクラスへ分類されることが抑制される。
【0055】
第2に、テスト時系列のイベント値が代表訓練時系列データの最小値minと第1パーセンタイルβの間と、第2パーセンタイルΓと最大値maxの間の場合((b)(f)の場合)は、実訓練時系列データの各タイムスタンプのイベント値の分布の両端の領域(極値)に対応する。そこで、(b)(f)のように、極値に対するFMS値μは一定値αまたはΔになる。これにより、テスト時系列のイベント値が分布の代表値である平均値に近く且つ極値ではないβからΓの間の場合に、そのFMS値μにより小さい値が与えられる。その結果、テスト時系列のイベント値が分布の平均値に近い領域の場合、FMS距離が小さくなり適切なクラスへの分類が促進される。
【0056】
図12は、ユーザが与えるα、Δがα=0.5、Δ=0.1の場合のFMS値を算出するFMS関数μを示す図である。図9に示したクラスCL=2の代表訓練時系列データRP_TSDB2に基づいてテスト時系列tts17のFMS値を算出する例を説明する。
(1)tts17の最初のイベント値は9.4である。この値はts_min_2=9.5よりも小さい為μ1=1.0
(2)tts17の2番目のイベント値は10.2である。この値はts_Γ_2=10.2(≒10.15)と等しくμ2=0.1
(3)tts17の3番目のイベント値は8.18である。この値はts_β_2=8とts_mean_2=8.54の間であり、μ3=α×A=0.5×(8.54-8.18)/(8.54-8)=0.33
(4)tts17の4番目のイベント値は8.3である。この値はts_mean_2=7.9とts_Γ_2=8.46の間であり、μ4=Δ×B=0.1×(8.3-7.9)/(8.46-7.9)=0.07
(5)同様の処理でtts17の残りのイベント値のFMS値の計算を繰り返して、μ5~μ10は、0.28、1、0.08、0.19、0.3、0.38となる。
【0057】
テスト時系列tts17の各タイムスタンプのFMS値μ1~μ10をクラス2の代表訓練時系列データに基づいて算出した後、プロセッサは、ファジーメンバーシップ距離FMSDを算出する(図6のS4)。具体的には、FMS距離FMSDはFMS値μ1~μ10の合計をタイムスタンプ数で除算したFMS値の平均値である。上記の例では、テスト時系列tts17とクラス2の代表訓練時系列データとのFMS距離は、FMSD=0.849となる。
【0058】
同様に、プロセッサは、テスト時系列tts17の各タイムスタンプのFMS値μ1~μ10をクラス1の代表訓練時系列データに基づいて算出し、その平均値を算出する。
【0059】
そして、プロセッサは、テスト時系列tts17のFMS距離FMSDを残りの全てのクラスの代表訓練時系列データに基づいて算出する。テスト時系列tts17とクラスclkの代表訓練時系列データとのFMS距離は、0~1の値に正規化される。FMS距離が0に近いほどそのクラスに近く、FMS距離が1に近いほどそのクラスから遠い。よって、プロセッサは、最も小さいFMS距離FMSDに対応するクラスをテスト時系列tts17が属するクラスと決定する(図6のS4)。
【0060】
代表訓練時系列データの最小値時系列のイベント値ts_min_clk.va に対するFSM値αと、最大値時系列のイベント値ts_max_clk.va に対するFSM値Δは、ユーザにより選択される。例えば、FSM値αとΔは、時系列分類方法の評価工程を繰り返して実行して、最大の精度が得られる値に選択されても良い。また、第1パーセンタイルβと第2パーセンタイルΓも同様にして最適値が選択されてもよい。
【0061】
図13は、テスト時系列tts17とクラスCL=2の代表訓練時系列データの5つの時系列ts_min_2, ts_β_2, ts_mean_2, ts_Γ_2, ts_max_2をプロットしたグラフの図である。それに対して、図14は、テスト時系列tts17とクラスCL=1の代表訓練時系列データの5つの時系列ts_min_2, ts_β_2, ts_mean_2, ts_Γ_2, ts_max_2をプロットしたグラフの図である。
【0062】
図13では、破線のテスト時系列tts17の各タイムスタンプのイベント値は、クラスCL=2の代表訓練時系列データの5つの時系列ts_min_2, ts_β_2, ts_mean_2, ts_Γ_2, ts_max_2による各タイムスタンプでの分布内にあり、多くのタイムスタンプで平均値の時系列ts_mean_2のイベント値に近い。一方、図14では、破線のテスト時系列tts17の各タイムスタンプのイベント値の多くは、クラスCL=1の代表訓練時系列データの5つの時系列による分布の外にある。上記の具体例では、グラフに表すとテスト時系列tts17がクラス1よりクラス2に属することは比較的容易に判別できる。
【0063】
図15は、代表訓練時系列データRP_TSDBの生成方法の第2の例のフローチャートを示す図である。図15のフローチャートは、図7の第1の例のフローチャートとは処理S24_2が異なる。それ以外の処理は同じである。プロセッサは、ある分類の複数の時系列tsについて、各タイムスタンプのイベント値vの最小値min、代表値(平均値、中央値、最頻値、ミッドレンジ等)のうち例えば平均値mean、最大値maxを算出する(S23-S25)。平均値meanは代表値のいずれでも良い。つまり、図15の第2の例では、図7の第1の例の第1パーセンタイルβと第2パーセンタイルΓは算出されない。
【0064】
図16は、図15の第2の例におけるFMS関数μを示す図である。図11と同様に、横軸が時系列tsidのタイムスタンプiのイベント値tsid.viであり、縦軸がFMS値(=μ)である。
【0065】
図16のFMS関数μは、テスト時系列ttsidのイベント値ttsid.vaが以下の5つの場合に応じて以下のFMS値μaを算出する。
(a) ttsid.va≦ts_min_clk.vaの場合:μa=1
(c) ts_min_clk.va<ttsid.va<ts_mean_clk.vaの場合:μa=α×A
(d) ttsid.va=ts_mean_clk.vaの場合:μa=0
(e) ts_mean_clk.va<ttsid.va<ts_max_clk.vaの場合:μa=Δ×B
(g) ttsid.va≧ts_max_clk.vaの場合:μa=1
A=(ts_mean_clk.va -ttsid.va)/(ts_mean_clk.va -ts_min_clk.va )
B=(ttsid.va-ts_mean_clk.va)/(ts_max_clk.va -ts_mean_clk.va )
【0066】
図16の(c)は図11の(b)(c)に対応し、図16の(e)は図11の(e)(f)に対応する。図16の第2の例では、係数AとBに変化はない。
【0067】
図11に示すFMS関数は、あるクラスの複数の時系列tsのイベント値の分布が、最小値側と最大値側に極値を有するノーマルな分布のための関数である。ノーマルな分布とは大きな度数のビンが中心に位置する分布である。
【0068】
また、図12に示されるFSM関数は、あるクラスの複数の時系列tsのイベント値の分布が、スキュー分布(歪分布)のための関数である。スキュー分布とは大きい度数を有するビンが中心からずれた位置にある分布である。図12の例は、大きい度数を有するビンが最大値側に偏ったスキュー分布に適するFMS関数である。
【0069】
更に、図16に示すFMS関数は、あるクラスの複数の時系列tsのイベント値の分布が、最小値側と最大値側に極値を有していないノーマルな分布に適した関数である。分布の両端に極値がないので、このFMS関数は、図11、12のように、最小値minと第1パーセンタイルβの間をFMS値=α、第2パーセンタイルΓと最大値maxの間をFMS値=Δとする計算はない。図11、12に示すFMS関数は、分布の両端に極値がある分布に適した関数である。
【0070】
本実施の形態における時系列のファジー最近傍分類方法(Fuzzy NNC:Fuzzy Nearest Neighbor Classification)によれば、クラス毎の実訓練時系列データTR_TSDBからそれぞれ変換されたクラス毎の代表訓練時系列データRP_TSDBを使用してテスト時系列のクラスを決定する。従って、ファジー最近傍分類方法の計算量は、クラス数nのオーダ(O(n))である。それに対して、他の時系列分類法の計算量は、訓練時系列の数mのオーダ(O(m))である。実世界の時系列データの時系列数mはクラス数nより遥かに多いので、ファジー最近傍分類法は他の時系列分類法より、メモリ容量、ランタイム時間、消費エネルギーの観点からより好ましい。
【0071】
本実施の形態におけるファジー最近傍分類法は、以下の2つの段階を有する。第1の段階はオフライン段階であり、プロセッサは、与えられた各クラスの実訓練時系列データTR_TSDBを各クラスの代表訓練時系列データRP_TSDBに圧縮する。第2の段階は、オンライン段階であり、プロセッサは、テスト時系列と代表訓練時系列データとの間のFMS距離を全クラスについてそれぞれ算出する。そして、プロセッサは最小のFMS距離のクラスをテスト時系列のクラスと決定する。
【0072】
以上の通り、本実施の形態によれば、少ないメモリ量、短いランタイム時間、少ない消費電力で且つ高精度に、テスト時系列を分類することができる。
【符号の説明】
【0073】
1:時系列分類装置
20:時系列分類プログラム
22、TR_TSDB:実訓練時系列データ
24、RP_TSDB:代表訓練時系列データ
26、TST_TSDB:テストデータの時系列データ
tsid、tsid:時系列
TSDB:時系列データ
min:最小値
β:第1パーセンタイル
mean:平均値(代表値の一例)
Γ:第2パーセンタイル
max:最大値
FMS_V:ファジーメンバーシップ値
FMSD:ファジーメンバーシップ距離
clk、clk:クラス、分類
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16