티스토리 뷰

Hobby/Book

[Book] 파이썬을 활용한 베이지안 통계

생각많은 소심남 2022. 7. 24. 22:31

(해당 포스트에서 소개하고 있는 "파이썬을 활용한 베이지안 통계" 책은 한빛 미디어로부터 제공받았음을 알려드립니다.)

 

파이썬을 활용한 베이지안 통계(2판)

수학 기호 대신 파이썬 코드를, 연속형 확률 분포 대신 이산형 확률 분포를 사용해서 통계 문제를 푸는 방법을 알려준다. 수학 방법에서 빠져나와 코드로 기본 베이지안 개념을 명확하게 보면

hanbit.co.kr

오라일리에서 출판하는 책 중에 Think 시리즈라는게 있다. Olin college에서 교수를 하고 있는 Allen B. Downey가 쓴 책들의 모음인데, 이 책들의 시리즈를 보다보면 진짜 대단한게, 정말 다양한 분야를 대상으로 책을 쓴다. 파이썬이나 자바, 자료 구조와 관련된 책들도 있고, 통계와 시뮬레이션, DSP와 관련된 책도 쓴다. 물론 저자가 대학에서 쓸 부교재로 활용하기 위해 이렇게 넓은 범위의 주제를 다루는 것도 참 힘들텐데, 책 내용 자체가 복잡한 이론을 수식과 더불어 풀어쓰기 보다는 최대한 실제에서 나올법한 예시를 바탕으로 풀어쓴다. 그래서 아마 먼저 이론보다는 실제 코드를 돌려보고 이해하려는 코더나 개발자한테는 어쩌면 딱맞는 책을 쓰는 저자 중 한명이 아닐까 싶다. (참고로 공저이긴 하지만 Julia language에 대해서 쓴 Think 시리즈 중 한 권인 Think Julia도 번역된 상태이다. 그리고 과거의 잊혀진 기억일수도 있겠지만 통계 관련 서적인 Think Stats도 오래전에 번역이 되어 있긴 하다.)

 

줄리아를 생각하다

줄리아는 수치해석 및 계산과학용으로 개발되어 파이썬 상위호환 언어라 불릴 정도로 속도가 빠르고 문법도 우아한 언어다.

hanbit.co.kr

이번에 소개할 책은 그 통계 관련 서적인 Think Stats 에서 Bayesian과 관련된 심화 내용을 다룬 책인 Think Bayes이다.

파이썬을 활용한 베이지안 통계

통계에서 다루는 주제 중 제일 처음 다룬 내용 중 하나가 Bayes rule이라는 것이 있다. 간단하게 내가 알고 싶은 사건에 대한 사전 확률과 이와 관련된 사건에 대한 조건부 확률을 안다면, 해당 사건의 사후 확률, 즉 미래에 사건이 발생할 확률을 알 수 있다는 이론인데, 이 내용이 간단하면서도 확률 기반으로 미래를 예측할 수 있는 방법 중 하나로 인공지능 분야에서 중요한 부분을 차지하고 있는 이론 중 하나이다. (물론 이런 이론을 따르는 학자들과 순수 발생한 사건에 대해서만 인지하고 이를 체계화한 학자들간의 계파를 구분한 bayesian vs. frequetist 라는 것도 있다)

 이 Think Bayes 책에서는 바로 이 중 Bayeisan statistic에 대한 내용을 다루고 있다. 그래서 다뤄지는 내용들에는 거의 대부분 "확률"이라는 단어가 들어가고, 이 확률이라는 단어를 통해서 모든 내용을 설명한다. 이 확률을 가지고 다루는 내용 중에는 

  • 확률 분포에 대한 기본적인 지식
  • 실생활에서 많이 다뤄지는 포아송 과정에 대한 내용
  • 검정(test)
  • classification과 regression
  • 생존분석(survival analysis)
  • Markov Chain Monte Carlo (MCMC)
  • 근사 베이지안 계산 (Approximate Bayesian Computation - ABC)

등의 내용을 다루고 있다. 책의 제목이나 이렇게 다뤄지는 주제들만 보더라도 심오한 공식과 현란하게 증명하는 과정으로 표현되어 있을것 같지만, 사실 책을 읽어보면 공식이나 증명은 거의 없고, 대부분이 파이썬 코드로 되어 있고, 결과를 보여주는 그래프들이 포함되어 있다. 그래서 그런 수식에 대한 두려움을 가지고 있는 사람한테는 딱 적당한 책이라 할 수 있다. (나도 통계를 전공하지 않고 틈틈히 봐온 입장에서는 이렇게 예제를 통해서 배울 수 있다는 점이 참 크다.) 대신 책의 소개에도 언급되어 있지만, 책의 내용을 따라가기 위해서는 반드시 파이썬, 특히 NumPy와 Pandas를 쓸 줄 알고 있어야 한다는 전제가 들어가 있다. 

그래서 기본적으로 뭔가 실제 예제를 통해서 배우고자 하는 사람들한테는 이 책이 정말 마법과 같은 책일지도 모르겠지만, 어느 정도 통계 관련 지식에 대해서 전문성을 갖춘 사람이 보기에는 책이 이상해 보일 수 있다. 아마 읽으면서 조금 비중있게 다뤄져야 할 주제들도 조금은 간단하게 쓱 훑는 식으로 내용이 서술되어 있다고 느낄 것이다. 나같은 경우는 예전에 현업에서 잠깐 다뤘던 Survival Analysis 부분을 한번 살펴봤는데, 책의 내용이 "생존 분석에서는 Weibull analysis가 많이 쓰이는데 이 방법을 통해서 예제를 다뤄보겠다." 이런식으로 진행된다. 음... 

그렇기에 단순히 이 책만을 가지고 bayesian statistics를 배웠다기에는 조금 힘든 책일 수 있다. 개인적으로는 이 책과 더불어 기본 통계책 하나를 껴서 이론을 다룬 후에 예제를 통해서 복습하는 수단으로 활용하면 좋을것 같다는 생각을 좀 해본다. 물론 번역이 잘 못되었거나 저자가 책을 쓰는 스타일에 대해서 잘못되었다는 것을 말하는 것은 아니다. (내가 어떻게 책의 좋고 나쁜 정도를 논하랴..) 그냥 개인적인 생각일 뿐..


  • 이 Think 시리즈의 장점 중 하나는 대부분의 원서 pdf가 무료로 공개되어 있다는 점이다. 아마 저자가 개인 출판사 형태로 공개하는 식일텐데, 원서로라도 책의 느낌을 보고 싶은 사람이라면 한번 링크를 참고하면 좋을듯 하다.
 

Green Tea Press – Free books by Allen B. Downey

Welcome to Green Tea Press, publisher of Think Python, Think Bayes, and other books by Allen Downey. Read our Textbook Manifesto. Free Books! All of our books are available under free licenses that allow you to copy and distribute the text; you are also fr

greenteapress.com

  • 책의 장점 중 하나는 모든 코드들이 Jupyter notebook 형식으로 잘 정리되어 있다는 점이다. (링크)
 

Think Bayes 2 — Think Bayes

 

allendowney.github.io

  • 사실 개인적으로는 이전에 출간된 Think Julia 의 번역 제목이 "줄리아를 생각하다"로 번역된 것처럼 이번 것도 비슷한 제목으로 나왔으면 좋았겠다 하는 생각이 살짝 든다.
댓글