diff --git a/README.md b/README.md index 20ec7b96..14dcfcd0 100644 --- a/README.md +++ b/README.md @@ -63,7 +63,7 @@ To demonstrate the typical workflow, we use a beautiful house price dataset with ```r library(hstats) library(ggplot2) -library(xgboost) +library(xgboost) # XGBoost 3. For earlier versions, replace `evals` by `watchlist` library(shapviz) colnames(miami) <- tolower(colnames(miami)) @@ -86,13 +86,13 @@ dvalid <- xgb.DMatrix(X_valid, label = y_valid) fit <- xgb.train( params = list(learning_rate = 0.15, objective = "reg:squarederror", max_depth = 5), data = dtrain, - watchlist = list(valid = dvalid), + evals = list(valid = dvalid), early_stopping_rounds = 20, nrounds = 1000, - callbacks = list(cb.print.evaluation(period = 100)) + callbacks = list(xgb.cb.print.evaluation(period = 100)) ) -# Mean squared error: 0.0515 +# Mean squared error: 0.052 average_loss(fit, X = X_valid, y = y_valid) ``` @@ -101,14 +101,14 @@ average_loss(fit, X = X_valid, y = y_valid) Let's calculate different H-statistics via `hstats()`: ```r -# 2 seconds on laptop - a random forest will take much longer +# 1s on laptop - a random forest will take longer set.seed(782) system.time( s <- hstats(fit, X = X_train) #, approx = TRUE: twice as fast ) s # H^2 (normalized) -# [1] 0.10 +# [1] 0.09 plot(s) # Or summary(s) for numeric output @@ -339,42 +339,32 @@ dvalid <- xgb.DMatrix(X_valid, label = as.integer(y_valid) - 1) fit <- xgb.train( params = params, data = dtrain, - watchlist = list(valid = dvalid), + evals = list(valid = dvalid), early_stopping_rounds = 20, nrounds = 1000 ) -# We need to pass reshape = TRUE to get a beautiful matrix -predict(fit, head(X_train, 2), reshape = TRUE) -# [,1] [,2] [,3] -# [1,] 0.9974016 0.002130089 0.0004682819 -# [2,] 0.9971375 0.002129525 0.0007328897 - # mlogloss: 0.006689544 -average_loss(fit, X = X_valid, y = y_valid, loss = "mlogloss", reshape = TRUE) +average_loss(fit, X = X_valid, y = y_valid, loss = "mlogloss") -partial_dep(fit, v = "Petal.Length", X = X_train, reshape = TRUE) |> +partial_dep(fit, v = "Petal.Length", X = X_train) |> plot(show_points = FALSE) -ice(fit, v = "Petal.Length", X = X_train, reshape = TRUE) |> +ice(fit, v = "Petal.Length", X = X_train) |> plot(alpha = 0.05) -perm_importance( - fit, X = X_valid, y = y_valid, loss = "mlogloss", reshape = TRUE, m_rep = 100 -) +perm_importance(fit, X = X_valid, y = y_valid, loss = "mlogloss", m_rep = 100) # Permutation importance regarding mlogloss # Petal.Length Petal.Width Sepal.Length Sepal.Width -# 1.731532873 0.276671377 0.009158659 0.005717263 +# 1.557624510 0.176201365 0.003885496 0.001187475 # Interaction statistics including three-way stats -(H <- hstats(fit, X = X_train, reshape = TRUE, threeway_m = 4)) -# 0.02714399 0.16067364 0.11606973 +(H <- hstats(fit, X = X_train, threeway_m = 4)) +# 0.002906938 0.118144615 0.099156774 plot(H, normalize = FALSE, squared = FALSE, facet_scales = "free_y", ncol = 1) ``` -![](man/figures/xgboost.svg) - ## Meta-learning packages Here, we provide examples for {tidymodels}, {caret}, and {mlr3}. diff --git a/man/figures/hstats.svg b/man/figures/hstats.svg index bc505cfd..22fdcc30 100644 --- a/man/figures/hstats.svg +++ b/man/figures/hstats.svg @@ -1,164 +1,789 @@ - - + + - - - - - - - - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - -Overall + + - + + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - -Pairwise - - - - - - -0.00 -0.02 -0.04 -0.06 - - - - -0.000 -0.025 -0.050 -0.075 -tot_lvg_area:lnd_sqfoot -lnd_sqfoot:structure_quality -structure_quality:age -tot_lvg_area:age -log_ocean:tot_lvg_area -tot_lvg_area:structure_quality -log_ocean:structure_quality -log_ocean:lnd_sqfoot -lnd_sqfoot:age -log_ocean:age - - - - - - - - - - -month_sold -lnd_sqfoot -age -tot_lvg_area -structure_quality -log_ocean - - - - - - -H^2 (normalized) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/man/figures/hstats_pairwise.svg b/man/figures/hstats_pairwise.svg index 2605ad35..31574677 100644 --- a/man/figures/hstats_pairwise.svg +++ b/man/figures/hstats_pairwise.svg @@ -1,92 +1,558 @@ - - + + - - - - - - - - - - + + + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -lnd_sqfoot:structure_quality -tot_lvg_area:lnd_sqfoot -structure_quality:age -lnd_sqfoot:age -tot_lvg_area:age -log_ocean:tot_lvg_area -log_ocean:lnd_sqfoot -log_ocean:structure_quality -tot_lvg_area:structure_quality -log_ocean:age - - - - - - - - - - - - - - -0.00 -0.02 -0.04 -0.06 -Pairwise H (unnormalized) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/man/figures/ice.svg b/man/figures/ice.svg index c3f44c9d..e909e42a 100644 --- a/man/figures/ice.svg +++ b/man/figures/ice.svg @@ -1,184 +1,385 @@ - - + + - - - - - - - - - - + + + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --0.4 -0.0 -0.4 - - - - - - - - -0 -20 -40 -60 -80 -age -Centered ICE - -log_ocean - - - - - - - - -8 -9 -10 -11 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/man/figures/importance.svg b/man/figures/importance.svg index 7716c9be..30dbd351 100644 --- a/man/figures/importance.svg +++ b/man/figures/importance.svg @@ -1,73 +1,336 @@ - - + + - - - - - - - - - - + + + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - -month_sold -age -lnd_sqfoot -log_ocean -structure_quality -tot_lvg_area - - - - - - - - - -0.0 -0.1 -0.2 -PDI^2 (normalized) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/man/figures/importance_perm.svg b/man/figures/importance_perm.svg index a8719645..ca336f56 100644 --- a/man/figures/importance_perm.svg +++ b/man/figures/importance_perm.svg @@ -1,91 +1,359 @@ - - + + - - - - - - - - - - + + + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -month_sold -age -lnd_sqfoot -log_ocean -structure_quality -tot_lvg_area - - - - - - - - - -0.00 -0.05 -0.10 -Permutation importance + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/man/figures/pdp_2d.svg b/man/figures/pdp_2d.svg index 501e00b3..bb79bcba 100644 --- a/man/figures/pdp_2d.svg +++ b/man/figures/pdp_2d.svg @@ -1,1118 +1,1325 @@ - - + + - - - - - - - - - - + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - -8 -9 -10 -11 - - - - - - - - - -0 -20 -40 -60 -80 -age -log_ocean - - -12.25 -12.50 -12.75 -13.00 -13.25 -13.50 -PD - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/man/figures/pdp_2d_line.svg b/man/figures/pdp_2d_line.svg index 5eae64ac..943a9100 100644 --- a/man/figures/pdp_2d_line.svg +++ b/man/figures/pdp_2d_line.svg @@ -1,117 +1,330 @@ - - + + - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -12.4 -12.8 -13.2 - - - - - - - - -0 -20 -40 -60 -80 -age -PD - - -8 -9 -10 -11 -log_ocean - - - - - - - - + + diff --git a/man/figures/pdp_ocean_age.svg b/man/figures/pdp_ocean_age.svg index fe6c9816..9eae9c6e 100644 --- a/man/figures/pdp_ocean_age.svg +++ b/man/figures/pdp_ocean_age.svg @@ -1,95 +1,298 @@ - - + + - - - - - - - - - - + + + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - -12.25 -12.50 -12.75 -13.00 -13.25 - - - - - - - - - - -0 -20 -40 -60 -80 -age -PD - -log_ocean - - - - - - - - -[5.46,9.81] -(9.81,10.3] -(10.3,10.7] -(10.7,11.2] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +