Page 20 -
P. 20

결과
                           [36 22 28 23 25 18 30 27 34 26 33 31 26 26 32 26 23 32                         2
                            33 33 27 26 35 20 32 44 23 30 26  9 11  9  6  8  7  1
                             8  5  6  5  9  5  7  6  5 11  5  5 10  9  4  5  7  5
                             9  8 10  5  7  9  5  6  3  8  7  4  6  7  7  4  5  3                         PyMC 더 알아보기
                             5  6  8 10  5  6  8  5]


                        5.  가상의 데이터셋을 그린다.


                           plt.bar(np.arange(80), data, color=”#348ABD”)
                           plt.bar(tau - 1, data[tau - 1], color=”r”, label=”사용자의 행동 변화")
                           plt.xlabel(“시간(일수)”)
                           plt.ylabel(“수신한 문자 메시지")
                           plt.title(“모델 시뮬레이션을 위한 인위적인 데이터셋”)
                           plt.xlim(0, 80)
                           plt.legend();


                           그림 2-3 모델 시뮬레이션을 위한 인위적인 데이터셋
                          40
                          35                                                    ࢎਊ੗੄ ೯ز ߸ച
                          30
                          ࣻनೠ ޙ੗ ݫद૑  25
                          20
                          15
                          10
                           5
                           0
                            0       10     20      30      40     50      60      70      80
                                                         दр  ੌࣻ

                        그림 2-3의 가상 데이터셋이 우리가 관측한 데이터셋처럼 보이지 않아도 괜찮다. 그 확률은 상당
                        히 낮다. PyMC의 엔진은 이러한 확률을 극대화하는 좋은 모수(λ, τ)를 찾도록 설계되었다.
                                                                         i
                        가상의 데이터셋을 만드는 능력은 우리 모델링의 흥미로운 부수적인 효과이며, 이 능력이 베이지
                        안 추론의 매우 중요한 방법임을 알 수 있다. 예를 들어 우리는 그림 2-4와 같이 몇몇 데이터셋을

                        추가로 만들 것이다.

                        def plot_artificial_sms_dataset():
                            tau = pm.rdiscrete_uniform(0, 80)
                            alpha = 1./20.
                            lambda_1, lambda_2 = pm.rexponential(alpha, 2)
                            data = np.r_[pm.rpoisson(lambda_1, tau), pm.rpoisson(lambda_2, 80 - tau)]


                                                                                                      059




         베이지안_11.indd   59                                                                      2017-11-17   오전 11:07:25
   15   16   17   18   19   20   21