データストリームで、特定のしきい値 (条件) が満たされていることを検出しようとします。さらに、しきい値は自発的なノイズ (スパイク) に適用されるべきではありません。また、満たされた状態での自発的な低い値によって、上記の値の領域の検出が妨げられるべきではありませんX。
データはサンプルごとにデータストリームに入っていますが、私はまだpythonic/fastソリューションを探しています。次の画像は、私の問題を視覚的に説明しています
。目的は、特定のしきい値回数
を超えるという条件を満たす検出されたセクションの開始インデックスと終了インデックスを保存することです。X
一度に 1 つずつ入ってくるデータに苦労していますが、データ セット全体では問題になりません。私は次のようなことを考えました:
threshold = 5
start_index_list = []
while i < len(data): # just to show that it's one datapoint at a time
if data(i) > threshold:
threshold_counter +=1
if threshold_counter > threshold_counter_level: # consecutive true conditions
start_index = i - threshold_counter_level
start_index_list.append(start_index)
else:
threshold_counter = 0 # if condition breaks, counter is reset
i += 1 # increment iteration variable
ここでの問題は、カウンターが 1 つの false イベントの増加を開始すると、それが停止することです。しかし、たとえば、50 個の連続した値のウィンドウ内の値の 90% が true であるかどうかを検出したいのですが、最初の 3 つの値の後にしきい値を下回る値があるかどうかは重要ではありませんstarting_index。end_index範囲。
かなり複雑な説明で申し訳ありません。データストリームの場合に解決策が見つからないのはとてもイライラします。まだ質問がある場合や不明な点がある場合は、回答を編集します。