outlier

outlier 명령어 문법 및 연동규격 설명서 입니다.

개요

  • 여러 그룹을 대상으로 outlier 에 해당하는 그룹을 찾는 명령어 입니다.

  • 비슷한 그룹으로 clustering 을 한 결과 데이터의 패턴이 달라서 묶이지 않는 그룹을 찾습니다. ( dbscan 알고리즘)

  • 알고리즘을 mad 로 지정하여 실행하면 그룹 내의 데이터중에서 일정 비율 이상으로 많은 anomal 한 데이터를 갖고 있는 그룹을 탐지합니다.

설명

  • 3개 이상의 그룹(=by 필드) 을 대상으로 outlier 에 해당하는 그룹을 찾아 냅니다.

  • 기본 알고리즘 = dbscan 알고리즘

  • dbscan 알고리즘: 여러 개의 그룹 데이터를 clustering 하여 어느 cluster 에도 포함이 되지 않는 그룹을 찾아 냅니다.

  • mad 알고리즘: 그룹 내의 데이터에서 madian(중간값) 을 기반으로 탐지한 anomal 데이터가 일정비율 이상으로 발생한 그룹을 찾아 냅니다.

Examples

  • 데이터가 다음과 같이 존재합니다.

DATETIME_10M

HOST

CNT

20181103075000

hadoop02

1

20181102141000

hadoop02

1

20181103091000

hadoop02

1

20181102123000

gcs4

3

20181102103000

gcs3

3

20181103055000

gcs5

3

20181103043000

gcs1

4292

20181103025000

gcs1

4296

20181102124000

gcs1

4292

20181102195000

tsdn-svr1

10793

20181103052000

tsdn-svr1

10568

20181103001000

tsdn-svr1

10890

  • dbscan

... | outlier CNT by=HOST

DATETIME_10M

HOST

CNT

label

outlier

20181103075000

hadoop02

1

0

False

20181102141000

hadoop02

1

0

False

20181103091000

hadoop02

1

0

False

20181102123000

gcs4

3

0

False

20181102103000

gcs3

2

0

False

20181103055000

gcs5

1

0

False

20181103043000

gcs1

4292

1

True

20181103025000

gcs1

4296

1

True

20181102124000

gcs1

4292

1

True

  • mad 결과 (위 예시데이터 사용)

... | outlier CNT by=HOST alg=mad tolerance=2.5 pct=0.1

DATETIME_10M

HOST

CNT

lower

upper

anomaly

outlier

20181103075000

hadoop02

1

0.1

2.3

False

False

20181102141000

hadoop02

1

0.1

2.3

False

False

20181103091000

hadoop02

1

0.1

2.3

False

False

20181103043000

gcs1

4292

3400.2

4789.3

False

True

20181103025000

gcs1

4296

3410.9

4389.3

True

True

20181102124000

gcs1

4292

3300.2

4789.3

True

True

Parameters

... | outlier target WORD = value

ex)
... | outlier target by=field_name alg=mad tolerance=3.0 pct=0.1

이름

설명

필수/옵션

target

분석할 데이터 필드명 입니다.

필수

WORD

옵션의 키 입니다. 종류는 by, alg, tolerance, pct 의 4종류가 있습니다. 아래표 참고

필수

value

각 옵션 키에 대한 벨류 값입니다. 아래표 참고

필수

  • 옵션 key list

key

설명

by

그룹으로 각각의 비정상그룹을 탐지할 수 있습니다. 반드시 지정해줘야합니다.

alg

dbscan, mad. 밀도기반 클러스터링 알고리즘과 중앙값 편차를 이용하여 비정상적인 그룹을 찾아냅니다. default = dbscan

tolerance

임계값 범위의 scale을 지정합니다. 위의 수식에 값의 범위를 늘리는 데 사용 합니다.
dbscan 알고리즘에서는 tolerance = 0.5 (eps 로 사용됨) 가 기본값.
mad 알고리즘에서는 tolerance = 3.0 이 기본값. 일반적으로 1.5 ~ 5.0 사이 값

pct

mad 알고리즘에서 사용되는 파라미터.
이상하다고 판단하는 데이터의 그룹내의 비율 입니다. (0.1= 10%)
이 비율 이상으로 outlier 가 발생하면 해당 그룹 데이터 전체는 outlier 그룹으로 표시됩니다. 0 < pct < 1

Parameters BNF

outlier_command : target params

target : WORD

params : param
        | params param

param : WORD EQUALS WORD
        | WORD EQUALS NUMBER
        | WORD EQUALS double

double : NUMBER DOT NUMBER

WORD : \w+
EQUALS : \=
DOT : \.
NUMBER : \d+