Как сделать графики частичной зависимости в диаграмме рассеяния вместо линейного графика из данных xgboost

library(pdp)
library(xgboost)
param.list <- list(max_depth = 5, eta = 0.01, objective = "binary:logistic", 
           eval_metric = "auc")

house.xgb <- xgb.train(params = params, 
              data = xgb.DMatrix(as.matrix(house[ ,1:3]), label = 
house$SalePrice, missing = NA), 
              nrounds = 500)
partial(house.xgb, pred.var = "MSSubClass", plot = T, train = house[ ,1:3])

График у меня есть

График Я хочу График я хочу

https://slundberg.github.io/shap/notebooks/NHANES+I+Survival+Model.html график, который я хочу, получен по этой ссылке, которая использует python. Меня не волнуют цвета или ось y, я просто хочу часть графика рассеяния, а не линейный график.

Я использовал партиал из пакета pdp R, но если кто-нибудь может указать мне направление другого пакета, это было бы здорово. Пакет pdp дает только несколько точек данных.

1 ответ

В призыве к partial() просто установить plot = FALSE (который используется по умолчанию). Например,

pd <- partial(house.xgb, pred.var = "MSSubClass", 
              train = house[ ,1:3])
head(pd)  # print the data frame
plot(pd)  # basic plot or use ggplot2, lattice, plotly, etc.

вернет фрейм данных, для которого вы можете создать диаграмму рассеяния!

Другие вопросы по тегам