프로그래머를 위한 베이지안 with 파이썬

프로그래머를 위한 베이지안 with 파이썬

캐머런 데이비슨 필론 저/곽승주

베이지안 방법과 확률 프로그래밍, 이 모든 것을 파이썬으로!

수학 없이 파이썬 코드로 이해한다.
수식을 설명하지 않는다. 컴퓨터를 이용한 이해가 최우선이다. 베이지안에서 사용하는 MCMC 모델, 손실함수, A/B 테스팅 등을 파이썬 코드로 구현해보면서 내용을 이해하고 활용 방법을 익힌다. 결과적으로 베이지안 추론이 무엇이고, 다른 통계적 추론과 어떤 차이가 있는지 이해한다.

계산 문제 대신 실생활 문제를 풀어본다.
실생활 문제를 사용하여 베이지안 수학과 확률 프로그래밍을 연결시킨다...

평점 및 추천대상

★★★★☆
뒤에서 후술할 아쉬운 점 때문에 별 4개를 줬다. 기존의 베이지안 통계학 관련 도서들이 이론적인 내용에 조금 더 초점을 둔다면, 이 책은 Jupyter Notebook을 활용해서 베이지안 통계를 실제 예제를 가지고 어떻게 적용할 수 있을지에 관해서 설명하고 있다. 특히 1~2장에서 책에 있는 예제가 아니더라도 우리가 풀고자 하는 도메인의 문제에도 적용할 수 있는 일종의 베이지안 통계 프로세스 Template을 설명하는 점은 마음에 들었다. 책 제목만 본다면 출판사의 타겟 독자가 수학적 이론이 부족한 프로그래머로 느껴질 수 있으나, 책을 읽어본 후 느낀 점은 어느 정도 통계학 지식(베이즈 이론, 확률 분포 등)이 있는 프로그래머가 실제로 애플리케이션을 작성할 때 어떻게 베이지안 통계를 활용할지 도움을 줄 수 있는 책이라고 생각한다. 따라서 통계 기초가 없는 사람이 이 책을 바로 보게 되면 애로사항이 있을 수 있다.

장점과 아쉬운 점

  • 역자가 원서를 잘 이해하고 번역했다는 느낌을 받았다. 대부분 문장이 매끄럽게 번역되었으며, 번역 품질이 높기 때문에 굳이 원서를 볼 필요가 없는 점은 큰 장점이라고 생각된다.
  • Kaggle의 공개 데이터를 이용한 예제를 수록함으로써, Kaggle이라는 데이터 경진대회에 관해서 관심을 가질 수 있는 점 역시 기존 통계 서적과는 다른 점이다. 그 외 Reddit 데이터를 이용한 재밌는 예제도 수록되어있다.
  • 1장과 2장에서 나오는 몇 가지 분포들 (푸아송 분포, 지수 분포 등)에 대해서 책에서는 그냥 이런 상황에서는 이런 분포가 좋겠죠? 라고 넘어가고 있는데, 통계에 익숙하지 않은 사람들이라면 이런 설명이 쉽게 와닿지 않을 수 있다. 특히, 수학이나 통계에서는 그러려니 하고 넘어가는 것은 굉장히 위험하기 때문에 책이 조금 두꺼워지더라도 역자의 추가적인 주석이 있었으면 어땠을까 하는 아쉬움이 있다.
  • 앞서 말한 기본적인 통계 내용이 익숙하다면, 책에서 설명하는 MCMC나 여러 베이지안 통계 이론은 굉장히 명료하게 서술되어 있다. 개인적으로 이 책에서 가장 잘 설명 좋았던 장은 3장. MCMC 블랙박스 열기와 6장. 우선순위 바로잡기였다.
  • 원서의 저자가 제공한 Jupyter Notebook이 아닌 길벗 출판사 자체에서 한국어로 바꾼 Jupyter Notebook 저장소가 제공된다. 사소하지만 영어 읽기에 다소 어려움이 있는 독자를 위해서 소스 코드 역시 한국어로 번역된 것을 제공하는 점은 큰 장점이다. 다만, 아쉬운 점은 일반 컴퓨터 사용자보다 개발자들은 Mac OS X나 Linux를 사용하는 빈도가 꽤 높은데, 그 경우 Notebook을 받아서 실행시켜보면 한글 처리에서 문제가 생긴다. 사소하지만 이런 부분은 전처리 코드를 추가해줬으면 더 좋지 않았을까 한다.

총평

확실히 기존의 통계 관련 서적보다 프로그래머 관점에서, 그리고 프로그래머에게 익숙한 방식으로 통계를 설명하고 있는 책이다. 공개 데이터 셋 (Kaggle, Reddit)을 활용한 예제들 역시 굉장히 참신하고 흥미로웠으며, 베이지안 통계 관련 이론 역시 잘 설명하고 있다. 다만 통계에 아주 문외한인 사람이 보기에는 책의 초반부터 힘들 수 있으니 기초적인 통계에 익숙한 프로그래머가 베이지안 통계를 적용하려고 할 때 입문하기에는 아주 좋은 책이라고 생각한다.