더북(TheBook)

2.2.9 더 많은 PyMC 기법들

 

프로 팁: Lambda 클래스를 가진 더 가벼운 deterministic 변수들

때로는 유달리 작은 함수에 대해 @pm.deterministic 데코레이터를 사용하여 deterministic 함수를 작성하는 것이 허드렛일처럼 보일 수 있다. 나는 이미 기본적인 수학 연산이 deterministic 변수를 암묵적으로 만들 수 있다고 언급했다. 하지만 인덱싱이나 슬라이싱 같은 연산은 어떤가? 내장된 Lambda 함수는 이것을 군더더기 없이 간결하고 단순하게 다룰 수 있다. 예를 들면 다음과 같다.

 


beta = pm.Normal(“coefficients”, 0, size=(N, 1))
x = np.random.randn((N, 1))
linear_combination = pm.Lambda(lambda x=x, beta=beta: np.dot(x.T, beta))

 

프로 팁: PyMC 배열 변수

NumPy 배열에 다양한 종류의 PyMC 변수를 저장하지 못할 이유는 없다. NumPy 배열을 초기화할 때 배열의 dtypeobject로 설정하면 된다. 예를 들면 다음과 같다.

 


N = 10
x = np.empty(N, dtype=object)
for i in range(0, N):
    x[i] = pm.Exponential(‘x_%i % i, (i + 1) ** 2)

 

2장의 나머지 부분에서는 실용적인 PyMC 예제와 PyMC 모델링을 몇 가지 살펴볼 것이다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.