책소개
현장 실무 예제로 배우는 시계열 분석과 응용 데이터 과학에서 시간에 따른 변화 패턴을 분석하여 다양한 예측 모델을 구축하면, 미래 예측은 물론 다양한 의사결정에 도움이 된다. 이 책에서는 파이썬 코드로 완벽하게 작동하는 시계열 예측 방법을 소개한다. 시계열 데이터를 정의하고, 베이스라인 모델을 개발하고, 통계적 모델과 텐서플로 및 최신 딥러닝 도구를 사용하여 대규모 모델 구축 방법을 학습하고, 자동화된 예측 라이브러리까지 다룬다. 구글 주가 동향, 항당뇨제 처방량 예측, 가정의 전력 소비량 예측 등 다양한 실무 사례로 시계열 예측 분석을 마스터하자.
저자소개
캐나다 대형 은행의 선임 데이터 과학자다. 데이터 과학을 독학했고, 금융 업계에 취업하고 일하기 위해 알아야 할 것들에 대해 다양하게 공부했다. 실습에 기반한 학습법을 추구하며, 미디엄 블로그, 온라인 강좌 등으로 지식을 전파하고 있다.
목차
옮긴이 머리말 xiii베타리더 후기 xiv머리말 xvi감사의 말 xviii이 책에 대하여 xix표지에 대하여 xxiiiPART I 시간은 그 누구도 기다려주지 않는다CHAPTER 1 시계열 예측의 이해 31.1 시계열 소개 4__1.1.1 시계열의 구성요소 51.2 시계열 예측에 대한 조감도 8__1.2.1 목적 설정하기 10 / 1.2.2 목적을 달성하기 위해 무엇을 예측해야 하는지 결정하기 10 / 1.2.3 예측할 기간 설정하기 10 / 1.2.4 데이터 수집하기 10 / 1.2.5 예측 모델 개발하기 11 / 1.2.6 상용 환경에 배포하기 12 / 1.2.7 모니터링하기 12 / 1.2.8 새로운 데이터 수집하기 121.3 시계열 예측이 다른 회귀 작업들과 다른 점 13__1.3.1 시계열에는 순서가 있다 13 / 1.3.2 시계열에 특징이 없는 경우가 있다 141.4 다음 단계 14요약 15CHAPTER 2 단순하게 미래 예측하기 162.1 베이스라인 모델 정의하기 182.2 과거 평균으로 예측하기 19__2.2.1 베이스라인 구현을 위한 설정 20 / 2.2.2 과거 평균 기반 베이스라인 모델 구현하기 222.3 작년의 평균으로 예측하기 272.4 마지막으로 측정된 값으로 예측하기 292.5 단순한 계절적 예측 구현하기 312.6 다음 단계 32요약 33CHAPTER 3 확률보행 따라가보기 353.1 확률보행 프로세스 37__3.1.1 확률보행 프로세스 시뮬레이션하기 373.2 확률보행 식별하기 40__3.2.1 정상성 42 / 3.2.2 정상성 테스트하기 44 / 3.2.3 자기상관함수 48 / 3.2.4 모든 것을 종합하기 48 / 3.2.5 GOOGL은 확률보행인가? 523.3 확률보행 예측하기 55__3.3.1 긴 기간 예측하기 55 / 3.3.2 다음 시간 단계 예측하기 613.4 다음 단계 643.5 연습 65__3.5.1 확률보행 시뮬레이션하기와 예측하기 65 / 3.5.2 GOOGL의 일일 종가 예측하기 66 / 3.5.3 직접 선택한 종목의 일일 종가 예측하기 66요약 67PART 2 통계적 모델을 사용하여 예측하기CHAPTER 4 이동평균과정 모델링하기 714.1 이동평균과정 정의하기 73__4.1.1 이동평균과정의 차수 식별하기 754.2 이동평균과정 예측하기 804.3 다음 단계 904.4 연습 91__4.4.1 MA(2) 프로세스 시뮬레이션하고 예측 수행하기 92 / 4.4.2 MA(q) 프로세스 시뮬레이션하고 예측 수행하기 92요약 93CHAPTER 5 자기회귀과정 모델링하기 945.1 소매점의 주간 평균 유동인구 예측하기 955.2 자기회귀과정 정의하기 975.3 정상적 자기회귀과정의 차수 찾기 98__5.3.1 편자기상관함수 1045.4 자기회귀과정 예측하기 1075.5 다음 단계 1145.6 연습 114__5.6.1 AR(2) 프로세스 시뮬레이션하고 예측 수행하기 114 / 5.6.2 AR(p) 프로세스 시뮬레이션하고 예측 수행하기 115요약 115CHAPTER 6 복잡한 시계열 모델링하기 1166.1 데이터 센터의 대역폭 사용량 예측하기 1176.2 자기회귀이동평균과정 살펴보기 1206.3 정상적 ARMA 프로세스 식별하기 1226.4 일반적 모델링 절차 고안하기 128__6.4.1 아카이케 정보 기준 이해하기 130 / 6.4.2 AIC를 사용하여 모델 선택하기 132 / 6.4.3 잔차 분석 이해하기 134 / 6.4.4 잔차 분석 수행하기 1396.5 일반적 모델링 절차 적용하기 1436.6 대역폭 사용량 예측하기 1526.7 다음 단계 1576.8 연습 157__6.8.1 시뮬레이션된 ARMA(1,1) 프로세스에 대한 예측 수행하기 158 / 6.8.2 ARMA(2,2) 프로세스 시뮬레이션하고 예측 수행하기 158요약 159CHAPTER 7 비정상적 시계열 예측하기 1617.1 자기회귀누적이동평균 모델 정의하기 1647.2 비정상적 시계열에 적용하기 위해 일반적 모델링 절차 수정하기 1657.3 비정상적 시계열 예측하기 1677.4 다음 단계 1777.5 연습 177__7.5.1 4장, 5장, 6장의 데이터 집합에 ARIMA(p,d,q) 모델 적용하기 177요약 178CHAPTER 8 계절성 고려하기 1798.1 SARIMA(p,d,q)(P,D,Q)m 모델 살펴보기 1808.2 시계열에서 계절별 패턴 식별하기 1838.3 월간 항공 승객 수 예측하기 187__8.3.1 ARIMA(p,d,q) 모델을 사용하여 예측하기 190 / 8.3.2 SARIMA(p,d,q)(P,D,Q)m 모델을 사용하여 예측하기 196 / 8.3.3 각 예측 방법의 성능 비교하기 2008.4 다음 단계 2038.5 연습 203__8.5.1 존슨앤드존슨 데이터 집합에 SARIMA(p,d,q)(P,D,Q)m 모델 적용하기 203요약 204CHAPTER 9 모델에 외생 변수 추가하기 2059.1 SARIMAX 모델 살펴보기 207__9.1.1 미국 거시경제 데이터 집합의 외생 변수 탐색하기 208 / 9.1.2 SARIMAX 사용 시 유의사항 2119.2 SARIMAX 모델을 사용하여 실질 GDP 예측하기 2129.3 다음 단계 2219.4 연습 222__9.4.1 SARIMAX 모델에 모든 외생 변수를 사용하여 실질 GDP 예측하기 222요약 222CHAPTER 10 다중 시계열 예측하기 22310.1 VAR 모델 살펴보기 22510.2 VAR(p) 모델에 대한 모델링 절차 설계하기 227__10.2.1 그레인저 인과관계 테스트 살펴보기 22910.3 실질 가처분 소득과 실질 소비 예측하기 23010.4 다음 단계 24210.5 연습 243__10.5.1 VARMA 모델을 사용하여 realdpi와 realcons 예측하기 243 /10.5.2 VARMAX 모델을 사용하여 realdpi와 realcons 예측하기 244요약 244CHAPTER 11 캡스톤 프로젝트: 호주의 항당뇨제 처방 건수 예측하기 24511.1 필요한 라이브러리 임포트하고 데이터 로딩하기 24711.2 수열과 그 구성요소 시각화하기 24811.3 데이터로 모델링하기 250__11.3.1 모델 선택 수행하기 253 / 11.3.2 잔차 분석 수행하기 25411.4 예측을 수행하고, 모델 성능 평가하기 25611.5 다음 단계 260PART 3 딥러닝을 활용하여 대규모 예측하기CHAPTER 12 시계열 예측을 위한 딥러닝 소개하기 26312.1 시계열 예측에 딥러닝을 사용해야 하는 경우 26412.2 다양한 유형의 딥러닝 모델 살펴보기 26512.3 예측을 위한 딥러닝 적용 준비하기 268__12.3.1 데이터 탐색 수행하기 268 / 12.3.2 특징 엔지니어링과 데이터 분할 27212.4 다음 단계 27712.5 연습 277요약 278CHAPTER 13 딥러닝을 위해 데이터 윈도잉하고 베이스라인 모델 만들기 27913.1 데이터 윈도우 만들기 280__13.1.1 시계열 예측을 위한 딥러닝 모델을 훈련하는 방법 살펴보기 280__13.1.2 DataWindow 클래스 구현하기 28413.2 베이스라인 모델 적용하기 292__13.2.1 단일 단계 베이스라인 모델 292__13.2.2 다중 단계 베이스라인 모델 295__13.2.3 다중 출력 베이스라인 모델 29913.3 다음 단계 30313.4 연습 303요약 304CHAPTER 14 딥러닝 첫걸음 30514.1 선형 모델 구현하기 306__14.1.1 단일 단계 선형 모델 구현하기 307 / 14.1.2 다중 단계 선형 모델 구현하기 309 / 14.1.3 다중 출력 선형 모델 구현하기 31114.2 심층 신경망 구현하기 312__14.2.1 단일 단계 모델로 심층 신경망 구현하기 314 / 14.2.2 다중 단계 모델로 심층 신경망 구현하기 317 / 14.2.3 다중 출력 모델로서 심층 신경망 구현하기 31914.3 다음 단계 32014.4 연습 321요약 322CHAPTER 15 LSTM으로 과거 기억하기 32315.1 순환 신경망 살펴보기 32415.2 LSTM 아키텍처 살펴보기 326__15.2.1 망각 게이트 327 / 15.2.2 입력 게이트 329 / 15.2.3 출력 게이트 33015.3 LSTM 아키텍처 구현하기 332__15.3.1 단일 단계 모델로서 LSTM 구현하기 332 / 15.3.2 다중 단계 모델로서 LSTM 구현하기 335 / 15.3.3 다중 출력 모델로서 LSTM 구현하기 33815.4 다음 단계 34115.5 연습 342요약 343CHAPTER 16 CNN으로 시계열 필터링하기 34416.1 CNN 살펴보기 34516.2 CNN 구현하기 349__16.2.1 CNN을 단일 단계 모델로서 구현하기 350 / 16.2.2 CNN을 다중 단계 모델로서 구현하기 354 / 16.2.3 CNN을 다중 출력 모델로서 구현하기 35616.3 다음 단계 35916.4 연습 359요약 361CHAPTER 17 예측으로 더 많은 예측하기 36217.1 ARLSTM 아키텍처 살펴보기 36317.2 자기회귀 LSTM 모델 구축하기 36417.3 다음 단계 37017.4 연습 371요약 371CHAPTER 18 캡스톤 프로젝트: 가정의 전력 소비량 예측하기 37218.1 캡스톤 프로젝트 이해하기 373__18.1.1 캡스톤 프로젝트의 목표 37518.2 데이터 랭글링 및 전처리하기 376__18.2.1 누락된 데이터 처리하기 377 / 18.2.2 데이터 변환 379 / 18.2.3 데이터 리샘플링하기 37918.3 특징 엔지니어링 382__18.3.1 불필요한 열 제거하기 383 / 18.3.2 계절적 기간 식별하기 383 / 18.3.3 데이터를 분할하고 규모 조정하기 38618.4 딥러닝으로 모델링할 준비하기 387__18.4.1 초기 설정 387 / 18.4.2 DataWindow 클래스 정의하기 389 / 18.4.3 모델 훈련을 위한 유틸리티 함수 39118.5 딥러닝으로 모델링하기 392__18.5.1 베이스라인 모델 392 / 18.5.2 선형 모델 396 / 18.5.3 심층 신경망 397 / 18.5.4 장단기 메모리 모델 398 / 18.5.5 합성곱 신경망 399 / 18.5.6 CNN과 LSTM 결합하기 401 / 18.5.7 자기회귀 LSTM 모델 402 / 18.5.8 최적의 모델 선택하기 40418.6 다음 단계 406PART 4 대규모 예측 자동화하기CHAPTER 19 Prophet으로 시계열 예측 자동화하기 40919.1 자동화된 예측 라이브러리들에 대한 개관 41019.2 Prophet 살펴보기 41219.3 Prophet을 사용하여 기본적 예측해보기 41419.4 Prophet의 고급 기능 살펴보기 420__19.4.1 시각화 기능 421 / 19.4.2 교차 검증과 성능 지표 425 / 19.4.3 하이퍼파라미터 튜닝 42919.5 Prophet으로 견고한 예측 절차 구현하기 432__19.5.1 예측 프로젝트: 구글에서 ‘chocolate’ 검색의 인기도 예측하기 434 / 19.5.2 실험: SARIMA가 더 나을 수도 있을까? 44219.6 다음 단계 44619.7 연습 447__19.7.1 항공 승객 수 예측하기 447 / 19.7.2 항당뇨제 처방 건수 예측하기 447 / 19.7.3 구글 트렌드에서 키워드의 인기도 예측하기 447요약 448CHAPTER 20 캡스톤 프로젝트: 캐나다의 스테이크 월평균 소매 가격 예측하기 44920.1 캡스톤 프로젝트의 이해 450__20.1.1 캡스톤 프로젝트의 목표 45020.2 데이터 전처리와 시각화 45120.3 Prophet을 사용한 모델링 45320.4 선택사항: SARIMA 모델 개발하기 45920.5 다음 단계 464CHAPTER 21 한 단계 더 나아가기 46621.1 배운 내용 요약하기 467__21.1.1 예측을 위한 통계적 방법 467 / 21.1.2 예측을 위한 딥러닝 방법 468 / 21.1.3 예측 절차 자동화 46921.2 예측이 실패하면 무엇을 해야 할까? 47021.3 시계열 데이터의 다른 응용 분야 47221.4 계속 연습하기 473APPENDIX A 설치 지침 475찾아보기 479