diff --git a/docs/src/notebooks/MLJTutorial/01_data_representation/notebook.md b/docs/src/notebooks/MLJTutorial/01_data_representation/notebook.md index ac8221b..ccd435f 100644 --- a/docs/src/notebooks/MLJTutorial/01_data_representation/notebook.md +++ b/docs/src/notebooks/MLJTutorial/01_data_representation/notebook.md @@ -290,7 +290,7 @@ csv_file = Downloads.download(url) ```` ```` -"/tmp/jl_7hCVl9/horse.csv" +"/tmp/jl_AutsNd/horse.csv" ```` Entering these lines of code downloads the data to a temporary file at the location @@ -531,8 +531,8 @@ A = rand(2, 3) ```` 2×3 Matrix{Float64}: - 0.68852 0.626316 0.486213 - 0.206646 0.0678205 0.909788 + 0.56044 0.53664 0.852799 + 0.83311 0.655101 0.199531 ```` ````@julia @@ -550,8 +550,8 @@ Asparse = sparse(A) ```` 2×3 SparseArrays.SparseMatrixCSC{Float64, Int64} with 6 stored entries: - 0.68852 0.626316 0.486213 - 0.206646 0.0678205 0.909788 + 0.56044 0.53664 0.852799 + 0.83311 0.655101 0.199531 ```` ````@julia diff --git a/docs/src/notebooks/MLJTutorial/02_models/notebook.md b/docs/src/notebooks/MLJTutorial/02_models/notebook.md index 9babacf..8634958 100644 --- a/docs/src/notebooks/MLJTutorial/02_models/notebook.md +++ b/docs/src/notebooks/MLJTutorial/02_models/notebook.md @@ -625,8 +625,8 @@ mach = machine(model, X, y) untrained Machine; caches model-specific representations of data model: NeuralNetworkClassifier(builder = Short(n_hidden = 0, …), …) args: - 1: Source @505 ⏎ ScientificTypesBase.Table{AbstractVector{ScientificTypesBase.Continuous}} - 2: Source @059 ⏎ AbstractVector{ScientificTypesBase.Multiclass{3}} + 1: Source @598 ⏎ ScientificTypesBase.Table{AbstractVector{ScientificTypesBase.Continuous}} + 2: Source @719 ⏎ AbstractVector{ScientificTypesBase.Multiclass{3}} ```` @@ -652,18 +652,18 @@ fit!(mach, rows=train, verbosity=2); ```` [ Info: Training machine(NeuralNetworkClassifier(builder = Short(n_hidden = 0, …), …), …). [ Info: MLJFlux: converting input data to Float32 -[ Info: Loss is 1.106 -[ Info: Loss is 1.096 -[ Info: Loss is 1.09 -[ Info: Loss is 1.08 -[ Info: Loss is 1.073 -[ Info: Loss is 1.054 -[ Info: Loss is 1.061 -[ Info: Loss is 1.036 -[ Info: Loss is 1.026 -[ Info: Loss is 1.003 -[ Info: Loss is 0.9871 -[ Info: Loss is 0.9638 +[ Info: Loss is 1.095 +[ Info: Loss is 1.013 +[ Info: Loss is 0.9721 +[ Info: Loss is 0.9833 +[ Info: Loss is 0.9459 +[ Info: Loss is 0.9987 +[ Info: Loss is 0.9726 +[ Info: Loss is 0.9432 +[ Info: Loss is 0.9477 +[ Info: Loss is 0.9796 +[ Info: Loss is 0.9506 +[ Info: Loss is 0.9341 ```` @@ -676,9 +676,9 @@ yhat[1:3] ```` 3-element CategoricalDistributions.UnivariateFiniteVector{ScientificTypesBase.Multiclass{3}, String, UInt32, Float32}: - UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.376, Iris-versicolor=>0.322, Iris-virginica=>0.302) - UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.518, Iris-versicolor=>0.315, Iris-virginica=>0.167) - UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.512, Iris-versicolor=>0.317, Iris-virginica=>0.171) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.258, Iris-versicolor=>0.371, Iris-virginica=>0.371) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.526, Iris-versicolor=>0.207, Iris-virginica=>0.266) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.521, Iris-versicolor=>0.208, Iris-virginica=>0.27) ```` We'll have more to say on the form of this prediction shortly. @@ -701,7 +701,7 @@ report(mach) ```` ```` -(training_losses = Float32[1.105516, 1.1064824, 1.0963646, 1.0899975, 1.0800945, 1.0732424, 1.054435, 1.0611892, 1.0356965, 1.0255092, 1.0031275, 0.9870628, 0.96378404],) +(training_losses = Float32[1.0251051, 1.0951197, 1.0134318, 0.9720827, 0.98331577, 0.9459498, 0.998716, 0.9726323, 0.9431992, 0.9476696, 0.9796031, 0.9506469, 0.93413705],) ```` You save a machine like this: @@ -720,9 +720,9 @@ yhat[1:3] ```` 3-element CategoricalDistributions.UnivariateFiniteVector{ScientificTypesBase.Multiclass{3}, String, UInt32, Float32}: - UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.366, Iris-versicolor=>0.322, Iris-virginica=>0.312) - UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.515, Iris-versicolor=>0.316, Iris-virginica=>0.168) - UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.374, Iris-versicolor=>0.322, Iris-virginica=>0.305) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.246, Iris-versicolor=>0.375, Iris-virginica=>0.379) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.527, Iris-versicolor=>0.206, Iris-virginica=>0.267) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.248, Iris-versicolor=>0.379, Iris-virginica=>0.373) ```` Machines remember the last set of hyperparameters used during fit, @@ -736,11 +736,11 @@ fit!(mach, rows=train, verbosity=2); ```` ```` -[ Info: Updating machine(NeuralNetworkClassifier(builder = Short(n_hidden = 0, …), …), …). -[ Info: Loss is 0.9864 -[ Info: Loss is 0.9672 -[ Info: Loss is 0.9449 -[ Info: Loss is 0.9555 +[ Info: Updating machine(NeuralNetworkClassifier(builder = Short(n_hidden = 0, …), …), …) (with warm restart if possible). +[ Info: Loss is 0.9376 +[ Info: Loss is 0.912 +[ Info: Loss is 0.9313 +[ Info: Loss is 0.8759 ```` @@ -770,11 +770,11 @@ fit!(mach, rows=train, verbosity=2); ```` ```` -[ Info: Updating machine(NeuralNetworkClassifier(builder = Short(n_hidden = 0, …), …), …). -[ Info: Loss is 0.9086 -[ Info: Loss is 0.9264 -[ Info: Loss is 0.9286 -[ Info: Loss is 0.8889 +[ Info: Updating machine(NeuralNetworkClassifier(builder = Short(n_hidden = 0, …), …), …) (with warm restart if possible). +[ Info: Loss is 0.8755 +[ Info: Loss is 0.7998 +[ Info: Loss is 0.8353 +[ Info: Loss is 0.7153 ```` @@ -787,28 +787,28 @@ fit!(mach, rows=train, verbosity=2); ```` ```` -[ Info: Updating machine(NeuralNetworkClassifier(builder = Short(n_hidden = 0, …), …), …). +[ Info: Updating machine(NeuralNetworkClassifier(builder = Short(n_hidden = 0, …), …), …) (with warm restart if possible). [ Info: MLJFlux: converting input data to Float32 -[ Info: Loss is 1.205 -[ Info: Loss is 1.002 -[ Info: Loss is 0.8946 -[ Info: Loss is 0.8962 -[ Info: Loss is 0.8291 +[ Info: Loss is 1.27 +[ Info: Loss is 0.9945 +[ Info: Loss is 0.9086 +[ Info: Loss is 0.8736 +[ Info: Loss is 0.827 +[ Info: Loss is 0.7704 +[ Info: Loss is 0.8214 +[ Info: Loss is 0.8043 +[ Info: Loss is 0.7578 +[ Info: Loss is 0.8213 +[ Info: Loss is 0.7772 +[ Info: Loss is 0.8219 +[ Info: Loss is 0.7826 +[ Info: Loss is 0.7933 +[ Info: Loss is 0.706 +[ Info: Loss is 0.688 +[ Info: Loss is 0.8041 +[ Info: Loss is 0.7704 [ Info: Loss is 0.7841 -[ Info: Loss is 0.7918 -[ Info: Loss is 0.7609 -[ Info: Loss is 0.7345 -[ Info: Loss is 0.6576 -[ Info: Loss is 0.8205 -[ Info: Loss is 0.6344 -[ Info: Loss is 0.5965 -[ Info: Loss is 0.6961 -[ Info: Loss is 0.6019 -[ Info: Loss is 0.6176 -[ Info: Loss is 0.6944 -[ Info: Loss is 0.6157 -[ Info: Loss is 0.5218 -[ Info: Loss is 0.5873 +[ Info: Loss is 0.7341 ```` @@ -827,7 +827,7 @@ yhat[1] ```` ```` -UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.106, Iris-versicolor=>0.607, Iris-virginica=>0.287) +UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.111, Iris-versicolor=>0.546, Iris-virginica=>0.343) ```` What's going on here? @@ -858,7 +858,7 @@ pdf(yhat[1], "Iris-virginica") ```` ```` -0.2869514f0 +0.34308216f0 ```` To get the most likely observation, we do @@ -879,10 +879,10 @@ broadcast(pdf, yhat[1:4], "Iris-versicolor") ```` 4-element Vector{Float32}: - 0.60706484 - 0.0019000835 - 0.0019024607 - 0.0021122482 + 0.5456025 + 0.0039443267 + 0.0042432365 + 0.0050151083 ```` ````@julia @@ -921,10 +921,10 @@ pdf(yhat, L)[1:4, :] ```` 4×3 Matrix{Float32}: - 0.105984 0.607065 0.286951 - 0.9981 0.00190008 7.28908f-11 - 0.998098 0.00190246 7.42093f-11 - 0.997888 0.00211225 8.8793f-11 + 0.111315 0.545603 0.343082 + 0.995978 0.00394433 7.71183f-5 + 0.99567 0.00424324 8.63841f-5 + 0.994878 0.00501511 0.000107101 ```` However, in a typical MLJ workflow, this is not as useful as you might imagine. In @@ -936,7 +936,7 @@ log_loss(yhat, y[test]) ```` ```` -0.37777010080199586 +0.34627145614243066 ```` To apply a deterministic measure, we first need to obtain point-estimates: @@ -973,15 +973,15 @@ PerformanceEvaluation object with these fields: measurement, uncertainty_radius_95, per_fold, per_observation, fitted_params_per_fold, report_per_fold, train_test_rows, resampling, repeats -Tag: NeuralNetworkClassifier-642 +Tag: NeuralNetworkClassifier-484 Extract: ┌─────────────────────────┬──────────────┬─────────────┐ │ measure │ operation │ measurement │ ├─────────────────────────┼──────────────┼─────────────┤ -│ LogLoss( │ predict │ 0.378 │ +│ LogLoss( │ predict │ 0.346 │ │ tol = 2.22045e-16) │ │ │ │ MisclassificationRate() │ predict_mode │ 0.0444 │ -│ BrierScore() │ predict │ -0.206 │ +│ BrierScore() │ predict │ -0.187 │ └─────────────────────────┴──────────────┴─────────────┘ ```` @@ -1002,22 +1002,22 @@ PerformanceEvaluation object with these fields: measurement, uncertainty_radius_95, per_fold, per_observation, fitted_params_per_fold, report_per_fold, train_test_rows, resampling, repeats -Tag: NeuralNetworkClassifier-150 +Tag: NeuralNetworkClassifier-252 Extract: ┌───┬─────────────────────────┬──────────────┬─────────────┐ │ │ measure │ operation │ measurement │ ├───┼─────────────────────────┼──────────────┼─────────────┤ -│ A │ LogLoss( │ predict │ 0.314 │ +│ A │ LogLoss( │ predict │ 0.289 │ │ │ tol = 2.22045e-16) │ │ │ │ B │ MisclassificationRate() │ predict_mode │ 0.0333 │ -│ C │ BrierScore() │ predict │ -0.162 │ +│ C │ BrierScore() │ predict │ -0.152 │ └───┴─────────────────────────┴──────────────┴─────────────┘ ┌───┬────────────────────────────────────────────────────────┬─────────┐ │ │ per_fold │ 1.96*SE │ ├───┼────────────────────────────────────────────────────────┼─────────┤ -│ A │ [0.323, 0.326, 0.249, 0.316, 0.298, 0.369] │ 0.0347 │ -│ B │ [0.04, 0.04, 0.0, 0.04, 0.04, 0.04] │ 0.0143 │ -│ C │ Float32[-0.188, -0.156, -0.11, -0.168, -0.147, -0.202] │ 0.0285 │ +│ A │ [0.359, 0.342, 0.222, 0.261, 0.28, 0.269] │ 0.0455 │ +│ B │ [0.04, 0.08, 0.0, 0.0, 0.04, 0.04] │ 0.0264 │ +│ C │ Float32[-0.194, -0.193, -0.105, -0.139, -0.15, -0.129] │ 0.0311 │ └───┴────────────────────────────────────────────────────────┴─────────┘ ```` @@ -1040,22 +1040,22 @@ PerformanceEvaluation object with these fields: measurement, uncertainty_radius_95, per_fold, per_observation, fitted_params_per_fold, report_per_fold, train_test_rows, resampling, repeats -Tag: NeuralNetworkClassifier-961 +Tag: NeuralNetworkClassifier-228 Extract: ┌───┬─────────────────────────┬──────────────┬─────────────┐ │ │ measure │ operation │ measurement │ ├───┼─────────────────────────┼──────────────┼─────────────┤ -│ A │ LogLoss( │ predict │ 0.317 │ +│ A │ LogLoss( │ predict │ 0.342 │ │ │ tol = 2.22045e-16) │ │ │ -│ B │ MisclassificationRate() │ predict_mode │ 0.0489 │ -│ C │ BrierScore() │ predict │ -0.172 │ +│ B │ MisclassificationRate() │ predict_mode │ 0.0467 │ +│ C │ BrierScore() │ predict │ -0.182 │ └───┴─────────────────────────┴──────────────┴─────────────┘ ┌───┬─────────────────────────────────────────────────────────────────────────── │ │ per_fold ⋯ ├───┼─────────────────────────────────────────────────────────────────────────── -│ A │ [0.311, 0.328, 0.325, 0.343, 0.353, 0.195, 0.315, 0.402, 0.235, 0.347, 0 ⋯ -│ B │ [0.0, 0.04, 0.04, 0.04, 0.08, 0.04, 0.12, 0.08, 0.0, 0.04, 0.16, 0.08, 0 ⋯ -│ C │ Float32[-0.164, -0.183, -0.172, -0.182, -0.184, -0.0885, -0.181, -0.252, ⋯ +│ A │ [0.268, 0.304, 0.265, 0.344, 0.355, 0.286, 0.281, 0.402, 0.267, 0.375, 0 ⋯ +│ B │ [0.0, 0.04, 0.04, 0.04, 0.04, 0.04, 0.0, 0.16, 0.0, 0.04, 0.08, 0.08, 0. ⋯ +│ C │ Float32[-0.134, -0.164, -0.137, -0.175, -0.201, -0.124, -0.157, -0.263, ⋯ └───┴─────────────────────────────────────────────────────────────────────────── 2 columns omitted @@ -1082,51 +1082,51 @@ predict(mach, rows=test) # and predict missing targets ```` 45-element CategoricalDistributions.UnivariateFiniteVector{ScientificTypesBase.Multiclass{3}, String, UInt32, Float32}: - UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.159, Iris-versicolor=>0.569, Iris-virginica=>0.273) - UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.997, Iris-versicolor=>0.00299, Iris-virginica=>1.26e-6) - UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.997, Iris-versicolor=>0.0031, Iris-virginica=>1.31e-6) - UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.997, Iris-versicolor=>0.00345, Iris-virginica=>1.53e-6) - UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.187, Iris-versicolor=>0.583, Iris-virginica=>0.23) - UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.00342, Iris-versicolor=>0.201, Iris-virginica=>0.795) - UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.997, Iris-versicolor=>0.00271, Iris-virginica=>1.09e-6) - UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.997, Iris-versicolor=>0.00294, Iris-virginica=>1.22e-6) - UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.0345, Iris-versicolor=>0.408, Iris-virginica=>0.558) - UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.225, Iris-versicolor=>0.615, Iris-virginica=>0.16) - UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.00141, Iris-versicolor=>0.148, Iris-virginica=>0.85) - UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.00378, Iris-versicolor=>0.208, Iris-virginica=>0.788) - UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.00167, Iris-versicolor=>0.157, Iris-virginica=>0.842) - UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.111, Iris-versicolor=>0.532, Iris-virginica=>0.356) - UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.997, Iris-versicolor=>0.00312, Iris-virginica=>1.33e-6) - UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.248, Iris-versicolor=>0.622, Iris-virginica=>0.13) - UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.00268, Iris-versicolor=>0.185, Iris-virginica=>0.813) - UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.00373, Iris-versicolor=>0.207, Iris-virginica=>0.789) - UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.0279, Iris-versicolor=>0.39, Iris-virginica=>0.582) - UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.159, Iris-versicolor=>0.57, Iris-virginica=>0.272) - UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.32, Iris-versicolor=>0.612, Iris-virginica=>0.0684) - UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.121, Iris-versicolor=>0.542, Iris-virginica=>0.338) - UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.158, Iris-versicolor=>0.575, Iris-virginica=>0.267) - UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.00221, Iris-versicolor=>0.173, Iris-virginica=>0.825) - UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.996, Iris-versicolor=>0.00421, Iris-virginica=>1.98e-6) - UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.00177, Iris-versicolor=>0.16, Iris-virginica=>0.838) - UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.203, Iris-versicolor=>0.601, Iris-virginica=>0.195) - UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.0213, Iris-versicolor=>0.352, Iris-virginica=>0.627) - UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.00501, Iris-versicolor=>0.227, Iris-virginica=>0.768) - UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.00425, Iris-versicolor=>0.216, Iris-virginica=>0.78) - UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.117, Iris-versicolor=>0.551, Iris-virginica=>0.332) - UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.996, Iris-versicolor=>0.00408, Iris-virginica=>1.98e-6) - UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.124, Iris-versicolor=>0.552, Iris-virginica=>0.325) - UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.176, Iris-versicolor=>0.59, Iris-virginica=>0.234) - UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.00218, Iris-versicolor=>0.172, Iris-virginica=>0.826) - UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.026, Iris-versicolor=>0.38, Iris-virginica=>0.594) - UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.00351, Iris-versicolor=>0.202, Iris-virginica=>0.794) - UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.221, Iris-versicolor=>0.608, Iris-virginica=>0.171) - UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.997, Iris-versicolor=>0.00321, Iris-virginica=>1.42e-6) - UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.997, Iris-versicolor=>0.00322, Iris-virginica=>1.39e-6) - UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.00416, Iris-versicolor=>0.215, Iris-virginica=>0.781) - UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.996, Iris-versicolor=>0.00389, Iris-virginica=>1.82e-6) - UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.0206, Iris-versicolor=>0.355, Iris-virginica=>0.624) - UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.19, Iris-versicolor=>0.591, Iris-virginica=>0.219) - UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.019, Iris-versicolor=>0.345, Iris-virginica=>0.636) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.172, Iris-versicolor=>0.534, Iris-virginica=>0.294) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.992, Iris-versicolor=>0.00823, Iris-virginica=>5.38e-7) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.992, Iris-versicolor=>0.00819, Iris-virginica=>5.46e-7) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.991, Iris-versicolor=>0.00911, Iris-virginica=>6.44e-7) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.189, Iris-versicolor=>0.529, Iris-virginica=>0.282) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.00379, Iris-versicolor=>0.28, Iris-virginica=>0.717) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.993, Iris-versicolor=>0.0073, Iris-virginica=>4.57e-7) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.992, Iris-versicolor=>0.00786, Iris-virginica=>5.1e-7) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.0551, Iris-versicolor=>0.456, Iris-virginica=>0.489) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.229, Iris-versicolor=>0.587, Iris-virginica=>0.184) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.000905, Iris-versicolor=>0.202, Iris-virginica=>0.797) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.00377, Iris-versicolor=>0.28, Iris-virginica=>0.716) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.00147, Iris-versicolor=>0.225, Iris-virginica=>0.773) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.136, Iris-versicolor=>0.5, Iris-virginica=>0.364) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.992, Iris-versicolor=>0.00838, Iris-virginica=>5.59e-7) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.258, Iris-versicolor=>0.611, Iris-virginica=>0.131) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.00421, Iris-versicolor=>0.283, Iris-virginica=>0.713) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.00537, Iris-versicolor=>0.299, Iris-virginica=>0.696) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.049, Iris-versicolor=>0.448, Iris-virginica=>0.503) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.17, Iris-versicolor=>0.524, Iris-virginica=>0.306) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.307, Iris-versicolor=>0.605, Iris-virginica=>0.0886) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.139, Iris-versicolor=>0.522, Iris-virginica=>0.339) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.174, Iris-versicolor=>0.556, Iris-virginica=>0.27) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.00256, Iris-versicolor=>0.255, Iris-virginica=>0.743) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.988, Iris-versicolor=>0.0118, Iris-virginica=>8.8e-7) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.00156, Iris-versicolor=>0.228, Iris-virginica=>0.77) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.206, Iris-versicolor=>0.561, Iris-virginica=>0.233) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.0481, Iris-versicolor=>0.437, Iris-virginica=>0.515) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.00765, Iris-versicolor=>0.321, Iris-virginica=>0.671) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.00704, Iris-versicolor=>0.315, Iris-virginica=>0.678) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.132, Iris-versicolor=>0.536, Iris-virginica=>0.332) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.989, Iris-versicolor=>0.0114, Iris-virginica=>8.69e-7) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.14, Iris-versicolor=>0.537, Iris-virginica=>0.323) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.186, Iris-versicolor=>0.556, Iris-virginica=>0.258) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.00189, Iris-versicolor=>0.239, Iris-virginica=>0.759) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.0458, Iris-versicolor=>0.443, Iris-virginica=>0.511) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.00411, Iris-versicolor=>0.283, Iris-virginica=>0.713) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.228, Iris-versicolor=>0.579, Iris-virginica=>0.193) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.991, Iris-versicolor=>0.00893, Iris-virginica=>6.13e-7) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.991, Iris-versicolor=>0.00858, Iris-virginica=>5.84e-7) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.00643, Iris-versicolor=>0.31, Iris-virginica=>0.683) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.989, Iris-versicolor=>0.0112, Iris-virginica=>8.18e-7) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.0324, Iris-versicolor=>0.422, Iris-virginica=>0.545) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.194, Iris-versicolor=>0.545, Iris-virginica=>0.261) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.0298, Iris-versicolor=>0.415, Iris-virginica=>0.555) ```` ### On learning curves @@ -1155,7 +1155,7 @@ curve = learning_curve( ```` ```` -(parameter_name = "epochs", parameter_scale = :log10, parameter_values = [1, 2, 3, 4, 5, 7, 9, 11, 14, 17, 22, 28, 36, 45, 57, 73, 92, 117, 149, 189, 240, 304, 386, 489, 621, 788, 1000], measurements = [1.0688572877232012, 0.9775668502403386, 0.8957729763444537, 0.8502722820013228, 0.7900654567779567, 0.7161783875903127, 0.6783388511485662, 0.6626694886542754, 0.6302097642164451, 0.6216974806422221, 0.5637847854496398, 0.4898889856077138, 0.42644719180744134, 0.3904612622351922, 0.3374627553349284, 0.31244659954260495, 0.2809301635554485, 0.32667948553139114, 0.23659671315739095, 0.261564989893, 0.28363801902151037, 0.2689894678615147, 0.2256241953963682, 0.2701070883877704, 0.2769876324354052, 0.2150057484379753, 0.2835758104810806]) +(parameter_name = "epochs", parameter_scale = :log10, parameter_values = [1, 2, 3, 4, 5, 7, 9, 11, 14, 17, 22, 28, 36, 45, 57, 73, 92, 117, 149, 189, 240, 304, 386, 489, 621, 788, 1000], measurements = [0.9465042091289829, 0.8968707272456822, 0.8497798619992826, 0.7099271009763609, 0.6529691492724031, 0.5895050363047272, 0.5552147272086647, 0.50266843326434, 0.4621853906711376, 0.480670973951723, 0.4369504317305079, 0.3352046880199063, 0.34340528327819964, 0.30567731848288915, 0.34234238147281426, 0.3156098947468397, 0.2971425228432417, 0.3114554575192507, 0.275822974018272, 0.23683517257355358, 0.26349679877851445, 0.27933457250043214, 0.2880902892456894, 0.21653188207277058, 0.266598468633448, 0.21114058446380382, 0.22449880381569934]) ```` ````@julia @@ -1168,7 +1168,7 @@ savefig("learning_curve.png") ```` ```` -"/home/runner/work/MLJTutorial.jl/MLJTutorial.jl/docs/src/notebooks/02_models/learning_curve.png" +"/home/runner/work/MLJTutorial.jl/MLJTutorial.jl/docs/src/notebooks/MLJTutorial/02_models/learning_curve.png" ```` ![](learning_curve.png) @@ -1206,7 +1206,7 @@ small = salary[1] ```` ```` -CategoricalArrays.CategoricalValue{String, UInt32} "huge" (3/3) +CategoricalArrays.CategoricalValue{String, UInt32} "small" (1/3) ```` ````@julia @@ -1219,15 +1219,15 @@ y4 = [n_devices(row.salary) for row in eachrow(X4)] ```` 10-element Vector{Int64}: 1 - 1 - 5 - 6 + 0 + 0 2 - 3 1 + 0 + 0 + 2 + 2 2 - 5 - 1 ```` (b) What models can be applied if you coerce the salary to a @@ -1253,10 +1253,10 @@ pretty(data) │ Int64 │ Float64 │ Float64 │ CategoricalValue{String, UInt32} │ │ Count │ Continuous │ Continuous │ OrderedFactor{2} │ ├───────┼────────────┼────────────┼──────────────────────────────────┤ -│ 1 │ 0.259146 │ 0.0350593 │ male │ -│ 2 │ 0.509949 │ 0.0537315 │ female │ -│ 3 │ 0.922383 │ 0.801738 │ female │ -│ 4 │ 0.828869 │ 0.777606 │ male │ +│ 1 │ 0.542161 │ 0.804485 │ male │ +│ 2 │ 0.541591 │ 0.199257 │ female │ +│ 3 │ 0.472845 │ 0.425963 │ female │ +│ 4 │ 0.075832 │ 0.866623 │ male │ └───────┴────────────┴────────────┴──────────────────────────────────┘ ```` diff --git a/docs/src/notebooks/MLJTutorial/03_pipelines/notebook.md b/docs/src/notebooks/MLJTutorial/03_pipelines/notebook.md index 6fd74b5..b829bb6 100644 --- a/docs/src/notebooks/MLJTutorial/03_pipelines/notebook.md +++ b/docs/src/notebooks/MLJTutorial/03_pipelines/notebook.md @@ -31,8 +31,8 @@ x = rand(100); ```` ```` -mean(x) = 0.5049271509171457 -std(x) = 0.2930352399455027 +mean(x) = 0.48994182660190133 +std(x) = 0.3012292457201098 ```` @@ -46,7 +46,7 @@ xhat = transform(mach, x); ```` [ Info: Training machine(Standardizer(features = Symbol[], …), …). -mean(xhat) = -1.9095836023552692e-16 +mean(xhat) = -9.103828801926283e-17 std(xhat) = 1.0 ```` @@ -500,7 +500,7 @@ PerformanceEvaluation object with these fields: measurement, uncertainty_radius_95, per_fold, per_observation, fitted_params_per_fold, report_per_fold, train_test_rows, resampling, repeats -Tag: DeterministicPipeline-586 +Tag: DeterministicPipeline-366 Extract: ┌──────────┬───────────┬─────────────┐ │ measure │ operation │ measurement │ @@ -537,10 +537,10 @@ fit!(mach); ```` ```` -[ Info: Updating machine(DeterministicPipeline(continuous_encoder = ContinuousEncoder(drop_last = false, …), …), …). +[ Info: Updating machine(DeterministicPipeline(continuous_encoder = ContinuousEncoder(drop_last = false, …), …), …) (with warm restart if possible). [ Info: Not retraining machine(:continuous_encoder, …). Use `force=true` to force. [ Info: Not retraining machine(:pca, …). Use `force=true` to force. -[ Info: Updating machine(:ridge_regressor, …). +[ Info: Updating machine(:ridge_regressor, …) (with warm restart if possible). ┌ Info: Solver: MLJLinearModels.Analytical │ iterative: Bool false └ max_inner: Int64 200 @@ -558,9 +558,9 @@ fit!(mach); ```` ```` -[ Info: Updating machine(DeterministicPipeline(continuous_encoder = ContinuousEncoder(drop_last = false, …), …), …). +[ Info: Updating machine(DeterministicPipeline(continuous_encoder = ContinuousEncoder(drop_last = false, …), …), …) (with warm restart if possible). [ Info: Not retraining machine(:continuous_encoder, …). Use `force=true` to force. -[ Info: Updating machine(:pca, …). +[ Info: Updating machine(:pca, …) (with warm restart if possible). [ Info: Training machine(:ridge_regressor, …). ┌ Info: Solver: MLJLinearModels.Analytical │ iterative: Bool false @@ -629,7 +629,7 @@ PerformanceEvaluation object with these fields: measurement, uncertainty_radius_95, per_fold, per_observation, fitted_params_per_fold, report_per_fold, train_test_rows, resampling, repeats -Tag: DeterministicPipeline-488 +Tag: DeterministicPipeline-710 Extract: ┌──────────┬───────────┬─────────────┐ │ measure │ operation │ measurement │ @@ -669,7 +669,7 @@ PerformanceEvaluation object with these fields: measurement, uncertainty_radius_95, per_fold, per_observation, fitted_params_per_fold, report_per_fold, train_test_rows, resampling, repeats -Tag: DeterministicPipeline-307 +Tag: DeterministicPipeline-846 Extract: ┌──────────┬───────────┬─────────────┐ │ measure │ operation │ measurement │ @@ -696,7 +696,7 @@ PerformanceEvaluation object with these fields: measurement, uncertainty_radius_95, per_fold, per_observation, fitted_params_per_fold, report_per_fold, train_test_rows, resampling, repeats -Tag: DeterministicPipeline-882 +Tag: DeterministicPipeline-649 Extract: ┌──────────┬───────────┬─────────────┐ │ measure │ operation │ measurement │ diff --git a/docs/src/notebooks/MLJTutorial/04_tuning/notebook.md b/docs/src/notebooks/MLJTutorial/04_tuning/notebook.md index c041a77..908f6e0 100644 --- a/docs/src/notebooks/MLJTutorial/04_tuning/notebook.md +++ b/docs/src/notebooks/MLJTutorial/04_tuning/notebook.md @@ -144,7 +144,7 @@ savefig("learning_curve2.png") ```` ```` -"/home/runner/work/MLJTutorial.jl/MLJTutorial.jl/docs/src/notebooks/04_tuning/learning_curve2.png" +"/home/runner/work/MLJTutorial.jl/MLJTutorial.jl/docs/src/notebooks/MLJTutorial/04_tuning/learning_curve2.png" ```` ![](learning_curve2.png) @@ -366,7 +366,7 @@ PerformanceEvaluation object with these fields: measurement, uncertainty_radius_95, per_fold, per_observation, fitted_params_per_fold, report_per_fold, train_test_rows, resampling, repeats -Tag: ProbabilisticPipeline-133 +Tag: ProbabilisticPipeline-992 Extract: ┌──────────────────────┬───────────┬─────────────┐ │ measure │ operation │ measurement │ @@ -392,7 +392,7 @@ PerformanceEvaluation object with these fields: measurement, uncertainty_radius_95, per_fold, per_observation, fitted_params_per_fold, report_per_fold, train_test_rows, resampling, repeats -Tag: ProbabilisticTunedModel-228 +Tag: ProbabilisticTunedModel-915 Extract: ┌──────────────────────┬───────────┬─────────────┐ │ measure │ operation │ measurement │ @@ -487,6 +487,7 @@ DeterministicPipeline( nrounds = 70, bagging_size = 1, early_stopping_rounds = 9223372036854775807, + early_stopping_tolerance = 0.0, L2 = 1.0, lambda = 0.0, gamma = 0.0, @@ -506,18 +507,20 @@ DeterministicPipeline( ```` (a) Construct a bounded range `r1` for the `evo_tree_booster` -parameter `max_depth`, varying between 1 and 12. +parameter `max_depth`, varying between 4 and 14. (b) For the `colsample` parameter of the `EvoTreeRegressor`, define the range ````@julia -r2 = range(model, :(evo_tree_regressor.colsample), lower=0.5, upper=1.0) +r2 = range(model, :(evo_tree_regressor.nbins), values = [32, 64, 128]) ```` ```` -NumericRange(0.5 ≤ evo_tree_regressor.colsample ≤ 1.0; origin=0.75, unit=0.25) +NominalRange(evo_tree_regressor.nbins = 32, 64, 128) ```` +(a) + Optimize `model` over these the parameter ranges `r1` and `r2` using a random search with uniform priors (the default). Use `Holdout()` resampling, and implement your search by first constructing a "self-tuning" wrap of `model`, as described above. Make `mae` diff --git a/docs/src/notebooks/MLJTutorial/05_composition/notebook.md b/docs/src/notebooks/MLJTutorial/05_composition/notebook.md index 50a75a6..37c8b3d 100644 --- a/docs/src/notebooks/MLJTutorial/05_composition/notebook.md +++ b/docs/src/notebooks/MLJTutorial/05_composition/notebook.md @@ -64,11 +64,11 @@ pretty(X) │ Float64 │ Float64 │ Float64 │ │ Continuous │ Continuous │ Continuous │ ├────────────┼────────────┼────────────┤ -│ 7.99339 │ -4.51883 │ 7.95704 │ -│ 11.7887 │ 2.30663 │ 11.4951 │ -│ 7.52952 │ -5.51312 │ 7.41135 │ -│ 8.20517 │ -4.81065 │ 7.70788 │ -│ 4.94682 │ -3.52243 │ 6.25036 │ +│ 4.62724 │ 10.7352 │ -5.52083 │ +│ 4.40427 │ 16.8041 │ 5.34259 │ +│ -4.39704 │ 7.39387 │ 8.4686 │ +│ 5.70514 │ 8.87656 │ -5.84487 │ +│ 4.5187 │ 9.3778 │ -5.24264 │ └────────────┴────────────┴────────────┘ ```` @@ -91,11 +91,11 @@ yhat = predict(mach2, Xstand) ```` 5-element CategoricalDistributions.UnivariateFiniteVector{ScientificTypesBase.Multiclass{3}, Int64, UInt32, Float64}: - UnivariateFinite{ScientificTypesBase.Multiclass{3}}(1=>0.00418, 2=>0.00153, 3=>0.994) - UnivariateFinite{ScientificTypesBase.Multiclass{3}}(1=>1.99e-7, 2=>0.996, 3=>0.00437) - UnivariateFinite{ScientificTypesBase.Multiclass{3}}(1=>0.0069, 2=>0.000261, 3=>0.993) - UnivariateFinite{ScientificTypesBase.Multiclass{3}}(1=>0.00255, 2=>0.000808, 3=>0.997) - UnivariateFinite{ScientificTypesBase.Multiclass{3}}(1=>0.992, 2=>3.62e-5, 3=>0.0084) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(1=>0.00103, 2=>0.00253, 3=>0.996) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(1=>0.0011, 2=>0.995, 3=>0.00355) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(1=>0.996, 2=>0.00124, 3=>0.00261) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(1=>0.000405, 2=>0.000305, 3=>0.999) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(1=>0.00122, 2=>0.000793, 3=>0.998) ```` **Step 1** - Edit your code as follows: @@ -119,15 +119,15 @@ yhat = predict(mach2, Xstand) ```` ```` -Node @969 → LogisticClassifier(…) +Node @361 → LogisticClassifier(…) args: - 1: Node @290 → Standardizer(…) + 1: Node @114 → Standardizer(…) formula: predict( machine(LogisticClassifier(lambda = 0.001, …), …), transform( machine(Standardizer(features = Symbol[], …), …), - Source @247, + Source @383, ), ) ```` @@ -150,11 +150,11 @@ Xstand() |> pretty │ Float64 │ Float64 │ Float64 │ │ Continuous │ Continuous │ Continuous │ ├────────────┼────────────┼────────────┤ -│ -0.0406427 │ -0.41279 │ -0.105058 │ -│ 1.51214 │ 1.74264 │ 1.68791 │ -│ -0.230422 │ -0.726778 │ -0.381591 │ -│ 0.0460046 │ -0.504942 │ -0.231321 │ -│ -1.28708 │ -0.098132 │ -0.969944 │ +│ 0.398744 │ 0.0267856 │ -0.718322 │ +│ 0.34504 │ 1.69018 │ 0.854506 │ +│ -1.77474 │ -0.889044 │ 1.3071 │ +│ 0.658353 │ -0.482654 │ -0.765237 │ +│ 0.3726 │ -0.34527 │ -0.678045 │ └────────────┴────────────┴────────────┘ ```` @@ -178,11 +178,11 @@ yhat() ```` 5-element CategoricalDistributions.UnivariateFiniteVector{ScientificTypesBase.Multiclass{3}, Int64, UInt32, Float64}: - UnivariateFinite{ScientificTypesBase.Multiclass{3}}(1=>0.00418, 2=>0.00153, 3=>0.994) - UnivariateFinite{ScientificTypesBase.Multiclass{3}}(1=>1.99e-7, 2=>0.996, 3=>0.00437) - UnivariateFinite{ScientificTypesBase.Multiclass{3}}(1=>0.0069, 2=>0.000261, 3=>0.993) - UnivariateFinite{ScientificTypesBase.Multiclass{3}}(1=>0.00255, 2=>0.000808, 3=>0.997) - UnivariateFinite{ScientificTypesBase.Multiclass{3}}(1=>0.992, 2=>3.62e-5, 3=>0.0084) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(1=>0.00103, 2=>0.00253, 3=>0.996) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(1=>0.0011, 2=>0.995, 3=>0.00355) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(1=>0.996, 2=>0.00124, 3=>0.00261) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(1=>0.000405, 2=>0.000305, 3=>0.999) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(1=>0.00122, 2=>0.000793, 3=>0.998) ```` The node `yhat` is the "descendant" (in an associated DAG we have @@ -194,7 +194,7 @@ origins(yhat) ```` 1-element Vector{MLJBase.Source}: - Source @247 ⏎ `ScientificTypesBase.Table{AbstractVector{ScientificTypesBase.Continuous}}` + Source @383 ⏎ `ScientificTypesBase.Table{AbstractVector{ScientificTypesBase.Continuous}}` ```` The data at the source node is replaced by `Xnew` to obtain a @@ -207,8 +207,8 @@ yhat(Xnew) ```` 2-element CategoricalDistributions.UnivariateFiniteVector{ScientificTypesBase.Multiclass{3}, Int64, UInt32, Float64}: - UnivariateFinite{ScientificTypesBase.Multiclass{3}}(1=>1.0, 2=>6.419999999999999e-31, 3=>2.45e-15) - UnivariateFinite{ScientificTypesBase.Multiclass{3}}(1=>1.0, 2=>3.0800000000000004e-27, 3=>3.42e-17) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(1=>0.0024, 2=>3.71e-5, 3=>0.998) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(1=>0.0744, 2=>8.78e-5, 3=>0.926) ```` **Step 2** - Export the learning network as a new stand-alone model type @@ -238,15 +238,15 @@ yhat = predict(mach2, Xstand) ```` ```` -Node @735 → :classifier +Node @124 → :classifier args: - 1: Node @427 → :standardizer + 1: Node @809 → :standardizer formula: predict( machine(:classifier, …), transform( machine(:standardizer, …), - Source @247, + Source @383, ), ) ```` @@ -380,7 +380,7 @@ y = source(y) ```` ```` -Source @912 ⏎ `AbstractVector{ScientificTypesBase.Continuous}` +Source @198 ⏎ `AbstractVector{ScientificTypesBase.Continuous}` ```` **First layer and target transformation:** @@ -396,13 +396,13 @@ z = MLJ.transform(mach2, y) ```` ```` -Node @154 → UnivariateBoxCoxTransformer(…) +Node @283 → UnivariateBoxCoxTransformer(…) args: - 1: Source @912 + 1: Source @198 formula: transform( machine(UnivariateBoxCoxTransformer(n = 171, …), …), - Source @912, + Source @198, ) ```` @@ -419,10 +419,10 @@ zhat = 0.5*predict(mach3, W) + 0.5*predict(mach4, W) ```` ```` -Node @876 +Node @594 args: - 1: Node @234 - 2: Node @136 + 1: Node @695 + 2: Node @962 formula: +( var"#*##0#*##1"( @@ -430,7 +430,7 @@ Node @876 machine(RidgeRegressor(lambda = 0.1, …), …), transform( machine(Standardizer(features = Symbol[], …), …), - Source @621, + Source @397, ), ), ), @@ -439,7 +439,7 @@ Node @876 machine(RandomForestRegressor(max_depth = -1, …), …), transform( machine(Standardizer(features = Symbol[], …), …), - Source @621, + Source @397, ), ), ), @@ -453,9 +453,9 @@ yhat = inverse_transform(mach2, zhat) ```` ```` -Node @936 → UnivariateBoxCoxTransformer(…) +Node @306 → UnivariateBoxCoxTransformer(…) args: - 1: Node @876 + 1: Node @594 formula: inverse_transform( machine(UnivariateBoxCoxTransformer(n = 171, …), …), @@ -465,7 +465,7 @@ Node @936 → UnivariateBoxCoxTransformer(…) machine(RidgeRegressor(lambda = 0.1, …), …), transform( machine(Standardizer(features = Symbol[], …), …), - Source @621, + Source @397, ), ), ), @@ -474,7 +474,7 @@ Node @936 → UnivariateBoxCoxTransformer(…) machine(RandomForestRegressor(max_depth = -1, …), …), transform( machine(Standardizer(features = Symbol[], …), …), - Source @621, + Source @397, ), ), ), @@ -491,9 +491,9 @@ yhat(rows=1:3) ```` 3-element Vector{Float64}: - 1.7739397839766557 - 0.6966896821725221 - 0.953903811946471 + 1.8758898048020904 + 2.0871924627786433 + 1.2714918102034443 ```` Now for the new model type: @@ -546,20 +546,20 @@ PerformanceEvaluation object with these fields: measurement, uncertainty_radius_95, per_fold, per_observation, fitted_params_per_fold, report_per_fold, train_test_rows, resampling, repeats -Tag: CompositeModel-893 +Tag: CompositeModel-927 Extract: ┌───┬────────────────────────┬───────────┬─────────────┐ │ │ measure │ operation │ measurement │ ├───┼────────────────────────┼───────────┼─────────────┤ -│ A │ RootMeanSquaredError() │ predict │ 4.01 │ -│ B │ LPLoss( │ predict │ 2.49 │ +│ A │ RootMeanSquaredError() │ predict │ 3.94 │ +│ B │ LPLoss( │ predict │ 2.48 │ │ │ p = 1) │ │ │ └───┴────────────────────────┴───────────┴─────────────┘ ┌───┬──────────────────────────────────────┬─────────┐ │ │ per_fold │ 1.96*SE │ ├───┼──────────────────────────────────────┼─────────┤ -│ A │ [4.97, 4.26, 3.71, 2.91, 4.25, 3.61] │ 0.617 │ -│ B │ [2.98, 2.39, 2.32, 2.12, 2.63, 2.5] │ 0.258 │ +│ A │ [4.92, 3.75, 4.67, 3.46, 3.81, 2.53] │ 0.757 │ +│ B │ [2.76, 2.59, 2.82, 2.36, 2.46, 1.89] │ 0.294 │ └───┴──────────────────────────────────────┴─────────┘ ```` diff --git a/docs/src/notebooks/MLJTutorial/99_solution_to_exercises/notebook.md b/docs/src/notebooks/MLJTutorial/99_solution_to_exercises/notebook.md index d60a188..0c8fa68 100644 --- a/docs/src/notebooks/MLJTutorial/99_solution_to_exercises/notebook.md +++ b/docs/src/notebooks/MLJTutorial/99_solution_to_exercises/notebook.md @@ -50,8 +50,8 @@ A = rand(2, 3) ```` 2×3 Matrix{Float64}: - 0.0383784 0.758964 0.664543 - 0.455437 0.655434 0.552125 + 0.825126 0.927631 0.216194 + 0.969753 0.343094 0.567502 ```` ````@julia @@ -77,8 +77,8 @@ Asparse = sparse(A) ```` 2×3 SparseArrays.SparseMatrixCSC{Float64, Int64} with 6 stored entries: - 0.0383784 0.758964 0.664543 - 0.455437 0.655434 0.552125 + 0.825126 0.927631 0.216194 + 0.969753 0.343094 0.567502 ```` ````@julia @@ -95,8 +95,8 @@ C = coerce(A, Multiclass) ```` 2×3 CategoricalArrays.CategoricalArray{Float64,2,UInt32}: - 0.0383784 0.758964 0.664543 - 0.455437 0.655434 0.552125 + 0.825126 0.927631 0.216194 + 0.969753 0.343094 0.567502 ```` ````@julia @@ -326,16 +326,16 @@ y4 = [n_devices(row.salary) for row in eachrow(X4)] ```` 10-element Vector{Int64}: - 1 + 4 + 3 + 3 1 5 2 + 3 + 4 2 2 - 0 - 5 - 5 - 0 ```` 4(a) @@ -411,10 +411,10 @@ pretty(X) │ Float64 │ Float64 │ │ Continuous │ Continuous │ ├────────────┼────────────┤ -│ 0.349626 │ 0.992532 │ -│ 0.371278 │ 0.939846 │ -│ 0.777363 │ 0.870885 │ -│ 0.574214 │ 0.606785 │ +│ 0.362136 │ 0.40804 │ +│ 0.910894 │ 0.507141 │ +│ 0.606253 │ 0.58319 │ +│ 0.952481 │ 0.424991 │ └────────────┴────────────┘ ```` @@ -589,18 +589,18 @@ PerformanceEvaluation object with these fields: measurement, uncertainty_radius_95, per_fold, per_observation, fitted_params_per_fold, report_per_fold, train_test_rows, resampling, repeats -Tag: RandomForestClassifier-945 +Tag: RandomForestClassifier-367 Extract: ┌──────────────────────┬───────────┬─────────────┐ │ measure │ operation │ measurement │ ├──────────────────────┼───────────┼─────────────┤ -│ LogLoss( │ predict │ 1.08 │ +│ LogLoss( │ predict │ 1.11 │ │ tol = 2.22045e-16) │ │ │ └──────────────────────┴───────────┴─────────────┘ ┌─────────────────────────────────────────┬─────────┐ │ per_fold │ 1.96*SE │ ├─────────────────────────────────────────┼─────────┤ -│ [0.746, 1.35, 1.79, 1.27, 0.706, 0.611] │ 0.407 │ +│ [0.802, 1.39, 1.77, 0.782, 1.24, 0.675] │ 0.377 │ └─────────────────────────────────────────┴─────────┘ ```` @@ -633,7 +633,7 @@ savefig("exercise_6ci.png") ```` ```` -"/home/runner/work/MLJTutorial.jl/MLJTutorial.jl/docs/src/notebooks/99_solution_to_exercises/exercise_6ci.png" +"/home/runner/work/MLJTutorial.jl/MLJTutorial.jl/docs/src/notebooks/MLJTutorial/99_solution_to_exercises/exercise_6ci.png" ```` ![](exercise_6ci.png) @@ -660,7 +660,7 @@ err_forest = ```` ```` -0.9994802279518762 +1.288531123202012 ```` #### Exercise 7 @@ -696,6 +696,7 @@ ProbabilisticPipeline( nrounds = 50, bagging_size = 1, early_stopping_rounds = 9223372036854775807, + early_stopping_tolerance = 0.0, L2 = 1.0, lambda = 0.0, gamma = 0.0, @@ -724,19 +725,19 @@ PerformanceEvaluation object with these fields: measurement, uncertainty_radius_95, per_fold, per_observation, fitted_params_per_fold, report_per_fold, train_test_rows, resampling, repeats -Tag: ProbabilisticPipeline-894 +Tag: ProbabilisticPipeline-169 Extract: ┌──────────────────────┬───────────┬─────────────┐ │ measure │ operation │ measurement │ ├──────────────────────┼───────────┼─────────────┤ -│ LogLoss( │ predict │ 0.814 │ +│ LogLoss( │ predict │ 0.863 │ │ tol = 2.22045e-16) │ │ │ └──────────────────────┴───────────┴─────────────┘ -┌────────────────────────────────────────────┬─────────┐ -│ per_fold │ 1.96*SE │ -├────────────────────────────────────────────┼─────────┤ -│ [0.964, 0.893, 0.824, 0.719, 0.755, 0.724] │ 0.0872 │ -└────────────────────────────────────────────┴─────────┘ +┌──────────────────────────────────────────┬─────────┐ +│ per_fold │ 1.96*SE │ +├──────────────────────────────────────────┼─────────┤ +│ [0.944, 1.0, 0.722, 0.816, 0.873, 0.821] │ 0.087 │ +└──────────────────────────────────────────┴─────────┘ ```` @@ -757,7 +758,7 @@ savefig("exercise_7c.png") ```` ```` -"/home/runner/work/MLJTutorial.jl/MLJTutorial.jl/docs/src/notebooks/99_solution_to_exercises/exercise_7c.png" +"/home/runner/work/MLJTutorial.jl/MLJTutorial.jl/docs/src/notebooks/MLJTutorial/99_solution_to_exercises/exercise_7c.png" ```` ![](exercise_7c.png) @@ -773,21 +774,21 @@ EvoTreeRegressor = @load EvoTreeRegressor tree_booster = EvoTreeRegressor(nrounds = 70) model = ContinuousEncoder |> tree_booster -r2 = range(model, :(evo_tree_regressor.colsample), lower=0.5, upper=1.0) +r2 = range(model, :(evo_tree_regressor.nbins), values = [32, 64, 128]) ```` ```` -NumericRange(0.5 ≤ evo_tree_regressor.colsample ≤ 1.0; origin=0.75, unit=0.25) +NominalRange(evo_tree_regressor.nbins = 32, 64, 128) ```` (a) ````@julia -r1 = range(model, :(evo_tree_regressor.max_depth), lower=1, upper=12) +r1 = range(model, :(evo_tree_regressor.max_depth), lower=4, upper=14) ```` ```` -NumericRange(1 ≤ evo_tree_regressor.max_depth ≤ 12; origin=6.5, unit=5.5) +NumericRange(4 ≤ evo_tree_regressor.max_depth ≤ 14; origin=9.0, unit=5.0) ```` (b) @@ -808,7 +809,7 @@ savefig("exercise_8c.png") ```` ```` -"/home/runner/work/MLJTutorial.jl/MLJTutorial.jl/docs/src/notebooks/99_solution_to_exercises/exercise_8c.png" +"/home/runner/work/MLJTutorial.jl/MLJTutorial.jl/docs/src/notebooks/MLJTutorial/99_solution_to_exercises/exercise_8c.png" ```` ![](exercise_8c.png) @@ -827,18 +828,18 @@ PerformanceEvaluation object with these fields: measurement, uncertainty_radius_95, per_fold, per_observation, fitted_params_per_fold, report_per_fold, train_test_rows, resampling, repeats -Tag: DeterministicPipeline-142 +Tag: DeterministicPipeline-714 Extract: ┌──────────┬───────────┬─────────────┐ │ measure │ operation │ measurement │ ├──────────┼───────────┼─────────────┤ -│ LPLoss( │ predict │ 80300.0 │ +│ LPLoss( │ predict │ 66800.0 │ │ p = 1) │ │ │ └──────────┴───────────┴─────────────┘ ┌─────────────────────────────┬─────────┐ │ per_fold │ 1.96*SE │ ├─────────────────────────────┼─────────┤ -│ [79700.0, 81000.0, 80300.0] │ 852.0 │ +│ [66200.0, 66700.0, 67500.0] │ 941.0 │ └─────────────────────────────┴─────────┘ ```` @@ -853,19 +854,19 @@ PerformanceEvaluation object with these fields: measurement, uncertainty_radius_95, per_fold, per_observation, fitted_params_per_fold, report_per_fold, train_test_rows, resampling, repeats -Tag: DeterministicTunedModel-393 +Tag: DeterministicTunedModel-634 Extract: ┌──────────┬───────────┬─────────────┐ │ measure │ operation │ measurement │ ├──────────┼───────────┼─────────────┤ -│ LPLoss( │ predict │ 126000.0 │ +│ LPLoss( │ predict │ 67600.0 │ │ p = 1) │ │ │ └──────────┴───────────┴─────────────┘ -┌──────────────────────────────┬──────────┐ -│ per_fold │ 1.96*SE │ -├──────────────────────────────┼──────────┤ -│ [66500.0, 75600.0, 236000.0] │ 132000.0 │ -└──────────────────────────────┴──────────┘ +┌─────────────────────────────┬─────────┐ +│ per_fold │ 1.96*SE │ +├─────────────────────────────┼─────────┤ +│ [67600.0, 67800.0, 67500.0] │ 214.0 │ +└─────────────────────────────┴─────────┘ ```` diff --git a/docs/src/notebooks/UsingMLJ/01_basics/notebook.md b/docs/src/notebooks/UsingMLJ/01_basics/notebook.md index 16df51d..41f5cce 100644 --- a/docs/src/notebooks/UsingMLJ/01_basics/notebook.md +++ b/docs/src/notebooks/UsingMLJ/01_basics/notebook.md @@ -186,8 +186,8 @@ fitted_params(mach) ```` (forest = Ensemble of Decision Trees Trees: 100 -Avg Leaves: 146.75 -Avg Depth: 14.67,) +Avg Leaves: 146.77 +Avg Depth: 14.49,) ```` ````@julia @@ -206,9 +206,9 @@ predict(mach, X)[1:3] ```` 3-element Vector{Float64}: - 26.787000000000003 - 22.353999999999996 - 34.422999999999995 + 27.016000000000005 + 22.846999999999998 + 34.468999999999994 ```` Predict in the `test` rows: @@ -224,7 +224,7 @@ mae(ypred, y[test]) ```` ```` -4.577440594059406 +4.553524752475247 ```` `mae` is actually just an alias: @@ -270,14 +270,14 @@ PerformanceEvaluation object with these fields: measurement, uncertainty_radius_95, per_fold, per_observation, fitted_params_per_fold, report_per_fold, train_test_rows, resampling, repeats -Tag: RandomForestRegressor-520 +Tag: RandomForestRegressor-998 Extract: ┌────────────┬───────────┬─────────────┐ │ measure │ operation │ measurement │ ├────────────┼───────────┼─────────────┤ -│ LPLoss( │ predict │ 4.58 │ +│ LPLoss( │ predict │ 4.55 │ │ p = 1) │ │ │ -│ RSquared() │ predict │ 0.333 │ +│ RSquared() │ predict │ 0.313 │ └────────────┴───────────┴─────────────┘ ```` @@ -298,20 +298,20 @@ PerformanceEvaluation object with these fields: measurement, uncertainty_radius_95, per_fold, per_observation, fitted_params_per_fold, report_per_fold, train_test_rows, resampling, repeats -Tag: RandomForestRegressor-935 +Tag: RandomForestRegressor-838 Extract: ┌───┬────────────┬───────────┬─────────────┐ │ │ measure │ operation │ measurement │ ├───┼────────────┼───────────┼─────────────┤ │ A │ LPLoss( │ predict │ 3.06 │ │ │ p = 1) │ │ │ -│ B │ RSquared() │ predict │ 0.645 │ +│ B │ RSquared() │ predict │ 0.644 │ └───┴────────────┴───────────┴─────────────┘ ┌───┬──────────────────────────────────────────┬─────────┐ │ │ per_fold │ 1.96*SE │ ├───┼──────────────────────────────────────────┼─────────┤ -│ A │ [2.23, 2.31, 3.25, 2.56, 5.06, 2.96] │ 0.922 │ -│ B │ [0.725, 0.808, 0.746, 0.78, 0.415, 0.39] │ 0.166 │ +│ A │ [2.19, 2.5, 3.49, 2.23, 5.0, 2.98] │ 0.937 │ +│ B │ [0.742, 0.792, 0.702, 0.848, 0.42, 0.36] │ 0.179 │ └───┴──────────────────────────────────────────┴─────────┘ ```` @@ -334,20 +334,20 @@ PerformanceEvaluation object with these fields: measurement, uncertainty_radius_95, per_fold, per_observation, fitted_params_per_fold, report_per_fold, train_test_rows, resampling, repeats -Tag: RandomForestRegressor-149 +Tag: RandomForestRegressor-818 Extract: ┌───┬────────────┬───────────┬─────────────┐ │ │ measure │ operation │ measurement │ ├───┼────────────┼───────────┼─────────────┤ │ A │ LPLoss( │ predict │ 2.45 │ │ │ p = 1) │ │ │ -│ B │ RSquared() │ predict │ 0.837 │ +│ B │ RSquared() │ predict │ 0.836 │ └───┴────────────┴───────────┴─────────────┘ ┌───┬────────────────────────────────────────────────────────────────────────┬── │ │ per_fold │ ⋯ ├───┼────────────────────────────────────────────────────────────────────────┼── -│ A │ [2.52, 2.34, 2.32, 2.43, 2.26, 2.8, 2.51, 2.6, 2.38, 2.38] │ ⋯ -│ B │ [0.774, 0.881, 0.867, 0.841, 0.857, 0.789, 0.854, 0.826, 0.854, 0.826] │ ⋯ +│ A │ [2.47, 2.34, 2.26, 2.94, 2.59, 2.29, 2.49, 2.22, 2.45, 2.43] │ ⋯ +│ B │ [0.801, 0.878, 0.856, 0.743, 0.831, 0.876, 0.867, 0.833, 0.866, 0.806] │ ⋯ └───┴────────────────────────────────────────────────────────────────────────┴── 1 column omitted @@ -359,8 +359,8 @@ e.uncertainty_radius_95 ```` 2-element Vector{Float64}: - 0.10405499084864722 - 0.022128005990802113 + 0.1351854798171381 + 0.027918917100305033 ```` # Interlude on scientific types @@ -606,7 +606,7 @@ first(yprob, 5) UnivariateFinite{ScientificTypesBase.Multiclass{2}}(<=50K=>1.0, >50K=>0.0) UnivariateFinite{ScientificTypesBase.Multiclass{2}}(<=50K=>1.0, >50K=>0.0) UnivariateFinite{ScientificTypesBase.Multiclass{2}}(<=50K=>0.94, >50K=>0.06) - UnivariateFinite{ScientificTypesBase.Multiclass{2}}(<=50K=>0.24, >50K=>0.76) + UnivariateFinite{ScientificTypesBase.Multiclass{2}}(<=50K=>0.25, >50K=>0.75) UnivariateFinite{ScientificTypesBase.Multiclass{2}}(<=50K=>1.0, >50K=>0.0) ```` @@ -629,7 +629,7 @@ accuracy(ypoint, y[test]) ```` ```` -0.780211905614987 +0.7822593028612377 ```` ````@julia @@ -637,7 +637,7 @@ log_loss(yprob, y[test]) ```` ```` -1.5521933547930022 +1.4905981300833329 ```` Evaluate with one command: @@ -656,12 +656,12 @@ PerformanceEvaluation object with these fields: measurement, uncertainty_radius_95, per_fold, per_observation, fitted_params_per_fold, report_per_fold, train_test_rows, resampling, repeats -Tag: RandomForestClassifier-460 +Tag: RandomForestClassifier-838 Extract: ┌──────────────────────┬──────────────┬─────────────┐ │ measure │ operation │ measurement │ ├──────────────────────┼──────────────┼─────────────┤ -│ Accuracy() │ predict_mode │ 0.781 │ +│ Accuracy() │ predict_mode │ 0.78 │ │ LogLoss( │ predict │ 1.54 │ │ tol = 2.22045e-16) │ │ │ └──────────────────────┴──────────────┴─────────────┘ diff --git a/docs/src/notebooks/UsingMLJ/02_model_composition/notebook.md b/docs/src/notebooks/UsingMLJ/02_model_composition/notebook.md index a14514f..3336650 100644 --- a/docs/src/notebooks/UsingMLJ/02_model_composition/notebook.md +++ b/docs/src/notebooks/UsingMLJ/02_model_composition/notebook.md @@ -145,7 +145,7 @@ PerformanceEvaluation object with these fields: measurement, uncertainty_radius_95, per_fold, per_observation, fitted_params_per_fold, report_per_fold, train_test_rows, resampling, repeats -Tag: DeterministicPipeline-821 +Tag: DeterministicPipeline-975 Extract: ┌──────────┬───────────┬─────────────┐ │ measure │ operation │ measurement │ @@ -209,7 +209,7 @@ PerformanceEvaluation object with these fields: measurement, uncertainty_radius_95, per_fold, per_observation, fitted_params_per_fold, report_per_fold, train_test_rows, resampling, repeats -Tag: TransformedTargetModelDeterministic-135 +Tag: TransformedTargetModelDeterministic-815 Extract: ┌──────────┬───────────┬─────────────┐ │ measure │ operation │ measurement │ diff --git a/docs/src/notebooks/UsingMLJ/03_model_tuning/notebook.md b/docs/src/notebooks/UsingMLJ/03_model_tuning/notebook.md index d11bde3..a562ab2 100644 --- a/docs/src/notebooks/UsingMLJ/03_model_tuning/notebook.md +++ b/docs/src/notebooks/UsingMLJ/03_model_tuning/notebook.md @@ -80,7 +80,7 @@ PerformanceEvaluation object with these fields: measurement, uncertainty_radius_95, per_fold, per_observation, fitted_params_per_fold, report_per_fold, train_test_rows, resampling, repeats -Tag: ProbabilisticPipeline-987 +Tag: ProbabilisticPipeline-707 Extract: ┌──────────┬──────────────┬─────────────┐ │ measure │ operation │ measurement │ @@ -147,7 +147,7 @@ savefig("learning_curve.svg"); ```` [ Info: Training machine(DeterministicTunedModel(model = DeterministicPipeline(continuous_encoder = ContinuousEncoder(drop_last = false, …), …), …), …). [ Info: Attempting to evaluate 30 models. - Evaluating over 30 metamodels: 0%[> ] ETA: N/A Evaluating over 30 metamodels: 3%[> ] ETA: 0:00:00 Evaluating over 30 metamodels: 7%[=> ] ETA: 0:00:01 Evaluating over 30 metamodels: 10%[==> ] ETA: 0:00:01 Evaluating over 30 metamodels: 13%[===> ] ETA: 0:00:01 Evaluating over 30 metamodels: 17%[====> ] ETA: 0:00:02 Evaluating over 30 metamodels: 20%[=====> ] ETA: 0:00:02 Evaluating over 30 metamodels: 23%[=====> ] ETA: 0:00:02 Evaluating over 30 metamodels: 27%[======> ] ETA: 0:00:02 Evaluating over 30 metamodels: 30%[=======> ] ETA: 0:00:03 Evaluating over 30 metamodels: 33%[========> ] ETA: 0:00:03 Evaluating over 30 metamodels: 37%[=========> ] ETA: 0:00:03 Evaluating over 30 metamodels: 40%[==========> ] ETA: 0:00:03 Evaluating over 30 metamodels: 43%[==========> ] ETA: 0:00:05 Evaluating over 30 metamodels: 47%[===========> ] ETA: 0:00:05 Evaluating over 30 metamodels: 50%[============> ] ETA: 0:00:05 Evaluating over 30 metamodels: 53%[=============> ] ETA: 0:00:05 Evaluating over 30 metamodels: 57%[==============> ] ETA: 0:00:05 Evaluating over 30 metamodels: 60%[===============> ] ETA: 0:00:05 Evaluating over 30 metamodels: 63%[===============> ] ETA: 0:00:05 Evaluating over 30 metamodels: 67%[================> ] ETA: 0:00:05 Evaluating over 30 metamodels: 70%[=================> ] ETA: 0:00:05 Evaluating over 30 metamodels: 73%[==================> ] ETA: 0:00:05 Evaluating over 30 metamodels: 77%[===================> ] ETA: 0:00:05 Evaluating over 30 metamodels: 80%[====================> ] ETA: 0:00:04 Evaluating over 30 metamodels: 83%[====================> ] ETA: 0:00:04 Evaluating over 30 metamodels: 87%[=====================> ] ETA: 0:00:03 Evaluating over 30 metamodels: 90%[======================> ] ETA: 0:00:03 Evaluating over 30 metamodels: 93%[=======================> ] ETA: 0:00:02 Evaluating over 30 metamodels: 97%[========================>] ETA: 0:00:01 Evaluating over 30 metamodels: 100%[=========================] Time: 0:00:34 + Evaluating over 30 metamodels: 0%[> ] ETA: N/A Evaluating over 30 metamodels: 3%[> ] ETA: 0:00:03 Evaluating over 30 metamodels: 7%[=> ] ETA: 0:00:02 Evaluating over 30 metamodels: 10%[==> ] ETA: 0:00:02 Evaluating over 30 metamodels: 13%[===> ] ETA: 0:00:01 Evaluating over 30 metamodels: 17%[====> ] ETA: 0:00:02 Evaluating over 30 metamodels: 20%[=====> ] ETA: 0:00:02 Evaluating over 30 metamodels: 23%[=====> ] ETA: 0:00:02 Evaluating over 30 metamodels: 27%[======> ] ETA: 0:00:02 Evaluating over 30 metamodels: 30%[=======> ] ETA: 0:00:02 Evaluating over 30 metamodels: 33%[========> ] ETA: 0:00:03 Evaluating over 30 metamodels: 37%[=========> ] ETA: 0:00:03 Evaluating over 30 metamodels: 40%[==========> ] ETA: 0:00:04 Evaluating over 30 metamodels: 43%[==========> ] ETA: 0:00:04 Evaluating over 30 metamodels: 47%[===========> ] ETA: 0:00:04 Evaluating over 30 metamodels: 50%[============> ] ETA: 0:00:04 Evaluating over 30 metamodels: 53%[=============> ] ETA: 0:00:04 Evaluating over 30 metamodels: 57%[==============> ] ETA: 0:00:05 Evaluating over 30 metamodels: 60%[===============> ] ETA: 0:00:05 Evaluating over 30 metamodels: 63%[===============> ] ETA: 0:00:04 Evaluating over 30 metamodels: 67%[================> ] ETA: 0:00:04 Evaluating over 30 metamodels: 70%[=================> ] ETA: 0:00:05 Evaluating over 30 metamodels: 73%[==================> ] ETA: 0:00:04 Evaluating over 30 metamodels: 77%[===================> ] ETA: 0:00:04 Evaluating over 30 metamodels: 80%[====================> ] ETA: 0:00:04 Evaluating over 30 metamodels: 83%[====================> ] ETA: 0:00:03 Evaluating over 30 metamodels: 87%[=====================> ] ETA: 0:00:03 Evaluating over 30 metamodels: 90%[======================> ] ETA: 0:00:02 Evaluating over 30 metamodels: 93%[=======================> ] ETA: 0:00:02 Evaluating over 30 metamodels: 97%[========================>] ETA: 0:00:01 Evaluating over 30 metamodels: 100%[=========================] Time: 0:00:29 ```` @@ -224,7 +224,7 @@ savefig("tuned_model_grid.svg"); ```` [ Info: Training machine(DeterministicTunedModel(model = DeterministicPipeline(continuous_encoder = ContinuousEncoder(drop_last = false, …), …), …), …). [ Info: Attempting to evaluate 36 models. - Evaluating over 36 metamodels: 6%[=> ] ETA: 0:00:55 Evaluating over 36 metamodels: 8%[==> ] ETA: 0:00:51 Evaluating over 36 metamodels: 11%[==> ] ETA: 0:00:59 Evaluating over 36 metamodels: 14%[===> ] ETA: 0:00:51 Evaluating over 36 metamodels: 17%[====> ] ETA: 0:00:47 Evaluating over 36 metamodels: 19%[====> ] ETA: 0:00:42 Evaluating over 36 metamodels: 22%[=====> ] ETA: 0:00:38 Evaluating over 36 metamodels: 25%[======> ] ETA: 0:00:40 Evaluating over 36 metamodels: 28%[======> ] ETA: 0:00:40 Evaluating over 36 metamodels: 31%[=======> ] ETA: 0:00:39 Evaluating over 36 metamodels: 33%[========> ] ETA: 0:00:37 Evaluating over 36 metamodels: 36%[=========> ] ETA: 0:00:36 Evaluating over 36 metamodels: 39%[=========> ] ETA: 0:00:33 Evaluating over 36 metamodels: 42%[==========> ] ETA: 0:00:31 Evaluating over 36 metamodels: 44%[===========> ] ETA: 0:00:29 Evaluating over 36 metamodels: 47%[===========> ] ETA: 0:00:27 Evaluating over 36 metamodels: 50%[============> ] ETA: 0:00:26 Evaluating over 36 metamodels: 53%[=============> ] ETA: 0:00:25 Evaluating over 36 metamodels: 56%[=============> ] ETA: 0:00:23 Evaluating over 36 metamodels: 58%[==============> ] ETA: 0:00:22 Evaluating over 36 metamodels: 61%[===============> ] ETA: 0:00:21 Evaluating over 36 metamodels: 64%[===============> ] ETA: 0:00:19 Evaluating over 36 metamodels: 67%[================> ] ETA: 0:00:17 Evaluating over 36 metamodels: 69%[=================> ] ETA: 0:00:16 Evaluating over 36 metamodels: 72%[==================> ] ETA: 0:00:15 Evaluating over 36 metamodels: 75%[==================> ] ETA: 0:00:13 Evaluating over 36 metamodels: 78%[===================> ] ETA: 0:00:11 Evaluating over 36 metamodels: 81%[====================> ] ETA: 0:00:10 Evaluating over 36 metamodels: 83%[====================> ] ETA: 0:00:09 Evaluating over 36 metamodels: 86%[=====================> ] ETA: 0:00:07 Evaluating over 36 metamodels: 89%[======================> ] ETA: 0:00:06 Evaluating over 36 metamodels: 92%[======================> ] ETA: 0:00:04 Evaluating over 36 metamodels: 94%[=======================> ] ETA: 0:00:03 Evaluating over 36 metamodels: 97%[========================>] ETA: 0:00:01 Evaluating over 36 metamodels: 100%[=========================] Time: 0:00:54 + Evaluating over 36 metamodels: 6%[=> ] ETA: 0:00:37 Evaluating over 36 metamodels: 8%[==> ] ETA: 0:00:40 Evaluating over 36 metamodels: 11%[==> ] ETA: 0:00:40 Evaluating over 36 metamodels: 14%[===> ] ETA: 0:00:48 Evaluating over 36 metamodels: 17%[====> ] ETA: 0:00:45 Evaluating over 36 metamodels: 19%[====> ] ETA: 0:00:41 Evaluating over 36 metamodels: 22%[=====> ] ETA: 0:00:40 Evaluating over 36 metamodels: 25%[======> ] ETA: 0:00:40 Evaluating over 36 metamodels: 28%[======> ] ETA: 0:00:38 Evaluating over 36 metamodels: 31%[=======> ] ETA: 0:00:35 Evaluating over 36 metamodels: 33%[========> ] ETA: 0:00:32 Evaluating over 36 metamodels: 36%[=========> ] ETA: 0:00:29 Evaluating over 36 metamodels: 39%[=========> ] ETA: 0:00:28 Evaluating over 36 metamodels: 42%[==========> ] ETA: 0:00:27 Evaluating over 36 metamodels: 44%[===========> ] ETA: 0:00:26 Evaluating over 36 metamodels: 47%[===========> ] ETA: 0:00:25 Evaluating over 36 metamodels: 50%[============> ] ETA: 0:00:25 Evaluating over 36 metamodels: 53%[=============> ] ETA: 0:00:24 Evaluating over 36 metamodels: 56%[=============> ] ETA: 0:00:22 Evaluating over 36 metamodels: 58%[==============> ] ETA: 0:00:21 Evaluating over 36 metamodels: 61%[===============> ] ETA: 0:00:19 Evaluating over 36 metamodels: 64%[===============> ] ETA: 0:00:18 Evaluating over 36 metamodels: 67%[================> ] ETA: 0:00:17 Evaluating over 36 metamodels: 69%[=================> ] ETA: 0:00:15 Evaluating over 36 metamodels: 72%[==================> ] ETA: 0:00:14 Evaluating over 36 metamodels: 75%[==================> ] ETA: 0:00:13 Evaluating over 36 metamodels: 78%[===================> ] ETA: 0:00:12 Evaluating over 36 metamodels: 81%[====================> ] ETA: 0:00:10 Evaluating over 36 metamodels: 83%[====================> ] ETA: 0:00:09 Evaluating over 36 metamodels: 86%[=====================> ] ETA: 0:00:07 Evaluating over 36 metamodels: 89%[======================> ] ETA: 0:00:06 Evaluating over 36 metamodels: 92%[======================> ] ETA: 0:00:04 Evaluating over 36 metamodels: 94%[=======================> ] ETA: 0:00:03 Evaluating over 36 metamodels: 97%[========================>] ETA: 0:00:01 Evaluating over 36 metamodels: 100%[=========================] Time: 0:00:52 ```` @@ -306,7 +306,7 @@ savefig("tuned_model_random.svg"); ```` [ Info: Training machine(DeterministicTunedModel(model = DeterministicPipeline(continuous_encoder = ContinuousEncoder(drop_last = false, …), …), …), …). [ Info: Attempting to evaluate 40 models. - Evaluating over 40 metamodels: 0%[> ] ETA: N/A Evaluating over 40 metamodels: 2%[> ] ETA: 0:00:35 Evaluating over 40 metamodels: 5%[=> ] ETA: 0:00:48 Evaluating over 40 metamodels: 8%[=> ] ETA: 0:00:44 Evaluating over 40 metamodels: 10%[==> ] ETA: 0:00:53 Evaluating over 40 metamodels: 12%[===> ] ETA: 0:00:53 Evaluating over 40 metamodels: 15%[===> ] ETA: 0:00:50 Evaluating over 40 metamodels: 18%[====> ] ETA: 0:00:48 Evaluating over 40 metamodels: 20%[=====> ] ETA: 0:00:50 Evaluating over 40 metamodels: 22%[=====> ] ETA: 0:00:47 Evaluating over 40 metamodels: 25%[======> ] ETA: 0:00:46 Evaluating over 40 metamodels: 28%[======> ] ETA: 0:00:43 Evaluating over 40 metamodels: 30%[=======> ] ETA: 0:00:44 Evaluating over 40 metamodels: 32%[========> ] ETA: 0:00:42 Evaluating over 40 metamodels: 35%[========> ] ETA: 0:00:40 Evaluating over 40 metamodels: 38%[=========> ] ETA: 0:00:39 Evaluating over 40 metamodels: 40%[==========> ] ETA: 0:00:37 Evaluating over 40 metamodels: 42%[==========> ] ETA: 0:00:37 Evaluating over 40 metamodels: 45%[===========> ] ETA: 0:00:35 Evaluating over 40 metamodels: 48%[===========> ] ETA: 0:00:33 Evaluating over 40 metamodels: 50%[============> ] ETA: 0:00:32 Evaluating over 40 metamodels: 52%[=============> ] ETA: 0:00:31 Evaluating over 40 metamodels: 55%[=============> ] ETA: 0:00:29 Evaluating over 40 metamodels: 58%[==============> ] ETA: 0:00:27 Evaluating over 40 metamodels: 60%[===============> ] ETA: 0:00:26 Evaluating over 40 metamodels: 62%[===============> ] ETA: 0:00:25 Evaluating over 40 metamodels: 65%[================> ] ETA: 0:00:23 Evaluating over 40 metamodels: 68%[================> ] ETA: 0:00:21 Evaluating over 40 metamodels: 70%[=================> ] ETA: 0:00:19 Evaluating over 40 metamodels: 72%[==================> ] ETA: 0:00:17 Evaluating over 40 metamodels: 75%[==================> ] ETA: 0:00:16 Evaluating over 40 metamodels: 78%[===================> ] ETA: 0:00:14 Evaluating over 40 metamodels: 80%[====================> ] ETA: 0:00:13 Evaluating over 40 metamodels: 82%[====================> ] ETA: 0:00:11 Evaluating over 40 metamodels: 85%[=====================> ] ETA: 0:00:10 Evaluating over 40 metamodels: 88%[=====================> ] ETA: 0:00:08 Evaluating over 40 metamodels: 90%[======================> ] ETA: 0:00:06 Evaluating over 40 metamodels: 92%[=======================> ] ETA: 0:00:05 Evaluating over 40 metamodels: 95%[=======================> ] ETA: 0:00:03 Evaluating over 40 metamodels: 98%[========================>] ETA: 0:00:02 Evaluating over 40 metamodels: 100%[=========================] Time: 0:01:02 + Evaluating over 40 metamodels: 0%[> ] ETA: N/A Evaluating over 40 metamodels: 2%[> ] ETA: 0:00:34 Evaluating over 40 metamodels: 5%[=> ] ETA: 0:00:48 Evaluating over 40 metamodels: 8%[=> ] ETA: 0:00:52 Evaluating over 40 metamodels: 10%[==> ] ETA: 0:00:53 Evaluating over 40 metamodels: 12%[===> ] ETA: 0:00:52 Evaluating over 40 metamodels: 15%[===> ] ETA: 0:00:49 Evaluating over 40 metamodels: 18%[====> ] ETA: 0:00:50 Evaluating over 40 metamodels: 20%[=====> ] ETA: 0:00:49 Evaluating over 40 metamodels: 22%[=====> ] ETA: 0:00:46 Evaluating over 40 metamodels: 25%[======> ] ETA: 0:00:45 Evaluating over 40 metamodels: 28%[======> ] ETA: 0:00:42 Evaluating over 40 metamodels: 30%[=======> ] ETA: 0:00:43 Evaluating over 40 metamodels: 32%[========> ] ETA: 0:00:41 Evaluating over 40 metamodels: 35%[========> ] ETA: 0:00:40 Evaluating over 40 metamodels: 38%[=========> ] ETA: 0:00:38 Evaluating over 40 metamodels: 40%[==========> ] ETA: 0:00:36 Evaluating over 40 metamodels: 42%[==========> ] ETA: 0:00:37 Evaluating over 40 metamodels: 45%[===========> ] ETA: 0:00:34 Evaluating over 40 metamodels: 48%[===========> ] ETA: 0:00:33 Evaluating over 40 metamodels: 50%[============> ] ETA: 0:00:31 Evaluating over 40 metamodels: 52%[=============> ] ETA: 0:00:30 Evaluating over 40 metamodels: 55%[=============> ] ETA: 0:00:28 Evaluating over 40 metamodels: 58%[==============> ] ETA: 0:00:27 Evaluating over 40 metamodels: 60%[===============> ] ETA: 0:00:25 Evaluating over 40 metamodels: 62%[===============> ] ETA: 0:00:24 Evaluating over 40 metamodels: 65%[================> ] ETA: 0:00:22 Evaluating over 40 metamodels: 68%[================> ] ETA: 0:00:20 Evaluating over 40 metamodels: 70%[=================> ] ETA: 0:00:19 Evaluating over 40 metamodels: 72%[==================> ] ETA: 0:00:17 Evaluating over 40 metamodels: 75%[==================> ] ETA: 0:00:15 Evaluating over 40 metamodels: 78%[===================> ] ETA: 0:00:14 Evaluating over 40 metamodels: 80%[====================> ] ETA: 0:00:12 Evaluating over 40 metamodels: 82%[====================> ] ETA: 0:00:11 Evaluating over 40 metamodels: 85%[=====================> ] ETA: 0:00:09 Evaluating over 40 metamodels: 88%[=====================> ] ETA: 0:00:08 Evaluating over 40 metamodels: 90%[======================> ] ETA: 0:00:06 Evaluating over 40 metamodels: 92%[=======================> ] ETA: 0:00:05 Evaluating over 40 metamodels: 95%[=======================> ] ETA: 0:00:03 Evaluating over 40 metamodels: 98%[========================>] ETA: 0:00:02 Evaluating over 40 metamodels: 100%[=========================] Time: 0:01:01 ```` @@ -339,7 +339,7 @@ PerformanceEvaluation object with these fields: measurement, uncertainty_radius_95, per_fold, per_observation, fitted_params_per_fold, report_per_fold, train_test_rows, resampling, repeats -Tag: DeterministicTunedModel-600 +Tag: DeterministicTunedModel-359 Extract: ┌──────────┬───────────┬─────────────┐ │ measure │ operation │ measurement │ @@ -362,9 +362,9 @@ Comparing with the baseline computed earlier: ```` ```` -ebase = PerformanceEvaluation("ProbabilisticPipeline-987", 0.568 ± 0.0332) -e0 = PerformanceEvaluation("DeterministicPipeline-371", 0.184 ± 0.0281) -e1 = PerformanceEvaluation("DeterministicTunedModel-600", 0.175 ± 0.021) +ebase = PerformanceEvaluation("ProbabilisticPipeline-707", 0.568 ± 0.0332) +e0 = PerformanceEvaluation("DeterministicPipeline-582", 0.184 ± 0.0281) +e1 = PerformanceEvaluation("DeterministicTunedModel-359", 0.175 ± 0.021) ```` @@ -380,8 +380,8 @@ describe.([e0, e1]) |> pretty │ String │ Measurement{Float64} │ │ Textual │ Continuous │ ├─────────────────────────────┼──────────────────────┤ -│ DeterministicPipeline-371 │ 0.184±0.028 │ -│ DeterministicTunedModel-600 │ 0.175±0.021 │ +│ DeterministicPipeline-582 │ 0.184±0.028 │ +│ DeterministicTunedModel-359 │ 0.175±0.021 │ └─────────────────────────────┴──────────────────────┘ ```` diff --git a/docs/src/notebooks/lightning_tour/notebook.md b/docs/src/notebooks/lightning_tour/notebook.md index f5da82c..8a20dfa 100644 --- a/docs/src/notebooks/lightning_tour/notebook.md +++ b/docs/src/notebooks/lightning_tour/notebook.md @@ -27,6 +27,7 @@ EvoTreeRegressor( nrounds = 100, bagging_size = 1, early_stopping_rounds = 9223372036854775807, + early_stopping_tolerance = 0.0, L2 = 1.0, lambda = 0.0, gamma = 0.0, @@ -56,6 +57,7 @@ EvoTreeRegressor( nrounds = 50, bagging_size = 1, early_stopping_rounds = 9223372036854775807, + early_stopping_tolerance = 0.0, L2 = 1.0, lambda = 0.0, gamma = 0.0, @@ -100,6 +102,7 @@ DeterministicIteratedModel( nrounds = 50, bagging_size = 1, early_stopping_rounds = 9223372036854775807, + early_stopping_tolerance = 0.0, L2 = 1.0, lambda = 0.0, gamma = 0.0, @@ -243,8 +246,8 @@ mach = machine(self_tuning_pipe, X, y) untrained Machine; does not cache data model: DeterministicTunedModel(model = DeterministicPipeline(continuous_encoder = ContinuousEncoder(drop_last = false, …), …), …) args: - 1: Source @691 ⏎ ScientificTypesBase.Table{AbstractVector{ScientificTypesBase.Continuous}} - 2: Source @950 ⏎ AbstractVector{ScientificTypesBase.Continuous} + 1: Source @763 ⏎ ScientificTypesBase.Table{AbstractVector{ScientificTypesBase.Continuous}} + 2: Source @207 ⏎ AbstractVector{ScientificTypesBase.Continuous} ```` @@ -258,9 +261,9 @@ first(yhat, 3) ```` 3-element Vector{Float32}: - -0.75853795 - -0.5854095 - -0.99169284 + -2.2105958 + 0.38274634 + -1.1552228 ```` Evaluating the "self-tuning" pipeline model's performance using all data and 5-fold @@ -281,20 +284,20 @@ PerformanceEvaluation object with these fields: measurement, uncertainty_radius_95, per_fold, per_observation, fitted_params_per_fold, report_per_fold, train_test_rows, resampling, repeats -Tag: DeterministicTunedModel-103 +Tag: DeterministicTunedModel-807 Extract: ┌───┬────────────┬───────────┬─────────────┐ │ │ measure │ operation │ measurement │ ├───┼────────────┼───────────┼─────────────┤ -│ A │ LPLoss( │ predict │ 0.187 │ +│ A │ LPLoss( │ predict │ 0.23 │ │ │ p = 1) │ │ │ -│ B │ RSquared() │ predict │ 0.939 │ +│ B │ RSquared() │ predict │ 0.957 │ └───┴────────────┴───────────┴─────────────┘ ┌───┬─────────────────────────────────────┬─────────┐ │ │ per_fold │ 1.96*SE │ ├───┼─────────────────────────────────────┼─────────┤ -│ A │ [0.182, 0.244, 0.111, 0.212, 0.187] │ 0.0481 │ -│ B │ [0.925, 0.899, 0.974, 0.943, 0.953] │ 0.0278 │ +│ A │ [0.224, 0.198, 0.295, 0.189, 0.247] │ 0.0417 │ +│ B │ [0.974, 0.967, 0.929, 0.963, 0.953] │ 0.0172 │ └───┴─────────────────────────────────────┴─────────┘ ```` @@ -316,7 +319,7 @@ describe.(evaluations) |> pretty ```` [ Info: Performing evaluations using 1 thread. - Evaluating over 5 folds: 40%[==========> ] ETA: 0:00:28 Evaluating over 5 folds: 60%[===============> ] ETA: 0:00:17 Evaluating over 5 folds: 80%[====================> ] ETA: 0:00:07 Evaluating over 5 folds: 100%[=========================] Time: 0:00:35 + Evaluating over 5 folds: 40%[==========> ] ETA: 0:00:12 Evaluating over 5 folds: 60%[===============> ] ETA: 0:00:09 Evaluating over 5 folds: 80%[====================> ] ETA: 0:00:04 Evaluating over 5 folds: 100%[=========================] Time: 0:00:21 [ Info: Performing evaluations using 1 thread. Evaluating over 5 folds: 40%[==========> ] ETA: 0:00:01 Evaluating over 5 folds: 100%[=========================] Time: 0:00:00 ┌─────────┬──────────────────────┬──────────────────────┐ @@ -324,8 +327,8 @@ describe.(evaluations) |> pretty │ String │ Measurement{Float64} │ Measurement{Float64} │ │ Textual │ Continuous │ Continuous │ ├─────────┼──────────────────────┼──────────────────────┤ -│ booster │ 0.187±0.048 │ 0.939±0.028 │ -│ dummy │ 0.88±0.11 │ -0.11±0.11 │ +│ booster │ 0.23±0.042 │ 0.957±0.017 │ +│ dummy │ 1.29±0.2 │ -0.13±0.17 │ └─────────┴──────────────────────┴──────────────────────┘ ````