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 |
옵션의 키 입니다. 종류는 |
필수 |
value |
각 옵션 키에 대한 벨류 값입니다. 아래표 참고 |
필수 |
옵션 key list
key |
설명 |
---|---|
by |
그룹으로 각각의 비정상그룹을 탐지할 수 있습니다. 반드시 지정해줘야합니다. |
alg |
dbscan, mad. 밀도기반 클러스터링 알고리즘과 중앙값 편차를 이용하여 비정상적인 그룹을 찾아냅니다. |
tolerance |
임계값 범위의 scale을 지정합니다. 위의 수식에 값의 범위를 늘리는 데 사용 합니다. |
pct |
|
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+