Causal Inference and Discovery in Python - Intro
우선 소개에 앞서 이 책은 Causal Inference and Discovery in Python이라는 책이다. Causal Inference는 Judea Pearl 교수님의 Elements of Causal Inference라는 책이 있지만, 나는 이 책으로 Causal Inference가 뭔지 시작해보려 한다.
What this book is for
이 책이 나왔을 떄 주요 독자 타겟은 머신러닝 엔지니어 (Machine Learning Engineer), 데이터 과학자 (Data Science) 및 데이터 과학 툴킷을 확장하고 인과 관계 머신 러닝 (Causal Inference Machine Learning)이라는 새로운 미지의 영역을 탐구하고자하는 사람들을 위해 썼다고 한다.
이 책에서 설명하는 것은 인과 관계에 익숙한 다른 기술인 R 같은 언어로 작업을 하다가 python으로 전환을 하려고 하는 사람, 전통적인 인과 관계로 작업하다가 지식을 확장하고 인과 관계 머신 러닝의 잠새력을 활용하려는 사람들도 도움을 받을 수 있다고 한다.
그런데 왜 이 책에서는 인과 관계에서 R을 언급했을까?
$\Rightarrow$ 이 질문에 대한 정답은 Causal Inference가 통계와 밀접한 관련이 있기 때문이다. 통계를 하는 사람들은 보통 시작을 R을 이용해서 한다고 안다. 그래서 그런듯 싶다.
What this book covers
Chapter 01 - 인과관계의 중요성: 기계학습에서 왜 인과관계에 주목해야 하는지, 그리고 가짜 (spuriousness) 현상의 문제점을 탐구한다.
Chapter 02 - Judea Pearl의 Ladder of Causation: 관찰 (observational), 개입 (interventional), 반대사실적 (counterfactual) 질문의 차이점을 설명하고 실습 코드를 제공한다.
Chapter 03 - 선형 회귀와 인과적 렌즈: 회귀 (Regression), 관찰 (Observation), 개입 (Intervention)을 인과적 관점에서 접근하고 구조적 인과 모델(Structure Causal Model, SCM)을 소개한다.
Chapter 04 - 그래픽 모델: 기본 그래프 이론을 복습하고 Directed Acyclic Graph (Directed Asyclic Graph, DAG)를 정의한다.
Chapter 05 - 그래픽 구조의 중요성: Forks, Chains, Colliders에 초점을 맞춰 데이터의 통계적 속성과의 연관성을 설명한다.
Chapter 06 - Nodes, Edges, Statistical (In)Dependence: DAG에서의 조건부 독립성을 평가하는 d-separation 개념을 도입한다.
Chapter 07 - 인과 추론의 실제 적용: Microsoft의 DoWhy 라이브러리를 사용하여 인과 추론 과정을 수행하는 방법을 설명한다.
Chapter 08 - 인과 모델의 Assumptions and Challenges: 인과 관계 프로젝트의 핵심 가정을 탐구한다.
Chapter 09 - 기계학습과 인과 추론: Matching과 성향 점수, 그리고 meta-learners를 사용한 Conditional Average Treatment Effects (CATE) 추정 방법을 소개한다.
Chapter 10 - Advanced Estimators and Experiments: DR-Learner, Double Machine Learning (DML) 등 고급 추정기에 대해 설명한다.
Chapter 11 - 딥러닝, NLP와 인과추론: 딥러닝 모델을 사용한 CATE추정과 텍스트 데이터에서의 인과 관계를 탐구한다.
Chapter 12 - 인과 그래프의 발견: 자동화된 인과 관계 발견의 개념을 소개한다.
Chapter 13 - 인과 발견의 가정과 적용: 인기 있는 인과 발견 알고리즘에 필요한 가정을 검토한다.
Chapter 14 - 고급 인과 발견과 딥러닝: DECI 알고리즘과 Causica 라이브러리를 소개한다.
Chapter 15 - Epilogue: 지금까지의 학습 내용을 요약하고, 비즈니스에서의 인과관계의 중요성과 미래를 탐구합니다.
To get the most out of this book
이 책의 코드는 Jupyter notebook의 형태로 제공이 되고 이러한 예제들을 돌리기 위해서 우리는 필요한 패키지를 설치해야한다.
Anaconda 가상환경이 있는 사람들은 만들어서 사용하면 될 것이고, python만 쓰는 사람은 venv를 만들어서 생성하면 된다. 나는 Anaconda를 사용하고 있으니 아나콘다 위주로 작성하도록 하겠다.
| Chapter | Software required | OS required |
|---|---|---|
| 1-15 | Python 3.9.0 | Windows, macOS, or Linux |
| 1-15 | DoWhy 0.8 | Windows, macOS, or Linux |
| 1-15 | EconML 0.12.0 | Windows, macOS, or Linux |
| 1-15 | CATENets 0.2.3 | Windows, macOS, or Linux |
| 1-15 | gCastle 1.0.3 | Windows, macOS, or Linux |
| 1-15 | Causica 0.2.0 | Windows, macOS, or Linux |
| 1-15 | Causal-learn 0.1.3.3 | Windows, macOS, or Linux |
| 1-15 | Transformer 4.24.0 | Windows, macOS, or Linux |
Related Products
저자가 추천하는 관련된 책들이 있는데 살펴보자.