메뉴 건너뛰기

Extra Form

AI전문가, 강인규이사님이 들려주는 AI 이야기 - 시스템 관제 데이터 인공지능 분석 (시계열 분석)


 

엑셈 강남 인공지능 연구소에서는 2018년 초부터 시스템 관제 데이터에 대한 인공지능 분석과 관련된 작업을 수행하고 있다.

 

 


엑셈 강남AI연구소의 일차적인 목표는 엑셈이 가지고 있는 모니터링 솔루션(인터맥스/맥스게이지)에 인공지능 분석기능을 결합하여,


고객에게 전보다 자동화되어 편리하게 시스템을 통합 관제할 수 있는 기능을 제공하는 것이다.


 

이에 다음과 같은 여섯가지 기능을 목표로 작업을 진행하고 있습니다.

                                                                                                                                                                             


[1] 부하 예측 (Workload Forecast)

 

[2] 비정상 탐지 (Anomaly Detection)

 

[3] 장애 예측 (Failure Forecast)

 

[4] 부하 패턴 분석 (Workload Pattern Analysis)

 

[5] 인과 관계 분석 (Causality Analysis)

 

[6] 근본 원인 분석 (Root Cause Analysis)

                                                                                                                                                                             


 

오늘은 이 중에서 비정상 탐지 기능 구현을 위한 기반 기술인 시계열 분석에 대한 내용을 공유하려고 한다.

 

 

 

【시계열 분석이란 ?】 

 

시간의 흐름에 따라 분석 대상 데이터가 어떤 형태로 변화하는지를 분석하는 것이다.

 

 

 

분석 대상 데이터가 경향성(trend), 주기성(seasonality)를 나타내는지 확인하고 만약 데이터에 경향성이나 주기성이 있다면

이러한 특성을 이용하여 미래의 값까지 예측해 볼 수 있다.

 


우리가 사용하는 시스템 관제 데이터의 경우, 대부분 하루를 주기로 데이터가 주기성을 나타내는 경우가 많고, 주말 혹은 평일에 따라 서로 다른 양상을 보이기 때문에 이런 시계열 분석을 이용하면 다음날의 데이터 추세를 예측할 수 있고, 확률분포에 기반하여 실제 데이터가 예측값과 비교하여 차이가 많이 나는 경우 이를 비정상으로 보고 사용자에게 알람을 줄 수 있을 것이다.

 

 


본 문서에서는 Python을 이용하여 실제로 시계열 데이터를 분석하는 것을 설명할 예정이다. 특정 시스템(DB나 WAS)의 모니터링 데이터 대신,

최근 사람들의 관심을 많이 받고 있는 비트코인의 과거 가격 데이터를 분석하여 미래의 비트코인 가격을 예측하는 사례를 들어 설명할 예정이다.

 

 


단, 비트코인에 대한 가격 예측의 경우, 모델을 구성하기 위한 데이터 주기성이라든지 트랜드 등은 모두 글의 작성자가 임의로 선택한 값이기 때문에, 독자가 여기있는 내용을 기반으로 비트코인에 투자하는 것을 권하지 않고, 글의 작성자는 비트코인 투자에 대한 책임을 지지 않는 것을 명확히 해둔다.

 


 

우선 비트코인에 대한 가격 예측을 하기 위해서는 과거 데이터가 필요한데, 다행히 CoinGecko라는 사이트에서

2013년 4월부터의 비트코인의 USD 가격 데이터를 csv 형태로 다운받을 수 있다.

 

 


[ 데이터 출처 ]

 


* 비트코인 시세 차트 정보 출처 

 

https://www.coingecko.com/ko/

 

* BTC-USD 데이터 (2013-04-28 ~ 2018-06-07) - btc-usd-max.csv


 

 

아래부터는 Python 코드를 직접 사용하여 시계열 분석하는 과정을 설명할 예정인데, 코드를 보기 어려운 경우에는 코드를 보지 않고 글만 읽더라도 시계열 데이터에 대한 분석을 어떻게 하는지에 대해 이해할 수 있을 것이다. 아래는 Python으로 시계열 분석을 하기 위해 필요한 라이브러리를 Import 하는 코드이다.

 

 

 


위에서 내려받은 데이터에 대해 우선 시각적으로 이해하기 위해 차트를 그려서 확인하면 다음과 같다.

단, 분석은 편의상 2017년 1월 1일부터 하기 위해  데이터의 앞부분을 잘라낸다.

 

 

 

 

 

[ 데이터 차트 (2017년 1월 1일 ~ 2018년 6월 7일) ]


 

 

 

비트코인 가격 데이터를 차트로 그리고 보니, 데이터 값이 지수 스케일로 증가를 하는 모양새이다.

분석의 편의를 위해 로그 스케일로 변환해보자.


 

 

 

 

[ 로그 스케일 (2017년 1월 1일 ~ 2018년 6월 7일) ]

 

 

 

 

로그 스케일의 데이터 차트를 보니, 데이터에 추세와 주기성이 어느정도 보이는 것 같다.

이에 대해 확인을 위해 STL Decomposition(Seasonal Trend Decomposition using Loses) 을 수행해본다.

 

 

 

 

[ STL  Decomposition ]

 

 

 

 

 

STL Decomposition은 시계열 데이터를 Trend와 Seasonal Component로 나누고 나머지를 Residual Component로 구분해주는 방식이다.

Decomposition을 수행할 때의 주기는 사용자의 입력을 받게 되어 있는데, 이번 분석에서는 작성자 임의로 63일을 주기로 사용했다. 

 


분석된 결과를 확인하면, Trend 자체는 2017년 12월 16일을 기점으로 최고점을 찍고 그 뒤로 완만한 하향세를 그리는 추세이고,

일부 주기성을 갖고 상승과 하강을 반복하는 모양을 나타내고 있다.  

 

 

이제, 비트코인 가격에 대한 추세를 확인했으니, ARIMA를 이용한 분석을 수행하도록 한다.

 

 

 

 

ARIMA는 Autoregressive Integrated Moving Average의 약자로, 1970년에 George Box와 Gwilym Jenkins가 개발한 자기회귀와 이동평균을 고려하는 시계열 분석 모형이다. (Box Jenkins 모형이라고도 한다. 여기서 Integrated는 차분을 이용하는 시계열 모형을 의미한다.)

 

 

ARIMA를 분석하기 위해서는 분석에 필요한 모형 파리미터를 결정해야 하는데, 분석을 많이 해보지 않은 사용자가 직관적으로 모형 파라미터 값을 결정하기는 힘들기 때문에, 아래에서는 여러가지 파라미터 값을 적용해서 계산후 가장 적합한 파라미터를 찾도록 한다.

 


 

 

 

위 코드 수행한 결과, 가장 AIC 값이 가장 작게 나오는 파라미터는 ARIMA(0, 0, 1)x(1, 0, 0, 63)으로 확인되었다.

여기서 AIC(Akaike Information Critera)이란 통계 모델이 얼마나 데이터에 잘 맞는지 그리고 얼마나 모델이 단순한지에 대한 평가 지표이다.

 

 


[ ARIMA 파라미터 찾기 ]

 

 

                                                                                                                                                                             

 

* ARIMA(0, 0, 0)x(0, 0, 0, 63) - AIC:2773.42309289084

* ARIMA(0, 0, 0)x(0, 0, 1, 63) - AIC:1920.0592765923088

* ARIMA(0, 0, 0)x(0, 1, 0, 63) - AIC:670.7812669178603

* ARIMA(0, 0, 0)x(0, 1, 1, 63) - AIC:625.4908107669571

* ARIMA(0, 0, 0)x(1, 0, 0, 63) - AIC:527.7086760864255

* ARIMA(0, 0, 0)x(1, 0, 1, 63) - AIC:460.57780794082373

* ARIMA(0, 0, 0)x(1, 1, 0, 63) - AIC:634.0389755642134

* ARIMA(0, 0, 0)x(1, 1, 1, 63) - AIC:627.4901156865175

* ARIMA(0, 0, 1)x(0, 0, 0, 63) - AIC:2059.139083871266

* ARIMA(0, 0, 1)x(0, 0, 1, 63) - AIC:1306.301430340262

* ARIMA(0, 0, 1)x(0, 1, 0, 63) - AIC:125.37137227818316

* ARIMA(0, 0, 1)x(0, 1, 1, 63) - AIC:156.5012219110579

* ARIMA(0, 0, 1)x(1, 0, 0, 63) - AIC:-0.007702231691581574

* ARIMA(0, 0, 1)x(1, 0, 1, 63) - AIC:-21.342298764273067

                                                                                                                                                                             

 

 

결정된 파라미터에 대해 ARIMA 모델을 생성하고 모델에 대한 간단한 진단 차트를 표시하면 다음과 같다.


 

 

[ Diagnostic ]

 

 

 

 

 

위에서 얻은 모델을 가지고 4월 26일부터의 비트코인 가격에 대한 예측은 다음과 같이 수행한다.

아래 차트는 4월 26일부터 최근 날짜까지의 실제 비트코인 가격과 예측 가격을 같이 그린 차트이다.


 

 

 

 

[ Dynamic Prediction ]

 

 

 

 

위의 그래프에서 2018년 1월 1일부터의 데이터를 확대해서 표시하면 다음과 같다.

 

 

 

 

[ Dynamic Prediction (Zoom) ]

 

 

 

 

본 글에서는 시계열 데이터를 분석하는 방법(STL Decomposition과 ARIMA)을 적용하여 비트코인 가격에 대한 예측을 하는 예제를 알아보았다.

약 한달간의 비트코인 가격에 대한 예측을 한 결과 어느정도 추세를 반영하여 실제 가격 그래프와 유사한 추세를 갖는 결과를 얻을 수 있었다. 

 

 

하지만, 이 분석에는 비트코인 가격이 자기회귀와 이동평균을 따라서 변동될 것이라는 가정과 비트코인 가격이 어느정도 주기성을 가지고 움직일 것이라는 가정하에 위와 같은 결과가 나온 것이기 때문에, 위 분석 내용을 근거로 실제로 비트코인에 투자하는 일은 없기를 바란다.


 

이번 글에서는 시계열 분석을 하는 한가지 사례로 대중적인 관심을 얻고 있는 비트코인의 가격에 대한 예측을 해본 것이고, 실제로는 엑셈 강남 인공지능 연구소에서는 아래 그림과 같이 어느 정도의 정확한 주기를 가지고 있는 시스템의 모니터링 데이터에 대한 시계열 분석 업무를 진행하고 있다.

 

 

 

 

 

 

강인규 이사님께서 이번 뉴스레터에서 "전문가 기술기고" 시스템 관제 데이터 인공지능 분석(시계열 분석)에 관하여 작성해주셨습니다.

 

바쁘신 업무 중 시간을 내어 기고문을 작성해주셔서 감사의 말씀 드립니다.

 

 

 

 

글 편집| 글로벌마케팅팀 캉 위에, 함승민

사진 편집| 디자인기획팀 김보명



출처: https://exem.tistory.com/1117 [엑셈 이야기]

출처: https://exem.tistory.com/1117 [엑셈 이야기]

출처: https://exem.tistory.com/1117 [엑셈 이야기]


  1. 시스템 관제 데이터 인공지능 분석 (시계열 분석)

    AI전문가, 강인규이사님이 들려주는 AI 이야기 - 시스템 관제 데이터 인공지능 분석 (시계열 분석) 엑셈 강남 인공지능 연구소에서는 2018년 초부터 시스템 관제 데이터에 대한 인공지능 분석과 관련된 작업을 수행하고 있다. 엑셈 강남AI연구소의 일차적인 목...
    Date2019.07.26 Reply0 Views200
    Read More
  2. No Image

    인공지능 보안관제 시대를 위한 기술, 머신러닝

    인공지능 보안관제 시대를 위한 기술, 머신 러닝 전 산업에 걸쳐 인공지능(AI) 활용이 늘어나고 있습니다. 최근 사이버 보안업계에서도 인공지능을 활용한 보안 제품과 서비스가 늘어나고 있으며, SK인포섹 역시 본격적으로 인공지능 보안관제 시대를 열어나가...
    Date2019.07.24 Reply0 Views167
    Read More
  3. No Image

    융합보안과 인공지능 - 머신러닝, 딥러닝

    융합보안과 인공지능 - 머신러닝, 딥러닝 불과 몇 년 전까지만 해도 딥러닝(Deep Learning)이라는 분야는 생소한 분야였습니다. 하지만 2016년 3월 딥마인드 챌린지 매치(Google Deepmind Challenge match)에서 펼쳐진 알파고(AlphaGo) 대 이세돌 9단의 대국은...
    Date2019.07.24 Reply0 Views156
    Read More
  4. No Image

    하둡으로 가는 길 | 제1부 기술과 훈련

    빅 데이터는 클라우드 컴퓨팅만큼이나 널리 확산되고 있는 개념이다. 그러나 빅 데이터의 역량과 한계에 관해서는 사람들이 잘못 알고 있는 부분들이 많다. 특히 빅 데이터와 관련해 사람들은 다음의 질문들에 대한 내용들을 제대로 이해하지 못하고 있다. Rea...
    Date2016.04.05 Reply0 Views232
    Read More
  5. No Image

    AI로 '인격이전ㆍ불로장생' 도전하는 러시아 부호, 슈퍼리치 드...

    AI로 '인격이전ㆍ불로장생' 도전하는 러시아 부호, 슈퍼리치 드미트리 이츠코프(Dmitry Itskov) [헤럴드경제=슈퍼리치팀 민상식 기자ㆍ한지연 인턴기자]이세돌 9단과 구글의 인공지능(AI : Artificial Intelligence) 알파고(AlphaGo)의 바둑 대결은 세계인들에...
    Date2016.03.21 Reply0 Views168
    Read More
  6. No Image

    알파고란 무엇인가

    알파고란 무엇인가: 알고리즘과 학습 방법으로 이해하는 알파고    "일어나 보니 세상이 달라져 있었다." 이는 이세돌과 알파고 둘 모두에게 해당하는 말이다. 3월 9일부터 15일까지 구글 딥마인드 챌린지 매치에서 이세돌은 인간지능의 대표로, 알파고는 인...
    Date2016.03.20 Reply0 Views270 file
    Read More
  7. 머신러닝과 딥러닝 차이

    머신러닝과 딥러닝 차이 2016. 3. 17. 8:41 최근 구글의 알파고와 이세돌 9단의 대국이 많은 사람들의 관심을 끌고 있습니다. 구글의 알파고가 딥러닝(Deep Learning)으로 학습한 바둑 프로그램으로 알려지면서 딥러닝의 가...
    Date2016.03.20 Reply0 Views371 file
    Read More
목록
Board Pagination Prev 1 2 Next
/ 2