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+