Question asked on slack:
Hello, I’m new to Julia and MLJ. Is there a recommended way to compose models within functions? I tried placing the code from the “ Lightning Tour ” within a function of my own package, however when compiling that package I’m getting
iterated_booster not definedwhen I can see it is defined (or at least I think it is…).
Here’s the relevant code posted by the commenter:
module Slotter using MLJ using MLJIteration using EvoTrees function main() Booster = @load EvoTreeRegressor # loads code defining a model type booster = Booster(max_depth = 2) # specify hyper-parameter at construction booster.nrounds = 50 # or mutate post facto iterated_booster = IteratedModel( model = booster, resampling = Holdout(fraction_train = 0.8), controls = [Step(2), NumberSinceBest(3), NumberLimit(300)], measure = l1, retrain = true, ) pipe = @pipeline ContinuousEncoder iterated_booster max_depth_range = range(pipe, :(deterministic_iterated_model.model.max_depth), lower = 1, upper = 10) self_tuning_pipe = TunedModel( model = pipe, tuning = RandomSearch(), ranges = max_depth_range, resampling = CV(nfolds = 3, rng = 456), measure = l1, acceleration = CPUThreads(), n = 50, ) X, y = @load_reduced_ames mach = machine(self_tuning_pipe, X, y) evaluate!( mach, measures = [l1, l2], resampling = CV(nfolds = 5, rng = 123), acceleration = CPUThreads(), verbosity = 2, ) end