@@ -33,13 +33,17 @@ function _initialize(rng, t::Tuple{ParamRange, Any}, n)
33
33
return _initialize (rng, t[1 ], t[2 ], n)
34
34
end
35
35
36
- # Initialize parameters with default distribution types
36
+ # Initialize parameters with default distributions
37
37
38
- _initialize (rng, r:: ParamRange , n) = _initialize (rng, r, _initializer (r), n)
39
-
40
- _initializer (:: NominalRange ) = Dirichlet
38
+ function _initialize (rng, r:: NominalRange{T, N} , n) where {T, N}
39
+ d = Dirichlet (ones (N))
40
+ return _initialize (rng, r, d, n)
41
+ end
41
42
42
- _initializer (r:: NumericRange ) = _initializer (MLJTuning. boundedness (r))
43
+ function _initialize (rng, r:: NumericRange , n)
44
+ D = _initializer (MLJTuning. boundedness (r))
45
+ return _initialize (rng, r, D, n)
46
+ end
43
47
44
48
_initializer (:: Type{MLJBase.Bounded} ) = Uniform
45
49
@@ -53,11 +57,6 @@ function _initialize(rng, r::ParamRange, D::Type{<:Distribution}, n)
53
57
throw (ArgumentError (" $D distribution is unsupported for $(typeof (r)) ." ))
54
58
end
55
59
56
- function _initialize (rng, r:: NominalRange{T, N} , D:: Type{Dirichlet} , n) where {T, N}
57
- d = Dirichlet (ones (N))
58
- return _initialize (rng, r, d, n)
59
- end
60
-
61
60
function _initialize (rng, r:: NumericRange , D:: Type{<:UnivariateDistribution} , n)
62
61
d = Distributions. fit (D, r)
63
62
return _initialize (rng, r, d, n)
0 commit comments