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 배열을 초기화할 때 배열의 dtype을 object로 설정하면 된다. 예를 들면 다음과 같다.
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 모델링을 몇 가지 살펴볼 것이다.