2012-09-14 4 views
0

데이터 추출 데이터에서 스파키 데이터를 제거 할 수 있지만 "부드럽게 처리"하는 방법은 있습니까?샘플 데이터의 스파이크 제거 방법

20000에서

enter image description here

두 개의 불꽃이 있습니다 예를

걸릴,하지만 600 다음 하나는 불꽃 간주됩니다.

나는

a = 2 
b = 5 
beta_dist = RealDistribution('beta', [a, b]) 
f(x) = x/19968 
normalized_insertions = [f(i) for i in insertions] 

insertions_pairs = [(i, beta_dist.distribution_function(i)) for i in normalized_insertions] 
plot_b = beta_dist.plot() 

show(list_plot(insertions_pairs)+plot_b) 

낮은 사람에 대해 이동하는 방법을 모르고 의해 0으로 매우 높은 사람을 얻기 위해 관리했습니다. maximul에 도달해야합니다 100, 아마도 베타 배포에 대한 매개 변수가 좀 더 twiddling 필요하십니까?

현재는 다음과 같습니다 enter image description here

가능하다면, 당신의 설명에 대한 참조로 세이지를 사용합니다.

+1

아마도 3 또는 5 포인트의 중간 필터를 사용할 수 있습니다. –

+0

데이터 평활화를 수행 할 방법을 찾고 있습니까? 그렇다면 Paul R이 제안한 것처럼 중간 값 필터를 적용하는 것이 트릭을 수행합니다. 또한이 데이터로 정확히 측정하려는 것은 무엇이며 베타 배포판 사용을 선택한 이유는 무엇입니까? – xvtk

+0

@PaulR 귀하가 답변을 수락하면 기꺼이 답변을 드리겠습니다. – Flavius

답변

1

아마도 median filter, 3 점 또는 5 점을 사용할 수 있습니다. 이렇게하면 위의 데이터 에서처럼 고립 된 특이 치를 제거 할 수 있습니다.

1

아마 칼만 필터를 살펴 봐야 할 것입니다. 이렇게하면 데이터의 편차가 결정되고 가우스 평균에 대한 평탄함이 결정됩니다. 따라서 20k 숫자는 거의 영향을주지 않으며, 600의 수치는 데이터의 일관성에 의해 여전히 지나치게 큰 영향을 미칩니다. 수학이 마음에 들면 :
http://www.cs.berkeley.edu/~pabbeel/cs287-fa11/slides/Smoother_KalmanSmoother--DRAFT.pdf
그렇지 않으면
http://interactive-matter.eu/blog/2009/12/18/filtering-sensor-data-with-a-kalman-filter/

관련 문제