For same code, ML is erroring on Pumas, but works fine on my local.
MWE
is as follows:
Code
using CSV
using DataFrames
using DataFramesMeta
using MLJ
using AlgebraOfGraphics
using CairoMakie
using Weave
using Dates
import MLJXGBoostInterface
import MLJScikitLearnInterface
using ShapML
using XGBoost
# Adaboost
X, y = make_blobs()
AdaBoostClassifier_model = (@load AdaBoostClassifier pkg=ScikitLearn)()
r_adab = range(AdaBoostClassifier_model, :n_estimators, values=[10, 50, 100])
self_tuning_adab = TunedModel(model=AdaBoostClassifier_model, resampling=CV(nfolds=10),
repeats=10, #operation=MLJModelInterface.predict_mode,
tuning=Grid(), range=r_adab, measure=accuracy)
adab = machine(self_tuning_adab, X, y)
MLJ.fit!(adab)
The above code works fine on my local and it gives the following error on a Pumas instance on JuliaHub:
Error
[ Info: Training Machine{ProbabilisticTunedModel{Grid,…},…} @390.
[ Info: Attempting to evaluate 3 models.
Evaluating over 3 metamodels: 0%[> ] ETA: N/A┌ Error: Problem fitting the machine Machine{Resampler{CV},…} @782.
└ @ MLJBase ~/.julia/packages/MLJBase/j0qGA/src/machines.jl:484
[ Info: Running type checks...
[ Info: Type checks okay.
┌ Error: Problem fitting the machine Machine{ProbabilisticTunedModel{Grid,…},…} @390.
└ @ MLJBase ~/.julia/packages/MLJBase/j0qGA/src/machines.jl:484
[ Info: Running type checks...
[ Info: Type checks okay.
ERROR: ArgumentError:
AdaBoostClassifier @244 <: Probabilistic but prediction_type(Accuracy @914) = :deterministic.
Perhaps you want to set operation=predict_mode.
To override measure checks, set check_measure=false.
Stacktrace:
[1] _check_measure(measure::Accuracy, model::MLJScikitLearnInterface.AdaBoostClassifier, y::CategoricalArrays.CategoricalVector{Int64, UInt32, Int64, CategoricalArrays.CategoricalValue{Int64, UInt32}, Union{}}, operation::Function)
@ MLJBase ~/.julia/packages/MLJBase/j0qGA/src/resampling.jl:477
[2] #257
@ ~/.julia/packages/MLJBase/j0qGA/src/resampling.jl:494 [inlined]
[3] _all(f::MLJBase.var"#257#258"{MLJScikitLearnInterface.AdaBoostClassifier, CategoricalArrays.CategoricalVector{Int64, UInt32, Int64, CategoricalArrays.CategoricalValue{Int64, UInt32}, Union{}}, typeof(MLJModelInterface.predict)}, itr::Vector{Accuracy}, #unused#::Colon)
@ Base ./reduce.jl:923
[4] all(f::Function, a::Vector{Accuracy}; dims::Function)
@ Base ./reducedim.jl:886
[5] all
@ ./reducedim.jl:886 [inlined]
[6] _check_measures
@ ~/.julia/packages/MLJBase/j0qGA/src/resampling.jl:493 [inlined]
[7] _process_weights_measures(weights::Nothing, class_weights::Nothing, measures::Accuracy, mach::Machine{MLJScikitLearnInterface.AdaBoostClassifier, true}, operation::Function, verbosity::Int64, check_measure::Bool)
@ MLJBase ~/.julia/packages/MLJBase/j0qGA/src/resampling.jl:555
[8] fit(::Resampler{CV}, ::Int64, ::Tables.MatrixTable{Matrix{Float64}}, ::CategoricalArrays.CategoricalVector{Int64, UInt32, Int64, CategoricalArrays.CategoricalValue{Int64, UInt32}, Union{}})
@ MLJBase ~/.julia/packages/MLJBase/j0qGA/src/resampling.jl:1196
[9] fit_only!(mach::Machine{Resampler{CV}, false}; rows::Nothing, verbosity::Int64, force::Bool)
@ MLJBase ~/.julia/packages/MLJBase/j0qGA/src/machines.jl:482
[10] #fit!#98
@ ~/.julia/packages/MLJBase/j0qGA/src/machines.jl:549 [inlined]
[11] event!(metamodel::MLJScikitLearnInterface.AdaBoostClassifier, resampling_machine::Machine{Resampler{CV}, false}, verbosity::Int64, tuning::Grid, history::Nothing, state::NamedTuple{(:models, :fields, :parameter_scales, :models_delivered), Tuple{Vector{MLJScikitLearnInterface.AdaBoostClassifier}, Vector{Symbol}, Vector{Symbol}, Bool}})
@ MLJTuning ~/.julia/packages/MLJTuning/l8Cvp/src/tuned_models.jl:394
[12] #35
@ ~/.julia/packages/MLJTuning/l8Cvp/src/tuned_models.jl:432 [inlined]
[13] iterate
@ ./generator.jl:47 [inlined]
[14] _collect(c::Vector{MLJScikitLearnInterface.AdaBoostClassifier}, itr::Base.Generator{Vector{MLJScikitLearnInterface.AdaBoostClassifier}, MLJTuning.var"#35#36"{Machine{Resampler{CV}, false}, Int64, Grid, Nothing, NamedTuple{(:models, :fields, :parameter_scales, :models_delivered), Tuple{Vector{MLJScikitLearnInterface.AdaBoostClassifier}, Vector{Symbol}, Vector{Symbol}, Bool}}, ProgressMeter.Progress}}, #unused#::Base.EltypeUnknown, isz::Base.HasShape{1})
@ Base ./array.jl:691
[15] collect_similar
@ ./array.jl:606 [inlined]
[16] map
@ ./abstractarray.jl:2294 [inlined]
[17] assemble_events!(metamodels::Vector{MLJScikitLearnInterface.AdaBoostClassifier}, resampling_machine::Machine{Resampler{CV}, false}, verbosity::Int64, tuning::Grid, history::Nothing, state::NamedTuple{(:models, :fields, :parameter_scales, :models_delivered), Tuple{Vector{MLJScikitLearnInterface.AdaBoostClassifier}, Vector{Symbol}, Vector{Symbol}, Bool}}, acceleration::CPU1{Nothing})
@ MLJTuning ~/.julia/packages/MLJTuning/l8Cvp/src/tuned_models.jl:431
[18] build!(history::Nothing, n::Int64, tuning::Grid, model::MLJScikitLearnInterface.AdaBoostClassifier, model_buffer::Channel{Any}, state::NamedTuple{(:models, :fields, :parameter_scales, :models_delivered), Tuple{Vector{MLJScikitLearnInterface.AdaBoostClassifier}, Vector{Symbol}, Vector{Symbol}, Bool}}, verbosity::Int64, acceleration::CPU1{Nothing}, resampling_machine::Machine{Resampler{CV}, false})
@ MLJTuning ~/.julia/packages/MLJTuning/l8Cvp/src/tuned_models.jl:624
[19] fit(::MLJTuning.ProbabilisticTunedModel{Grid, MLJScikitLearnInterface.AdaBoostClassifier}, ::Int64, ::Tables.MatrixTable{Matrix{Float64}}, ::CategoricalArrays.CategoricalVector{Int64, UInt32, Int64, CategoricalArrays.CategoricalValue{Int64, UInt32}, Union{}})
@ MLJTuning ~/.julia/packages/MLJTuning/l8Cvp/src/tuned_models.jl:703
[20] fit_only!(mach::Machine{MLJTuning.ProbabilisticTunedModel{Grid, MLJScikitLearnInterface.AdaBoostClassifier}, true}; rows::Nothing, verbosity::Int64, force::Bool)
@ MLJBase ~/.julia/packages/MLJBase/j0qGA/src/machines.jl:482
[21] fit_only!
@ ~/.julia/packages/MLJBase/j0qGA/src/machines.jl:435 [inlined]
[22] #fit!#98
@ ~/.julia/packages/MLJBase/j0qGA/src/machines.jl:549 [inlined]
[23] fit!(mach::Machine{MLJTuning.ProbabilisticTunedModel{Grid, MLJScikitLearnInterface.AdaBoostClassifier}, true})
@ MLJBase ~/.julia/packages/MLJBase/j0qGA/src/machines.jl:547
[24] top-level scope
@ REPL[65]:1
Any ideas on how to resolve this? Thanks in advance!
P.S: ]st MLJBase
in my local provides v0.16.11
and in Pumas outputs v0.16.7