XGBoost case
library(xgboost)
library(xspliner)
library(breakDown)
HR <- HR_data
str(HR_data)
## 'data.frame': 14999 obs. of 10 variables:
## $ satisfaction_level : num 0.38 0.8 0.11 0.72 0.37 0.41 0.1 0.92 0.89 0.42 ...
## $ last_evaluation : num 0.53 0.86 0.88 0.87 0.52 0.5 0.77 0.85 1 0.53 ...
## $ number_project : int 2 5 7 5 2 2 6 5 5 2 ...
## $ average_montly_hours : int 157 262 272 223 159 153 247 259 224 142 ...
## $ time_spend_company : int 3 6 4 5 3 3 4 5 5 3 ...
## $ Work_accident : int 0 0 0 0 0 0 0 0 0 0 ...
## $ left : int 1 1 1 1 1 1 1 1 1 1 ...
## $ promotion_last_5years: int 0 0 0 0 0 0 0 0 0 0 ...
## $ sales : Factor w/ 10 levels "accounting","hr",..: 8 8 8 8 8 8 8 8 8 8 ...
## $ salary : Factor w/ 3 levels "high","low","medium": 2 3 3 2 2 2 2 2 2 2 ...
model_matrix_train <- model.matrix(left ~ . -1, HR)
data_train <- xgb.DMatrix(model_matrix_train, label = HR$left)
param <- list(max_depth = 2, objective = "binary:logistic")
HR_xgb_model <- xgb.train(param, data_train, nrounds = 50)
model_xs <- xspline(HR_xgb_model, lhs = "left", response = "left", predictors = colnames(HR)[-7],
data = HR, form = "additive", family = "binomial", link = "logit",
bare = c("number_project", "time_spend_company", "Work_accident", "promotion_last_5years"),
xs_opts = list(effect = list(train = model_matrix_train)),
xf_opts = list(transition = list(alter = "never")))
summary(model_xs)
##
## Call:
## stats::glm(formula = left ~ xs(satisfaction_level) + xs(last_evaluation) +
## number_project + xs(average_montly_hours) + time_spend_company +
## Work_accident + promotion_last_5years + sales + salary, family = family,
## data = data)
##
## Deviance Residuals:
## Min 1Q Median 3Q Max
## -3.6566 -0.4484 -0.2223 -0.0284 3.2011
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) 9.07884 0.34622 26.223 < 2e-16 ***
## xs(satisfaction_level) -2.94843 0.07125 -41.383 < 2e-16 ***
## xs(last_evaluation) -4.44209 0.16588 -26.779 < 2e-16 ***
## number_project -0.39311 0.02533 -15.521 < 2e-16 ***
## xs(average_montly_hours) -2.16248 0.12928 -16.727 < 2e-16 ***
## time_spend_company 0.38107 0.01851 20.583 < 2e-16 ***
## Work_accident -1.45516 0.10977 -13.257 < 2e-16 ***
## promotion_last_5years -1.05742 0.28709 -3.683 0.00023 ***
## saleshr 0.15624 0.16616 0.940 0.34708
## salesIT -0.27458 0.15585 -1.762 0.07809 .
## salesmanagement -0.55376 0.20384 -2.717 0.00659 **
## salesmarketing -0.12759 0.16521 -0.772 0.43994
## salesproduct_mng -0.24057 0.16331 -1.473 0.14073
## salesRandD -0.56603 0.18318 -3.090 0.00200 **
## salessales -0.07321 0.12897 -0.568 0.57025
## salessupport 0.03285 0.13832 0.238 0.81226
## salestechnical 0.12093 0.13444 0.899 0.36839
## salarylow 1.91403 0.15438 12.398 < 2e-16 ***
## salarymedium 1.34516 0.15522 8.666 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 16464.7 on 14998 degrees of freedom
## Residual deviance: 8410.7 on 14980 degrees of freedom
## AIC: 8448.7
##
## Number of Fisher Scoring iterations: 6
Partially constant approximation
library(DALEX)
library(caret)
library(xspliner)
data(apartments)
set.seed(123)
variable <- "construction.year"
regr_rf <- train(m2.price ~ ., data = apartments, method = "rf", ntree = 100)
model_xs <- xspline(regr_rf, data = apartments, bare = c("floor", "no.rooms"),
xs_opts = list(transition = list(bs = "ps", fx = FALSE, k = 20, m = -1)))
## Warning: Column `orig` joining factors with different levels, coercing to
## character vector
plot_variable_transition(model_xs, "surface")
![](data:image/png;base64,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)