Я создаю несколько графиков SHAP-оценок для визуализации модели, которую я создал с помощью xgboost. Я использовал пакет SHAPforxgboost, который работал очень хорошо, и теперь я хочу использовать рисунки (особенно из shap.plot.summary ()) в текстовом документе, который я пишу. Тем не менее, размеры шрифта надписей / заголовков на осях X и Y очень малы, и мне было интересно, можно ли было бы как-нибудь сделать их больше и удобочитаемее.
Я использовал очень подобная установка, как показано здесь; https://www.rdocumentation.org/packages/SHAPforxgboost/versions/0.0.2:
library("SHAPforxgboost")
y_var <- "diffcwv"
dataX <- dataXY_df[,-..y_var]
# hyperparameter tuning results
param_dart <- list(objective = "reg:linear", # For regression
nrounds = 366,
eta = 0.018,
max_depth = 10,
gamma = 0.009,
subsample = 0.98,
colsample_bytree = 0.86)
mod <- xgboost::xgboost(data = as.matrix(dataX), label = as.matrix(dataXY_df[[y_var]]),
xgb_param = param_dart, nrounds = param_dart$nrounds,
verbose = FALSE, nthread = parallel::detectCores() - 2,
early_stopping_rounds = 8)
# To return the SHAP values and ranked features by mean|SHAP|
shap_values <- shap.values(xgb_model = mod, X_train = dataX)
# The ranked features by mean |SHAP|
shap_values$mean_shap_score
# To prepare the long-format data:
shap_long <- shap.prep(xgb_model = mod, X_train = dataX)
# is the same as: using given shap_contrib
shap_long <- shap.prep(shap_contrib = shap_values$shap_score, X_train = dataX)
# (Notice that there will be a data.table warning from `melt.data.table` due to `dayint` coerced from integer to double)
# **SHAP summary plot**
shap.plot.summary(shap_long)
Вывод shap.plot.summary ():
В частности, я было бы интересно увеличить размер шрифта каждого дескриптора на оси Y