이미란
(Miran Lee)
1iD
김종욱
(Jong Wook Kim)
1iD
장백철
(Beakcheol Jang)
†iD
-
(Dept. of Computer Science, Sangmyung University, Korea.)
Copyright © The Korean Institute of Electrical Engineers(KIEE)
Key words
Chicken pox, Prediction, Web data, RNN, LSTM, Linear regression
1. 서 론
수두는 매년 전 세계적으로 6천만 명의 감염자 수가 발생하는 수두-대상포진 바이러스로 인해 발생하는 전염성 피부 질환이다. 수두는 발병환자의 기침,
재채기 등 호흡 분비물에 의해 감염되기도 하지만 수포에 의한 단순 접촉만으로도 감염되는 확산성 높은 전염병이다. 그래서 수두는 백신 접종이 가능한
전염병임에도 불구하고 매년 감염자 수는 늘어나고 있다. Korea Centers for Disease Control and Prevention (KCDC)
[1]에 따르면 한국은 2018년 4만 6000여명, 2017년 8만 여명으로 2년 사이 2배 가까이 급격하게 수두 발병률이 증가하였다. 2018년 또한
9만 6000여명으로 매년 지속적으로 상승한 추이를 보였다.
최근 수두 등 전염병 발생을 최소화하려는 감시 연구가 계속되어오고 있다. 대부분 초기 연구에는 Centers for Disease Control and
Prevention (CDC)의 데이터에 의존하였다. 하지만 CDC의 데이터는 1주에 한번 씩 업데이트되며 확정되기까지는 한 달의 시간이 소요된다.
이는 초기 역학조사를 쉽지 않게 만들며 특히 수두는 확산성이 높기 때문에 이를 통해 미리 감시하기에는 적절치 않다.
이러한 문제 해결을 위해 실시간으로 뉴스나 SNS 등 웹 데이터를 활용해 전염병을 감시하는 연구들이 늘어나고 있다 [2]-[9]. 기존 연구들 대부분은 웹 데이터의 전염병 언급빈도를 통해 실제 전염병 발생을 예측한다. 하지만 최근 웹 데이터는 광고 등 불필요한 정보를 포함하고
있기 때문에 단순히 전염병 언급빈도를 통해 예측하기 어려워졌다. 본 논문에서는 수두뿐만 아니라 수두 발생과 관련한 키워드를 추출해 그 키워드의 언급
빈도를 통해 예측한다.
대부분 기존 연구들은 웹 데이터와 실제 전염병 데이터는 높은 선형적 상관관계를 보이고 있다. 하지만 수두의 경우 실제 전염병 발생데이터에 증감에 상관없이
수두 및 수두 발생 관련 키워드들은 많이 등장하고 있어 뚜렷한 음적 또는 양적 선형적 상관관계를 보이지 않기 때문에 기존에 많이 사용되는 선형적 회귀
모델에는 적합하지 않다.
본 논문에서는 비선형적 관계를 모델링할 수 있는 딥러닝 학습 모델을 통해 수두 발생을 예측한다. 우리는 특히 시계열 데이터와 같은 시퀀스 데이터를
처리하기 적합한 RNN 딥러닝 모델을 사용해 최소 1주에서 한 달까지의 수두발생을 예측하여 보여준다. 이를 통해 우리는 기존의 CDC 데이터를 사용한
감시연구의 시간적 제약을 극복할 수 있다. 뿐만 아니라 수두는 계절성 전염병이므로 약 3개월 정도의 기간을 예측할 필요가 있다. 우리는 더 긴 기간을
예측하기 위해 LSTM 딥러닝 모델을 통해 수두 발생을 예측하고 적합한 모델링을 제안한다.
본 논문의 구성은 다음과 같다. 우리는 먼저 2.1장에서 전염병 감시를 주제로 한 관련 연구를 설명하고 2.2장에서는 예측 모델을 평가하는 방식인
피어슨 상관 계수와 평균 제곱근 오차에 대해 기술한다. 2.3장에서는 본 논문의 실험환경과 데이터 수집에 대해 설명한다. 2.4장에서는 예측 모델에
사용되는 수두 발생과 관련된 키워드를 추출하는 과정을 보여준다. 2.5장에서는 기존의 선형회귀방식으로 예측한 사전 연구 결과를 보여준다. 2.6장과
2.7장에서는 딥러닝을 활용한 수두 발생 예측 결과를 보여준다. 우리는 각각 RNN과 LSTM에 대해 요약하고 이와 적합한 모델링을 통해 최적의 수두
발생을 예측한 결과를 보인다. 2.7장에서는 기존의 선형회귀방식, RNN과 LSTM을 통한 예측 모델을 비교한다. 마지막으로 3장에서는 본 논문의
결론을 제시한다.
2. 관련연구
최근 전염병 발생을 감시하기 위해 뉴스와 SNS와 같은 웹 데이터를 분석하는 연구들이 진행되고 있다. 먼저 트위터 등 SNS 데이터를 분석하여 전염병을
감시한 연구들이 있다 [2]-[6]. [2]는 뎅기열과 관련된 트위터 데이터를 수집하여 뎅기열의 조기 유행을 감지한다. 먼저 이 연구에서는 뎅기열의 실제 발생데이터와 뎅기열 관련 트위터 데이터의
상관관계와 선형회귀 모델을 통해 분석한다. 결과적으로 0.87이라는 높은 상관 계수를 보이며 선형적 상관관계를 보였다. 그리고 [2]는 Generalization Additive Model (GAM)을 통해 향후 8주간의 뎅기열의 발생을 예측한다.
다음은 SNS데이터로 인플루엔자를 예측한 연구이다. [3]은 770만개의 트위터를 수집하였으며 Infectious Disease Surveillance Center (IDSC)에서 실제 인플루엔자 발생데이터를
제공받는다. [3]은 인플루엔자 증상인 ‘발열’, ‘두통’과 같은 키워드를 추출해 시계열로 언급 수치를 구한다. 그리고 이 수치를 실제 발생데이터와의 상관계수를 구하였고
0.93이라는 높은 결과가 나왔다. 그리고 선형 회귀 모델 등을 통해 1주와 3주 등 시간 단위로 예측한 결과 각각 0.91, 0.77로 높은 선형
상관관계를 보였다.
[4]는 ‘인플루엔자’, ‘돼지독감’, ‘H1N1'과 같은 인플루엔자 키워드를 지정하여 이를 입력 값으로 넣어 실시간으로 SNS데이터를 수집한다. 그리고
그 데이터를 CDC에서 제공하는 실제 인플루엔자 발생데이터와 비교하여 예측한 결과를 보여준다. [4]은 선형회귀 모델을 사용하여 평균 제곱근 오차를 통해 두 데이터 간이 얼마나 유사한지 보였으며 0.9846 (1주 단위)의 높은 상관을 보였다. 그리고
AutoRegressive models with eXogenous Variables (ARX)을 통해 인플루엔자를 예측하여 보여준다.
[5]은 2011-2014 인플루엔자 시즌동안 인플루엔자를 예측한 연구로 일반적인 모든 인구를 대상으로 하지 않고 군 인구에 초점을 맞추었다. [5]은 기존에 많이 사용된 머신러닝 기반의 회귀모델이 아닌 딥러닝 모델을 통해 학습한다. [5]은 딥러닝 모델 중 하나인 LSTM를 활용하여 수집한 트위터 데이터를 학습하여 예측한다. 그 결과 실제 발생 데이터로 예측했던 전통적인 방식보다 더
빠르게 정확히 예측하였다. 마지막으로 [5]은 인플루엔자 트위터 데이터 수가 많아질수록 예측 에러율은 낮아지고 상관계수가 높아짐을 보였다.
[6]은 인플루엔자를 언급하고 있는 10주간의 500,000여개의 트위터를 수집한다. 그리고 각 트위터가 인플루엔자에 대해 긍정(positive)인지 부정(negative)인지
분류하여 발생 여부를 파악하여 학습한다. 결과적으로 발생데이터와 연관된 트위터만 재추출해 인플루엔자 발생을 예측한다. 그리고 이 예측한 값을 신제
발생데이터와 비교하여 정확도를 평가한다. 그 결과 0.78의 높은 예측 정확도를 보였다.
다음으로 또 다른 웹 데이터인 온라인 뉴스 기사를 활용하여 전염병을 감시하는 연구가 있다 [7]-[9]. [7]는 스리랑카를 대상으로 뎅기열의 발생을 감시한 연구이다. [7]는 먼저 뎅기열과 관련된 뉴스기사를 수집하여 말라리아나 인플루엔자 등과 관련된 뉴스기사와 비교한다. 그리고 수집한 600여개의 뎅기열과 관련된 뉴스
데이터와 실제 뎅기열 발생 데이터의 상관을 그래프를 통해 직관적으로 분석한다.
[8]은 홍콩에서 이루어진 연구로 2004-2018 인플루엔자와 관련된 7,000여개의 홍콩 뉴스 기사를 수집한다. 그리고 Word2Vec의 CBOW 단어
임베딩 모델을 사용해 90,000여개의 단어를 추출하여 인플루엔자와 관련한 키워드를 지정하였다 (H1N1, H3N2…). 그리고 이 키워드와 관련된
뉴스 데이터를 통해 인플루엔자 확산을 예측한다. [8]은 주간단위로 Support Vector Machine (SVM)모델을 통해 예측하였으며 평균 정확도가 86.7\%를 보였다.
[9]는 2010년 아이티 콜레라 발병 후 100일 간의 뉴스 등 웹 데이터를 수집한다. [9]는 실제 콜레라 발생 데이터와 유사성을 그래프를 통해 보여준다. 또한 각 수집한 데이터를 데이터별, 날짜(기간)별로 상관계수를 보여줌으로써 콜레라의
조기 발견 등 예측에 필요한 데이터를 분석하여 보여준다.
3. 배경지식
3.1 피어슨 상관계수
피어슨 상관계수는 연속적인 두 변수의 상관관계를 수치적으로 나타내는 방식이다. 이 방식을 통해 두 변수가 서로 선형적 또는 비선형적 상관관계를 가지고
있는지 파악할 수 있다 [10]. 데이터 집합 $A$와 $B$가 있다고 가정하고 각 $A$와 $B$는 $A=\left\{a_{1},\:a_{2},\:a_{3},\:\cdots ,\:a_{n}\right\}$,
$B=\left\{b_{1},\:b_{2},\:b_{3},\:\cdots ,\:b_{n}\right\}$라면 피어슨 상관계수는 다음과 같다.
$p_{(A,\:B)}$는 데이터 집합 $A$와 $B$의 각 원소의 쌍들의 증감에 따른 상관을 보인다. 각 원소들이 같은 방향으로 추이를 보이면 양적
상관관계가 있음을 뜻하고 반대방향은 음적 상관관계를 있음을 의미한다. $p_{(A,\:B)}$는 -1과 1사이의 값 $(-1\le p_{(A,\:B)}\le
1)$을 가지며 -0.1과 0.1사이의 값을 가지는 경우 어떠한 선형관계를 가지지 않음을 의미한다. 그리고 $| p |$가 0.1이상일 경우 $p$가
음수일 경우 음적 상관관계가 있고 $p$가 양수일 경우 양적 상관관계가 있음을 의미한다. -1에 가까울수록 음적 선형 상관관계가 뚜렷하게 나타나며
1에 가까울수록 양적 선형 상관관계가 뚜렷하게 나타난다.
3.2 평균 제곱근 오차
평균 제곱근 오차는 추정이나 예측 모델에서 실제 값과 예측치의 차이를 나타내는 방식이다. 실제 값을 가지는 데이터 집합을 $A$라고 하고 예측한 값들의
데이터 집합을 $B$이고 각 $A$와 $B$는 $A=\left\{a_{1},\:a_{2},\:a_{3},\:\cdots ,\:a_{n}\right\}$,
$B=\left\{b_{1},\:b_{2},\:b_{3},\:\cdots ,\:b_{n}\right\}$ 라고 할 때 각 집합의 원소 쌍$(a_{n},\:b_{n})$의
오차를 구한다. 각 오차는 양수와 음수일 수 있기 때문에 모든 오차를 구할 때 평균을 구하면 정확한 차이를 판단하기 어려워 제곱하여 전체 오차의 평균을
낸다. 이 값이 커질 수 있기 때문에 그 값의 제곱을 구한다. 이를 평균 제곱근 오차 (Root Mean Square Error, RMSE)라고 한다
[11]. 식(2)는 그 계산식이다. 본 논문에서는 학습모델의 0~1로 스케일링 된 값이 아닌 실제 값과 예측 값의 오차를 나타낸다.
4. 실험환경 및 데이터 수집
4.1 실험환경
표 1. 실험환경
Table 1. Experiment environment
운영체제 (OS)
|
Microsoft windows 10 (64bit)
|
프로세서
|
Intel(R) Core(TM) i7-7500U CPU, Intel(R) Core(TM) i5-3470 CPU
|
설치메모리
|
8.00 GB
|
사용언어
|
JAVA, Python
|
통합개발환경
(IDE)
|
Eclipse Jee Oxygen, Jupyter notebook
|
데이터베이스
|
PostgreSQL 9.6
|
표 1은 본 논문의 실험 환경이다. 우리는 Microsoft windows 10 운영체제를 바탕으로 실험을 진행한다. 프로세서는 각각 Intel(R) Core(TM)
i7-7500U CPU, Intel(R) Core(TM) i5-3470 CPU이며 설치메모리(RAM)는 8.00GB이다. 시스템은 64비트 운영체제를
사용하였으며 Eclipse Jee Oxygen 개발환경에서 Java언어를 통해 데이터를 수집, 수집된 파일을 분류, 데이터 저장 및 로드하였다. 그리고
데이터 분석 및 예측모델 구현은 Jupyter notebook 에서 Python언어를 사용하여 구현하였다. 수집한 각 데이터는 데이터베이스 테이블에
저장하였으며 데이터베이스는 PostgreSQL 9.6을 사용하였다.
4.2 데이터 수집
본 논문에서 수두 발생 예측을 위해 수두와 관련된 데이터를 수집한다. 우리는 2017년 12월 31일부터 2018년 12월 29일까지 총 52주간의
데이터를 수집하였다. 먼저 실제 수두 발생 데이터는 KCDC에서 주간 단위로 XLS 또는 CSV파일 형태로 수집하였다. 웹 데이터(뉴스, SNS)는
Open API로 데이터를 30분에 한 번씩 크롤링하여 TXT파일 형태로 수집하였다. 뉴스는 Naver News API를 통해 총 21,371개의
데이터를 수집하였다. 그리고 SNS데이터는 Twitter Streaming API를 통해 1,939개의 데이터를 가져왔다. 우리는 수집한 총 52주간
실제 수두 발생데이터와 웹 데이터를 통해 수두 발생을 예측한다. 우리는 전체 52주간 데이터 중 70\%를 차지하는 1주에서 37주까지의 데이터 (총
37주)는 학습에 필요한 훈련 데이터 (Training data)로 사용한다. 그리고 나머지 30\%인 38주에서 52주까지의 데이터 (총 15주)를
예측을 위한 테스트 데이터(Test data)로 사용한다.
5. 키워드 추출
그림. 1. Word2Vec을 활용한 키워드 추출 모델
Fig. 1. Chicken pox-related keyword extraction model using Word2Vec
본 논문에서 우리는 수두 발생과 관련한 키워드를 추출하기 위해 앞서 설명한 Word2Vec 단어 임베딩 모델 [12]을 사용했다. 우리는 Word2Vec의 두 알고리즘 중 Skip-gram방식을 채택하였다. 단어 임베딩 모델은 파이썬 언어로gensim라이브러리를
통해 모델링하였다. 그림 1은 본 논문에서 수두 발생과 관련된 키워드를 추출하는 과정을 보여준다.
우리는 먼저 수집한 수두를 포함하고 있는 웹 데이터의 형태소를 분석했다. 형태소 분석을 위해 Konlpy 라이브러리 [13]를 사용하였으며 품사 태깅하는 클래스인 Okt를 사용하였다. 우리는 Okt를 통해 명사 형태 단어만 가져오기 위해 조사, 어미, 구두점 등을 제외하였다.
단어 임베딩을 위해 Word2Vec Skip-gram 알고리즘에 중심단어인 ‘수두’를 입력 값을 넣었다. 우리는 중심단어인 수두와 주변단어인 명사
형태의 각 단어들을 벡터화하여 두 벡터간의 유사도를 가져온다. 수두 벡터를 $A$, 각 단어의 벡터를 $B$라고 할 때 두 벡터간의 유사도(sim)는
식(3)와 같다.
이 유사도 계산식은 벡터간의 코사인 각도를 통해 수치로 나타낸다. 두 벡터의 코사인 각도가 같은 방향일 경우 1, $90^{\circ}$일 경우 0,
반대 방향일 경우 -1의 값을 가진다. 앞서 설명한 피어슨 상관계수와 마찬가지로 -1과 1사이의 값을 가지며$(-1\le sim \le 1)$ 그
값이 커질수록 유사성이 높은 것을 의미한다.
우리는 식(3) 계산을 통해 수두와 각 단어사이의 유사도 값을 가져오면서 우리는 명사형태의 단어가 ‘등’, ‘명’, ‘수’, ‘세’, ‘형’, ‘건’과 같은 불용어일
경우 필터링을 통해 제거했다. 마지막으로 우리는 수두를 제외한 총 30개의 키워드를 추출한다. 표 2는 우리가 추출한 30개의 키워드벡터와 수두벡터와의 유사도 값을 보여준다.
다음으로 우리는 추출한 30개의 수두 관련 키워드 중 수두 발생 데이터와 유사성이 높은 키워드를 재추출하여 최종 키워드를 선정했다. KCDC에서
가져온 52주간의 실제 수두 발생 데이터 집합을 $K$라고 하고 각 주의 데이터를 원소로 하여 시계열로 나타낸 집합은 $K =\left\{k_{1},\:
k_{2},\:k_{3},\:\cdots ,\:k_{52}\right\}$라고 표현할 수 있다. 52주간의 수두를 언급하고 있는 웹 데이터 집합을
$W$이며 한 주간의 각 단어의 빈도수를 원소로 하여 시계열로 $W =\left\{w_{1},\: w_{2},\:w_{3},\:\cdots ,\:w_{52}\right\}$과
같이 나타낸다. 우리는 전체 데이터 집합 $(K,\:W)$에서 훈련 데이터 집합 (1주~37주) 인 $K_{(1,\:37)}=\left\{k_{1},\:
k_{2},\:k_{3},\:\cdots ,\:k_{37}\right\}$와 $W_{(1,\:37)}=\left\{w_{1},\: w_{2},\:w_{3},\:\cdots
,\:w_{37}\right\}$간의 피어슨 상관계수를 계산했다. 우리는 상관계수가 양적상관관계를 가지는 최소 상관계수 값인 0.1이상인 키워드만
재 추출해 최종 키워드로 선정했다.
식(4)는 상관계수 계산식이며 표 3은 수두 실제 발생데이터와 0.1이상의 양적 상관관계를 갖는 최종 키워드를 나타낸 것이다.
표 2. 수두 관련 키워드와 수두와의 유사도
Table 2. Similarity between chickenpox-related keywords and chickenpox
|
키워드
|
Sim
|
1
|
환자
|
0.75459
|
2
|
바이러스
|
0.74698
|
3
|
예방접종
|
0.71907
|
4
|
발생
|
0.71391
|
5
|
대상포진
|
0.68842
|
6
|
유행
|
0.68404
|
7
|
백신
|
0.66151
|
8
|
질병
|
0.6591
|
9
|
증상
|
0.64662
|
10
|
홍역
|
0.60893
|
11
|
이하선염
|
0.59638
|
12
|
감염병
|
0.57838
|
13
|
질환
|
0.57057
|
14
|
주의
|
0.56431
|
15
|
접종
|
0.55992
|
16
|
면역
|
0.55951
|
17
|
관리
|
0.5067
|
18
|
증가
|
0.49191
|
19
|
지난해
|
0.4711
|
20
|
올해
|
0.41568
|
21
|
풍진
|
0.39755
|
22
|
치료
|
0.39193
|
23
|
독감
|
0.37036
|
24
|
간염
|
0.3306
|
25
|
수족구병
|
0.31637
|
26
|
인플루엔자
|
0.29725
|
27
|
국내
|
0.27004
|
28
|
녹십자
|
0.23752
|
29
|
일본뇌염
|
0.23149
|
30
|
감소
|
0.21506
|
표 3. 수두 발생과 관련된 최종 키워드
Table 3. Keywords related to chicken pox outbreak
|
키워드
|
Sim
|
p
|
1
|
증상
|
0.64622
|
0.39650
|
2
|
수족구병
|
0.31637
|
0.29939
|
3
|
예방접종
|
0.71907
|
0.28890
|
4
|
접종
|
0.55992
|
0.28163
|
5
|
바이러스
|
0.74698
|
0.25163
|
6
|
녹십자
|
0.23752
|
0.25013
|
7
|
이하선염
|
0.59638
|
0.24370
|
8
|
인플루엔자
|
0.29725
|
0.20732
|
9
|
대상포진
|
0.68842
|
0.19938
|
10
|
독감
|
0.37036
|
0.19381
|
11
|
유행
|
0.68404
|
0.14137
|
12
|
질환
|
0.57057
|
0.13252
|
13
|
질병
|
0.6591
|
0.10813
|
14
|
증간
|
0.49191
|
0.10566
|
15
|
주의
|
0.56431
|
0.10214
|
6. 사전연구
본 논문에서 우리는 수두 발생 예측을 하기 위해 먼저 기존 연구 방식인 머신러닝 기반의 선형회귀분석을 통한 예측 결과를 보여준다. 회귀분석(regression
analysis) 이란 연속적인 값을 가지는 두 변수사이의 관계 모형을 모델링하여 적합도를 측정하는 분석방식이다 [14]. 선형회귀모델은 연속되는 변수사이의 관계모형을 선형상관관계로 모델링하는 방식으로 종속변수와 한 개 이상의 독립변수가 선형 상관관계가 있음을 전제한다.
6.1 수두 빈도수에 따른 단순선형회귀
실제 수두 발생 데이터는 종속변수, 수두 빈도수는 독립변수라고 할 때 우리는 두 변수가 선형상관관계에 있다고 가정하고 단순선형회귀 모델을 사용하여
예측하였다.
선형회귀식 (5)을 통해 우리는 훈련데이터를 학습시켜 최적의 $\alpha$와 $m_{1}$값을 찾아 선형회귀모델로 모델링하였다.
식(6)은 최적의 $\alpha$와 $m_{1}$를 결합한 선형회귀식이다. $\alpha$는 1166.10713273이며 $m_{1}$은 1.05692504이다.
우리는 테스트 데이터를 선형회귀 식에 입력하여 예측하였다.
그림. 2. 단순선형회귀를 통한 수두 예측
Fig. 2. Chickenpox Prediction Using Simple Linear Regression
그림 2는 수두 발생을 예측한 결과이다. 수두 언급 빈도수와 실제 수두 감염자 수가 선형적인 관계를 가지고 있지 않아 예측 정확도가 매우 낮은 것을 볼 수
있다.
6.2 수두 발생 관련 키워드 빈도수에 따른 다중선형회귀
다중선형회귀란 단순선형회귀와 달리 독립변수가 여러 개 있는 선형회귀 모델이다. 종속변수와 여러 개의 독립변수가 선형상관관계가 있다고 가정한다. 다중선형회귀식은
다음 식(7)과 같이 표현한다.
$y$는 예측 결과이다. $\alpha$는 절편을 의미하며 $m_{n}$은 n차 상관계수를 의미한다. $x_{n}$은 훈련데이터의 독립변수이다. 훈련데이터와의
학습을 통해 선형회귀식의 $\alpha$와 $m_{n}$의 값이 정해진다. 우리는 수두 발생 관련 키워드의 언급 데이터를 독립 변수로 지정해 선형회귀를
통해 예측했다. 먼저 우리는 학습에 입력 값인 키워드들의 개수에 따른 예측 정확도를 평가하였다.
그림 11(a)는 키워드 개수에 따른 선형회귀예측모델의 피어슨 상관계수 변화를 보여준다. 키워드 개수가 7개일 때 가장 피어슨 상관계수가 높은 것을 확인할 수 있다.
그림 11(b)는 키워드 개수에 따른 선형회귀 예측모델의 평균 제곱근 오차를 보여준다. 평균제곱근 오차도 마찬가지로 키워드 개수가 7개일 때 제일 낮은 오차를 보였다.
최종적으로 우리는 7개의 키워드를 학습한 선형회귀모델을 가지고 예측하였다. 그에 따른 최적의 다중선형회귀식은 식(8)와 같다.
총 키워드가 7개이므로 독립변수는 각 키워드의 빈도수 데이터이다. 종속변수는 실제 수두 발생데이터이다. 우리는 모든 변수가 선형 상관관계에 있다고
가정하여 훈련을 통해 최적의 $\alpha$와 각 독립변수의 상관 계수 값을 구하였다. 표 4은 그 키워드와 그 키워드의 계수이다. 그림 3은 수두 발생을 예측한 결과이다. 그림 2에 비해 추이를 보이고 있지만 여전히 선형관계가 없어 정확도가 낮은 것을 볼 수 있다.
표 4. 최적의 다중 선형회귀 종속변수와 상관계수
Table 4. Dependent variables and correlation coefficients for optimal multiple linear
regression
종속변수
|
독립변수
|
$x_{1}$
|
증상
|
$m_{1}$
|
22.080451
|
$x_{2}$
|
수족구병
|
$m_{2}$
|
18.106727
|
$x_{3}$
|
예방접종
|
$m_{3}$
|
-5.691496
|
$x_{4}$
|
접종
|
$m_{4}$
|
26.447417
|
$x_{5}$
|
바이러스
|
$m_{5}$
|
-1.718628
|
$x_{6}$
|
녹십자
|
$m_{6}$
|
6.550827
|
$x_{7}$
|
수두
|
$m_{7}$
|
-3.161341
|
그림. 3. 다중선형회귀를 통한 수두 예측
Fig. 3. Chickenpox Prediction Using Multiple Linear Regression
7. 딥러닝을 통한 수두 예측
7.1. RNN을 통한 수두 예측
Recurrent Neural Network (RNN) 는 시계열 데이터를 학습하기 적합한 딥러닝 모델이다. 이는 이전의 학습결과를 가져와 현재 학습할
때 사용하여 순환신경망이라고 한다 [15].
7.1.1 모델링
우리는 RNN모델을 통해 수두를 예측하기 위해 모델의 학습 파라미터를 조정했다. 파라미터는 학습 횟수 (Iteration), 학습률 (Learning
rate), 키워드 개수(# of keywords)이다. 이때 키워드 개수는 모델의 입력(feature)의 개수이다. 우리는 각 파라미터 값과 예측정확도와의
연관성을 분석하였다. 우리는 연속된 파라미터 값에 따른 피어슨 상관계수와 평균 제곱근 오차를 분석해 적합한 파라미터 값을 찾는다. 그림 4(a)는 학습 횟수에 따른 피어슨 상관계수를 보여준다.
x축은 학습 횟수, y축은 피어슨 상관계수이다. 학습 횟수가 100일 때까지 상관계수가 점점 높아지다가 1,000일 때 높은 상관계수를 유지한다.
그러다 10,000에 가까워지면서 높은 상관관계는 유지되지만 1,000보다는 상관계수 분포가 넓어져 1,000일 때 보다 더 낮은 상관계수를 보이기도
한다. 그림 4(b)는 학습 횟수에 따른 평균 제곱근 오차를 보여준다. x축은 학습 횟수, y축은 평균제곱근오차이다. 학습 횟수가 100까지 불안정하다.
학습 횟수가 평균적으로 1,000일 때 높은 상관계수를 유지한다. 10,000번 학습했을 경우 평균 제곱근 오차 분포 또한 넓은 것을 볼 수 있다.
우리는 이와 같은 예측 정확도 분석을 통해 학습 횟수 파라미터 값은 1,000으로 조정하였다.
그림. 4. 학습 횟수에 따른 예측 정확도
Fig. 4. Prediction accuracy based on learning iterations
다음으로 우리는 학습률 파라미터 값을 조정하기 위해 학습률에 따른 예측 정확도를 분석하였다. 그림 5는 학습률에 따른 정확도를 보여준다. 우리는 학습률을 0.0001, 0.001, 0.01, 0.1을 기준으로 최적의 학습률 구간을 지정하였다. 그림 5(a)는 학습률에 따른 피어슨 상관계수의 변화를 보여준다. x축은 학습률, y축은 피어슨 상관계수이다. 학습률이 커질수록 상관계수가 대부분 높아지는 추이를
보이기는 하나 중간에 피어슨 상관계수가 낮아지는 경향을 보였다. 특히 학습률이 0.06~0.1구간에서는 상관계수가 급격히 낮아졌다. 그래서 우리는
0.0001~0.05사이에서 가장 높은 상관계수를 보이는 구간인 0.02~0.04를 최적 학습률 구간으로 지정하였다. 다음으로 그림 5(b)는 학습률에 따른 평균 제곱근 오차를 보여준다. x축은 학습률, y축은 평균 제곱근 지정하였다. 다음으로 그림 5(b)는 학습률에 따른 평균 제곱근 오차를 보여준다. x축은 학습률, y축은 평균 제곱근 오차를 의미한다. 0.05~0.1구간에서 평균 제곱근 오차가
갑자기 커지는 불안정한 추이를 보였다.
우리는 평균 제곱근 오차가 제일 적은 0.03~0.04 구간을 최적 학습률 구간으로 설정하였다. 우리는 피어슨 상관계수에 따른 최적의 학습률 구간과
평균 제곱근 오차에 따른 최적 학습률 구간의 교집합인 0.03과 0.04 중 상관계수가 높은 0.04로 지정하였다.
그림. 5. 학습률에 따른 예측 정확도
Fig. 5. Prediction accuracy based on learning rate
마지막으로 우리는 feature인 키워드의 개수에 따른 예측 정확도를 분석하였다. 그림 6은 키워드 개수에 따른 예측 정확도의 오차를 박스 플롯이다. 그림 6(a)은 키워드 개수에 따른 피어슨 상관계수를 보여준다. x축은 키워드의 개수, y축은 피어슨 상관계수, 각 박스는 y축 값의 오차이며 노란 실선은 오차의
평균이다. 대부분 높은 상관계수를 보였지만 7개일 때 최대 양적 상관계수와 제일 높은 상관계수의 평균을 보였다. 그림 6(b)는 키워드 개수에 따른 평균 제곱근 오차이다. x축은 키워드의 개수, y축은 평균 제곱근 오차, 각 박스는 y축 값의 오차이며 노란 실선은 오차의
평균이다. 그 결과 오차의 평균이 낮은 7개로 모델링하였다. 키워드명은 수두를 포함한 ‘증상’, ‘수족구병’, ‘예방접종’, ‘접종’, ‘바이러스’,
‘녹십자’이다.
그림. 6. 키워드 개수에 따른 예측 정확도
Fig. 6. Prediction accuracy based on the number of keywords: features
7.1.2 예측결과
우리는 최적 모델링 후 RNN으로 수두 발생을 예측했다. 그림 7은 RNN을 통해 수두 발생을 예측한 결과이다. x축은 예측 기간 15주이며 y축은 감염자 수다. 파랑색 원형 실선은 실제 수두 발생 데이터이며 초록색
사각형 점선은 예측 데이터이다. 예측 추이가 실제와 유사하고 1주에서 6~7주까지 실제 수두 발생 데이터와 예측 데이터의 차가 적었다.
그림. 7. RNN을 통한 수두 발생 예측
Fig. 7. Chicken pox outbreak prediction using RNN
7.2 LSTM 기반 학습 모델을 통한 수두 발생 예측
우리는 앞서 RNN을 통해 수두 발생을 예측했다. 하지만 RNN 예측 모델은 예측 정확도가 높은 기간이 6~7주로 계절성 전염병인 수두를 예측하기에
기간이 짧으며 오차 또한 최대 1,100~1,200이다. 우리는 이를 보완하기 위해 Long Short-Term Memory (LSTM) 을 통해
수두 발생을 예측했다. LSTM은 RNN의 장기 의존성 문제를 해결하기 위해 설계된 딥러닝 모델이다. 장기 의존성 문제란 RNN은 이전의 입력정보를
기억하지만 단계가 길어지면 떨어진 정보는 기억하기 어려워지는 현상이다. LSTM은 망각 게이트를 통해 과거를 얼마나 기억하고 삭제할 것인지 학습한다
[16].
7.2.1 모델링
우리는 LSTM 모델의 최적 학습 파라미터를 구했다. 그림 8은 학습 횟수에 따른 예측정확도이다. x축은 학습 횟수, y축은 각각 피어슨 상관계수와 평균 제곱근 오차를 의미한다. 그림 8(a)는 100일 때 불안정하다 1,000에서 안정적으로 상관계수가 높았다. 그리고 10,000에 가까워질수록 상관계수가 불안정했다. 그림 8(b)는 학습 횟수에 따른 평균 제곱근 오차이다. 학습 횟수 300~1,000구간 이전은 불안정하게 큰 오차를 보이며 이후는 오차가 유지되지 않고 넓게
분포되었다. 우리는 안정구간의 평균인 1,000을 학습 횟수로 지정하였다.
그림. 8. 학습 횟수에 따른 예측 정확도
Fig. 8. Prediction accuracy based on learning iterations
다음으로 우리는 학습률에 따른 예측 정확도를 분석했다. 그림 9(a)는 학습률에 따른 피어슨 상관계수를 보여준다. x축은 학습률, y축은 피어슨 상관계수이다. 0.04~0.05 구간이 제일 높은 상관계수를 보였다.
그림 9(b)는 학습률에 따른 평균 제곱근 오차이다. x축은 학습률, y축은 평균 제곱근 오차이다. 학습률이 0.04일 때 제일 적은 오차를 보여 최종적으로 학습률은
0.04로 지정하였다.
그림. 9. 학습률에 따른 예측 정확도
Fig. 9. Prediction accuracy based on learning rate
다음으로 우리는 feature의 개수에 따른 예측정확도를 보여준다. 그림 10는 feature 개수에 따른 박스 플롯이다. 그림 10(a)는 피어슨 상관계수, 그림 10(b)는 평균 제곱근 오차의 오차를 보여주며 각 박스의 노란 선은 오차의 평균이다. 키워드가 5개일 때 각각 피어슨 상관계수의 평균이 높으며 평균 제곱근
오차 또한 제일 적었다. 최종 feature는 ‘증상’, ‘수족구병’, ‘예방접종’, ‘접종’, ‘수두’ 5개다.
그림. 10. 키워드 개수에 따른 예측 정확도
Fig. 10. Prediction accuracy based on the number of keywords: features
7.2.2 예측결과
우리는 최적의 학습파라미터를 조정 후 LSTM을 통해 수두발생을 예측했다. 그림 11은 LSTM모델을 통해 수두 발생을 예측한 결과이다. 직관적으로 분석할 경우 1주에서 약 10~11주까지 실제 수두 발생 데이터와 유사하게 예측한
것을 볼 수 있다. LSTM은 900~1,000사이의 최대 오차를 보였다.
그림. 11. LSTM을 통한 수두 발생 예측
Fig. 11. Chicken pox outbreak prediction using LSTM
8. 예측 모델 비교 및 평가
우리는 기존 전염병 감시 연구의 회귀모델과 본 논문의 딥러닝 기반 모델의 수두 발생 예측결과를 비교한다. 그림 12는 각 예측 모델의 예측한 결과를 직관적으로 보여준다. x축은 총 예측기간인 15주이며 y축은 실제 수두 발생 데이터와 예측된 수두 발생 데이터이다.
검은색 원형 실선(Actual)은 실제 수두 발생데이터를 의미한다. 노랑색 사각형 점선(Regression+chicken pox)은 오직 ‘수두’키워드
하나만 초록색 별형 점선(Regression+ keywords)은 수두 관련 키워드를 추출해 선형회귀로 예측한 결과이다. 파랑색 삼각형 점선(RNN+keywords)과
빨강색 다이아몬드형 점선(LSTM+keywords)은 각각 본 논문의 RNN 과 LSTM 수두 발생 예측 모델이다.
그림. 12. 예측 모델의 예측 결과
Fig. 12. Prediction results for each prediction model
특히 ‘수두’라는 키워드 하나로 수두 발생을 선형회귀로 예측할 경우 실제 수두 발생 데이터의 증감과 상관없이 수두의 언급이 많았기 때문에 직관적으로
보기에도 예측 정확도가 낮다. 다음으로 우리는 수두 관련 키워드를 통한 선형회귀모델을 통해 수두를 예측했다. 관련 키워드는 수두를 포함한 ‘증상’,
‘수족구병’, ‘예방접종’, ‘접종’, ‘바이러스’, ‘녹십자’이다.
Regression+chicken pox 모델보다는 추이를 보이고 있지만 수두 발생 추이와 오차가 커 직관적으로 확인하기 어렵다. 딥러닝 학습 모델인
RNN과 LSTM 수두 발생 예측 모델은 기존의 선형회귀모델보다 예측 추이가 비슷하고 차이 또한 적다. RNN예측 모델은 총 15주 중 최대 7주까지
실제 수두 발생 데이터와 직관적으로 비슷하게 예측하였다. 하지만 RNN 예측 모델은 더 긴 시간을 예측하지 못했다. 반면 LSTM 예측 모델은 1주에서
최대 11주까지 예측했다.
다음으로 우리는 각 예측 모델을 피어슨 상관계수를 통해 분석했다. 그림 13은 각 예측 모델의 상관계수를 보여주는 막대그래프다. ‘수두’ 하나의 키워드를 통한 선형회귀 예측 모델은 상관계수가 -0.00328로 어떠한 상관관계를
가지고 있지 않았다. 반면 수두 발생 관련 키워드를 사용한 회귀모델은 0.45375로 양적 상관관계를 보였다. 이는 단순히 수두라는 키워드 하나 보다는
수두 발생과 관련된 키워드를 통해 예측 정확도를 높일 수 있음을 의미한다. RNN 예측 모델은 0.96872, LSTM 예측모델은 0.97114로
강한 양적 상관관계를 보였으며 크게 차이가 나지 않았다.
그림. 13. 예측 모델의 피어슨 상관 계수 비교
Fig. 13. Pearson's correlation coefficients for each prediction model
마지막으로 각 예측 모델의 평균 제곱근 오차를 통해 비교한다. 그림 14는 각 예측 모델의 평균 제곱근 오차를 보여주는 막대그래프이다. ‘수두’ 키워드만 사용한 선형회귀 예측 모델의 오차는 958.98762이며 수두 발생
관련 키워드를 통해 선형 회귀 예측한 모델은 837.3215로 키워드 하나만 사용하여 예측하는 것보다는 오차가 줄었지만 여전히 높은 오차를 보였다.
이는 수두 웹 데이터와 수두 발생 데이터가 뚜렷한 선형 관계를 가지고 있지 않음을 의미한다. RNN 예측 모델은 563.39645로 선형회귀예측
모델보다 300 가깝게 오차가 감소했다. LSTM 예측 모델은 341.01547로 가장 적은 오차를 보였다.
그림. 14. 예측 모델의 평균 제곱근 오차 비교
Fig. 14. RMSE for each prediction model
우리는 각 예측 모델들의 피어슨 상관계수 비교를 통해 수두를 예측할 때 키워드 추출이 예측 모델의 정확도 향상에 영향을 주는 것을 확인했으며 선형회귀
예측 모델보다는 딥러닝 예측 모델이 더 적합하다는 것을 보였다. RNN과 LSTM 수두 발생 예측 모델은 0.9이상의 높은 상관계수를 보여 둘의 차이가
알 수는 없으나 직관적 비교를 통해 LSTM이 더 긴 기간 수두를 예측할 수 있음을 보였다. 뿐만 아니라 평균 제곱근 오차 비교를 통해 LSTM 예측
모델이 예측 정확도가 더 높은 것을 확인했다.
9. 결 론
본 연구는 수두를 감시하기 위해 수두 발생 예측 모델링을 제안하였다. 우리는 Word2Vec의 Skip-gram 방식과 피어슨 상관계수를 통해 수두
발생과 상관관계가 높은 키워드를 추출하였다. 우리는 웹 데이터의 키워드의 언급 빈도를 통해 수두 발생을 예측하였다. 제안된 방법은 딥러닝 모델을 통해
비선형 관계를 모델링이 가능하여 수두 발생 예측 정확도가 압도적으로 높았다. 우리는 학습 파라미터인 학습 횟수, 학습률, feature의 개수를 피어슨
상관계수와 평균 제곱근 오차를 통해 최적의 모델링을 보였다. 최종적으로 약 1개월 수두 예측에는 딥러닝 예측 모델이 적합함을 확인했다. 하지만 더
긴 시간 예측할 경우 RNN보다 LSTM 예측 모델이 더 적합했으며 피어슨 상관계수는 RNN예측모델과 비슷하지만 평균 제곱근 오차 비교에서 훨씬 낮은
오차를 보였다. 제안된 방법은 CDC데이터를 활용한 감시연구의 시간적 제약을 해결할 수 있을 것으로 기대된다.
References
KCDC, Accessed: Oct. 15, 2019. [Online]. Available: http://www.cdc.go.kr/npt/
C. de Almeida Marques-Toledo, C. M. Degener, L. Vinhal, G. Coelho, W. Meira, C. T.
Codeço, M. M. Teixeira, Jul. 2017, Dengue prediction by the web: Tweets are a useful
tool for estimating and forecasting Dengue at country and city level, PLoS Neglected
Tropical Diseases, Vol. 11, No. 7, pp. e0005729
I. S. O. Hayate, S. Wakamiya, E. Aramaki, 2016, Forecasting word model: Twitter-based
influenza surveillance and prediction, in COLING 2016, the 26th International Conference
on Computational Linguistics: Technical Papers, pp. 76-86
H. Achrekar, A. Gandhe, R. Lazarus, S.-H. Yu, B. Liu, 2011, Predicting flu trends
using twitter data, in 2011 IEEE Conference on Computer Communications Workshops,
pp. 702-707
S. Volkova, E. Ayton, K. Porterfield, C. D. Corley, Dec. 2017, Forecasting influenza-like
illness dynamics for military populations using neural networks and social media,
PloS one, Vol. 12, No. 12, pp. e0188941
A. Culotta, 2010, Towards detecting influenza epidemics by analyzing Twitter messages,
in the First Workshop on Social Media Analytics, pp. 115-122
A. Wilder-Smith, E. Cohn, D. C. Lloyd, Y. Tozan, J. S. Brownstein, May. 2016, Internet-based
media coverage on dengue in Sri Lanka between 2007 and 2015, Global Health Action,
Vol. 9, No. 1, pp. 31620
J. Kim, I. Ahn, May. 2019, Weekly ILI patient ratio change prediction using news articles
with support vector machine, BMC Bioinformatics, Vol. 20, No. 1, pp. 259
R. Chunara, J. R. Andrews, J. S. Brownstein, Jan. 2012, Social and news media enable
estimation of epidemiological patterns early in the 2010 Haitian cholera outbreak,
The American Journal of Tropical Medicine and Hygiene, Vol. 86, No. 1, pp. 39-45
J. Benesty, J. Chen, Y. Huang, I. Cohen, 2009, Pearson correlation coefficient, Noise
Reduction in Speech Processing, Springer, pp. 1-4
T. Chai, R. R. Draxler, Feb 2014, Root mean square error (RMSE) or mean absolute error
(MAE)?, Geoscientific Model Development Discussions, Vol. 7, pp. 1525-1534
T. Mikolov, I. Sutskever, K. Chen, G. S. Corrado, J. Dean, 2013, Distributed representations
of words and phrases and their compositionality, Advances in neural information processing
systems, pp. 3111-3119
E. L. Park, S. Cho, 2014, KoNLPy: Korean natural language processing in Python, the
26th Annual Conference on Human & Cognitive Language Technology, Vol. 6
D. C. Montgomery, E. A. Peck, G. G. Vining, 2012, Introduction to linear regression
analysis, John Wiley & Sons, Vol. 821
R. Pascanu, C. Gulcehre, K. Cho, Y. Bengio, 2013, How to construct deep recurrent
neural networks, arXiv preprint arXiv:1312.6026
F. A. Gers, J. Schmidhuber, F. Cummins, 1999, Learning to forget: Continual prediction
with LSTM, in Proc. of 9th International Conference on Artificial Neural Networks
저자소개
She received her B.S. degree from the Department of Computer Science, Sangmyung University,
Seoul, South Korea, where she is currently pursuing an M.S. degree.
Her research interests involve Artificial Intelligence, Data Science, Web.
He received his Ph.D. degree from the Department of Computer Science, Arizona State
University in 2019.
He is currently an Associate Professor with the Department of Computer Science, Sangmyung
University.
His primary research interest includes data privacy and artificial intelligence.
He received his Ph.D. degree from the Department of Computer Science, North Carolina
State University in 2009.
He is currently an Associate Professor with the Department of Computer Science, Sangmyung
University.
His primary research interest includes wireless networking and artificial intelligence.