forecasts

개요

주어진 데이터의 미래 시점 데이터를 예측합니다.

설명

input dataframe의 데이터를 선택한 알고리즘을 이용하여 미래 시점 데이터를 예측합니다. 이 때 예측하는 데이터의 기간은 변경 가능합니다.

예를 들어 데이터가 다음과 같이 존재합니다.

DATETIME_10M CNT
2018-11-04 05:20:00 300
2018-11-04 05:30:00 301
2018-11-04 05:40:00 302
2018-11-04 11:30:00 900
2018-11-04 11:40:00 901
2018-11-04 11:50:00 902

forecasts 명령어를 수행하면 기존 dataframe 에 예측 결과를 합쳐서 보여줍니다.

DATETIME_10M CNT Forecasts
2018-11-04 05:20:00 300 false
2018-11-04 05:30:00 301 false
2018-11-04 05:40:00 302 false
2018-11-05 05:20:00 1000 true
2018-11-05 05:30:00 1001 true
2018-11-05 05:40:00 1002 True

seasonal 알고리즘의 경우 예측 신뢰구간( lower / upper ) 도 함께 반환됩니다.

DATETIME_10M CNT lower CNT upper CNT Forecasts
2018-11-04 05:20:00 300 0.0 0.0 false
2018-11-04 05:30:00 301 0.0 0.0 false
2018-11-04 05:40:00 302 0.0 0.0 false
2018-11-05 05:40:00 1000.02 989.11 1021.22 true

Example

  • syslog 모델의 Host의 값이 tsdn-svr1인 레코드를 검색하여, 10분단위 레코드 개수를 선형회귀방법으로 예측한다.
# 모델 : syslog
HOST='tsdn-svr1' | sql "select CONCAT(SUBSTR(DATETIME,1,11),'000') as DATETIME_10M, * from angora" | stats COUNT(*) as CNT by DATETIME_10M, HOST | forecasts DATETIME_10M CNT alg=linear
  • syslog 모델의 Host의 값이 tsdn-svr1인 레코드를 검색하여, 10분단위 레코드 개수를 ARIMA모델로 예측한다.
HOST='tsdn-svr1' | sql "select CONCAT(SUBSTR(DATETIME,1,11),'000') as DATETIME_10M, * from angora" | stats COUNT(*) as CNT by DATETIME_10M, HOST | forecasts DATETIME_10M CNT alg=seasonal

현재 시계열 컬럼의 시간 간격의 정도가 고려되지 않기 때문에, 소스데이터를 일정한 시간간격으로 그룹핑하여 전처리 한다.

Parameters

Alg = linear

... | forecasts index target [alg=linear] [f_coeff=0]

linear regression 으로 예측을 수행 합니다.

이름 설명 필수/옵션
index 시계열 데이터의 time 필드 입니다. 필수
target 예측하고자 하는 target 필드 입니다. 필수
alg 시계열 데이터 예측에 사용되는 알고리즘. default 로 linear 알고리즘. 옵션
f_coeff 예측값이 계산되어 결과로 나오는 기간을 구하는 데 사용되는 계수. default = 0 으로 입력 데이터의 기간의 1/2 를 예측합니다.
원하는 기간이 있다면 단위 기간의 개수를 입력합니다.
예) f_coeff = 12 이고, 입력데이터 시간 단위가 1분이면 입력값의 시간 이후 +12분의 시간을 예측합니다.
옵션

Alg = seasonal

... | forecasts index target alg=seasonal [f_coeff=10] [deviation=1]

계절성과 시간적 변화에 따라 예측을 수행 합니다. 내부적으로 ARIMA 알고리즘이 적용되며, AIC 를 최소화 하는 order 를 구해서 모델링합니다.

이름 설명 필수/옵션
index 시계열 데이터의 time 필드 입니다. 필수
target 예측하고자 하는 target 필드 입니다. 필수
alg 시계열 데이터 예측에 사용되는 알고리즘. default 로 linear 알고리즘. 옵션
f_coeff 예측값이 계산되어 결과로 나오는 기간을 구하는 데 사용되는 계수. default = 0 으로 입력 데이터의 기간의 1/2 를 예측합니다.
원하는 기간이 있다면 단위 기간의 개수를 입력합니다.
예) f_coeff = 12 이고, 입력데이터 시간 단위가 1분이면 입력값의 시간 이후 +12분의 시간을 예측합니다.
옵션
deviation 예측된 값의 신뢰구간의 범위 계수입니다. 옵션

Parameters BNF

forecasts_command : index target params
index : WORD
target : WORD
params : param
       | params param
param : WORD EQUALS WORD
      | WORD EQUALS NUMBER
      | WORD EQUALS double
double : NUMBER DOT NUMBER

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