관리 메뉴

HAMA 블로그

머신러닝을 통한 타임시리즈 예측 [번역] 본문

IoT 데이터 분석 (NILM)

머신러닝을 통한 타임시리즈 예측 [번역]

[하마] 이승현 (wowlsh93@gmail.com) 2017. 5. 10. 14:01


Time series Forecasting in Machine Learning [번역 예정] 


https://medium.com/99xtechnology/time-series-forecasting-in-machine-learning-3972f7a7a467



“데이터의 시간적 패턴을 탐지하는 방법”

데이터에서 시계열 패턴/특성을 이해하는 것은 비지니스 데이터의 경향을 표출하거나 분석하는 측면에서 매우 크리티컬 해 지고 있다.

유즈케이스 1 :  피트니스 디바이스 마켓은 사용자가 운동함에 있어서 더 효율적인 방식을 찾기 위해 관련 데이터를 분석 할 필요가 있다.

Activity performance monitoring

유즈케이스 2 : 제품 판매업체에서 제품의 날짜별 판매 데이터는 제품 관리 및 판촉행사를 더 효율적으로 하기 위해 필요하다. 

Product Sales Growth

일반적인 타임 시리즈 패턴들

전형적인 타임시리즈 모델들을 매우 다양하게 나타낼 수 있다.

어떤 상황에서는 위의 모든 패턴이 합쳐진 형태로도 나타날 수 있기 때문에 타임시리즈의 구성요소를 디테일하게 살펴볼 필요가 있다. 다음 섹션에서는 타임시리즈의 다양한 구성요소들을 살펴본다.

타임시리즈들의 컴포넌트들

시계열 데이터는 주요 요소들을 나누어서 분석 할 필요가 있다.  우리는 이것을 타임시리즈 디컴포지션이라고 부르는데 만약 타임시리즈를 좀 더 가까이에서 본다면 그것은 주로 Trend (흐름의 경향)Seasonality(주기적)Cyclic (반복적),Residual (나머지) 이렇게 구분 할 수 있을 것이다.

Decomposition of a Time Series
A Decomposed Time series
  1. 1.Trend 컴포넌트

긴시간동안의 상승/하강 경향에 대한 분석 

2. Seasonality Component

주기적으로 요동치는 패턴에 대한 분석, 주로 계절별(요일별)로 반복된다. 

3. Cycles Component

계절별(요일별) 말고 다른 이유에 의해서 반복적인 패턴을 보임. 사이클의 피크포인트및 길이는  동일할 필요는 없으며 아주 긴 시간동안의 인터벌이 발생할 수 도 있다.

4. Irregular movement Component

나머지, 노이즈 일 수도 있고 에러 일 수도 있고, 다른 특정 사건일 수도 있고~

R 을 이용하여 데이터를 모델링 해보자. 

For the demonstration purpose i have used a time series use case from banking industry as explained below.

Business Case : How do you predict the remaining balance of bank account for remaining two years.

  • Financial expenditures of a bank users are highly unpredictable over the period of time.
  • Expenditure patterns of the user is random in nature.

When the behavioral pattern of a user unknown and random in nature there is no easy way that you can write a business logic to automatically predict the future balances in the user account .

Solution : Use a machine learning approach to create a prediction model predict future account balances of the user .

Lets use step by step approach go trough a practical time series use case .

Step 0

In this case i am using a CSV file which has monthly balance of the users bank account starting from 1973–01 to 2013–06 .

Step 1: install forcast and fpp packages in R Studio

Step 2: Load data from CSV file into R data frame .

Step 3: create time series Object using “AccountBal” data frame.

Step 4: plot time series Object .

step 5 : Decomposing time series into its components

you can use decompose command to split the time series into its trend , seasonal and irregular components

step 6 : Predicting remaining balances of account for next 10 years using holtWinter Prediction Model.

Prediction is done in two steps . In first step you create the holtWinters model by using past time series data . Then in the second step we use that model to make predictions for next 10 years .

Then you can pot the predicted values in a new time series graph from 2014–2022

As the final step you can decompose the predicted time series to identify future trends and future seasonal effects reaming account balance of the user .

As a summery in this article i have tried to give you a basic understanding about the time series modeling . In future articles i may discuss some advance concepts around time series modeling subject area.

Comments