Home

[파이썬 팁] Plot들 여러개를 움직이는 GIF로 저장하기

몇 줄 안되는 코드로 간단하게 GIF 움직이는 plot 저장하기 필요한 것들 ffmpeg는 homebrew로 따로 설치를 해준다. 아무것도 모르고 pip 패키징으로 설치했다가 안돌아가서 헤맸다… matplotlib celluliod (pip install) ffmpeg (homebrew) ffmpy (pip install) 패키징 업로드 from matplotlib import pyplot as plt from celluloid import Camera import numpy as np 간단한 다항함수 (1차식부터 10차식까지)를 차수에 따라 달라지도록 설정한다. celluliod Came...

Read more

[베이지안 with Python] PyMC3를 활용해 실제 추론해보기

PyMC3를 활용한 샘플링 동전 던지기 예시 prior(사전분포), likelihood(가능도), posterior(사후분포)가 어떤 관계를 갖는지 실제 파이썬 코드로 구현해보며 확인해보자. 파이썬에서 사용할 수 있는 베이즈 최적화 모듈은 PyMC가 있다. 파이썬 3에 최적화된 PyMC3를 사용한다. PyMC2와는 어느정도 차이가 있으므로, 주의하며 사용하자. 동전 던지기 (coin flipping) 예시는 결과가 0아니면 1만 나오는 Binomial 사건이므로, prior로 beta prior를 택했다. PyMC3 모듈을 사용해, 사후분포와 가능도가 변할 때 어떻게 사후분포가 변하는 지 확인할 수 있다. 아래...

Read more

[확률기초] Poisson Distribution

푸아송 분포의 확률질량함수 $\ $ 기초적인 확률분포 중 하나인 푸아송 분포의 확률질량함수를 유도해보자. 푸아송분포의 정의만 잘 숙지하면 생각보다 간단하게 이항분포 확률질량함수로부터 식을 유도할 수 있다. 푸아송분포는, 특정 시간 $t$ 내에 사건이 몇 번 일어날 지에 대한 확률분포이다. 이항분포에서 시행 수 $n$이 무한하게 크고, 각 시행에서 사건이 일어날 확률 $p$가 충분히 작다면, 기댓값 $\lambda$는 단순히 $n$ 과 $p$의 곱일 것이다. $$\lambda = np$$ $$n = total\ trials, $$ $$p = times\ the\ chance\ of\ success\ for...

Read more

[머신러닝] Clustering Algorithms

Mean-Shift Clustering $\ $ 다른 클러스터링 알고리즘들에 비해 간단하고, 많은 장점이 있는 Mean-Shift Clustering에 대해 알아보자. 이 알고리즘은 kernel density estimation(KDE)의 개념에 입각한 알고리즘인데, KDE는 데이터 셋의 기저에 놓여있는 분포에 대하여 추정하는 것이다. 위와 같은 데이터 분포가 있다고 할때, 확률 분포 surface에 대하여 가우시안 커널을 활용하여 표현해보자. 가우시안 커널을 bandwidth = 2로 적용하여 얻은 KDE 표면은 위와 같다. 각각 surface plot, contour plot을 보여준다. Mean Shi...

Read more

[베이지안 추론] Bernoulli Likelihood with hierarchical Prior

Chapter 9. Bernoulli Likelihood with hierarchical Prior $\ $이전 챕터에서는, 파라미터들이 서로 독립적이라는 가정하에 샘플링을 진행했지만, 이번 챕터에서는 두개 또는 그 이상의 파라미터들이 서로 의존적 관계일 때를 살펴본다. 예를 들어, 우리는 동전이 주조되는 공장에 따라 동전의 bias가 달라진다고 가정해보자. 우리는 주조 과정이 갖는 파라미터 값에 대한 사전 믿음을 갖고 있고, 주조를 진행하는 파라미터들에도 동전의 bias가 의존한다는 사전 믿음을 갖고있다. 그리고 우리는 동전을 몇번 던진 후에 얼마나 heads가 나오는 지를 관측한다. 데이터들은 우리의 동전의 b...

Read more

[Machine Learning] MLE vs MAP

MLE vs MAP $ $ 베이즈 통계학을 공부하면서 항상 궁금증이 명확히 풀리지 않았던 부분을 오늘은 짚고 넘어가자. 일반 통계학에서 다뤘던 MLE 접근과 MAP 사이의 비교를 하며 두 개념을 정리하자. MLE(Maximum Likelihood Estimation) vs MAP(Maximum A Posterior) 1. Maximum Likelihood Estimation $\ $최대우도추정법으로 번역되는 MLE 접근법에 대해 다시 정리해보자.아직 우리가 정확히 모르는 파라미터 ($\theta$로 표현)를 활용해 표현되는 확률 분포에서,우리가 관측한 데이터 셋 $D$가 출현하게 될 확률을 \(p(D|\thet...

Read more

[베이지안 추론] Gibbs Sampling(1)

Inferring Two Binomial proportions via Gibbs sampling $\ $이번 챕터는 두 개의 독립적인 이항 비율들에 대한 추론을 어떻게 하는 지에 대해 다룬다. 예를 들어, 우리가 두개의 동전을 갖고 있고 얼마나 그들의 편향도(biases)들이 다른지에 대해 결정하길 원한다고 가정해보자. 이 문제는 각각의 비율에 대한 것이 아니라, 두개의 비율 사이의 관계에 관한 문제이다. $\ $이 문제에 대해 이번 챕터 순서에서 다루는 이유는, 첫째로, 이 주제는 비율에 관한 추론을 다루고 있고, 이전 챕터들에서 다룬 single proportions에 대한 추론의 연장선이기 때문이다. 두번째...

Read more

[베이지안 추론] Binomial Proportion via Grid Approximation

$\ $이전 챕터에서는 사전 분포가 베타 분포로 특정될 수 있을 때 어떻게 이항 비율에 대한 추론을 하는 지에 대하여 살펴 보았다. 직접적인 형식적 분석을 통해 쉽게 적분 계산을 해낼 수 있다는 점에서 베타 분포를 사용하는 것은 매우 편리하다. 하지만 만약에 베타 분포가 우리의 사전 믿음을 적절히 표현할 수 없다면 어떨까? 예를 들어, 우리의 믿음이 tri-modal이라고 상상해보자 : 우리의 동전이 tail로 매우 편향 돼있을 수도 있고, 거의 fair할 수도 있고, head쪽으로 매우 편향 돼있을 수도 있다. 어떠한 베타 분포도 이러한 세 개의 혹을 제대로 표현할 수 없다. $\ $이 챕터에서, 촘촘한 grid...

Read more