한진주
(Jinju Han)
1iD
이인규
(Ingyu Lee)
2iD
온병원
(Byung-Won On)
3†iD
-
(Dept. of Software Convergence Engineering, Kunsan National University, Korea)
-
(Sorrell College of Business, Troy University, USA)
-
(Dept. of Software Convergence Engineering, Kunsan National University, Korea)
Copyright © The Korean Institute of Electrical Engineers(KIEE)
Key words
Energy price forecasting, Localized linear regression, Big data system, Hadoop, MapReduce
1. 서론
전 세계의 많은 국가에서 현재 전기는 현물 및 파생 상품 계약을 사용하여 시장 규칙에 따라 거래되고 있다. 전력 시장의 가격 결정을 담당하고 있는
전력거래소는 시간대별 전력수요 및 다양한 요인에 맞춰 전기 가격을 결정한다.
전력 시장에서 전기 가격을 예측한다는 것은 사회적 환경, 경제적 환경, 시간적 요인(주중과 주말, 공휴일 및 휴일), 계절적 요인(기상 변화) 등
다양한 요소의 영향을 받기 때문에 매우 복잡하고 어려운 문제이다.
전기를 사고파는 전력 시장을 최적으로 운영하기 위해서 불안정한 가격에 대한 위험 전략은 필수적이다. 전기 가격 예측에 실패한다면 큰 재정적 손실에
대한 책임을 물어야 된다. 따라서 정확한 전기 가격 예측은 경제적으로 개선하여 비용을 절감할 수 있다. 전기 가격 예측의 정확도 개선을 위해서는 사회적
환경, 경제적 환경, 기상 변화 등을 고려하여 전기 가격 예측 기법이 개발되어야 한다.
[1]
(1)은 전기 가격 예측(EPF: Energy Price Forecasting)을 위한 다양한 접근 방식에 관한 장단점 및 동향에 관한 연구이다. 하지만
예측 방법들의 단점을 개선하는 새로운 아이디어에 대해서는 언급하지 않았다. 전기 가격 예측을 위해 사용되는 다양한 회귀 모델들 중 선형 회귀분석은
여러 패턴을 가진 데이터에 대해 하나의 선으로 예측하기에 부족함이 있다. 본 연구에서는 일정 시간 전의 가격들을 입력 변수로 사용하고 데이터를 로컬
단위로 나누는 선형 회귀분석을 제안하여 예측의 정확도를 향상시켰다.
[2]
(2)는 급격한 수요 패턴 변화로 오차율이 상승하는 것을 개선하기 위해 다양한 요인의 패턴 변화를 고려한 단기 전력수요 예측 프로그램을 제안한다. 하지만
이 연구는 빅데이터 기반이 아닌 단순한 통계적 모델 개발 및 분석에 관한 연구이다. 빅데이터는 최근 IT 분야뿐만 아니라 통계학 관련 여러 분야에서
집중적인 이슈가 되고 있다.
통계적 모델 개발 및 분석을 하는 R의 사용자들은 대용량 데이터에 대한 R의 한계점을 해결하기 위해 여러 가지 방법을 제시하였는데 그중에서 bigmemory
패키지 등의 사용을 제안하였다
(3). 기존의 모든 데이터를 메모리에 로딩 후 처리하는 작업 방식에서 벗어났지만 데이터 구조만을 메모리에 로딩 하여 처리하는 방식으로 너무 느리다는 단점과
또한 물리적 메모리 확장의 한계로 인해 대용량 데이터 처리에 한계를 갖고 있다.
[4]
(4)는 R의 한계점을 극복하기 위해 데이터 분석 도구인 R과 대용량 처리 시스템인 Hadoop을 연동하여 빅데이터 처리/분석을 수행할 수 있는 RHadoop이라는
오픈소스 솔루션을 제안한다. 하지만 RHadoop은 아직까지 여전히 까다로운 정보기술로 인해 많은 사용자들에게 범용화의 어려움이 있다. 본 논문에서는
RHadoop의 범용화 문제를 해소하기 위해 데이터 분석에 적합하고 사용자에게 좀 더 친숙한 언어인 Python을 사용하여 Hadoop Streaming으로
연동하였다. 이것은 기존 연구에서 다루어지지 않은 부분이다.
예측 모델을 위해 일반적으로 선형 회귀분석을 많이 사용한다. 선형 회귀분석이란 입력 벡터 X에 대해서 목표 값 Y를 예측하는 것이다. 선형 회귀는
예측 모델에 일반적인 방법으로 사용된다. 훈련 데이터가 입력으로 들어왔을 때 실제 값과 예측 값의 오차를 줄이는 적절한 회귀 계수를 찾으면 입력 데이터가
들어왔을 때 정확한 가격(Price)을 예측할 수 있다. 하지만 선형 회귀분석을 실제 데이터에 적용할 때 두 가지 문제점이 있다.
선형 회귀분석은
그림. 1의 전기 가격 데이터와 같은 여러 패턴을 가진 데이터에 대해 하나의 선으로 예측하면 정확도가 떨어진다. 여러 패턴을 가진 데이터에 대해 선형 회귀분석의
오차는 각 구간마다 다르기 때문에 오차를 줄여 회귀를 좀 더 유용하게 할 방법이 필요하다
(5). 본 논문에서는 전기 가격 예측의 정확도를 향상시키기 위한 로컬 단위 선형 회귀분석을 제안한다. 또한 선형 회귀분석을 대용량 데이터에 적용할 때
성능의 문제점이 있다.
그림. 2과 같이 단일 스레드에서 선형 회귀분석은 데이터가 커질수록 처리 속도가 오래 걸린다는 문제점을 가지고 있다. 반면에 대용량 데이터를 처리하는 Hadoop의
MapReduce 프로그램을 이용하면 여러 개의 노드에서 분산 처리하기 때문에 속도가 현저히 줄어드는 장점이 있다. 따라서 본 논문에서는 성능을 향상시키기
위한 MapReduce 기반의 분산 선형 회귀분석을 제안한다.
그림. 1. 선형 회귀분석의 문제점 (1)
Fig. 1. Problems of Linear Regression Analysis (1)
그림. 2. 선형 회귀분석의 문제점 (2)
Fig. 2. Problems of Linear Regression Analysis (2)
본 논문의 구성은 다음과 같다. 2장에서는 제안 방안인 ‘MapReduce 기반의 로컬 단위 선형 회귀분석’에 대해 기술한다. 3장에서는 제안 방안에
대한 실험 및 평가에 대하여 기술하고 결론 및 향후 계획은 4장에서 다룬다.
2. MapReduce 기반의 로컬 단위 선형 회귀분석
2.1 선형 회귀분석의 정확도 향상을 위한 제안 방안
그림. 3은 선형 회귀분석의 정확도 향상을 위한 제안 방안을 도식화하여 보여준다.
먼저 미국 동부지역의 전기 가격 데이터를 수집한 후에 입력 변수들의 전처리 과정을 거친다. 본 연구에서는 예측의 정확도를 향상시키기 위하여 일정 시간
전의 가격들인 6개의 Lag terms 변수를 생성하였다. 통계적 방법을 통해 Lag2, Lag24, Lag48 입력 변수들이 선택되었다. Lag
terms 변수의 자세한 설명은 2.1.2절에서 다룬다.
다음은 예측하고자 하는 종속 변수인 Price와 피어슨 상관계수가 가장 높은 변수를 선택하여 월별 평균 그래프를 그린다. 선택된 변수의 그래프 패턴을
보고 전체 데이터를 적절하게 분할(Split)하는 방법을 사전 지식으로 이용해서 구간을 적절하게 분할한다.
분할된 각 로컬 단위로 Train Set의 선형 회귀분석을 통하여 Test Set에 대해 전기 가격을 예측한다. 이때 기존의 선형 회귀분석을 통한
예측 값과 제안 방안인 로컬 단위 선형 회귀분석을 통한 예측 값의 정확도를 평가하기 위해 결정 계수와 평균 제곱 오차의 수치를 이용한다. 또한 각
구간의 추정된 회귀 계수 및 회귀식을 구한다. 2.1장에서는 선형 회귀분석의 정확도 향상을 위한 제안 방안의 과정을 상세히 기술한다.
2.1.1 데이터 준비
전기 가격 예측을 위하여 미국 동부지역 데이터 2015년 1월부터 10월까지의 데이터를 수집하였다.
표 1은 원본 데이터 각 변수에 대한 간단한 설명이다. 원본 데이터는 변수 별로 데이터 크기가 달라 변수별로 행 요약 등 전처리를 하였다. 전처리 과정을
거친 독립 변수들을 먼저 설명한다. Temp 변수는 온도 변수로 18개의 기상 관측소에서 측정한 온도 데이터 272,593행을 기상 관측소마다 비슷하게
측정되었기 때문에 평균을 내어 8,592행으로 요약하였다. Demand 변수는 전기 수요 변수로 전기 사용량을 나타낸다. 이 변수는 원본 데이터에서
15분 단위로 되어있던 데이터를 엑셀의 피벗 테이블(데이터의 필드 재구성이 가능한 엑셀의 기능)을 이용해 1시간 단위로 행 요약을 하여 34,365행에서
8,592행으로 요약하였다.
표 1. 입력 데이터 설명
Table 1. Input Data Description
Num
|
Variable
|
Explanation
|
Example
|
Standardization
|
1
|
Day($X$1)
|
1-31
|
1
|
1
|
2
|
Month($X$2)
|
1-10
|
1
|
1
|
3
|
Year($X$3)
|
2015
|
2015
|
2015
|
4
|
Hour($X$4)
|
0-23
|
23
|
23
|
5
|
Weekday($X$5)
|
l(Monday) - 7(Sunday)
|
7
|
7
|
6
|
Temp($X$6)
|
Temperature
|
-1.57
|
-1.77
|
7
|
Demand($X$7)
|
Electricity Demand
|
23269.1
|
-0.26
|
8
|
Price(Y)
|
Electricity Price
|
47.5
|
-0.15
|
원래 ‘연도-월-일-시간’으로 합쳐진 Date 변수가 구성되어 있는데 각각을 명목 변수로 사용하기 위해 Year, Month, Day, Hour 변수들로
분리하였다. Weekday 변수는 1부터 7까지 인덱스로 요일을 구분하기 위한 변수이다.
마지막으로 예측 변수인 Price 변수는 전기 가격이며, 종속 변수라고도 한다. 실험 데이터에서 독립 변수는 Day, Month, Year, Hour,
Weekday, Temp, Demand이고, 종속 변수는 Price인 전기 가격이다. 이때 인덱스가 있는 명목 변수는 Day, Month, Year,
Hour, Weekday이고 인덱스가 없는 척도 변수는 demand, pressure, price이다.
(1)은 값을 표준화시키기 위한 Z-score의 수식이다. 수치 데이터인 demand, pressure, price 변수들은 값의 범위가 다르기 때문에
비교하기 쉽게 만들기 위하여 Z-score를 사용하여 표준화(Standardization) 시켰다.
2.1.2 다양한 Lag Terms 변수 생성 및 피처 선택
본 연구에서는 예측의 정확도를 향상시키기 위하여 일정 시간 전의 가격들인 다양한 Lag terms 변수를 생성한다. Lag1, Lag2, Lag12,
Lag24, Lag36, Lag48을 생성하였고 이 Lag terms 변수는 1시간 전 가격, 2시간 전 가격, 12시간 전 가격, 24시간 전 가격,
36시간 전 가격, 48시간 전 가격을 의미한다. Lag terms 변수는 시계열 분석에서 전기 가격 예측의 정확도 향상시키기 위해 독립 변수로 종종
사용하는 방법이다. Lag terms은 일반적으로 Lag1, Lag2, Lag3 정도만 추가를 하지만 본 논문에서는 2일 기준으로 가격을 예측하기
때문에 일반적으로 사용하는 Lag terms 변수에 24시간 전, 48시간 전 가격 등을 추가로 생성하였다.
주어진 데이터의 변수 중 모델링에 가장 적합한 변수만을 택하는 과정을 변수 선택 또는 피처 선택이라고 한다. 이처럼 생성된 Lag terms을 다
사용하는 것은 아니고 변수 선택 과정을 거쳐서 선정된 Lag terms만 독립 변수에 추가한다. 변수 선택 방법은 특정 모델링 기법에 의존하지 않고
데이터의 통계적 특성으로부터 변수를 택하는 필터 방법인 Forward Selection 방식을 사용하였다
(6). Forward Selection 방식이란 변수들을 하나씩 넣어가며 유의 수준과 결정 계수 등을 보며 정확도를 확인하는 방법이다. 또한 여러 개의
모델의 조합들을 실험해가며 어떤 변수의 모델이 가장 좋은지 선택하는 기준인 AIC(Akaike Information Criterion), BIC(Bayesian
Information Critertion)을 계산한다. 이때 AIC, BIC 값이 낮을수록 선택한 변수들의 모델이 좋다. 변수들을 조합한 모델 11개를
생성하였고 AIC, BIC을 계산했을 때 수치 값이 가장 낮은 모델이 선택되었다. 최종적으로 선택된 독립 변수는 Month, Hour, Weekday,
Temp, Demand, Lag2, Lag24, Lag48이다. 여기서 Lag terms 변수는 Lag2, Lag24, Lag48만이 선택되었다.
2.1.3 로컬 단위 선형 회귀분석
이제 데이터의 그래프 패턴을 보고 전체 데이터를 적절하게 분할(Split)하는 방법을 사전 지식으로 이용해서 구간을 적절하게 분할할 것이다. 이때
예측하고자 하는 변수인 Price와 관련성이 가장 높은 변수의 그래프의 패턴을 본다.
피어슨 상관 계수(Pearson correlation coefficient)는 두 변수 간의 관련성을 구하기 위해 보편적으로 이용된다.
피어슨 상관 계수 r 값은 X와 Y가 완전히 동일하면 +1, 전혀 다르면 0, 반대 방향으로 완전히 동일하면 –1을 가진다.
표 2는 예측하고자 하는 종속 변수인 Price와 독립 변수들 간의 피어슨 상관계수이다.
표 2. 피어슨 상관계수
Table 2. Pearson correlation coefficient
|
price
|
month
|
hour
|
weekday
|
temp
|
demand
|
lag2
|
lag24
|
lag48
|
price
|
Person상관관계
|
1
|
.262
|
.264
|
.104
|
.378
|
.470
|
.842
|
.612
|
.454
|
유의수준(양쪽)
|
|
.000
|
.000
|
.000
|
.000
|
.000
|
.000
|
.000
|
.000
|
N
|
6612
|
6612
|
6612
|
6612
|
6612
|
6612
|
6612
|
6612
|
6612
|
Price와 피어슨 상관계수가 가장 높은 변수는 Lag2다. 상관계수 r 값이 0.7 이상으로 상관관계가 높은 변수이다.
그림. 4는 Price와 상관계수가 가장 높은 Lag2의 월별 평균 그래프이다.
그림. 4. 로컬 단위 선형 회귀분석
Fig. 4. Localized Linear Regression
그림. 4에서 왼쪽 그래프인 기존의 선형 회귀를 사용하면 예측 값과 실제 값의 오차가 너무 크기 때문에 예측의 정확도를 신뢰하지 않을 것이다. 따라서 본 논문에서는
오른쪽의 로컬 단위 선형 회귀를 제안한다. 그래프를 보고 중앙값이 크게 변하는 구간, 즉 월별로 Split을 나누는 것을 사전 지식으로 이용한다.
전체 데이터의 각 Split은
표 3과 같이 분리되었다.
표 3. 로컬 단위의 Split 범위
Table 3. Each split range
Split1
|
2, 3, 4 (month)
|
Split2
|
5, 6 (month)
|
Split3
|
7, 8 (month)
|
Split4
|
9, 10, 1 (month)
|
2.2 성능 향상을 위한 제안 방안
그림. 5는 선형 회귀분석의 정확도 향상을 위한 제안 방안을 도식화하여 보여준다.
그림. 5. 성능 향상을 위한 제안 방안
Fig. 5. Suggestions for improving performance
성능 향상을 위해 단일 스레드 기반의 선형 회귀분석이 아닌 MapReduce 프로그램 기반의 분산 선형 회귀분석을 제안한다. 2.2장에서는 먼저 Hadoop의
MapReduce 프로그램에 대한 개요를 설명한다. 그리고 제안된 MapReduce 기반의 분산 선형 회귀분석의 맵과 리듀스의 과정을 상세히 기술한다.
2.2.1 Hadoop 및 MapReduce 프로그램의 개요
Hadoop은 대용량 데이터를 처리할 수 있는 소프트웨어로 자바 기반의 오픈소스 프레임워크이다. Hadoop의 핵심 기술은 HDFS와 MapReduce로
구성되어 있다.
MapReduce는 대용량 데이터를 분산 병렬 컴퓨터에서 처리하기 위한 목적으로 제작한 소프트웨어 프레임워크이다. 이 프레임워크는 페타바이트 이상의
대용량 데이터를 클러스터 환경에서 병렬 처리를 지원하기 해서 개발되었으며, 맵(Map)과 리듀스(Reduce)라는 함수 기반으로 구성되어 있다. 맵
단계와 리듀스 단계는 입력과 출력으로써 키-값(key-value) 쌍을 가지고 있고, 그 타입은 프로그래머가 직접 선택한다. 또한 맵과 리듀스 함수도
프로그래머가 직접 작성한다. 맵 단계는 주로 흩어져 있는 데이터를 키-값 형태로 연관성 있는 데이터 분류로 묶는 작업이며, 리듀스 단계는 맵의 출력
값 중 중복 데이터를 제거하고 원하는 데이터를 추출하는 작업이다.
그림. 6은 전형적인 MapReduce 프로그램의 예시이다. MapReduce 프로그램이 실행될 때, 입력된 데이터가 데이터 노드의 개수(Mapper의 개수)
만큼 나누어져 동시에 처리되기 때문에 실행 속도는
로 줄어들게 된다
(7).
그림. 6. MapReduce 프로그램의 개요
Fig. 6. Outline of MapReduce program
MapReduce는 대표적으로 아파치 Hadoop(Apache Hadoop)에서 오픈 소스 소프트웨어로 사용되고 있으며, 자바 (Java)와 C++,
Python 그리고 기타 언어에서 적용이 가능하도록 작성되었다
(8). 본 연구에서는 파이썬 언어를 기반으로 MapReduce 프로그램을 구현하였다.
2.2.2 분산 선형 회귀분석을 위한 MapReduce 구현
회귀분석에서 k개의 독립변수 X와 종속변수 Y사이의 관계가 선형 관계이면 다음과 같이 다중 선형 회귀모형을 설정한다.
여기서 θ
0,θ
1,...,θ
k는 회귀 계수(regression coefficient)이고 ε는 오차 항을 나타낸다. 평균 μ=0이고 표준편차 σ인 정규분포를 따른다고 가정한다.
식(3)를 행렬로 표현하면 다음과 같다.
따라서, 최소제곱법에 의해 추정된 회귀 계수
는 정규방정식
의 해로 주어진다.
Hadoop의 HDFS에서는 X와 Y의 데이터가 클 경우 N개의 블록으로 분할되어 여러 개의 데이터 노드에 저장된다. 따라서
라고 하면
식(5)에서 X
TX와 X
TY의 계산은 다음과 같이 각각의 블록에 대해 곱셈 연산 후 합산하여 얻어진다
(4).
그림. 7과
그림. 8은 분산 선형 회귀 알고리즘을 MapReduce로 구현한 프레임워크이다.
그림. 7. 맵 기반의 분산 선형 회귀분석 알고리즘
Fig. 7. Distributed Linear Regression Algorithm based on Map
그림. 8. 리듀스 기반의 분산 선형 회귀분석 알고리즘
Fig. 8. Distributed Linear Regression Algorithm based on Reduce
그림. 7의 알고리즘이 실행되면, 각각의 a=X
TX, b=X
TY를 계산할 때 Map의 개수만큼 나누어서 실행하게 된다. 이때, 각 Map들의 연산은 데이터노드에 분산되어 동시에 실행되기 때문에 단일 스레드 기반의
선형 회귀분석에 비해 실행 속도는 더욱 빠르다.
3. 실험 및 평가
이 장에서는 먼저 정확도 향상을 위해 제안한 기법의 평가를 보여주고, 성능 향상을 위해 제안한 기법의 실험 환경과 성능 평가에 대하여 서술한다.
3.1 정확도 평가
3.1.1 평가 방법
제안 방안의 정확도는 결정 계수와 평균 제곱근 오차를 이용하여 평가한다.
식(7)의 R
2은 결정 계수라고 하며, X로부터 Y를 예측할 수 있는 정도를 의미한다. 결정 계수는 모형의 설명력을 나타내는 숫자이며 결정 계수의 값은 0에서 1사이에
있다.
결정 계수가 0에 가까운 값을 가지는 회귀 모형은 유용성이 낮은 반면, 결정 계수의 값이 클수록 회귀 모형의 유용성이 높다.
RMSE(Root Mean Square Error)은 평균 제곱근 오차로 추정 값 또는 모델의 예측 값과 실제 환경에서 관찰되는 값의 차이를 다룰
때 흔히 사용하는 측도이다. 이는 정밀도(precision)를 표현하는데 적합하며 예측 값과 실제 값의 차이를 잔차(residual)라고 한다.
식(8)과 같이 RMSE는 잔차를 제곱해서 평균을 낸 값에 제곱근(Root)을 씌운 값이다. 평균 제곱근 오차(RMSE)는 분산의 제곱근, 즉 표준 오차가
된다. 따라서 평균 제곱근 오차(RMSE)가 낮을수록 예측의 설명력이 높다.
3.1.2 정확도 평가 및 추정된 회귀식
데이터에 대한 설명은 2.1.1절을 참고한다. 시계열 데이터는 랜덤하게 데이터를 나누지 않고 가장 오래된 데이터를 Train Set으로 하고 최근
데이터를 Test Set으로 삼는다. 본 연구에서는 먼저 Test Set을 가장 최근 2일 데이터로 두고 실험을 하였다. 2.1.3절의 전체 데이터에서
분할된 각 Split 별로 Train Set에 대해 선형 회귀분석을 학습시킨 뒤 Test Set에 대한 전기 가격을 예측한다. 이때 기존의 선형 회귀분석을
통한 예측 값과 제안 방안인 구간 별로 선형 회귀분석을 통한 예측 값의 정확도를 평가하기 위해 결정 계수(R
2)와 평균 제곱 오차(RMSE)의 수치를 이용한다.
실험 결과는 제안 방안이 기존의 선형 회귀분석에 비해 R
2는 45%가 개선되었고, RMSE는 49%가 개선되어 전기 가격 예측의 정확도 향상에 기여하였다.
표 4. 전기 가격 예측의 정확도 평가 (1)
Table 4. Assess the accuracy of electricity price forecasting (1)
|
Linear Regression
|
Localized Linear Regression
|
Split1
|
Split2
|
Split3
|
Split4
|
Mean
|
Improvement Rate
|
R-Square
|
0.39
|
0.66
|
0.70
|
0.82
|
0.67
|
0.71
|
45%
|
RMSE
|
3.49
|
2.54
|
1.360
|
1.74
|
1.25
|
1.78
|
49%
|
그림. 9는 제안 방안의 결정 계수(R
2)와 평균 제곱 오차(RMSE)가 기존 방안에 비해 약 2배 향상되었다는 것을 가시적으로 보여준다. 3.1.1절에서 언급한 바와 같이 결정 계수의
값이 클수록 회귀 모형의 유용성이 높고, 평균 제곱근 오차(RMSE)가 낮을수록 예측의 설명력이 높다.
그림. 9. 전기 가격 예측의 정확도 평가 (2)
Fig. 9. Assess the accuracy of electricity price forecasting (2)
표 5는 Split 구간에 따라 추정된 회귀 계수 및 회귀식을 나타낸다.
표 5. 로컬 단위로 추정된 회귀 계수 및 회귀식
Table 5. Each split-based estimated regression coefficient and regression equation
Data
|
Estimated Regression Coefficient and Regression Equation
|
Split1
|
|
Split2
|
|
Split3
|
|
Split4
|
|
여기서 Y 변수는 Price이고, X 변수들은 Month, Hour, Weekday, Temp, Demand, Lag2, Lag24, Lag48 이다.
이제 대용량 데이터에 대해 선형 회귀분석을 적용할 때 처리 속도를 향상시키기 위해 Hadoop의 MapReduce를 이용한다.
3.2 실험 환경 및 실험 결과
3.2.1 실험 환경
빅데이터 환경을 구성하기 위해 구간 별 데이터 중에 단일 스레드에서 계산 시간이 가장 오래 걸리는 Split을 선택한다. 따라서 계산 시간이 가장
오래 걸리는 Split1이 선택되었다. 선택된 Split1에 배수를 취해 대용량 데이터 환경으로 설정한다.
표 6은 빅데이터 시스템 사양을 나타내며 실험을 위해 총 4대의 서버 노드를 구축하였다. 이때 1대의 NameNode와 3대의 DataNode를 구축하였다.
표 6. 빅데이터 시스템 사양
Table 6. Big data system specifications
|
NameNode
|
DataNode
|
CPU
|
Intel(R) Xeon(R) CPU E5-2630 v3 @ 2.40GHz
|
Intel(R) Xeon(R) CPU E3-1220 v3 @ 3.10GHz
|
RAM
|
23GB
|
23GB
|
HDD
|
1TB
|
1TB
|
표 7는 실험에 사용한 소프트웨어 사양을 나타낸다.
표 7. 소프트웨어 사양
Table 7. Software specifications
|
NameNode
|
DataNode
|
OS
|
Ubuntu 16.04 64bit
|
Ubuntu 16.04 64bit
|
Java version
|
JDK 1.8.0_151
|
JDK 1.8.0_151
|
Python version
|
Python 2.6.6
|
Python 2.6.6
|
Hadoop version
|
Hadoop 2.7.4
|
Hadoop 2.7.4
|
3.2.2 단일 스레드와 MapReduce 기반의 분산 선형 회귀분석 실행 시간 비교
빅데이터 환경을 구성하기 위하여 Split1에 배수를 취해 최대 2.08GB로 만들었다.
그림. 10은 2.08GB 일 때 단일 스레드 기반의 선형 회귀분석과 MapReduce 기반의 선형 회귀분석의 실행 시간 비교 그래프이다.
그림. 10. 실행 시간 비교
Fig. 10. Comparison of execution times
실험 결과 MapReduce 기반의 선형 회귀분석이 단일 스레드 기반의 선형 회귀분석보다 5배 이상 처리 속도가 향상되었다. 단일 스레드는 한 대의
서버에서 제한적인 메모리 범위 내에서 동작하는 반면에 Hadoop은 대용량의 데이터를 많은 Map task로 쪼개 여러 대의 서버에 분산하여 병렬처리하기
때문이다.
표 8은 Hadoop의 완전 분산 클러스터에서 Hadoop의 성능을 데이터 크기에 따라 평가하기 위해 작은 데이터부터 2GB까지 단일 스레드와 MapReduce
기반의 선형 회귀분석의 실행 시간을 비교하였다.
표 8. 데이터 크기 별 실행시간 비교
Table 8. Comparison of execution times by data size
(seconds)
Data Size
|
Single thread Linear Regression
|
MapReduce-based Linear Regression
|
Execution Time Improvement Rate
|
355MB
|
153(s)
|
65(s)
|
57.52%
|
710MB
|
274(s)
|
91(s)
|
67.03%
|
1.04GB
|
437(s)
|
103(s)
|
76.43%
|
2.08GB
|
840(s)
|
154(s)
|
81.67%
|
속도 향상 비율을 보면 MapReduce 기반의 선형 회귀분석은 데이터 크기가 355MB일 때 57.52%가 향상되었고, 710MB일 때 67.03%,
1.04GB일 때 76.43%, 2.08GB일 때엔 81.67%가 향상되었다. 따라서 데이터가 점점 커질수록, 데이터 노드의 수가 많아질수록 기존의
단일 스레드 기반의 선형 회귀분석보다 제안된 MapReduce 기반의 선형 회귀분석의 실행 시간이 훨씬 빠르다. 따라서 제안 방안의 성능은 더 향상될
것이라고 예상된다.
4. 결론 및 향후 연구
본 논문에서는 전기 가격 예측의 정확도를 향상시키기 위해 Lag terms 변수를 추가하고 구간을 나누는 선형 회귀분석을 제안하여 기존의 선형 회귀분석에
비해 약 45%의 예측의 정확도를 향상시켜 제안 방안의 우수성을 입증하였다. 또한 대용량 데이터에 대한 MapReduce 기반의 선형 회귀분석을 제안하여
단일 스레드 기반의 선형 회귀분석에 비해 약 5배 이상의 성능 향상을 보였다. 또한 데이터 크기별 성능 향상 비율을 보았을 때 데이터가 커지고 데이터
노드의 개수가 많아질수록 제안 방안의 성능은 더 향상될 것으로 예상된다. 본 연구를 통해 전기 가격 예측의 정확도를 향상시키고, 대용량 데이터에 적용할
때 전기 가격 예측을 위해 소요되는 시간과 비용을 절약할 수 있다.
향후에 Split 구간 분할 자동화를 위한 개선된 알고리즘에 대해 연구할 것이다. 또한 전력 시장은 생산과 동시에 소비가 이루어지는 실시간 예측이
필요하다. 추후에는 전기 가격의 실시간 예측을 위해서 스파크에 적용해 볼 것이다.
감사의 글
이 논문은 2016년도 정부(미래창조과학부)의 한국연구재단의 중견연구자지원사업(No. NRF-2016R1A2B1014843)의 연구비 지원으로 수행하였습니다.
이 논문은 2017년 정부(과학기술정보통신부)의 재원으로 한국연구재단의 지원을 받아 수행된 연구임 (NRF-2017M3C4A7068188).
References
Weron Rafal, 2014, Electricity Price Forecasting: A Review of the State –of-the-art
with a Look into the Future, International Journal of Forecasting, pp. 1030-1081
Korea Power Exchange , 2011, A Study on Short-term Load Forecasting Technique and
its Application, IEEE Trans. on VLSI Systems, pp. 446-455
Kane M. J., Emerson J. W, 2012, Bigmemory: Manage Massive Matrices with Shared Memory
and Memory-mapped Files, IEEE Trans. on VLSI systems, Vol. 1, No. 1, pp. 63-71
Shin Jieun, Jung Byungho, Lim Donghoon, 2015, Big Data Distributed Processing System
Using RHadoop, Journal of the Korean Data and Information Science Sociaty, Vol. 26,
No. 5, pp. 1155-1166
Milton Michael, 2009, Head First Data Analysis, O'Reilly Media, pp. 382-385
Wikipedia , 2018, September 20, Feature Selection, http://en.wikipedia.org/wiki/Feature_
selection
SeonYeong O., 2018, A MapReduce-based Prior Probability Optimization Algorithm for
Topic Extraction, Journal of KIISE, Vol. 45, No. 5
Wikipedia , 2018, September 22, MapReduce, https://en.wikipedia.org/wiki/MapReduce
저자소개
2015년~현재 군산대학교 소프트웨어융합공학과 학석사 과정 재학 중
E-mail :
jinjuhan7@kunsan.ac.kr
2007년 미국 The Pennsylvania State U. 컴퓨터공학과 졸업(박사)
2007년~2013년 미국 Troy U. 경학대학 조교수
2013년~2014년 차세대융합기술연 구원 스마트그리드연구센터 책임연구원
2015년~현재 미국 Troy U. 경영대학 부교수
E-mail :
inlee@troy.edu
2007년 미국 The Pennsylvania State U. 컴퓨터공학과 졸업(박사)
2008년~2009년 캐나다 U. of British Columbia 박사후 연구원
2010년~2011년 U. of Illinois at Urbana-Champaign ADSC연구소 선임연구원
2011년~2014년 차세대융합기술연구원 공공데이터연구센터 센터장
2014년~현재 군산대학교 소프트웨어융합공학과 부교수
E-mail :
bwon@kunsan.ac.kr