-
Notifications
You must be signed in to change notification settings - Fork 12
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Implement RandomSearch #30
Conversation
update readme update readme
@tlienart A superficial look over would be great, only if you have time. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
it all seems quite sensible to me 👍 I wonder about making this explicit difference between rightunbounded and positiveunbounded shifted by a bit but I'm sure you've already considered all this.
I'm glad to see this anyway 😄
update readme update readme
Many thanks @tlienart . |
This is more-or-less the implementation proposed at JuliaAI/MLJ.jl#37, with addition that tuples of the form
(hyperparameter_name, sampler)
can be specified in the range vector, wheresampler
is just something implementingrng
.Here's the updated doc-string:
Instantiate a random search tuning strategy, for searching over
Cartesian hyperparameter domains, with customizable priors in each
dimenension.
Supported ranges:
a single one-dimensional range (
ParamRange
object)r
a pair of the form
(r, d)
, withr
as above and whered
is aprobability vector of the same length as
r.values
, ifr
is aNominalRange
, and is otherwise: (i) anyDistributions.UnivariateDistribution
instance; or (ii) one ofthe subtypes of
Distributions.UnivariateDistribution
listed inthe table below, for automatic fitting using
Distributions.fit(d, r)
(a distribution whose support always lies betweenr.lower
andr.upper
.)any pair of the form
(field, s)
, wherefield
is the (possiblynested) name of a field of the model to be tuned, and
s
anarbitrary sampler object for that field. This means only that
rand(rng, s)
is defined and returns valid values for the field.any vector of objects of the above form
Arcsine
,Uniform
,Biweight
,Cosine
,Epanechnikov
,SymTriangularDist
,Triweight
Gamma
,InverseGaussian
,Poisson
Normal
,Logistic
,LogNormal
,Cauchy
,Gumbel
,Laplace
ParamRange
objects are constructed using therange
method.Examples:
Algorithm
Models for evaulation are generated by sampling each range
r
usingrand(rng, s)
where,s = sampler(r, d)
. Seesampler
for details. Ifd
is not specified, then sampling is uniform (with replacement) in the
case of a
NominalRange
, and is otherwise given by the defaultsspecified by the tuning strategy parameters
bounded
,positive_unbounded
, andother
, depending on theNumericRange
type.
See also
TunedModel
,range
,sampler
.