outliers¶
outliers 명령어 문법 및 연동규격 설명서 입니다.
개요¶
- 여러 그룹을 대상으로 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+