나는 Bayia 추론을 위해 Julia에서 Mamba 패키지를 사용하는 법을 배우려하고있다. 패키지는 훌륭하지만 초보자로서 문서에 약간의 정보가 부족합니다. 그래서 나는 아주 간단한 예제를 구현하는 방법을 알아 내려고 노력하고있다.Julia에서 Mamba 패키지를 사용하는 법 배우기
내가
을 시도 내가는 단 변량 정규 분포의 평균에 대한 베이지안 추론을 수행하기위한 예를 구현했습니다. 코드는 다음과 같습니다
using Mamba
## Model Specification
model = Model(
x = Stochastic(1,
mu -> Normal(mu, 2.0),
false
),
mu = Stochastic(
() -> Normal(0.0, 1000.0),
true
)
)
## Data
data = Dict{Symbol, Any}(
:x => randn(30)*2+13
)
## Initial Values
inits = [
Dict{Symbol, Any}(
:x => data[:x],
:mu => randn()*1
)
]
## Sampling Scheme Assignment
scheme1 = NUTS([:mu])
setsamplers!(model, [scheme1])
sim1 = mcmc(model, data, inits, 10000, burnin=250, thin=2, chains=1);
describe(sim1)
이 절대적으로 잘 작동하는 것 같다 (아마도이 코딩의 더 나은 방법이있을 수 있지만?).
나는 무엇을하려하고 작동하지 않습니다.
이 예에서는 이변 량 정규 분포의 평균에 대한 베이지안 추론을 시도하고 있습니다. 코드는 다음과 같습니다.
using Mamba
## Model Specification
model = Model(
x = Stochastic(1,
mu -> MvNormal(mu, eye(2)),
false
),
mu = Stochastic(1,
() -> MvNormal(zeros(2), 1000.0),
true
)
)
## Data
data = Dict{Symbol, Any}(
:x => randn(2,30)+13
)
## Initial Values
inits = [
Dict{Symbol, Any}(
:x => data[:x],
:mu => randn(2)*1
)
]
## Sampling Scheme Assignment
scheme1 = NUTS([:mu])
setsamplers!(model, [scheme1])
sim1 = mcmc(model, data, inits, 10000, burnin=250, thin=2, chains=1);
describe(sim1)
내가 알기로는 변경이 필요하지 않습니다. 그러나, 나는 어딘가에 뭔가 잘못하고 있는데 이걸 실행하려고하면 더 이상 도움이되지 않는 오류 (형식 오류 사이의 변환)가 발생합니다.
도움을 주시면 감사하겠습니다. 이것이 작동한다면,이 간단한 예제를 다른 새로운 사용자를위한 Mamba 문서에 제공하는 것을 고려할 것입니다. 감사.
부록 :
ERROR: MethodError: Cannot `convert` an object of type Array{Float64,2} to an object of type Array{Float64,1}
This may have arisen from a call to the constructor Array{Float64,1}(...),
since type constructors fall back to convert methods.
in setinits!(::Mamba.ArrayStochastic{1}, ::Mamba.Model, ::Array{Float64,2}) at /lhome/lgiannins/.julia/v0.5/Mamba/src/model/dependent.jl:164
in setinits!(::Mamba.Model, ::Dict{Symbol,Any}) at /lhome/lgiannins/.julia/v0.5/Mamba/src/model/initialization.jl:11
in setinits!(::Mamba.Model, ::Array{Dict{Symbol,Any},1}) at /lhome/lgiannins/.julia/v0.5/Mamba/src/model/initialization.jl:24
in #mcmc#29(::Int64, ::Int64, ::Int64, ::Bool, ::Function, ::Mamba.Model, ::Dict{Symbol,Any}, ::Array{Dict{Symbol,Any},1}, ::Int64) at /lhome/lgiannins/.julia/v0.5/Mamba/src/model/mcmc.jl:29
in (::Mamba.#kw##mcmc)(::Array{Any,1}, ::Mamba.#mcmc, ::Mamba.Model, ::Dict{Symbol,Any}, ::Array{Dict{Symbol,Any},1}, ::Int64) at ./<missing>:0
뭔가를 시도 할 수 있습니다 (MU 나는)입니다 무슨 일이 일어나고 있는지 찾을 수 있도록 도와주세요. –
좋은 지적. 위의 업데이트 된 게시물. – user1438310
주어진 추적 목록에서 항목 중 하나에 잘못된 측정 기준이 있다고 추측 할 수 있습니까? –