Spring
- 2. 問題設定
入力:
•ある特定の時間で長さが n のデータストリーム X
•固定長さ m のクエリ Y
•距離の閾値 ε
出力:
•クエリと類似するデータの部分列
但し、
•見つかった部分列は近くクエリと類似しないといけないため、
•見つかった類似した部分列のうち(複数見つかった場合)ローカルな最小 DTW 距離を
持っている方だけ取り出す
2
13年10月31日木曜日
- 3. SPRING の説明
数学の表現で書くと、
X = (x1 , . . . , xi , . . . , xn )
Y = (y1 , . . . , yj , . . . , ym )
に対し、長さが m x n の行列でその DTW のスコアを表す。
DTW のスコアは次のように計算される、
d(i, j) = ||xi yj || + dbest
8
d(i, j 1)
<
d(i 1, j)
dbest = min
:
d(i 1, j 1)
d(i, 0) = 0, d(0, j) = 1
これまでは、部分列のマッチング用の DTW とまったく同じが、行列の計算につれて
パスのスタートも記録
8
s(i, j 1)
<
s(i 1, j)
s(i, j) =
:
s(i 1, j 1)
for
for
for
d(i, j 1) = dbest
d(i 1, j) = dbest
d(i 1, j 1) = dbest
3
13年10月31日木曜日
- 5. SPRING の説明
例:i+a 回めのループで初期化が発生した !
データストリーム長
クエリ長
...
1
2
...
i
i+a 回目のループ
a は 1 以上の値
意味:
• d(i,m) ≤ ε
• i がエンドで、条件を満たしたパスができた
→ そのパスの DTW のスコア (dmin とする)とスタート(is)とエンド(ie)を
最適パスの候補に
その時、i+a 回目のチェックで列 i+a が次の条件を満たす:
8j, d(n, j)
13年10月31日木曜日
dmin _ s(n, j) > ie
5
- 6. SPRING の説明
条件の意味
8j, d(n, j)
dmin _ s(n, j) > ie
見つかった dmin よりもスコアが悪い
スタートが見つかったパスよりも後
(DTW の距離が大きい)
の方にある(見つかったパスと重ね
合わない)
2番目に見つかったパスが前に見つ
かったパスとは重ね合わないように
6
13年10月31日木曜日
- 7. SPRING の説明
意味:
j よりも前に、条件を満たしたパスができた
→ そのパスの DTW のスコア (dmin とする)とスタート(is)とエンド(ie)を
最適パスの候補に
いくつかの候補の内、dmin が一番最小のものを出力
が、ハミング検索には dmin が小さければどうやら正解とは限らない
•スタートとエンドの長さを考慮すべき
•ε の値の調整にもよる
• 用いた dbest の辞書式順序の優先にもよる
7
13年10月31日木曜日