在Distributions.jl中,我们可以指定混合模型的先验。但我们不能指定权重。例如,如果我想做这样的混合物:
pdf(Normal(2, 3), x)*w1.+pdf(Normal(5, 10), x)*w2我不能真正指定权重。由于原因,前科必须加到1名。因此,是否有一种方法可以在MixtureModel?中指定权重,比如:
MixtureModel(Normal[
Normal(2, 3),
Normal(5, 10)
], **weights=[w1, w2]**)谢谢
发布于 2022-02-14 06:59:54
这在关于混合模型构造器的Distributions.jl文档中进行了介绍--您需要prior参数。看见
https://juliastats.org/Distributions.jl/v0.14/mixture.html#Constructors-1
下面是他们的第一个例子。[0.2, 0.5, 0.3]是权重:
julia> using Distributions, Plots
julia> d = MixtureModel(Normal[
Normal(-2.0, 1.2),
Normal(0.0, 1.0),
Normal(3.0, 2.5)], [0.2, 0.5, 0.3])
MixtureModel{Normal}(K = 3)
components[1] (prior = 0.2000): Normal{Float64}(μ=-2.0, σ=1.2)
components[2] (prior = 0.5000): Normal{Float64}(μ=0.0, σ=1.0)
components[3] (prior = 0.3000): Normal{Float64}(μ=3.0, σ=2.5)
julia> x = -10:0.1:10
-10.0:0.1:10.0
julia> plot(x, pdf.(d, x), legend=nothing, xlabel="x", ylabel="pdf")产

https://stackoverflow.com/questions/71105393
复制相似问题