2010-02-19 3 views
1

일주일에 한 번 데이터 정수 (40, 30, 25, 55, 5, 40 등)가있는 경우 표준 편차가 발생하면 경고를 발생시킵니다 (' 위의 경우). 가지고있는 여분의 좋은 물건은 5가 주 중의 그날의 보통의 이벤트인지 실제로 배우는 것 일 것이다.편차에 대한 알고리즘

이 문제를 해결하기위한 루비의 구현을 알고 있습니까? 이 문제가 고전적인 문제인 경우 문제/알고리즘의 이름은 무엇입니까?

+7

이것은 고전적인 컴퓨터 과학 문제 "과소 규정 된 알고리즘"의 한 예입니다. –

+0

@Jonathan : 동의하는 것은 그가 어떻게 진행해야하는지에 대한 일반적인 아이디어가 아니라 작업 구현을 요구하기 때문입니다. – dsimcha

+0

더 구체적인 방법이 필요합니다. 숫자는 무엇을 의미합니까? 일반적인 경향이 있습니까? 편차를 정의하는 것은 무엇입니까? 당신의 해답은 평균값처럼 간단 할 수도 있고, 웨이블릿 변환을 사용하는 것처럼 복잡 할 수도 있습니다. – rlbond

답변

3

계산하기가 매우 쉽지만 매개 변수 하나를 조정해야합니다. 주어진 값이 평균으로부터의 X 표준 편차인지 여부를 알고 싶습니다. 이를 파악하려면 표준 편차 (Wikipedia 참조)를 계산 한 다음 각 값의 편차 abs(mean - value)과 평균값을이 값과 비교하십시오. 값의 편차가 평균에서 2 표준 편차 이상이라면 그 값에 플래그를 지정합니다.

편집 :

은, 평일에 의해 편차를 추적 정수의 배열, 매일 하나를 유지합니다. 편차가 발생할 때마다 그 날 카운터를 1 씩 증가시킵니다. 두 배를 사용하고 대신 그 날의 편차 백분율을 유지할 수도 있습니다 (예 : (num_friday_deviations/num_fridays)).

+0

일주일에 대해 알아보기 위해 어떻게 확장 할 수 있습니까? –

0

알고리즘 이름은 "표준 편차 계산"과 같이 간단 할 수 있습니다.

http://en.wikipedia.org/wiki/Standard_deviation

그러나, 당신이 어떤 분석은 ​​데이터 세트에 고유해야합니다. 올바른 알고리즘을 얻으려면 기록 데이터를 검사해야합니다. 표준 편차는 데이터가 정상적으로 배포되지 않는 한 전혀 좋은 측정 방법이 아닙니다. 데이터가 특정 최대 값보다 큰 숫자를 찾고 싶을 수도 있습니다 ... 실제로는 다릅니다.

1) 구글 에 대한 통계 개요 및 기본 통계를 읽어 :

그래서, 당신에게 내 조언이다.

2) 보유하고있는 기록 데이터를 검사하십시오.

3) 홀수의 적절한 측정 값을 제시하십시오.

4) 측정 데이터를 과거 데이터와 비교하여 테스트하고 예상 수치를 강조 표시하는지 확인하십시오.

5) 필요에 따라 2-4 단계를 반복하여 알고리즘을 미세 조정하십시오.

+0

# 3 : (n % 2) == 1 : P – klochner

1

http://en.wikipedia.org/wiki/Control_chart은 이런 종류의 일을하는 고전적인 방법을 설명합니다. 조나단 파인 버그 (Jonathan Feinberg)가 언급 한 것처럼 다양한 접근법이있다.

2

"비정상 탐지"라고도하며, Google을 사용하면 많은 문제가 있습니다. 논문 Mining Deviants in Time Series Data Streams은 귀하의 특정 요구에 도움을 줄 것입니다. 추상에서

:

우리는 현재 과학 처음 알려진 알고리즘 대규모 데이터 스트림에 일탈자를 식별합니다. 우리의 알고리즘은 매우 작은 공간 (데이터의 폴리 로그 함수 인 크기)을 사용하여 스트림을 모니터링하고 데이터 스트림이 시간이 지남에 따라 임의의 순간에 신속하게 편차를 찾을 수 있습니다 ( ).

관련 문제