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 를 예측합니다. |
옵션 |
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 를 예측합니다. |
옵션 |
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 : .