Life/Books

[서평] 파이썬 시계열 예측 분석(마르쿠 페이세이루 저 / 제이펍)

Woomii 2024. 8. 25. 10:08
728x90
반응형

 

 

도서 정보

기본 정보

제뮥 파이썬 시계열 예측 분석
저자 마르쿠 페이셰이루 저/동동구 역
출판사 제이펍
쪽수/판형 508쪽 | 1,004g | 188*245*25mm
독서기간 2024 년 7월
매체 단행본 / 전자책(yes24 북클럽)

 

표지 이미지(좌) / 실물 도서 (우)

 

 

저자 소개

마르쿠 페이셰이루 (Marco Peixeiro) (지은이) 

캐나다 대형 은행의 선임 데이터 과학자다. 데이터 과학을 독학했고, 금융 업계에 취업하고 일하기 위해 알아야 할 것들에 대해 다양하게 공부했다. 실습에 기반한 학습법을 추구하며, 미디엄 블로그, 온라인 강좌 등으로 지식을 전파하고 있다.

 

동동구 (옮긴이) 

현재 전략 기획 업무를 수행하고 있다. 이전에는 B2C 및 B2B 웹 애플리케이션, Brew/WIPI/SKVM 등의 피처폰 애플리케이션, iOS/안드로이드/윈도우폰/타이젠 애플리케이션 등의 설계 및 개발, 엔지니어 관리 업무를 수행했다. 최근에는 국내 개발자들을 위해 IT 서적을 번역하고 있으며, 옮긴 책으로는 《MLOps 도입 가이드》, 《파이썬 비동기 라이브러리 Asyncio》(이상 한빛미디어)가 있다.

 

시계열 데이터 분석의 모든 것. with Python

 

 

 

감상

* 시계열 데이터 분석의 전반적인 내용을 다루고 있어 시계열 데이터 분석에 대한 개념을 익히기에 적합합니다.

* 특히, 아무 것도 모르는 제로 베이스에서 시작하시더라도 정말 단순한 베이스라인 모델 예측에서부터 통계 모델(이동평균, 자기회귀, ARIMA, SARIMAX 등) 기반, LSTM, CNN과 같은 딥러닝 기반 예측, 마지막으로는 prophet과 같은 자동화된 예측 라이브러리를 이용한 예측까지 다루고 있어 내용이 깊이 있습니다.

* 기존의 도서들은 파이썬 보다는 R이나 다른 언어들을 다루고 있는 경우가 많았는데 본 서의 경우 파이썬 기반으로 쓰여 있어 파이썬을 이용하는 분들이 이해하기 쉽습니다.

 

 

[Point 1] 시계열 데이터 분석의 모든 것! 한번에 알려주기 보다는 층층이 쌓여나가는 우리의 지식!

제가 이 책을 읽으면서 느낀점은 10여년 전 수업시간에 들어 본적 있었던 이동평균 모델이나 ARIMA (그 당시에는 ARIMA가 마지막 챕터였습니다만 ㅜㅜ) 모델에서 부터 시작하여 딥러닝 기반 방법론들까지 쭉 다루면서 시계열 데이터 분석 분야에 대한 깊이 있는 지식을 전달한다는 점이었습니다.

전체적인 흐름 또한, 특정 상황에서만 사용할 수 있는 모델(ex> 1차 차분이 정상적이고, 자기상관관계가 없는 프로세스 = 확률보행)에서부터 시작하여 한단계씩 층을 쌓아나가며 다양한 모델을 다루고 깊이 있게 설명하려는 저자와 이를 메끄럽게 번역하고자 하시는 역자분의 노력의 가득 느껴지는 책이었습니다.

시간의 제약으로 책의 전체적인 내용을 모두 살펴보지는 못하였지만, 앞부분에서 부터 시계열 데이터 분석을 위한 흐름을 순서도로 제시하여 실제 데이터 분석을 수행할 떄도 해당 내용을 참고하여 분석을 수행해 나간다면 누구든 기초가 탄탄한 분석을 수행할 수 있을 듯 합니다!

 

 

책의 초반에서 중반으로 갈수록 모델링 절차가 복잡해지는데, 단계별로 설명이 있으니 이해도가 늘어가서 좋았어요



 

[Point 2] 풍부한 도식과 배려 깊은 편집

이 책을 처음 받아 보았을 때 두꺼운 두꼐에 놀랐는데요. 내용을 살펴보다 보니 그 의문을 금방 해결할 수 있었습니다. 왜냐하면 친절한 설명도 설명이지만, 색상이 필요한 그래프에서는 QR코드가 제시되어 있고, 이를 스캔하면 오른쪽 그래프와 같이 원본 그래프를 확인할 수 있게 되어있었어요! 이를 통해서 지면의 부족함을 채워주는 편집이 너무 인상 깊었습니다 :)

 

 

[Point 3] 풍부한 예제 코드 제공

이 책은 풍성한 내용만큼이나 실행해 볼 수 있는 소스코드들도 다양한데요. 이 책에서 다루는 소스코드를 확인하고 싶으시다면 다음 깃헙 링크를 통해 확인할 수 있습니다! 책의 후반부에는 이론보다 실습을 통해 구현해 볼 수 있는 내용들이 많기 때문에 코드를 깃헙을 통해 확인해 볼 수 있는 점도 좋았어요!

https://github.com/jpub-dongdong9/TimeSeriesForecastingInPython

 

GitHub - jpub-dongdong9/TimeSeriesForecastingInPython: Jpub 출간, 한국어 번역서를 위한 소스 코드 저장소입니

Jpub 출간, 한국어 번역서를 위한 소스 코드 저장소입니다. Contribute to jpub-dongdong9/TimeSeriesForecastingInPython development by creating an account on GitHub.

github.com

 

 

총평

  • 추천 대상 : 시계열 데이터 분석의 기초부터 심화까지 살펴보고 싶은 모든 분들
  • 비추천 대상 : 데이터 분석의 기초나, 파이썬 활용이 아직은 어려우신 분들

 

목차

더보기

 

옮긴이 머리말 xiii
베타리더 후기 xiv
머리말 xvi
감사의 말 xviii
이 책에 대하여 xix
표지에 대하여 xxiii

PART I 시간은 그 누구도 기다려주지 않는다

CHAPTER 1 시계열 예측의 이해 3
1.1 시계열 소개 4
__1.1.1 시계열의 구성요소 5
1.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 새로운 데이터 수집하기 12
1.3 시계열 예측이 다른 회귀 작업들과 다른 점 13
__1.3.1 시계열에는 순서가 있다 13 / 1.3.2 시계열에 특징이 없는 경우가 있다 14
1.4 다음 단계 14
요약 15

CHAPTER 2 단순하게 미래 예측하기 16

2.1 베이스라인 모델 정의하기 18
2.2 과거 평균으로 예측하기 19
__2.2.1 베이스라인 구현을 위한 설정 20 / 2.2.2 과거 평균 기반 베이스라인 모델 구현하기 22
2.3 작년의 평균으로 예측하기 27
2.4 마지막으로 측정된 값으로 예측하기 29
2.5 단순한 계절적 예측 구현하기 31
2.6 다음 단계 32
요약 33

CHAPTER 3 확률보행 따라가보기 35

3.1 확률보행 프로세스 37
__3.1.1 확률보행 프로세스 시뮬레이션하기 37
3.2 확률보행 식별하기 40
__3.2.1 정상성 42 / 3.2.2 정상성 테스트하기 44 / 3.2.3 자기상관함수 48 / 3.2.4 모든 것을 종합하기 48 / 3.2.5 GOOGL은 확률보행인가? 52
3.3 확률보행 예측하기 55
__3.3.1 긴 기간 예측하기 55 / 3.3.2 다음 시간 단계 예측하기 61
3.4 다음 단계 64
3.5 연습 65
__3.5.1 확률보행 시뮬레이션하기와 예측하기 65 / 3.5.2 GOOGL의 일일 종가 예측하기 66 / 3.5.3 직접 선택한 종목의 일일 종가 예측하기 66
요약 67

PART 2 통계적 모델을 사용하여 예측하기

CHAPTER 4 이동평균과정 모델링하기 71

4.1 이동평균과정 정의하기 73
__4.1.1 이동평균과정의 차수 식별하기 75
4.2 이동평균과정 예측하기 80
4.3 다음 단계 90
4.4 연습 91
__4.4.1 MA(2) 프로세스 시뮬레이션하고 예측 수행하기 92 / 4.4.2 MA(q) 프로세스 시뮬레이션하고 예측 수행하기 92
요약 93

CHAPTER 5 자기회귀과정 모델링하기 94

5.1 소매점의 주간 평균 유동인구 예측하기 95
5.2 자기회귀과정 정의하기 97
5.3 정상적 자기회귀과정의 차수 찾기 98
__5.3.1 편자기상관함수 104
5.4 자기회귀과정 예측하기 107
5.5 다음 단계 114
5.6 연습 114
__5.6.1 AR(2) 프로세스 시뮬레이션하고 예측 수행하기 114 / 5.6.2 AR(p) 프로세스 시뮬레이션하고 예측 수행하기 115
요약 115

CHAPTER 6 복잡한 시계열 모델링하기 116

6.1 데이터 센터의 대역폭 사용량 예측하기 117
6.2 자기회귀이동평균과정 살펴보기 120
6.3 정상적 ARMA 프로세스 식별하기 122
6.4 일반적 모델링 절차 고안하기 128
__6.4.1 아카이케 정보 기준 이해하기 130 / 6.4.2 AIC를 사용하여 모델 선택하기 132 / 6.4.3 잔차 분석 이해하기 134 / 6.4.4 잔차 분석 수행하기 139
6.5 일반적 모델링 절차 적용하기 143
6.6 대역폭 사용량 예측하기 152
6.7 다음 단계 157
6.8 연습 157
__6.8.1 시뮬레이션된 ARMA(1,1) 프로세스에 대한 예측 수행하기 158 / 6.8.2 ARMA(2,2) 프로세스 시뮬레이션하고 예측 수행하기 158
요약 159

CHAPTER 7 비정상적 시계열 예측하기 161

7.1 자기회귀누적이동평균 모델 정의하기 164
7.2 비정상적 시계열에 적용하기 위해 일반적 모델링 절차 수정하기 165
7.3 비정상적 시계열 예측하기 167
7.4 다음 단계 177
7.5 연습 177
__7.5.1 4장, 5장, 6장의 데이터 집합에 ARIMA(p,d,q) 모델 적용하기 177
요약 178

CHAPTER 8 계절성 고려하기 179

8.1 SARIMA(p,d,q)(P,D,Q)m 모델 살펴보기 180
8.2 시계열에서 계절별 패턴 식별하기 183
8.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 각 예측 방법의 성능 비교하기 200
8.4 다음 단계 203
8.5 연습 203
__8.5.1 존슨앤드존슨 데이터 집합에 SARIMA(p,d,q)(P,D,Q)m 모델 적용하기 203
요약 204

CHAPTER 9 모델에 외생 변수 추가하기 205

9.1 SARIMAX 모델 살펴보기 207
__9.1.1 미국 거시경제 데이터 집합의 외생 변수 탐색하기 208 / 9.1.2 SARIMAX 사용 시 유의사항 211
9.2 SARIMAX 모델을 사용하여 실질 GDP 예측하기 212
9.3 다음 단계 221
9.4 연습 222
__9.4.1 SARIMAX 모델에 모든 외생 변수를 사용하여 실질 GDP 예측하기 222
요약 222

CHAPTER 10 다중 시계열 예측하기 223

10.1 VAR 모델 살펴보기 225
10.2 VAR(p) 모델에 대한 모델링 절차 설계하기 227
__10.2.1 그레인저 인과관계 테스트 살펴보기 229
10.3 실질 가처분 소득과 실질 소비 예측하기 230
10.4 다음 단계 242
10.5 연습 243
__10.5.1 VARMA 모델을 사용하여 realdpi와 realcons 예측하기 243 /10.5.2 VARMAX 모델을 사용하여 realdpi와 realcons 예측하기 244
요약 244

CHAPTER 11 캡스톤 프로젝트: 호주의 항당뇨제 처방 건수 예측하기 245

11.1 필요한 라이브러리 임포트하고 데이터 로딩하기 247
11.2 수열과 그 구성요소 시각화하기 248
11.3 데이터로 모델링하기 250
__11.3.1 모델 선택 수행하기 253 / 11.3.2 잔차 분석 수행하기 254
11.4 예측을 수행하고, 모델 성능 평가하기 256
11.5 다음 단계 260

PART 3 딥러닝을 활용하여 대규모 예측하기

CHAPTER 12 시계열 예측을 위한 딥러닝 소개하기 263


12.1 시계열 예측에 딥러닝을 사용해야 하는 경우 264
12.2 다양한 유형의 딥러닝 모델 살펴보기 265
12.3 예측을 위한 딥러닝 적용 준비하기 268
__12.3.1 데이터 탐색 수행하기 268 / 12.3.2 특징 엔지니어링과 데이터 분할 272
12.4 다음 단계 277
12.5 연습 277
요약 278

CHAPTER 13 딥러닝을 위해 데이터 윈도잉하고 베이스라인 모델 만들기 279

13.1 데이터 윈도우 만들기 280
__13.1.1 시계열 예측을 위한 딥러닝 모델을 훈련하는 방법 살펴보기 280
__13.1.2 DataWindow 클래스 구현하기 284
13.2 베이스라인 모델 적용하기 292
__13.2.1 단일 단계 베이스라인 모델 292
__13.2.2 다중 단계 베이스라인 모델 295
__13.2.3 다중 출력 베이스라인 모델 299
13.3 다음 단계 303
13.4 연습 303
요약 304

CHAPTER 14 딥러닝 첫걸음 305

14.1 선형 모델 구현하기 306
__14.1.1 단일 단계 선형 모델 구현하기 307 / 14.1.2 다중 단계 선형 모델 구현하기 309 / 14.1.3 다중 출력 선형 모델 구현하기 311
14.2 심층 신경망 구현하기 312
__14.2.1 단일 단계 모델로 심층 신경망 구현하기 314 / 14.2.2 다중 단계 모델로 심층 신경망 구현하기 317 / 14.2.3 다중 출력 모델로서 심층 신경망 구현하기 319
14.3 다음 단계 320
14.4 연습 321
요약 322

CHAPTER 15 LSTM으로 과거 기억하기 323

15.1 순환 신경망 살펴보기 324
15.2 LSTM 아키텍처 살펴보기 326
__15.2.1 망각 게이트 327 / 15.2.2 입력 게이트 329 / 15.2.3 출력 게이트 330
15.3 LSTM 아키텍처 구현하기 332
__15.3.1 단일 단계 모델로서 LSTM 구현하기 332 / 15.3.2 다중 단계 모델로서 LSTM 구현하기 335 / 15.3.3 다중 출력 모델로서 LSTM 구현하기 338
15.4 다음 단계 341
15.5 연습 342
요약 343

CHAPTER 16 CNN으로 시계열 필터링하기 344

16.1 CNN 살펴보기 345
16.2 CNN 구현하기 349
__16.2.1 CNN을 단일 단계 모델로서 구현하기 350 / 16.2.2 CNN을 다중 단계 모델로서 구현하기 354 / 16.2.3 CNN을 다중 출력 모델로서 구현하기 356
16.3 다음 단계 359
16.4 연습 359
요약 361

CHAPTER 17 예측으로 더 많은 예측하기 362

17.1 ARLSTM 아키텍처 살펴보기 363
17.2 자기회귀 LSTM 모델 구축하기 364
17.3 다음 단계 370
17.4 연습 371
요약 371

CHAPTER 18 캡스톤 프로젝트: 가정의 전력 소비량 예측하기 372

18.1 캡스톤 프로젝트 이해하기 373
__18.1.1 캡스톤 프로젝트의 목표 375
18.2 데이터 랭글링 및 전처리하기 376
__18.2.1 누락된 데이터 처리하기 377 / 18.2.2 데이터 변환 379 / 18.2.3 데이터 리샘플링하기 379
18.3 특징 엔지니어링 382
__18.3.1 불필요한 열 제거하기 383 / 18.3.2 계절적 기간 식별하기 383 / 18.3.3 데이터를 분할하고 규모 조정하기 386
18.4 딥러닝으로 모델링할 준비하기 387
__18.4.1 초기 설정 387 / 18.4.2 DataWindow 클래스 정의하기 389 / 18.4.3 모델 훈련을 위한 유틸리티 함수 391
18.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 최적의 모델 선택하기 404
18.6 다음 단계 406

PART 4 대규모 예측 자동화하기

CHAPTER 19 Prophet으로 시계열 예측 자동화하기 409


19.1 자동화된 예측 라이브러리들에 대한 개관 410
19.2 Prophet 살펴보기 412
19.3 Prophet을 사용하여 기본적 예측해보기 414
19.4 Prophet의 고급 기능 살펴보기 420
__19.4.1 시각화 기능 421 / 19.4.2 교차 검증과 성능 지표 425 / 19.4.3 하이퍼파라미터 튜닝 429
19.5 Prophet으로 견고한 예측 절차 구현하기 432
__19.5.1 예측 프로젝트: 구글에서 ‘chocolate’ 검색의 인기도 예측하기 434 / 19.5.2 실험: SARIMA가 더 나을 수도 있을까? 442
19.6 다음 단계 446
19.7 연습 447
__19.7.1 항공 승객 수 예측하기 447 / 19.7.2 항당뇨제 처방 건수 예측하기 447 / 19.7.3 구글 트렌드에서 키워드의 인기도 예측하기 447
요약 448

CHAPTER 20 캡스톤 프로젝트: 캐나다의 스테이크 월평균 소매 가격 예측하기 449

20.1 캡스톤 프로젝트의 이해 450
__20.1.1 캡스톤 프로젝트의 목표 450
20.2 데이터 전처리와 시각화 451
20.3 Prophet을 사용한 모델링 453
20.4 선택사항: SARIMA 모델 개발하기 459
20.5 다음 단계 464

CHAPTER 21 한 단계 더 나아가기 466

21.1 배운 내용 요약하기 467
__21.1.1 예측을 위한 통계적 방법 467 / 21.1.2 예측을 위한 딥러닝 방법 468 / 21.1.3 예측 절차 자동화 469
21.2 예측이 실패하면 무엇을 해야 할까? 470
21.3 시계열 데이터의 다른 응용 분야 472
21.4 계속 연습하기 473

APPENDIX A 설치 지침 475

찾아보기 479

 

 

 

 

본 리뷰는 출판사(제이펍)로부터 서평단 체험에 선정되어 도서를 제공받아 작성된 리뷰입니다

 

 

 

반응형