2017-01-22 1 views
1

[0..256]に整数を与える入力ソースがあります。データストリームの変化率を検出する方法Python3

このデータにスパイク、つまり新しい入力を配置したいと考えています。 ローリング平均を使用してパーセントエラーを検出しようとしました。しかし、これは実際には機能しません。

基本的には、私のプログラムでデータのグラフが盛り上がる場所を見つけることができますが、滑らかな遷移を無視したいと思っています。

思考?

+0

...素晴らしいことです。与えられた(ローリングセンタリングされた)分布を仮定し、その95乗のVSをスパイク値として計算するとどうでしょうか? – Kanak

+0

@Tnerual私はこれに非常に有能ではない、あなたは精巧にできますか? – mcchucklezz

答えて

0

私のコメントに続く簡単な考えです。

>>> import numpy as np 

たちはスパイクがまれなイベントとして考えることができるかどうかを知るには、以下の時系列

>>> sample = np.random.random_integers(0,256,size=(100,)) 

があるとまず、各イベントに関連する可能性を知っている必要があります。あなたは「変化率」を扱っているので、私たちは、その後、

最後に
>>> spike_defining_threshold = np.percentile(sample_vars, 95) 

場合に発生する最大5パーセント(サンプル - )チャンスがある変動を定義することができ、私たちはそれらの

>>> sample_vars = np.abs(-1 + 1.*sample[1:]/sample[:-1]) # the "1.*" to get floats... (python<3) 

を計算してみましょう他の人が同様に共有する考えを持っている場合sample_vars[-1]>spike_defining_threshold

は、たぶん、あなたが最初の瞬間以上に仕事ができる

関連する問題