PyMC에서 @stserasit 변수를 @observed 변수로 전환하는 데 약간의 문제가 있습니다. 나는 아래와 같이 확률 변수를 설정했습니다 :PyMC @ 관측 된 데코레이터가 log-probability를 플로트 오류로 변환 할 수 없습니다.
def age_logp(age):
if age < 0 or age > 110:
return -np.inf
elif 0 <= age < 20:
prob = age_dist['0-20']
elif 20 <= age < 40:
prob = age_dist['20-40']
elif 40 <= age < 60:
prob = age_dist['40-60']
elif 60 <= age < 80:
prob = age_dist['60-80']
elif age >= 80:
prob = age_dist['80-inf']
return np.log(prob)
@pymc.stochastic
def age(value=0):
def logp(value):
return age_logp(value)
어떻게 이것을 관측 변수로 전환합니까?
@pymc.observed
def age(value=np.array([12, 43, 28, 39, 87, 26])):
return map(age_logp, value)
하지만 내가 age
는 관측 값의 배열을 취할 연장하려면 어떻게
TypeError: age: computed log-probability [-1.639897119918809, -1.3394107752210402, -1.0876723486297752, -1.0876723486297752, -3.1235656450638758, -1.0876723486297752] cannot be cast to float
를 얻을 : 나는 지금까지 시도했습니다?
이해가 안됩니다 ... 왜 추가 할 수 있습니까? – Delosari