diff --git a/.gitignore b/.gitignore index b0f526e..816a03b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,4 @@ -/Manifest.toml +Manifest.toml .ipynb_checkpoints *~ #* diff --git a/docs/src/notebooks/MLJTutorial/01_data_representation/notebook.md b/docs/src/notebooks/MLJTutorial/01_data_representation/notebook.md index ccd435f..ca841c7 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_AutsNd/horse.csv" +"/tmp/jl_nAeUTc/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.56044 0.53664 0.852799 - 0.83311 0.655101 0.199531 + 0.84235 0.324562 0.731728 + 0.233998 0.746378 0.485095 ```` ````@julia @@ -550,8 +550,8 @@ Asparse = sparse(A) ```` 2×3 SparseArrays.SparseMatrixCSC{Float64, Int64} with 6 stored entries: - 0.56044 0.53664 0.852799 - 0.83311 0.655101 0.199531 + 0.84235 0.324562 0.731728 + 0.233998 0.746378 0.485095 ```` ````@julia diff --git a/docs/src/notebooks/MLJTutorial/02_models/learning_curve.png b/docs/src/notebooks/MLJTutorial/02_models/learning_curve.png index f503949..85b533a 100755 Binary files a/docs/src/notebooks/MLJTutorial/02_models/learning_curve.png and b/docs/src/notebooks/MLJTutorial/02_models/learning_curve.png differ diff --git a/docs/src/notebooks/MLJTutorial/02_models/notebook.md b/docs/src/notebooks/MLJTutorial/02_models/notebook.md index 8634958..13a1648 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 @598 ⏎ ScientificTypesBase.Table{AbstractVector{ScientificTypesBase.Continuous}} - 2: Source @719 ⏎ AbstractVector{ScientificTypesBase.Multiclass{3}} + 1: Source @763 ⏎ ScientificTypesBase.Table{AbstractVector{ScientificTypesBase.Continuous}} + 2: Source @104 ⏎ 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.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 +[ Info: Loss is 1.564 +[ Info: Loss is 1.405 +[ Info: Loss is 1.245 +[ Info: Loss is 1.125 +[ Info: Loss is 1.073 +[ Info: Loss is 1.018 +[ Info: Loss is 1.019 +[ Info: Loss is 0.9751 +[ Info: Loss is 1.015 +[ Info: Loss is 0.9778 +[ Info: Loss is 0.9424 +[ Info: Loss is 0.9263 ```` @@ -676,9 +676,9 @@ yhat[1:3] ```` 3-element CategoricalDistributions.UnivariateFiniteVector{ScientificTypesBase.Multiclass{3}, String, UInt32, Float32}: - 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) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.326, Iris-versicolor=>0.331, Iris-virginica=>0.343) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.533, Iris-versicolor=>0.291, Iris-virginica=>0.177) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.524, Iris-versicolor=>0.293, Iris-virginica=>0.183) ```` We'll have more to say on the form of this prediction shortly. @@ -701,7 +701,7 @@ report(mach) ```` ```` -(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],) +(training_losses = Float32[1.2405895, 1.5638204, 1.4046175, 1.2446647, 1.125359, 1.0727392, 1.0180935, 1.0194263, 0.9750622, 1.0149823, 0.9778134, 0.94241244, 0.9262781],) ```` 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.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) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.314, Iris-versicolor=>0.33, Iris-virginica=>0.356) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.531, Iris-versicolor=>0.291, Iris-virginica=>0.178) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.322, Iris-versicolor=>0.332, Iris-virginica=>0.346) ```` Machines remember the last set of hyperparameters used during fit, @@ -737,10 +737,10 @@ fit!(mach, rows=train, verbosity=2); ```` [ 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 +[ Info: Loss is 0.926 +[ Info: Loss is 0.9323 +[ Info: Loss is 0.8731 +[ Info: Loss is 0.8909 ```` @@ -771,10 +771,10 @@ fit!(mach, rows=train, verbosity=2); ```` [ 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 +[ Info: Loss is 0.8501 +[ Info: Loss is 0.8156 +[ Info: Loss is 0.7756 +[ Info: Loss is 0.7181 ```` @@ -789,26 +789,26 @@ fit!(mach, rows=train, verbosity=2); ```` [ 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.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.7341 +[ Info: Loss is 1.152 +[ Info: Loss is 0.9842 +[ Info: Loss is 0.948 +[ Info: Loss is 0.8713 +[ Info: Loss is 0.8544 +[ Info: Loss is 0.8761 +[ Info: Loss is 0.7668 +[ Info: Loss is 0.7384 +[ Info: Loss is 0.6662 +[ Info: Loss is 0.6725 +[ Info: Loss is 0.7011 +[ Info: Loss is 0.6599 +[ Info: Loss is 0.6516 +[ Info: Loss is 0.6764 +[ Info: Loss is 0.6492 +[ Info: Loss is 0.6193 +[ Info: Loss is 0.6555 +[ Info: Loss is 0.6376 +[ Info: Loss is 0.6776 +[ Info: Loss is 0.7155 ```` @@ -827,7 +827,7 @@ yhat[1] ```` ```` -UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.111, Iris-versicolor=>0.546, Iris-virginica=>0.343) +UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.155, Iris-versicolor=>0.582, Iris-virginica=>0.262) ```` What's going on here? @@ -858,7 +858,7 @@ pdf(yhat[1], "Iris-virginica") ```` ```` -0.34308216f0 +0.26227638f0 ```` To get the most likely observation, we do @@ -879,10 +879,10 @@ broadcast(pdf, yhat[1:4], "Iris-versicolor") ```` 4-element Vector{Float32}: - 0.5456025 - 0.0039443267 - 0.0042432365 - 0.0050151083 + 0.58242285 + 0.03553577 + 0.03338368 + 0.035628445 ```` ````@julia @@ -921,10 +921,10 @@ pdf(yhat, L)[1:4, :] ```` 4×3 Matrix{Float32}: - 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 + 0.155301 0.582423 0.262276 + 0.963971 0.0355358 0.000493214 + 0.966181 0.0333837 0.000435089 + 0.963876 0.0356284 0.000495223 ```` 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.34627145614243066 +0.3571473942077973 ```` To apply a deterministic measure, we first need to obtain point-estimates: @@ -973,12 +973,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: NeuralNetworkClassifier-484 +Tag: NeuralNetworkClassifier-481 Extract: ┌─────────────────────────┬──────────────┬─────────────┐ │ measure │ operation │ measurement │ ├─────────────────────────┼──────────────┼─────────────┤ -│ LogLoss( │ predict │ 0.346 │ +│ LogLoss( │ predict │ 0.357 │ │ tol = 2.22045e-16) │ │ │ │ MisclassificationRate() │ predict_mode │ 0.0444 │ │ BrierScore() │ predict │ -0.187 │ @@ -1002,23 +1002,23 @@ 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-252 +Tag: NeuralNetworkClassifier-855 Extract: ┌───┬─────────────────────────┬──────────────┬─────────────┐ │ │ measure │ operation │ measurement │ ├───┼─────────────────────────┼──────────────┼─────────────┤ -│ A │ LogLoss( │ predict │ 0.289 │ +│ A │ LogLoss( │ predict │ 0.319 │ │ │ tol = 2.22045e-16) │ │ │ -│ B │ MisclassificationRate() │ predict_mode │ 0.0333 │ -│ C │ BrierScore() │ predict │ -0.152 │ +│ B │ MisclassificationRate() │ predict_mode │ 0.04 │ +│ C │ BrierScore() │ predict │ -0.168 │ └───┴─────────────────────────┴──────────────┴─────────────┘ -┌───┬────────────────────────────────────────────────────────┬─────────┐ -│ │ per_fold │ 1.96*SE │ -├───┼────────────────────────────────────────────────────────┼─────────┤ -│ 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 │ -└───┴────────────────────────────────────────────────────────┴─────────┘ +┌───┬───────────────────────────────────────────────────────┬─────────┐ +│ │ per_fold │ 1.96*SE │ +├───┼───────────────────────────────────────────────────────┼─────────┤ +│ A │ [0.363, 0.271, 0.265, 0.305, 0.32, 0.388] │ 0.0432 │ +│ B │ [0.04, 0.04, 0.0, 0.08, 0.04, 0.04] │ 0.0222 │ +│ C │ Float32[-0.205, -0.135, -0.139, -0.17, -0.15, -0.206] │ 0.0279 │ +└───┴───────────────────────────────────────────────────────┴─────────┘ ```` @@ -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-228 +Tag: NeuralNetworkClassifier-990 Extract: ┌───┬─────────────────────────┬──────────────┬─────────────┐ │ │ measure │ operation │ measurement │ ├───┼─────────────────────────┼──────────────┼─────────────┤ -│ A │ LogLoss( │ predict │ 0.342 │ +│ A │ LogLoss( │ predict │ 0.316 │ │ │ tol = 2.22045e-16) │ │ │ -│ B │ MisclassificationRate() │ predict_mode │ 0.0467 │ -│ C │ BrierScore() │ predict │ -0.182 │ +│ B │ MisclassificationRate() │ predict_mode │ 0.0422 │ +│ C │ BrierScore() │ predict │ -0.172 │ └───┴─────────────────────────┴──────────────┴─────────────┘ ┌───┬─────────────────────────────────────────────────────────────────────────── │ │ per_fold ⋯ ├───┼─────────────────────────────────────────────────────────────────────────── -│ 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, ⋯ +│ A │ [0.363, 0.328, 0.281, 0.313, 0.355, 0.22, 0.29, 0.403, 0.309, 0.386, 0.4 ⋯ +│ B │ [0.0, 0.0, 0.04, 0.0, 0.08, 0.0, 0.04, 0.12, 0.0, 0.04, 0.12, 0.08, 0.08 ⋯ +│ C │ Float32[-0.21, -0.181, -0.144, -0.152, -0.208, -0.103, -0.164, -0.257, - ⋯ └───┴─────────────────────────────────────────────────────────────────────────── 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.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) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.212, Iris-versicolor=>0.565, Iris-virginica=>0.223) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.989, Iris-versicolor=>0.0114, Iris-virginica=>4.52e-8) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.988, Iris-versicolor=>0.0125, Iris-virginica=>5.2e-8) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.986, Iris-versicolor=>0.0142, Iris-virginica=>6.58e-8) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.236, Iris-versicolor=>0.564, Iris-virginica=>0.2) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.00401, Iris-versicolor=>0.257, Iris-virginica=>0.739) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.99, Iris-versicolor=>0.00983, Iris-virginica=>3.51e-8) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.989, Iris-versicolor=>0.0115, Iris-virginica=>4.51e-8) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.0575, Iris-versicolor=>0.445, Iris-virginica=>0.497) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.3, Iris-versicolor=>0.612, Iris-virginica=>0.0877) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.00131, Iris-versicolor=>0.194, Iris-virginica=>0.805) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.00405, Iris-versicolor=>0.259, Iris-virginica=>0.737) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.00183, Iris-versicolor=>0.21, Iris-virginica=>0.788) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.15, Iris-versicolor=>0.514, Iris-virginica=>0.336) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.988, Iris-versicolor=>0.0124, Iris-virginica=>5.19e-8) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.333, Iris-versicolor=>0.615, Iris-virginica=>0.052) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.00342, Iris-versicolor=>0.243, Iris-virginica=>0.754) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.00366, Iris-versicolor=>0.249, Iris-virginica=>0.748) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.0363, Iris-versicolor=>0.416, Iris-virginica=>0.548) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.209, Iris-versicolor=>0.555, Iris-virginica=>0.236) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.392, Iris-versicolor=>0.584, Iris-virginica=>0.024) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.171, Iris-versicolor=>0.546, Iris-virginica=>0.282) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.225, Iris-versicolor=>0.589, Iris-virginica=>0.186) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.00249, Iris-versicolor=>0.225, Iris-virginica=>0.772) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.983, Iris-versicolor=>0.017, Iris-virginica=>8.92e-8) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.00176, Iris-versicolor=>0.208, Iris-virginica=>0.79) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.262, Iris-versicolor=>0.597, Iris-virginica=>0.14) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.0433, Iris-versicolor=>0.405, Iris-virginica=>0.552) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.00694, Iris-versicolor=>0.287, Iris-virginica=>0.706) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.00519, Iris-versicolor=>0.269, Iris-virginica=>0.726) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.161, Iris-versicolor=>0.568, Iris-virginica=>0.271) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.984, Iris-versicolor=>0.0164, Iris-virginica=>8.65e-8) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.176, Iris-versicolor=>0.569, Iris-virginica=>0.255) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.236, Iris-versicolor=>0.593, Iris-virginica=>0.17) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.00228, Iris-versicolor=>0.222, Iris-virginica=>0.776) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.04, Iris-versicolor=>0.419, Iris-virginica=>0.541) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.00363, Iris-versicolor=>0.249, Iris-virginica=>0.748) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.302, Iris-versicolor=>0.606, Iris-virginica=>0.0924) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.988, Iris-versicolor=>0.0124, Iris-virginica=>5.31e-8) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.987, Iris-versicolor=>0.013, Iris-virginica=>5.6e-8) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.00524, Iris-versicolor=>0.271, Iris-virginica=>0.724) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.985, Iris-versicolor=>0.0155, Iris-virginica=>7.67e-8) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.0264, Iris-versicolor=>0.39, Iris-virginica=>0.584) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.245, Iris-versicolor=>0.582, Iris-virginica=>0.173) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(Iris-setosa=>0.0246, Iris-versicolor=>0.38, Iris-virginica=>0.595) ```` ### 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 = [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]) +(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.996922160303613, 0.8577055250248313, 0.7981519638729986, 0.7620389845823741, 0.7323274239258524, 0.6767194293543304, 0.6456183342973714, 0.6019803869670477, 0.6148576306918716, 0.5858385363538815, 0.5420341283852436, 0.5502000369070692, 0.5408171567564948, 0.485989693319718, 0.4936070614522306, 0.4330706602760043, 0.4150256223224028, 0.3341514384124167, 0.2983904685917199, 0.2815979750419263, 0.27383412873432805, 0.2781026630466714, 0.2515121244169944, 0.25689560519828347, 0.2283805057524257, 0.2597360768185133, 0.24229163132135162]) ```` ````@julia @@ -1219,15 +1219,15 @@ y4 = [n_devices(row.salary) for row in eachrow(X4)] ```` 10-element Vector{Int64}: 1 - 0 - 0 + 1 2 1 + 2 0 0 - 2 - 2 - 2 + 0 + 1 + 4 ```` (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.542161 │ 0.804485 │ male │ -│ 2 │ 0.541591 │ 0.199257 │ female │ -│ 3 │ 0.472845 │ 0.425963 │ female │ -│ 4 │ 0.075832 │ 0.866623 │ male │ +│ 1 │ 0.303334 │ 0.803837 │ male │ +│ 2 │ 0.765226 │ 0.061673 │ female │ +│ 3 │ 0.88446 │ 0.716328 │ female │ +│ 4 │ 0.255475 │ 0.239904 │ male │ └───────┴────────────┴────────────┴──────────────────────────────────┘ ```` diff --git a/docs/src/notebooks/MLJTutorial/03_pipelines/notebook.md b/docs/src/notebooks/MLJTutorial/03_pipelines/notebook.md index b829bb6..4f4cbf6 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.48994182660190133 -std(x) = 0.3012292457201098 +mean(x) = 0.52573272422357 +std(x) = 0.3020501201265377 ```` @@ -46,7 +46,7 @@ xhat = transform(mach, x); ```` [ Info: Training machine(Standardizer(features = Symbol[], …), …). -mean(xhat) = -9.103828801926283e-17 +mean(xhat) = -1.8596235662471373e-16 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-366 +Tag: DeterministicPipeline-661 Extract: ┌──────────┬───────────┬─────────────┐ │ measure │ operation │ measurement │ @@ -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-710 +Tag: DeterministicPipeline-106 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-846 +Tag: DeterministicPipeline-264 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-649 +Tag: DeterministicPipeline-300 Extract: ┌──────────┬───────────┬─────────────┐ │ measure │ operation │ measurement │ diff --git a/docs/src/notebooks/MLJTutorial/04_tuning/gamma_sampler.png b/docs/src/notebooks/MLJTutorial/04_tuning/gamma_sampler.png index c26d39f..253f458 100644 Binary files a/docs/src/notebooks/MLJTutorial/04_tuning/gamma_sampler.png and b/docs/src/notebooks/MLJTutorial/04_tuning/gamma_sampler.png differ diff --git a/docs/src/notebooks/MLJTutorial/04_tuning/learning_curve2.png b/docs/src/notebooks/MLJTutorial/04_tuning/learning_curve2.png index d7f51ab..fec7291 100644 Binary files a/docs/src/notebooks/MLJTutorial/04_tuning/learning_curve2.png and b/docs/src/notebooks/MLJTutorial/04_tuning/learning_curve2.png differ diff --git a/docs/src/notebooks/MLJTutorial/04_tuning/notebook.md b/docs/src/notebooks/MLJTutorial/04_tuning/notebook.md index 908f6e0..990c886 100644 --- a/docs/src/notebooks/MLJTutorial/04_tuning/notebook.md +++ b/docs/src/notebooks/MLJTutorial/04_tuning/notebook.md @@ -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-992 +Tag: ProbabilisticPipeline-509 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-915 +Tag: ProbabilisticTunedModel-395 Extract: ┌──────────────────────┬───────────┬─────────────┐ │ measure │ operation │ measurement │ diff --git a/docs/src/notebooks/MLJTutorial/04_tuning/tuning.png b/docs/src/notebooks/MLJTutorial/04_tuning/tuning.png index f58579d..9be33e5 100644 Binary files a/docs/src/notebooks/MLJTutorial/04_tuning/tuning.png and b/docs/src/notebooks/MLJTutorial/04_tuning/tuning.png differ diff --git a/docs/src/notebooks/MLJTutorial/05_composition/notebook.md b/docs/src/notebooks/MLJTutorial/05_composition/notebook.md index 37c8b3d..f4a1692 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 │ ├────────────┼────────────┼────────────┤ -│ 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 │ +│ 5.31563 │ -3.3673 │ -10.3947 │ +│ -0.249305 │ 4.31778 │ 5.53754 │ +│ 5.32621 │ 11.1213 │ -4.48258 │ +│ 1.26847 │ 6.21007 │ 4.83913 │ +│ -0.599664 │ 5.77754 │ 4.42261 │ └────────────┴────────────┴────────────┘ ```` @@ -91,11 +91,11 @@ yhat = predict(mach2, Xstand) ```` 5-element CategoricalDistributions.UnivariateFiniteVector{ScientificTypesBase.Multiclass{3}, Int64, UInt32, Float64}: - 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) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(1=>0.996, 2=>0.00197, 3=>0.00173) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(1=>0.000517, 2=>0.000196, 3=>0.999) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(1=>0.00154, 2=>0.994, 3=>0.00397) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(1=>0.00128, 2=>0.00405, 3=>0.995) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(1=>0.000393, 2=>0.000447, 3=>0.999) ```` **Step 1** - Edit your code as follows: @@ -119,15 +119,15 @@ yhat = predict(mach2, Xstand) ```` ```` -Node @361 → LogisticClassifier(…) +Node @316 → LogisticClassifier(…) args: - 1: Node @114 → Standardizer(…) + 1: Node @206 → Standardizer(…) formula: predict( machine(LogisticClassifier(lambda = 0.001, …), …), transform( machine(Standardizer(features = Symbol[], …), …), - Source @383, + Source @679, ), ) ```` @@ -150,11 +150,11 @@ Xstand() |> pretty │ Float64 │ Float64 │ Float64 │ │ Continuous │ Continuous │ Continuous │ ├────────────┼────────────┼────────────┤ -│ 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 │ +│ 1.06157 │ -1.56085 │ -1.46133 │ +│ -0.84203 │ -0.0942899 │ 0.781855 │ +│ 1.06519 │ 1.20404 │ -0.62893 │ +│ -0.322846 │ 0.266821 │ 0.683523 │ +│ -0.961878 │ 0.18428 │ 0.624879 │ └────────────┴────────────┴────────────┘ ```` @@ -178,11 +178,11 @@ yhat() ```` 5-element CategoricalDistributions.UnivariateFiniteVector{ScientificTypesBase.Multiclass{3}, Int64, UInt32, Float64}: - 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) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(1=>0.996, 2=>0.00197, 3=>0.00173) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(1=>0.000517, 2=>0.000196, 3=>0.999) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(1=>0.00154, 2=>0.994, 3=>0.00397) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(1=>0.00128, 2=>0.00405, 3=>0.995) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(1=>0.000393, 2=>0.000447, 3=>0.999) ```` The node `yhat` is the "descendant" (in an associated DAG we have @@ -194,7 +194,7 @@ origins(yhat) ```` 1-element Vector{MLJBase.Source}: - Source @383 ⏎ `ScientificTypesBase.Table{AbstractVector{ScientificTypesBase.Continuous}}` + Source @679 ⏎ `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=>0.0024, 2=>3.71e-5, 3=>0.998) - UnivariateFinite{ScientificTypesBase.Multiclass{3}}(1=>0.0744, 2=>8.78e-5, 3=>0.926) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(1=>2.72e-7, 2=>1.01e-7, 3=>1.0) + UnivariateFinite{ScientificTypesBase.Multiclass{3}}(1=>2.8e-6, 2=>8.96e-5, 3=>1.0) ```` **Step 2** - Export the learning network as a new stand-alone model type @@ -238,15 +238,15 @@ yhat = predict(mach2, Xstand) ```` ```` -Node @124 → :classifier +Node @855 → :classifier args: - 1: Node @809 → :standardizer + 1: Node @680 → :standardizer formula: predict( machine(:classifier, …), transform( machine(:standardizer, …), - Source @383, + Source @679, ), ) ```` @@ -380,7 +380,7 @@ y = source(y) ```` ```` -Source @198 ⏎ `AbstractVector{ScientificTypesBase.Continuous}` +Source @924 ⏎ `AbstractVector{ScientificTypesBase.Continuous}` ```` **First layer and target transformation:** @@ -396,13 +396,13 @@ z = MLJ.transform(mach2, y) ```` ```` -Node @283 → UnivariateBoxCoxTransformer(…) +Node @546 → UnivariateBoxCoxTransformer(…) args: - 1: Source @198 + 1: Source @924 formula: transform( machine(UnivariateBoxCoxTransformer(n = 171, …), …), - Source @198, + Source @924, ) ```` @@ -419,10 +419,10 @@ zhat = 0.5*predict(mach3, W) + 0.5*predict(mach4, W) ```` ```` -Node @594 +Node @505 args: - 1: Node @695 - 2: Node @962 + 1: Node @084 + 2: Node @653 formula: +( var"#*##0#*##1"( @@ -430,7 +430,7 @@ Node @594 machine(RidgeRegressor(lambda = 0.1, …), …), transform( machine(Standardizer(features = Symbol[], …), …), - Source @397, + Source @511, ), ), ), @@ -439,7 +439,7 @@ Node @594 machine(RandomForestRegressor(max_depth = -1, …), …), transform( machine(Standardizer(features = Symbol[], …), …), - Source @397, + Source @511, ), ), ), @@ -453,9 +453,9 @@ yhat = inverse_transform(mach2, zhat) ```` ```` -Node @306 → UnivariateBoxCoxTransformer(…) +Node @247 → UnivariateBoxCoxTransformer(…) args: - 1: Node @594 + 1: Node @505 formula: inverse_transform( machine(UnivariateBoxCoxTransformer(n = 171, …), …), @@ -465,7 +465,7 @@ Node @306 → UnivariateBoxCoxTransformer(…) machine(RidgeRegressor(lambda = 0.1, …), …), transform( machine(Standardizer(features = Symbol[], …), …), - Source @397, + Source @511, ), ), ), @@ -474,7 +474,7 @@ Node @306 → UnivariateBoxCoxTransformer(…) machine(RandomForestRegressor(max_depth = -1, …), …), transform( machine(Standardizer(features = Symbol[], …), …), - Source @397, + Source @511, ), ), ), @@ -491,9 +491,9 @@ yhat(rows=1:3) ```` 3-element Vector{Float64}: - 1.8758898048020904 - 2.0871924627786433 - 1.2714918102034443 + 0.38643611843841796 + 0.5723985261534488 + 0.44151392790057636 ```` Now for the new model type: @@ -546,21 +546,21 @@ 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-927 +Tag: CompositeModel-412 Extract: ┌───┬────────────────────────┬───────────┬─────────────┐ │ │ measure │ operation │ measurement │ ├───┼────────────────────────┼───────────┼─────────────┤ -│ A │ RootMeanSquaredError() │ predict │ 3.94 │ -│ B │ LPLoss( │ predict │ 2.48 │ +│ A │ RootMeanSquaredError() │ predict │ 4.0 │ +│ B │ LPLoss( │ predict │ 2.51 │ │ │ p = 1) │ │ │ └───┴────────────────────────┴───────────┴─────────────┘ -┌───┬──────────────────────────────────────┬─────────┐ -│ │ per_fold │ 1.96*SE │ -├───┼──────────────────────────────────────┼─────────┤ -│ 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 │ -└───┴──────────────────────────────────────┴─────────┘ +┌───┬─────────────────────────────────────┬─────────┐ +│ │ per_fold │ 1.96*SE │ +├───┼─────────────────────────────────────┼─────────┤ +│ A │ [2.67, 2.9, 4.56, 3.85, 5.84, 3.28] │ 1.04 │ +│ B │ [1.81, 2.21, 2.81, 2.27, 3.6, 2.37] │ 0.547 │ +└───┴─────────────────────────────────────┴─────────┘ ```` diff --git a/docs/src/notebooks/MLJTutorial/99_solution_to_exercises/exercise_7c.png b/docs/src/notebooks/MLJTutorial/99_solution_to_exercises/exercise_7c.png index 1d0fd5e..553fd96 100644 Binary files a/docs/src/notebooks/MLJTutorial/99_solution_to_exercises/exercise_7c.png and b/docs/src/notebooks/MLJTutorial/99_solution_to_exercises/exercise_7c.png differ 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 6de4333..7624a2d 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.436654 0.811629 0.363581 - 0.781021 0.0747531 0.439646 + 0.441502 0.871795 0.685263 + 0.535322 0.850152 0.76627 ```` ````@julia @@ -77,8 +77,8 @@ Asparse = sparse(A) ```` 2×3 SparseArrays.SparseMatrixCSC{Float64, Int64} with 6 stored entries: - 0.436654 0.811629 0.363581 - 0.781021 0.0747531 0.439646 + 0.441502 0.871795 0.685263 + 0.535322 0.850152 0.76627 ```` ````@julia @@ -95,8 +95,8 @@ C = coerce(A, Multiclass) ```` 2×3 CategoricalArrays.CategoricalArray{Float64,2,UInt32}: - 0.436654 0.811629 0.363581 - 0.781021 0.0747531 0.439646 + 0.441502 0.871795 0.685263 + 0.535322 0.850152 0.76627 ```` ````@julia @@ -326,16 +326,16 @@ y4 = [n_devices(row.salary) for row in eachrow(X4)] ```` 10-element Vector{Int64}: - 5 - 1 4 + 3 2 - 2 - 2 - 0 4 - 3 + 6 1 + 3 + 2 + 2 + 2 ```` 4(a) @@ -411,10 +411,10 @@ pretty(X) │ Float64 │ Float64 │ │ Continuous │ Continuous │ ├────────────┼────────────┤ -│ 0.961707 │ 0.368005 │ -│ 0.834368 │ 0.482366 │ -│ 0.543462 │ 0.680675 │ -│ 0.41441 │ 0.273404 │ +│ 0.256611 │ 0.672213 │ +│ 0.385614 │ 0.149492 │ +│ 0.873735 │ 0.269848 │ +│ 0.753635 │ 0.206412 │ └────────────┴────────────┘ ```` @@ -589,7 +589,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: RandomForestClassifier-171 +Tag: RandomForestClassifier-372 Extract: ┌──────────────────────┬───────────┬─────────────┐ │ measure │ operation │ measurement │ @@ -597,11 +597,11 @@ Extract: │ LogLoss( │ predict │ 1.1 │ │ tol = 2.22045e-16) │ │ │ └──────────────────────┴───────────┴─────────────┘ -┌───────────────────────────────────────┬─────────┐ -│ per_fold │ 1.96*SE │ -├───────────────────────────────────────┼─────────┤ -│ [1.28, 1.38, 1.76, 0.778, 0.72, 0.66] │ 0.391 │ -└───────────────────────────────────────┴─────────┘ +┌─────────────────────────────────────────┬─────────┐ +│ per_fold │ 1.96*SE │ +├─────────────────────────────────────────┼─────────┤ +│ [0.762, 1.39, 1.79, 1.31, 0.697, 0.629] │ 0.411 │ +└─────────────────────────────────────────┴─────────┘ ```` @@ -660,7 +660,7 @@ err_forest = ```` ```` -1.285130671948529 +0.987927309743752 ```` #### Exercise 7 @@ -725,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-956 +Tag: ProbabilisticPipeline-616 Extract: ┌──────────────────────┬───────────┬─────────────┐ │ measure │ operation │ measurement │ ├──────────────────────┼───────────┼─────────────┤ -│ LogLoss( │ predict │ 0.92 │ +│ LogLoss( │ predict │ 0.847 │ │ tol = 2.22045e-16) │ │ │ └──────────────────────┴───────────┴─────────────┘ -┌──────────────────────────────────────────┬─────────┐ -│ per_fold │ 1.96*SE │ -├──────────────────────────────────────────┼─────────┤ -│ [0.943, 1.27, 0.779, 0.792, 0.95, 0.786] │ 0.166 │ -└──────────────────────────────────────────┴─────────┘ +┌───────────────────────────────────────────┬─────────┐ +│ per_fold │ 1.96*SE │ +├───────────────────────────────────────────┼─────────┤ +│ [0.888, 1.15, 0.847, 0.812, 0.782, 0.608] │ 0.154 │ +└───────────────────────────────────────────┴─────────┘ ```` @@ -828,7 +828,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-792 +Tag: DeterministicPipeline-942 Extract: ┌──────────┬───────────┬─────────────┐ │ measure │ operation │ measurement │ @@ -854,7 +854,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-143 +Tag: DeterministicTunedModel-175 Extract: ┌──────────┬───────────┬─────────────┐ │ measure │ operation │ measurement │ diff --git a/docs/src/notebooks/UsingMLJ/01_basics/notebook.md b/docs/src/notebooks/UsingMLJ/01_basics/notebook.md index 41f5cce..74a57b8 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.77 -Avg Depth: 14.49,) +Avg Leaves: 147.07 +Avg Depth: 14.67,) ```` ````@julia @@ -206,9 +206,9 @@ predict(mach, X)[1:3] ```` 3-element Vector{Float64}: - 27.016000000000005 - 22.846999999999998 - 34.468999999999994 + 26.394000000000002 + 22.337 + 34.722 ```` Predict in the `test` rows: @@ -224,7 +224,7 @@ mae(ypred, y[test]) ```` ```` -4.553524752475247 +4.623326732673267 ```` `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-998 +Tag: RandomForestRegressor-413 Extract: ┌────────────┬───────────┬─────────────┐ │ measure │ operation │ measurement │ ├────────────┼───────────┼─────────────┤ -│ LPLoss( │ predict │ 4.55 │ +│ LPLoss( │ predict │ 4.62 │ │ p = 1) │ │ │ -│ RSquared() │ predict │ 0.313 │ +│ RSquared() │ predict │ 0.323 │ └────────────┴───────────┴─────────────┘ ```` @@ -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-838 +Tag: RandomForestRegressor-666 Extract: ┌───┬────────────┬───────────┬─────────────┐ │ │ measure │ operation │ measurement │ ├───┼────────────┼───────────┼─────────────┤ -│ A │ LPLoss( │ predict │ 3.06 │ +│ A │ LPLoss( │ predict │ 3.0 │ │ │ p = 1) │ │ │ -│ B │ RSquared() │ predict │ 0.644 │ +│ B │ RSquared() │ predict │ 0.656 │ └───┴────────────┴───────────┴─────────────┘ ┌───┬──────────────────────────────────────────┬─────────┐ │ │ per_fold │ 1.96*SE │ ├───┼──────────────────────────────────────────┼─────────┤ -│ 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 │ +│ A │ [2.24, 2.29, 3.32, 2.41, 4.73, 3.03] │ 0.834 │ +│ B │ [0.726, 0.838, 0.7, 0.819, 0.472, 0.376] │ 0.166 │ └───┴──────────────────────────────────────────┴─────────┘ ```` @@ -334,21 +334,21 @@ 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-818 +Tag: RandomForestRegressor-199 Extract: ┌───┬────────────┬───────────┬─────────────┐ │ │ measure │ operation │ measurement │ ├───┼────────────┼───────────┼─────────────┤ │ A │ LPLoss( │ predict │ 2.45 │ │ │ p = 1) │ │ │ -│ B │ RSquared() │ predict │ 0.836 │ +│ B │ RSquared() │ predict │ 0.842 │ └───┴────────────┴───────────┴─────────────┘ -┌───┬────────────────────────────────────────────────────────────────────────┬── -│ │ per_fold │ ⋯ -├───┼────────────────────────────────────────────────────────────────────────┼── -│ 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] │ ⋯ -└───┴────────────────────────────────────────────────────────────────────────┴── +┌───┬───────────────────────────────────────────────────────────────────────┬─── +│ │ per_fold │ ⋯ +├───┼───────────────────────────────────────────────────────────────────────┼─── +│ A │ [2.49, 2.49, 2.6, 2.47, 2.35, 2.52, 2.43, 2.35, 2.52, 2.24] │ ⋯ +│ B │ [0.817, 0.855, 0.835, 0.83, 0.853, 0.808, 0.863, 0.856, 0.835, 0.867] │ ⋯ +└───┴───────────────────────────────────────────────────────────────────────┴─── 1 column omitted ```` @@ -359,8 +359,8 @@ e.uncertainty_radius_95 ```` 2-element Vector{Float64}: - 0.1351854798171381 - 0.027918917100305033 + 0.06904375445230268 + 0.013098268581533108 ```` # Interlude on scientific types @@ -605,8 +605,8 @@ first(yprob, 5) 5-element CategoricalDistributions.UnivariateFiniteVector{ScientificTypesBase.Multiclass{2}, InlineStrings.String7, UInt32, Float64}: 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.25, >50K=>0.75) + UnivariateFinite{ScientificTypesBase.Multiclass{2}}(<=50K=>0.98, >50K=>0.02) + UnivariateFinite{ScientificTypesBase.Multiclass{2}}(<=50K=>0.24, >50K=>0.76) UnivariateFinite{ScientificTypesBase.Multiclass{2}}(<=50K=>1.0, >50K=>0.0) ```` @@ -617,8 +617,8 @@ yprob[3] ```` UnivariateFinite{ScientificTypesBase.Multiclass{2}} ┌ ┐ - <=50K ┤■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 0.94 - >50K ┤■■ 0.06 + <=50K ┤■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 0.98 + >50K ┤■ 0.02 └ ┘ ```` @@ -629,7 +629,7 @@ accuracy(ypoint, y[test]) ```` ```` -0.7822593028612377 +0.7822081179300814 ```` ````@julia @@ -637,7 +637,7 @@ log_loss(yprob, y[test]) ```` ```` -1.4905981300833329 +1.5659651402227337 ```` Evaluate with one command: @@ -656,13 +656,13 @@ 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-838 +Tag: RandomForestClassifier-400 Extract: ┌──────────────────────┬──────────────┬─────────────┐ │ measure │ operation │ measurement │ ├──────────────────────┼──────────────┼─────────────┤ -│ Accuracy() │ predict_mode │ 0.78 │ -│ LogLoss( │ predict │ 1.54 │ +│ Accuracy() │ predict_mode │ 0.781 │ +│ LogLoss( │ predict │ 1.53 │ │ 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 3336650..47968ab 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-975 +Tag: DeterministicPipeline-381 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-815 +Tag: TransformedTargetModelDeterministic-404 Extract: ┌──────────┬───────────┬─────────────┐ │ measure │ operation │ measurement │ diff --git a/docs/src/notebooks/UsingMLJ/03_model_tuning/learning_curve.svg b/docs/src/notebooks/UsingMLJ/03_model_tuning/learning_curve.svg index 14f2dff..55dc002 100644 --- a/docs/src/notebooks/UsingMLJ/03_model_tuning/learning_curve.svg +++ b/docs/src/notebooks/UsingMLJ/03_model_tuning/learning_curve.svg @@ -1,46 +1,46 @@ - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/src/notebooks/UsingMLJ/03_model_tuning/notebook.md b/docs/src/notebooks/UsingMLJ/03_model_tuning/notebook.md index a562ab2..13d89b2 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-707 +Tag: ProbabilisticPipeline-112 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: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 + 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:01 Evaluating over 30 metamodels: 20%[=====> ] ETA: 0:00:01 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:03 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: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:05 Evaluating over 30 metamodels: 83%[====================> ] ETA: 0:00:04 Evaluating over 30 metamodels: 87%[=====================> ] ETA: 0:00:04 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:36 ```` @@ -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: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 + Evaluating over 36 metamodels: 6%[=> ] ETA: 0:00:33 Evaluating over 36 metamodels: 8%[==> ] ETA: 0:00:45 Evaluating over 36 metamodels: 11%[==> ] ETA: 0:00:42 Evaluating over 36 metamodels: 14%[===> ] ETA: 0:00:37 Evaluating over 36 metamodels: 17%[====> ] ETA: 0:00:42 Evaluating over 36 metamodels: 19%[====> ] ETA: 0:00:39 Evaluating over 36 metamodels: 22%[=====> ] ETA: 0:00:36 Evaluating over 36 metamodels: 25%[======> ] ETA: 0:00:36 Evaluating over 36 metamodels: 28%[======> ] ETA: 0:00:34 Evaluating over 36 metamodels: 31%[=======> ] ETA: 0:00:33 Evaluating over 36 metamodels: 33%[========> ] ETA: 0:00:30 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:28 Evaluating over 36 metamodels: 44%[===========> ] ETA: 0:00:28 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:24 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:18 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: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:08 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:53 ```` @@ -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: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 + Evaluating over 40 metamodels: 0%[> ] ETA: N/A Evaluating over 40 metamodels: 2%[> ] ETA: 0:00:32 Evaluating over 40 metamodels: 5%[=> ] ETA: 0:00:47 Evaluating over 40 metamodels: 8%[=> ] ETA: 0:00:44 Evaluating over 40 metamodels: 10%[==> ] ETA: 0:00:46 Evaluating over 40 metamodels: 12%[===> ] ETA: 0:00:53 Evaluating over 40 metamodels: 15%[===> ] ETA: 0:00:49 Evaluating over 40 metamodels: 18%[====> ] ETA: 0:00:47 Evaluating over 40 metamodels: 20%[=====> ] ETA: 0:00:46 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:42 Evaluating over 40 metamodels: 32%[========> ] ETA: 0:00:40 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:36 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:32 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: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: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-359 +Tag: DeterministicTunedModel-250 Extract: ┌──────────┬───────────┬─────────────┐ │ measure │ operation │ measurement │ @@ -362,9 +362,9 @@ Comparing with the baseline computed earlier: ```` ```` -ebase = PerformanceEvaluation("ProbabilisticPipeline-707", 0.568 ± 0.0332) -e0 = PerformanceEvaluation("DeterministicPipeline-582", 0.184 ± 0.0281) -e1 = PerformanceEvaluation("DeterministicTunedModel-359", 0.175 ± 0.021) +ebase = PerformanceEvaluation("ProbabilisticPipeline-112", 0.568 ± 0.0332) +e0 = PerformanceEvaluation("DeterministicPipeline-658", 0.184 ± 0.0281) +e1 = PerformanceEvaluation("DeterministicTunedModel-250", 0.175 ± 0.021) ```` @@ -380,8 +380,8 @@ describe.([e0, e1]) |> pretty │ String │ Measurement{Float64} │ │ Textual │ Continuous │ ├─────────────────────────────┼──────────────────────┤ -│ DeterministicPipeline-582 │ 0.184±0.028 │ -│ DeterministicTunedModel-359 │ 0.175±0.021 │ +│ DeterministicPipeline-658 │ 0.184±0.028 │ +│ DeterministicTunedModel-250 │ 0.175±0.021 │ └─────────────────────────────┴──────────────────────┘ ```` diff --git a/docs/src/notebooks/UsingMLJ/03_model_tuning/tuned_model_grid.svg b/docs/src/notebooks/UsingMLJ/03_model_tuning/tuned_model_grid.svg index a712add..c80b3f8 100644 --- a/docs/src/notebooks/UsingMLJ/03_model_tuning/tuned_model_grid.svg +++ b/docs/src/notebooks/UsingMLJ/03_model_tuning/tuned_model_grid.svg @@ -1,294 +1,294 @@ - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/src/notebooks/UsingMLJ/03_model_tuning/tuned_model_random.svg b/docs/src/notebooks/UsingMLJ/03_model_tuning/tuned_model_random.svg index 014ae4e..9911fd3 100644 --- a/docs/src/notebooks/UsingMLJ/03_model_tuning/tuned_model_random.svg +++ b/docs/src/notebooks/UsingMLJ/03_model_tuning/tuned_model_random.svg @@ -1,269 +1,269 @@ - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/src/notebooks/lightning_tour/notebook.md b/docs/src/notebooks/lightning_tour/notebook.md index 8a20dfa..ba6449b 100644 --- a/docs/src/notebooks/lightning_tour/notebook.md +++ b/docs/src/notebooks/lightning_tour/notebook.md @@ -246,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 @763 ⏎ ScientificTypesBase.Table{AbstractVector{ScientificTypesBase.Continuous}} - 2: Source @207 ⏎ AbstractVector{ScientificTypesBase.Continuous} + 1: Source @477 ⏎ ScientificTypesBase.Table{AbstractVector{ScientificTypesBase.Continuous}} + 2: Source @252 ⏎ AbstractVector{ScientificTypesBase.Continuous} ```` @@ -261,9 +261,9 @@ first(yhat, 3) ```` 3-element Vector{Float32}: - -2.2105958 - 0.38274634 - -1.1552228 + -0.42176783 + 0.82785225 + 0.09056717 ```` Evaluating the "self-tuning" pipeline model's performance using all data and 5-fold @@ -284,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-807 +Tag: DeterministicTunedModel-354 Extract: ┌───┬────────────┬───────────┬─────────────┐ │ │ measure │ operation │ measurement │ ├───┼────────────┼───────────┼─────────────┤ -│ A │ LPLoss( │ predict │ 0.23 │ +│ A │ LPLoss( │ predict │ 0.309 │ │ │ p = 1) │ │ │ -│ B │ RSquared() │ predict │ 0.957 │ +│ B │ RSquared() │ predict │ 0.946 │ └───┴────────────┴───────────┴─────────────┘ ┌───┬─────────────────────────────────────┬─────────┐ │ │ per_fold │ 1.96*SE │ ├───┼─────────────────────────────────────┼─────────┤ -│ 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 │ +│ A │ [0.211, 0.279, 0.414, 0.334, 0.305] │ 0.0729 │ +│ B │ [0.967, 0.957, 0.902, 0.944, 0.962] │ 0.0258 │ └───┴─────────────────────────────────────┴─────────┘ ```` @@ -319,7 +319,7 @@ describe.(evaluations) |> pretty ```` [ Info: Performing evaluations using 1 thread. - 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 + Evaluating over 5 folds: 40%[==========> ] ETA: 0:00:27 Evaluating over 5 folds: 60%[===============> ] ETA: 0:00:15 Evaluating over 5 folds: 80%[====================> ] ETA: 0:00:07 Evaluating over 5 folds: 100%[=========================] Time: 0:00:33 [ Info: Performing evaluations using 1 thread. Evaluating over 5 folds: 40%[==========> ] ETA: 0:00:01 Evaluating over 5 folds: 100%[=========================] Time: 0:00:00 ┌─────────┬──────────────────────┬──────────────────────┐ @@ -327,8 +327,8 @@ describe.(evaluations) |> pretty │ String │ Measurement{Float64} │ Measurement{Float64} │ │ Textual │ Continuous │ Continuous │ ├─────────┼──────────────────────┼──────────────────────┤ -│ booster │ 0.23±0.042 │ 0.957±0.017 │ -│ dummy │ 1.29±0.2 │ -0.13±0.17 │ +│ booster │ 0.309±0.073 │ 0.946±0.026 │ +│ dummy │ 1.48±0.15 │ -0.014±0.021 │ └─────────┴──────────────────────┴──────────────────────┘ ```` diff --git a/learning_curve.svg b/learning_curve.svg new file mode 100644 index 0000000..dd9bd14 --- /dev/null +++ b/learning_curve.svg @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tuned_model_grid.svg b/tuned_model_grid.svg new file mode 100644 index 0000000..358a08e --- /dev/null +++ b/tuned_model_grid.svg @@ -0,0 +1,294 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tuned_model_random.svg b/tuned_model_random.svg new file mode 100644 index 0000000..f06d6fe --- /dev/null +++ b/tuned_model_random.svg @@ -0,0 +1,269 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +